使用CNN全卷积神经网络进行整行汉字识别,正确率90-94%,这项目是我毕设的一个子项目,主要用于识别建筑图纸中的文字。
requirements:
- python > 3.x
- tensorflow 1.13.1
- opencv
- matplotlib
to train the model:
- add some ttf files to ttf/
- use myutils/useTtfToGenImgs.ipynb to Generate images, you can use your own word files and ttf files;
- run '''python3 train.py''', you can change the train.py for your model arch
训练数据为200万的类似下面的图片: 测试图片: 测试结果:
训练数据生成时使用的是“最新字典3_只含常用字.csv”,这里面包含的是1806个常用的汉字与建筑专业常用汉字; 使用的字体是收集的60多个字体文件,在项目中给出了。
训练和测试的代码都在fcnn_ocr_v2.ipynb中 使用的是jupyter notebook进行编写的,因为方便测试和输出记录 这段时间比较忙,过一段时间进行代码重构,调用会方便很多
训练模型使用的是GTX1080Ti,模型构建是使用的是CNN+CTC的架构,之前试过CRNN+CTC的架构,速度慢到让我抓狂,训练至少2天才能收敛,果断放弃。 在测试过多种模型结构后选择了当前的模型结构,速度方面相比CRNN快很多很多,效果对于打印体来说比较好,但是使用CNN+CTC的缺点也是显而易见的,由于视野有限,太过宽的字符是识别不出来的,好在汉字是方块字。
本人email:[email protected] ,欢迎交流