tesseract是谷歌开源的一款可以对图片进行ocr识别开源软件,使用时主要包括安装tesseract,下载语音库,自训练语音库几个部分。其安装方式和下载方式目前有许多介绍不做多的说明。
一、tesseract基本操作过程
1. 安装过程需要注意自己选取的版本,tesseract-4的版本虽然提高了准确度但是不支持配置的白名单,tesseract-3和tesseract-5的版本支持,另外基于windows安装时安装完之后往往需要配置环境变量,包括两部分,1. 配置.exe的路径,2. 配置语言的路径TESSERDATA_PREFIX,之位。.traineddata文件所放的路劲。下载语音时要注意找到对应版本的语音包,下载语音的链接为:https://github.com/tesseract-ocr/tessdata。训练字体使用的工具为jTessBoxEditorFX-2.0.1.zip。该工具可以将字体进行识别,然后再根据识别的结果进行认为标记,训练生成新的字体,但是再使用过程中要注意要将环境变量改为改软件内部含有的.exe和语言包对应的路径。
2. 使用:tesseract使用比较简单,可以直接采用命令行通过tesseract filename outputname -l 语言名字 -psm 数字(默认是3) config(配置文件)。默认的语言名字时英语,默认的输出文件格式时txt。也可基于python对图片进行检测,在使用时除了要安装pytesseract之外还需要安装tesseract插件和对应的语言安装包。另外调用接口为pytesseract.image_to_string(image),返回一个string类型的结果。python实现方式如下:
tessdata_dir_config = '--tessdata-dir "D:\Program Files\Tesseract-OCR\\tessdata\" ' \ '--psm 6' pytesseract.pytesseract.tesseract_cmd = 'D:\Program Files\Tesseract-OCR\\tesseract.exe'
card_no = pytesseract.image_to_string(image, lang="chi_sim", config=tessdata_dir_config)
其中返回的card_no即为tesseract检测的结果。
3. 提高准确度:tesseract在识别一些背景比较赶紧的干净,文字和背景比较分明的文字,例如白底黑字或者黑底白字。在输入图片时,内部系统也会对图片进行二值化处理,但是处理方式往往比较统一不能涵盖说有。所以为例提高准确度可以在图片输入之前首先对图片进行二值化处理。初次之外也可以采用裁剪的方式将图片中的文字裁剪下来,这样可以进一步去除背景的干扰。
4. 可采用EAST模型对文字进行检测,对检测出来的文字进行裁剪最后在将裁剪后的图片进行二值化进而进使用tesseract进行检测,该方法的好处就是包含文字的区域较小,便于二值化的处理。