最近在研究图片文字识别,特别是表格的识别,印象中百度的OCR表格识别比较给力。github搜了一圈,居然没有人做开箱即用版的(貌似百度不咋受开源社区待见)。nodejs几乎不存在,python的倒是找到一些简单脚本。以下记录找到的有用信息:
Bob,一款 Mac 端翻译软件,支持划词翻译、截图翻译以及手动输入翻译。github star近4k,维护积极,文档完善,如果用mac系统,Bob就是终极选项。另外从它的文档中还得知一个噩耗:百度从5月24日起免费OCR额度大幅缩水,后悔当初没有实名制啊
zyb5086zyb/baidu_ocr_test 除了OCR还有一些图片前处理脚本,比如降噪之类的,有点用处
chenguanyou/BaiduTextApi 总算找到一个封装好的python库,但是文档过于简单,懒得研究
wadelucky/baidu_table_ocr 比较简陋,需要的库也不多,可以跑通,但异步获取结果的时间间隔居然是写死的,没有轮询,放弃
uestcmee/PiecemealScripts 这个就靠谱多了,但还是有很多bug,于是动手改造,有了下面的成果
1 | # encoding:utf-8 |
代码做了很多容错处理,并且在出错时(基本是网络原因)可以直接重试。token可以保存到本地(30天有效期),这样就节省了一次网络请求。这个小工具基本实现了精确识别和表格识别两大功能,其中精确识别可以用图片url作为输入参数。另外,超时时间也可以自定义,防止一些比较大的图片上传失败。
后记
其实还有一些别的想法,比如直接读取剪切板,批量处理等等。先挖个坑,以后如果需求很大再填上。还有一个比较关键的是图片的旋转矫正,目前没有找到比较好的解决方案(手机上的app比较多),也留个坑吧(貌似PPT可以做到,没证实)
更新
6.10 经过一天的奋战,把脚本优化了下,重新梳理了逻辑,而且现在可以读取剪切板里的图像了
6.11
刚在Mac上试了下,丝般顺滑~
参考
百度智能云通用 OCR 免费额度调整!(new) (gitee.io)
zyb5086zyb/baidu_ocr_test: 采用百度接口做OCR标注 (github.com)
wadelucky/baidu_table_ocr: An example of how to use baidu table ocr. (github.com)
chenguanyou/BaiduTextApi: 百度文字识别Api封装,在之前的基础上重写了下,更易于管理与使用! (github.com)
PiecemealScripts/main.py at master · uestcmee/PiecemealScripts (github.com)