# 基于Resnet-Transformer的手写数学表示式识别
**本项目仅为课程大作业,并非正式发表的科研论文,实验过程可能存在漏洞,欢迎大家通过issue或PR向我反馈。**
## 任务概述
本项目涉及的任务是手写数学表达式识别(Handwritten Mathematical Expression Recognition,HMER)。手写数学表达式识别任务的目标是对于输入的只包含手写数学表达式的图片,通过算法分析,将图片转成对应的Latex数学表达式,它属于光学字符识别(Optical Character Recognition, OCR)的一个分支,但因为其具有局部歧义性、结构复杂性等特点,难以使用常规的基于定位、拆分、识别的光学字符识别方法进行处理。
## 网络结构
![image-20230110220939450](./README.assets/image-20230110220939450.png)
## 网络参数
按下表所示的参数构建模型,使用AdamW优化器进行优化,使用MultiStepLR的动态学习率调整策略。
<img src="./README.assets/image-20230110221038666.png" alt="image-20230110221038666" style="zoom: 67%;" />
## 评价指标
本实验采用字符错误率(Character Error Rate,CER)作为评价指标,每当在表达式中发生替换、删除和增加时,都记作一次错误。
$$
CER=\frac{N_{sub} +N_{del} +N_{ins} }{N}=\frac{N_{sub}+N_{del}+N_{ins} }{N_{sub} +N_{del} +N_{cor} }
$$
## 实验环境
运行实验的硬件环境包括Intel(R) Xeon(R) CPU E5-2680 v4 @ 2.40GHz CPU、16GB内存和NVIDIA TITAN Xp显卡,软件环境包括Ubuntu 20.04操作系统、CUDA 11.3、Python 3.8、PyTorch 1.11.0等。
## 预处理
图像预处理的主要目的是消除图像中无关的信息、恢复有用的真实信息、增强有关信息的可检测性和最大限度地简化数据。本实验对图片的预处理分为以下几个步骤:
(1) 图片灰度化。
(2) 裁剪公式部分。通过检测像素灰度值,找到公式的边界,从而将公式裁剪出来。
(3) 填充。对裁剪出来的公式上下左右各填充8个白像素。
**百度网盘中提供的数据集为已经完成预处理的数据集。**
## 训练过程与结果
设置batch size为32,在上述实验环境下训练30轮,共70410步。得到如下图所示的训练集损失函数值曲线和验证集字符错误率曲线。
<img src="./README.assets/image-20230110221245528.png" alt="image-20230110221245528" style="zoom:67%;" />
<img src="./README.assets/image-20230110221250300.png" alt="image-20230110221250300" style="zoom:67%;" />
下表展示了模型在验证集和测试集上的表现
<img src="./README.assets/image-20230110221314273.png" alt="image-20230110221314273" style="zoom:67%;" />
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
《人工智能原理》课程设计(基于Resnet-Transformer的手写数学表示式识别)_HMER.zip (18个子文件)
HMER-main
utils.py 2KB
metrics.py 1KB
tokenlizer.py 3KB
data
下载地址.txt 169B
predict.py 2KB
resnet_transformer.py 7KB
dataset.py 1KB
dataloader.py 5KB
positional_encoding.py 3KB
README.assets
image-20230110221250300.png 20KB
image-20230110221314273.png 20KB
image-20230110220939450.png 83KB
image-20230110221245528.png 44KB
image-20230110221038666.png 54KB
requirements.txt 208B
train.py 1KB
README.md 3KB
lit_model.py 4KB
共 18 条
- 1
资源评论
普通网友
- 粉丝: 1127
- 资源: 5292
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Yolo(实时物体检测)模型训练教程,基于深度学习神经网络.zip
- 网络爬虫基础 & HTML解析基础-课件
- Java基础语法与高级特性的全面讲解
- YOLO(You Only Look Once)的 Keras 实现统一的实时对象检测.zip
- YOLO(You Only Look Once)物体检测机制在 Tensorflow 中的实现.zip
- H3m-Blog项目源代码文件
- YOLO系列资料.zip
- 基于DQN算法的迷宫寻宝路径规划.docx,内附核心源码
- 1_第十六届蓝桥杯大赛软件赛,电子赛竞赛规则及说明.zip
- yolo模型使用cv2推理并使用qt5添加GUI后备份部署 pt模型转onnx模型opencv.dnn完成推理pyqt实现可视界面备份为exe方便移植.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功