基于计算机视觉和深度学习技术的硬笔书法智能评分系统,实现对硬笔书法作品的规范性和艺术性自动评分。
shufa/
├── data/ # 数据目录
│ ├── raw/ # 原始数据
│ ├── processed/ # 处理后的数据
│ └── models/ # 模型数据
├── src/ # 源代码目录
│ ├── preprocessing/ # 图像预处理模块
│ ├── segmentation/ # 字符分割模块
│ ├── recognition/ # 字符识别模块
│ ├── normative_scoring/# 规范性评分模块
│ ├── artistic_scoring/ # 艺术性评分模块
│ ├── evaluation/ # 评估模块
│ ├── utils/ # 工具模块
│ └── scoring_system.py # 主评分系统
├── notebooks/ # Jupyter笔记本
├── tests/ # 测试代码
├── models/ # 训练好的模型
├── requirements.txt # 项目依赖
├── train_example.py # 训练示例
└── README.md # 项目说明
-
图像预处理
- 灰度化
- 二值化
- 去噪
- 骨架提取
-
字符分割
- 基于骨架的单字分割算法
- KMeans聚类分组
- 图像归一化
-
字符识别
- 基于CIRM框架的单字识别
- ResNet50特征提取
-
规范性评分
- 笔画特征评分(PBOD算法)
- 结构特征评分(宽高比、重心位置等)
- 章法特征评分(文字大小一致性、间隔均匀性)
-
艺术性评分
- 笔画形态评分(粗细变化、流畅性)
- 布局协调性评分(字间搭配、行间协调)
-
评估模块
- 准确率计算
- 相关性分析
- MAE/RMSE计算
pip install -r requirements.txtfrom src.scoring_system import ScoringSystem
# 创建评分系统实例
scoring_system = ScoringSystem()
# 对书法作品进行评分
results = scoring_system.score("path/to/your/image.jpg", "path/to/template.jpg")
# 生成评分报告
report = scoring_system.generate_report(results)
print(report)python train_example.py- 完整的评分体系:同时考虑规范性和艺术性两个维度
- 模块化设计:各功能模块独立,便于维护和扩展
- 可视化支持:提供处理过程和结果的可视化功能
- 评估机制:内置评估模块,支持性能分析
- Python 3.8+
- OpenCV
- TensorFlow 2.x
- NumPy
- SciPy
- Matplotlib
本系统基于以下论文实现:
- 基于骨架拆分和K-means聚类的单字分割算法
- 基于CIRM框架的单字识别算法
- 基于PBOD算法的笔画特征评分方法
- 综合考虑笔画、结构和章法特征的规范性评分模型
- 融合笔画形态和布局协调性的艺术性评分方法