怎样用python 自己写一个ocr( 二 )
这里要介绍的就是tessearct,它是基于Apache许可证开源的OCR识别引擎,在2006年由Google赞助开发,被认为是当下最为优秀的OCR引擎之一,由C++实现,目前在Github已经高达33.5k个Star。
它具有支持语言丰富、识别速度快、准确率高等优点,官方提供的调用方式是使用命令行进行调用,tesseract imagename outputbase 也就是说,tesseract作为一个核心的算法实现模块,但是没有外壳进行包装,我们想要使用的话不如很多平台或者工具那样那么方便。
它缺少的就是一个UI或者web。
因此,我们可以把tesseract作为一个后端服务,利用Python实现服务层的开发和交互层的开发。
首先在服务器启动tesseract服务,然后,使用Python tkinter实现一个UI,然后基于flask、requests等第三方库实现数据传输和发送rest请求,调用后端的tesseract服务,执行上述命令,然后返回结果到前端即可。
直接使用算法模型OCR (Optical Character Recognition,光学字符识别),它主要依托的核心技术就是图像识别、自然语言模型。因此,我们也可以不去调用ocr.space的API接口或者tesseract的后端服务,可以直接使用最为底层的计算机视觉、自然语言模型进行OCR文字识别。
这里,我推荐一个github开源项目darknet-ocr,它基于darknet(https://github.com/pjreddie/darknet.git)框架实现CTPN版本自然场景文字检测 与CNN+CTCOCR进行文字识别,目前在github有480+个star。
这是一种最为简洁明了、对Python最为依赖的一种方式,也是端到端实现OCR系统较为完善的一种方式。
但是,darknet-ocr是在darknet源码的基础上 进行编译实现的,它整体上和前面介绍的tesseract没有什么差别,只是更加完整的实现了一个ocr系统。
如果想对ocr识别的过程中更加清晰的认识,可以看一下darknet-ocr这个项目的前身chineseocr,它是于yolo3 与crnn 实现中文自然场景文字检测及识别,在这个项目中,你可以看到模型的导入,语言模型和CV模型的应用过程。当然,如果感兴趣可以对模型进行重新训练或者进一步优化,这对比于前两种方式的好处就是定制化、扩展能力方面都较为灵活。
darknet-ocr和chineseocr都是在训练好的模型基础上已经搭建成了完整的ocr系统,如果觉得这些还不足够锻炼自己,那么可以从数据准备到模型训练全流程手动完成一个ocr系统,这样就需要如下几个阶段,
准备数据选取CNN+RNN模型模型训练及调优结果输出这样是最具有挑战的,当然也是对一个人锻炼最多的一种方式。
调用第三方库我想这应该是选择使用Python开发一个ocr工具的同学最喜闻乐见的方式。
Python比较吸引人的一点就是有丰富的第三方库,图像、数据、机器学习、优化算法、图、UI.......你能想到的,Python可能都会找到第三方库,ocr也不例外。
这里要推荐的库就是pytesseract,你可以像调用numpy、matplotlib、tensorflow那样直接在Python代码中调用pytesseract,实现图像文字的识别。
安装pip install pytesseract示例from PIL import Imageimport pytesseractpytesseract.pytesseract.tesseract_cmd = r\u0026#39;\u0026lt;full_path_to_your_tesseract_executable\u0026gt;\u0026#39;# 简单的把图像转化成文字print(pytesseract.image_to_string(Image.open(\u0026#39;test.png\u0026#39;)))# 指定图像中的语言print(pytesseract.image_to_string(Image.open(\u0026#39;test-european.jpg\u0026#39;), lang=\u0026#39;fra\u0026#39;))依赖
pytesseract支持Python 2.7或者3.5+,需要用到PIL或者pillow。这里比较重要的是,还需要安装tesseract后端引擎。
推荐阅读
- 聪明人养花,这3种“花”怎样也要养一盆,每年能省不少医药费
- 手机■遇“纠纷”自己报警被识破 男子假卖手机骗60多万
- 互联网怎样解决“家政服务上门速度慢”的问题
- 怎样看待从1月8号起,QQ钱包开始提现收费
- 银行it人怎样转型
- 汽车|冬天怎样让车内温度快速升高?座椅加热的最佳使用方式二,外循环的作用总结
- 怎样进入通信行业
- 怎样评价扶他柠檬茶的小说《云养汉》的结尾
- 有啥方法,网站,项目可以自己练习计算广告学
- 设计专业学生上传自己的作品,用哪个网站比较好
