我们设计了一系列算法来完成文字特征提取、文字定位和光学字符识别(OCR)工作。在特征提取方面,我们抛弃了传统的“边缘检测+腐蚀膨胀”的方法,通过灰度聚类、图层分解、去噪等步骤得到良好的文字特征,这些特征既可以用于文字定位,也可以直接输入到识别模型中。在文字定位方面,我们通过邻近搜索的方法整合特征碎片,得到单行的文字特征,然后通过前后统计的方法将单行的文字切割为单个字符,这种切割思路能够很好地应对中英文混排的文字切割。在光学识别方面,我们基于卷积神经网络(CNN)建立了单字识别模型,自行生成了140万的样本进行训练,最终得到了一个良好的单字识别模型,训练正确率为99.7%,测试正确率为92.1%,即使增大图片噪音到15%,也能有90%左右的正确率。最后,我们结合了语言模型,通过微信的数十万文本计算了常见汉字的转移概率矩阵,由Viterbi算法动态规划,得到最优的识别组合。经过测试,我们的系统对印刷文字的识别有着不错的效果,可以作为电商、微信等平台的图片文字识别工具。
关键数据:
- 特征提取:抛弃传统方法,采用灰度聚类、图层分解、去噪等步骤。
- 文字定位:通过邻近搜索整合特征碎片,得到单行文字特征,然后通过前后统计的方法将单行文字切割为单个字符。
- 光学识别:基于CNN建立了单字识别模型,训练正确率为99.7%,测试正确率为92.1%,即使增大图片噪音到15%,也能有90%左右的正确率。
- 语言模型:结合语言模型,通过微信的数十万文本计算了常见汉字的转移概率矩阵,由Viterbi算法动态规划,得到最优的识别组合。
研究结论:
- 我们构建了一个完整的OCR系统,对印刷文字的识别有着不错的效果,可以作为电商、微信等平台的图片文字识别工具。
- 系统可以将整张文字图片输入,并且在分辨率不高的情况下能够获得较好的效果。
- 系统存在一些不足之处,比如有很多的“经验参数”,识别文字区域方面还有很多值得改进的地方,文本切割方面也存在很大的提升空间。