项目简介
本项目是基于Python框架的手写矩阵识别系统,借助图像处理技术实现对手写矩阵的识别与计算。系统包含数字字符位置识别和多位手写数字识别两个主要阶段,运用原创的基于K近邻的矩阵元素整合方法,把两阶段结果组合,最终获得数值矩阵结果并完成计算。
项目的主要特性和功能
- 图像处理与识别:运用YOLOv4模型检测和识别手写矩阵;利用基于CTC Loss的时序网络模型和MNIST分类模型识别多位手写数字。
- 矩阵元素整合:采用基于K近邻的矩阵元素整合算法,将识别出的数字字符位置和多位手写数字结果整合为完整的数值矩阵。
- 模型训练与优化:提供训练脚本
train.py
、train_CTC.py
和train_mnist.py
,用于训练YOLOv4、CTC Loss时序模型和MNIST分类模型。 - 结果输出与可视化:通过
matrix2result.py
程序输出识别图片中矩阵运算结果,支持电子版和手写版矩阵的识别与结果输出。
安装使用步骤
环境配置
确保安装了Python 3.6.10及以上版本,安装必要的Python库:pytorch 1.2.0
、opencv-python 3.4.0.12
、tqdm 4.31.1
。
模型下载
通过百度网盘下载checkpoint文件夹至当前目录下: - 链接:https://pan.baidu.com/s/1tATB6WUHQ7fk7BhUI0xURA - 提取码:tsv6
电子版矩阵识别
- 修改
yolov4_config.py
中的Customer_DATA
配置:python Customer_DATA = { "NUM": 7, "CLASSES": ["number", "left_matrix", "right_matrix", "add", "minus", "multi", "T"], }
- 运行以下命令进行电子版矩阵识别:
bash python matrix2result.py --model1_path=checkpoint/YOLOv4_Latex/best.pt --model2_path=checkpoint/CTC/num-last.pth --gpu_id=0 --data_dir=data/Latex
手写矩阵识别
- 修改
yolov4_config.py
中的Customer_DATA
配置:python Customer_DATA = { "NUM": 2, "CLASSES": ["number", "T"], }
- 运行以下命令进行手写矩阵识别:
bash python matrix2result.py --model1_path=checkpoint/YOLOv4_handwritten/best.pt --model2_path=checkpoint/mnist/mnist-12-17.pth --gpu_id=0 --data_dir=data/handwritten --mnist
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】