关于图文识别功能相关技术的实现
转载请注明源地址: http://www.cnblogs.com/funnyzpc/p/8908906.html
上一章, 写的是 SSL 证书配置, 中间折腾了好一会, 在此感谢 SSL 证书发行商的协助; 这次我就讲讲 ocr 识别的问题, 先说说需求来源吧...
之前因为风控每次需要手动 P 协议文件和身份证(脱敏), 还要识别证件及图片文件的内容, 觉得狠狠狠麻烦, 遂就找到了技术总监, 技术总监一拍脑袋, 额, 小邹啊...
呃, 一开始并没抱太大希望, 不过还是花了些心思做了些需求实现的调研, 怎么办 google,duckduckgo,github 一路找下来就有了几个工程了, 嘿嘿~, 可惜还没高兴到, 没想到的是这些工程一个比一个坑, 不是依赖 windows 系统组件就是代码 bug 不断, 作者们, 能用点儿心么
日夜操劳, 加班啊, 总算是将几个工程全都修得能跑起来了, 大费周折... 难得啊
欸, 可惜效果均不佳; 现开始, 我总结下一些主流的图文识别技术, 只是浅聊哦...
首先, 这些工程大致分两类:
一类是纯算法, 不附带机器学习功能的, 且需要依赖于 window 系统组件的工程, 比如 tesseract 和 tess4j, 识别效果可以说是巨差(可能我的技术很菜的原因), 但有一点儿值得赞许, 就是识别结果的格式还算不错, 这类图文识别的特点大致有如下几点:
A > 工程代码量较大
B > 依赖 window 组件, 需要在 window 系统下才能运行
C > 识别效果无法通过学习逐渐优化
D > 识别出来的文字时常乱码, 中文识别乱码错别字较多
E > 识别结果通常使用格式化模子来格式化结果, 遂, 识别结果的格式还算过得去
一类是基于机器学习 (比如 Tensorflow) 的工程, 这些工程参差不齐, 存在插件版本问题, 尤其是 python 插件, 实在在太太太难装了, 在一就是工程大多较为简陋, 由于机器学习具有不断改善的趋势, 这是基于机器学习的图文识别的最大优势, 总结起来, 基于机器学习的图文识别的特点儿大致有如下几点:
A > 工程比较简单, 代码量不是很多
B > 依赖的语言插件, 如 python 实在难以安装
C > 有很多优化的方向, 比如使用显卡, 优化算法 (卷积神经网络) 来提高识别速度及模型准确度
D > 十分耗费计算机字段, 一般识别一页 A4 大小的图片中的内容,(我使用 Macbook Pro) 最快也用了二十多秒
E > 识别的结果比较乱, 但对于中文, 尤其是图片较好的中文的文字识别准确率能达到百分之七十网上, 但是识别格式和文字准确度不如上者
F > 由于是基于机器学习, 遂需要大量的数据喂养以提高识别的准确率, 喂养的数据十分可观
额, 总的来说, 后者的优势较大, 也是趋势, 比如腾讯 QQ 的图片识别还有百度大脑 AI 这些基本都是基于机器学习, 个人觉得, 如果投入一个团队去专门研究开发一个图文识别的产品, 也是比较容易实现的, 何况这个方向向前走就是人工智能, 尽管现在看起来有些智障....
哦, 大致总结完了, 我就展示下基于 tess4j 和 chinese-ocr 这两项目的实现效果, 我的输入是身份证:
(注意: 源图片是从 github 上拉下来的, 个人做了些简陋的脱敏处理!)
下面是基于 tess4j 实现的结果:
tess4j 的实现只能基于 windows 组件实现, 故项目只能在 windows 下运行, 另外 tesseract 也是 windows 组件的实现.
一下是基于 chinese-ocr 的项目的实现的结果:
chinese-orc 是基于 python 语言 + tensorflow 的实现, 结果一目了然, 需要说的是, 一下几个也是基于 =>
IITG-Captcha-Solver-OpenCV-TensorFlow: 基于 Tensorflow 实现的验证码识别, 已调试通过, 验证码模糊度较高的识别不够准确
text-detection-ctpn : 基于 Tensorflow 实现的图片识别, 未调试通过
tensorflow-ocr : 基于 tensorflow 实现的图片识别, 未调试通过
由于 github 共享的工程参差不齐, 存在插件版本, 语言以及系统版本的差异, 遂这些项目 clone 下来后需要修改些 bug 才可, 这里简述下一些大致的问题的解决思路:
A > 对于插件版本下载不了的(我用的是 pycharm), 建议使用相邻版本的插件, 但有些插件需要爬梯出去才可下
B > 对于部分 (例如 test.py) 文件跑不起来的, 请尝试着将这个文件放置在工程主目录下, 但同时请注意 import 引用的文件(可能需要手动修改)
C > 对于项目出现的主流问题请移步 Issues 以查找
嗯, 此篇原本在前一天发表的, 由于公司周年庆耽搁了会儿, 最后, 我把上面几个工程的打包文件共享下(包含我修改过 bug 的), 有需要的请自行下载, 如有疑问请电邮或留言.
工程下载链接: https://pan.baidu.com/s/1B2Eyak8zwdAldA0NBfmlvw
工程下载密码: r2av
来源: https://www.cnblogs.com/funnyzpc/p/8908906.html