【代码实现和训练】OCR技术——引入了Attention机制的crnn的印刷体汉字识别

前言

这里先是参考了这个代码:加入attention的crnn印刷体识别,on pytorch
然后我训练了大概3个小时,loss从72出发稍微下降后维持在62.xxx 左右,就很迷。
测试效果全部识别为“的的的的的的”,
不过看到他的训练结果,感觉也并不是很感人,他的训练大概得到88%左右的正确率,loss 大约2.xx
可能加入数据集去训练或者是增加迭代次数和修改学习率以及网络的optimizer可以达到想要的95%以上效果。
这里有个解释和分析了上述代码的博客,但是也没放出训练效果,
估计这个代码还是有点问题,需要魔改(写代码是一天的事,改代码才是真爱!!!)另外他提供的数据集,给的对应char字符上,有6个是重复且多余的。
我看了下网络,没啥问题,但是针对其评论区的评论的没有回复和一些魔性训练效果,我退缩了*0*,没有 任何信息就比较难改了!

于是我开始改其他的代码,例如一些seq2seq和英文的seq2seq加上attention机制的代码,而且还有图形化,例如这个attention代码,按照作者提供的sample稍微跑了下:
可以看到对齐做的还是可以的,
在这里插入图片描述
在这里插入图片描述
但是遇到L这种比较细长的字符,还是有点问题,多识别出一个L,另外注意力位置也有点飘,这也是注意力硬编码存在的一个问题*0*
在这里插入图片描述
在这里插入图片描述

模型和训练

自己改了些参数和结构
训练了半个epoch(469312个文本行,大约4,700,000个字形),训练了8小时+,电脑算力:电脑全套硬件在此,准确率稳定在97.5左右

loss: 0.168524, perplexity: 1.183557, precision: 0.973437, batch_len: 280.000000

测试看看效果(为啥您注意力都漂移了,您还是这么能认??):
原图:
在这里插入图片描述
识别结果:

output_result : 集 团 外 贸 出 口 迅 猛 发 展
ground truth  : 集 团 外 贸 出 口 迅 猛 发 展

在这里插入图片描述
测试了下,正确率大概在这个数:

1642.700000 out of 1749 correct
一些训练相关的注意事项:

cnn+bilstm+lstm 训练的一些技巧

测试模型下载地址:

虽然传的这个不是最好的,但也不差,可以达到上面描述的精度,94%以上。
pan链接: https://pan.baidu.com/s/1BK5XQsyImAjU6xF3EEzPhg
密码: rftq。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章