# 手写公式识别项目
## 一. 项目概述
### 1.1 项目简介
实践是检验学习成果的重要环节。在之前的作业当中,同学们已经熟悉了深度学习的基本原理和Pytorch/TensorFlow框架的使用方法,但是之前的作业距离实际的开发或科研仍然相差甚远。
为了检验同学们的学习成果,期末的大作业将是以小组的形式开展(每组4~5人),目标是从数据标注开始,训练一个手写公式识别模型。
其中,步骤一是每位同学都需要完成的,后续的步骤请进行合理的分工。
最终的考核形式以**答辩为主**,并且需要每位同学提交实验报告和源代码。
实验代码等数据以组为单位上交,实验报告单独撰写,单独上交,注明分工内容。
相关代码见github仓库:https://github.com/zzz47zzz/deep-learning-course-documents
### 1.2 问题定义
需要把图片格式的**数学表达式**转化为文字格式的**LaTex表达式**
<div align="center">
<img src="figs/0.png" width = "800" />
</div>
如上图所示是将印刷体格式的数学表达式进行识别和转化,而我们这次项目聚焦的是手写体的数学表达式。
手写体比印刷体的识别难度更加大,目前还是一个挑战。
如图<img src="figs/5.png" width = "100" />,需要识别成 "1-2 < x"
### 1.3 评价指标
1. [EditDistance](https://www.jianshu.com/p/a617d20162cf):即Levenshtein距离,以取反的百分数呈现,越大越好。例:80%的EditDistance代表需要改动20%的内容才能达到groundtruth
2. ExactMatch:当预测结果和gt一样时才算100%准确,否则为0%,因此同样越大越好。
### 1.4 完成内容
1. 熟悉并使用labelImg软件提取公式图片。本次实验会提供**真实的初高中数学试卷**作为数据源给每位同学,每位同学负责其中一部分图片的**公式框选**。(步骤一)
2. 待每位同学完成后,将会收集同学们框选的标注,通过[mathpix](https://mathpix.com/)识别后,**取mathpix的识别结果作为ground truth**,再发回给大家作为数据集来训练。(步骤二)
3. 下载获取数据集(步骤三)
4. 利用所提供的代码,完成数据的**清洗+预处理**工作,以便作为模型的输入。(步骤四)
5. 训练**两个模型**:(步骤五)
- 模型1:Encoder用CNN,Decoder用RNN
- 模型2:Encoder用Resnet,Decoder用[Transformer](https://arxiv.org/abs/1706.03762)
6. 提交模型测试集预测结果,获取测试集成绩(步骤六)
7. 准备**小组答辩**,同时提交**实验报告**和**源代码**。(步骤七)
### 1.5 评分标准(项目总体分值为100分)
1. 数据标注(40分):**高质量完成**对应标注任务即可得到该部分分数的85%,**额外标注一份**即可得到得到该部分分数的100%。注:若标注质量低则酌情扣分。
2. 模型实现(50分,**结合答辩环节评估**):
- 模型正确性(30分):模型1 CNN+RNN(15分)和 模型2 Resnet+Transformer(15分)。评分根据参考代码实现是否正确、实验结果评测指标、代码可复现性和注释等方面来考虑。
- 模型拓展性(20分):优化模型、优化数据预处理、讨论任务瓶颈等。有UI的根据UI的美观、实用性等方面酌情加分。
3. 实验报告(10分):材料完整性,命名规范性,书写美观性等等。
**注:若发现代码,模型,结果,实验报告有抄袭或伪造情况,则扣除相应部分的分数!**
## 二,步骤一:标注数据
### 2.1 使用软件介绍
本次标注使用的是labelImg,是目标检查与识别科研界内广泛使用的开源标注软件。项目地址为:https://github.com/tzutalin/labelImg。
### 2.2 软件安装流程
1. 在windows系统下运行。首先下载仓库文件到本地,可以*手动下载zip压缩包后解压*或者*在目标路径下打开git bash并输入以下命令*
```
git clone https://github.com/heartexlabs/labelImg.git
```
2. 进入labelImg文件夹,打开cmd终端依次运行
```
pip3 install pyqt5 lxml
make qt5py3
python3 labelImg.py
```
注:如果遇到报错“'make' 不是内部或外部命令,也不是可运行的程序或批处理文件。”,解决方法:(1)参考[这里](https://www.jianshu.com/p/9bffbaf12bed)先安装MinGW;(2)参考[这里](https://blog.csdn.net/qq_43382350/article/details/105840862)打开MinGW管理界面安装toolkit等组件,最后在MinGW/bin路径下找到mingw32-make.exe并复制改名为make.exe。
<div align="center">
<img src="figs/1.jpg" width = "600"/>
</div>
顺利执行*labelImg.py*后将自动打开标注软件如下图:
<div align="center">
<img src="figs/2.jpg" width = "600"/>
</div>
### 2.3 标注流程
数据标注属于最基础且重要的工作,在真实的生产环境中,提高数据的质量往往比提高算法更加有效,因此企业常常花费大量的时间和经历做一些数据相关的工作。
此次的任务延续去年深度学习课程的传统,让同学们参与到一个可以落地的深度学习项目当中,不同在于今年比往年更近一步,需要识别手写体而不是印刷体,因此更加具有挑战。
此次标注过程一方面是为了搜集数据以便设计出更好的模型,另一方面也是让同学们亲身感受和参与数据标注的过程,本身工作量并不大,而且只要求框选出数学表达式,真正生成latex标注的工作会交给mathpix完成,所以希望大家用心完成标注任务,标注完成后会检查标注质量,若质量不合格则会会扣除一定的分数。
每位同学会分配60张的试卷图片(预计标注时长1h),需要额外标注的同学联系助教拿额外60张试卷图片,其他标注问题在群里面问助教。
1. 新建文件夹用于存放标注图片和对应的标签
在自定义的路径下新建*input_images*和*output_annotations*两个空文件夹。把所分配的数学试题图片放入*input_images*中。*output_annotations*文件夹用于存放后续软件生成的每张图片的xml标签。**待标注完成后重命名并提交*output_annotations*文件夹压缩包**
2. 在网址 http://202.38.247.12/ 下找到自己*点名册序号.zip*的图片压缩包下载,并把解压的图片放入*input_images*文件夹中。
3. 修改类别标签文件*labelImg/data/predefined_classes.txt*,删去原来类别名称,输入math,保存退出。
4. 在labelImg下,使用命令```python3 labelImg.py```打开标注软件(若在上一步中已经打开标注软件则跳过此步骤)
5. 点击打开目录(Open Dir),选择*input_images*文件夹
6. 点击改变存放目录(Change Save Dir),选择*output_annotations*文件夹
7. 点击Yolo/Pascal切换到PascalVOC模式。
<div align="center">
<img src="figs/3.png" width = "600"/>
</div>
8. 点击创建区块(快捷键w),圈出图片中的数学表达式(框选规则见下一节),选择标签选择math,按“OK”键完成一个框的标注。当完成当前图片所有框选后,使用快捷键ctrl+S保存,当前图片的标注将自动保存到*output_annotations*文件夹下。之后点击下一张图片(下一张图片快捷键d,上一张图片快捷键a),重复以上过程直到完成预定数量的标注。
注:检查*output_annotations*文件下是否生成同名的xml标注文件
<div align="center">
<img src="figs/10.jpg" width = "600"/>
</div>
注:提升效率小技巧:(1)熟练使用快捷键w和d;(2)在软件右上角勾选使用预设标签
9. 重命名*output_annotations*文件夹为*点名册序号_姓名*,压缩并在提交到指定网址 https://workspace.jianguoyun.com/inbox/collect/5f99cc9da86147c08b50bbae45e1e432/submitv2 。
### 2.4 框选数学表达式规则:
框选图片中所有清晰的数学表达式,这里的数学�
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
SCUT神经网络与深度学习的实验和大作业文档+源代码+文档说明 - 小白不懂运行,下载完可以私聊问,可远程教学 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 --------
资源推荐
资源详情
资源评论
收起资源包目录
deep-learning-course-documents-main.zip (36个子文件)
deep-learning-course-documents-main
mathmatical-expressions-recognition
figs
2.jpg 243KB
10.jpg 71KB
3.png 240KB
0.png 337KB
6.jpg 316KB
1.jpg 331KB
8.jpg 1.7MB
5.png 2KB
11.jpg 454KB
7.jpg 2.28MB
9.jpg 1.82MB
README.pdf 7.45MB
data_preprocess
shuffle_and_build_dataset.py 2KB
pad_image.py 2KB
no_chinese.py 3KB
extract_image_according_to_label_list.py 580B
data_preprocess_for_im2latex.py 3KB
write_matching.py 687B
vocab.txt 3KB
data_filter.py 1KB
README.md 16KB
拓展阅读列表.pdf 274KB
evaluation
evaluate.py 6KB
split_dataset.py 4KB
LICENSE 1KB
experiments
exp3
实验三代码.zip 707KB
实验三.pdf 268KB
实验三.docx 512KB
exp2
实验二.docx 54KB
实验二.pdf 120KB
实验二参考代码.py 4KB
exp1
实验一参考代码.py 6KB
实验一.pdf 228KB
实验一.docx 26KB
.gitignore 195B
README.md 311B
共 36 条
- 1
资源评论
- qq_413768212024-12-16感谢大佬分享的资源,对我启发很大,给了我新的灵感。
机智的程序员zero
- 粉丝: 2443
- 资源: 4701
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 白色大气风格的珠宝首饰电商模板下载.zip
- 白色大气风格的装饰装修模板下载.zip
- 白色大气风格的自行车运动模板下载.zip
- 白色大气风格的自由搏击俱乐部模板下载.zip
- 白色大气风格响应式app应用程序企业网站模板.zip
- 白色大气风格的足球俱乐部HTML5网站模板.zip
- 白色大气风格响应式IT技术在线企业网站模板.zip
- 白色大气风格响应式彩绘精品水果网站模板.zip
- 白色大气风格响应式大图幻灯博客网站模板.zip
- 白色大气风格响应式产品展示企业网页模板.zip
- 白色大气风格响应式个人主页博客网站模板.zip
- 白色大气风格响应式浪漫集体婚礼企业网站模板.zip
- 白色大气风格响应式果蔬类种植企业网站模板.zip
- 白色大气风格响应式通用后台管理网站模板.zip
- 白色大气风格响应式项目团队动态企业网站模板.zip
- 白色大气风格响应式旅游资讯企业网站模板.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功