基于百度paddle的快递面单三段码识别
写这篇文章的目的是为了填补一个行业中对深度学习使用的空白,我在网上也搜索过识别快递单三段码对应的文章,但是大都不全面,有的也是基于opencv+Tesseract-OCR的,在深度学习中缺少对应的实例。出于对技术的热爱,对开源的期望我把自己研究的成果开源到GitHub,代码地址在文章最后,接下来我大体介绍一下项目处理图像的流程思路,识别注意事项。代码如果对大家有帮助请start下。
我处理的是龙门架中相机拍的图片(== 因为涉及个人隐私,这里图片我做了处理,大家测试需要用合法途径得到的图片 ==),所以需要进行抠图操作,这一步我用的是paddleDetection进行的图片检测
然后进行裁剪操作
在进行霍夫直线探测,矫正倾斜的图片
矫正后会出现卧倒的图片,这样对我们的识别会产生字符顺序上的歧义,如下图
我在这里进行一次文本框探测,将所有的有x+w , y+h的边相加如果 (x+w)>(y+h)能判定是卧倒的图片,需要进行 -+90度操作,计算方式如下:
再次用paddleDetection检测三段码的位置进行裁剪操作,这时裁剪下的三段码图片有倒置的,这里咱们只看这个7,如下图:
像这样的图片就需要进行+180度旋转图片操作,旋转之前我们需要知道这个图片文字的角度,这里我使用paddleOCR的方向分类器进行预测(https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.1/doc/doc_ch/whl.md 搜索:方向分类器)
接下来就是识别,对于三段码特殊的文本结构我使用了空格检测,最终识别结果如下:
xxx xxx-x-x xx xx
希望对大家在从获取面单到拿到三段码截图整体流程上有一定帮助,谢谢大家。
可以加微信交流:15254042250 手机同号。
参考文章
https://blog.csdn.net/IT_BOY__/article/details/93632321