先抱怨一句,识别真的比检测难很多呀,文字识别可根据待识别的文字特点采用不同的识别方法,一般分为定长文字、不定长文字两大类别。
定长文字:
定长字符识别中比较广泛的几个例子就是:MNIST识别,验证码识别,车牌识别。
MNIST:
MNIST这个感觉实在是没啥说的,拿出一本深度学习入门书籍,可能实战篇就有这个项目,无论什么深度学习框架上网搜,都能搜出一大堆程序。
验证码识别:
验证码这一块,现成的代码也比较多了,文章这一块我参考了https://my.oschina.net/u/876354/blog/3048523,代码这一块我参考了https://github.com/nickliqian/cnn_captcha。
车牌识别:
无,虽然现在车牌识别的产品已经很多了,但是网上基本没有开源的项目。我试过搜索一些论文和博客,感觉很多都是让你测效果,如何做出来的,网络结构这一块,没有找到,打开就是我做的车牌多准多准这样。
不定长文字识别:
不定长文字识别是目前OCR识别研究方向的主流,一些论文啥的也比较多,我做的不是这个方向,所以只是简单浏览了一下,看看有没有什么能用的,并没有深入调研,如果研究这个方向的可以参考这篇总结:https://github.com/hwalsuklee/awesome-deep-text-detection-recognition,虽然有一阵没更新了,但是整体还可以。
车辆VIN码:
VIN码规则说明:
训练说明:
由于网上没有VIN码的开源数据集,个人使用图像的方法,自己造了10000张数据用于训练,由于数据是假的,所以没有做消融实验,也没有训练太长时间,只是想确认网络结构可以使用。
效果:
上方绿色为模型结果,下方为待测试VIN码。
与百度效果对比:
个人:
百度:
总结:
基本能够达到百度通用字符识别效果
说明:
代码这一块,我使用pytorch,当前的进度是使用伪造的数据将网络结构初步定了下来,下一步可能会等到有真实数据后,再继续往下进行,欢迎大家评论和沟通交流。