今天我们来实现用Python来进行图片的文字提取。
技术原理:通过借助ORC和Tesseract工具来实现
文字识别是ORC的一部分内容,ORC的意思是光学字符识别,通俗讲就是文字识别。Tesseract是一个用于文字识别的工具,我们结合Python使用可以很快的实现文字识别。
实现过程:第一步:先安装和配置Tesseract
并且要将Tesseract-OCR的安装目录配置到系统path变量当中,如下图所示,这样就完成了其配置。这里我的安装路径是C:\Program Files\Tesseract-OCR
第二步:接下来是下载两个需要的模块pytesseract和pillow
对于一些图像的识别,我们需要使用pytesseract及相应的Tesseract引擎,它是开源的OCR引擎。pytesseract用于文字识别。Pillow在这里则是用于图片读取的
只要进入自己之前安装的虚拟环境,再输入pip install pytesseract 和pip install pillow即可。
有一点很重要就是需要将pytesseract.py中的tesseract_cmd改为安装的地址,如下图
第三步:接下来我们就可以进行识别了。
输入代码如下:
英文识别:
先打开图片在进行识别
image_to_string:是指将图像上的Tesseract- OCR运行结果返回到字符串
原图如下:
运行结果:
识别数字:
原图如下:
运行结果:
但是现在还不能进行中文的识别,因为tesseract-ocr默认不支持中文识别,如果想要识别中文或者其它语言需要下载相应的语言包。
首先到网站 https://tesseract-ocr.github.io/tessdoc/Data-Files中下载中文包
下载完成后我们需要放到Tesseract的路径下的tessdata目录下,如图:
这样就可以进行中文的识别:
代码如下:
记得要将语言改成中文的:lang=chi_sim
原图如下:
运行结果:
目前这种OCR技术的应用领域主要分为八块:
①证件识别:主要识别证件信息,目前有证件采集仪、护照阅读器、门禁考勤机、人行通道闸机、人证一体扫描仪、移动端证件识别SDK等产品中应用该项技术
②银行卡识别:主要识别银行卡卡号,用于移动支付绑卡,提升APP用户体验。
③车牌识别:主要识别车牌号码、车牌颜色、车牌类型、车标、车身颜色等车辆特征信息,目前有PC端车牌识别SDK、移动端车牌识别SDK、车牌识别抓拍相机、DSP嵌入式车牌识别、车型识别、车位检测等产品应用了该项技术
④名片识别
⑤营业执照识别:主要识别营业执照信息(统一社会信用代码、公司名称、二维码等)
⑥汽车VIN码识别:主要识别车架号(汽车VIN码),用于汽车管理、汽车服务、二手车交易、租车等领域(互联网)
⑦票据类OCR识别
⑧文档文字OCR识别:主要识别文档文字,用于图书馆,报社等针对图书、报纸、杂志等文本类,需要把这些纸质文档进行电子化的领域
像我们生活中用的学习搜题软件(小猿搜题)都会用到文字识别的技术,通过拍照在进行文字提取,从而找到答案,如下图所示:
相关的视频在B站上,链接:图片识别_哔哩哔哩_bilibili
图片识别