1. Tesseract 介绍
Tesseract的OCR引擎最先由HP实验室于1985年开始研发,至1995年时已经成为OCR业内最准确的三款识别引擎之一。然而,HP不久便决定放弃OCR业务,Tesseract也从此尘封。
数年以后,HP意识到,与其将Tesseract束之高阁,不如贡献给开源软件业,让其重焕新生--2005年,Tesseract由美国内华达州信息技术研究所获得,并求诸于Google对Tesseract进行改进、消除Bug、优化工作。
Tesseract目前已作为开源项目发布在Google Project,其最新版本3.0已经支持中文OCR,并提供了一个命令行工具。
2. Tesseract 安装
Tesseract 可以在 linux、windows 和 macOS 下使用。这里以 macOS 为例。
2.1 使用 homebrew 安装 Tesseract 同时安装训练工具:
brew install –with-training-tools tesseract
虽然官方提供了多种语言的识别数据包,但是在很多情况下都需要在其基础上自己进行训练,所以记得安装训练工具
2.2 安装语言识别包
从官网地址下载对应的识别包 [官网地址](https://github.com/tesseract-ocr/tessdata
) 比如中文识别选择 chi_sim 这个包
再将识别包放置到系统的相应目录中,比如我用 hoembrew 安装,地址位于:
/usr/local/Cellar/tesseract/3.05.01/share/tessdata
2.3 下载训练工具
tesseract 的好处就在能够自己训练需要识别的字符,如果只是识别印刷字体这样的需求还是调用 API 比较方便,比如说百度云的文字识别 API。
要进行训练就下载 jTessBoxEditor 样本训练工具
3. 基本概念
3.1 基本命令
查看版本
tesseract -v
查看帮助
tesseract –help
进行识别的命令
tesseract in.jpg out.txt -l chi_sim -psm 6
in.jpg:需要识别的图片
out.jpg:图片的结果输出到的位置
-l:后跟用于进行识别的数据包,这里是中文
-psm:识别方式
3.2 语言识别包
查看已有的语言识别包
➜libai tesseract --list-langs
List of available languages (4):
chi_sim
eng
libai
number
语言识别的包是识别的基础,下载之后默认自带的是 eng.traineddata 英文识别包。他能够用来识别英文,但是不能识别中文。所以要下载中文的识别包 ch_sim.traineddata 这样就能识别中文。但是发现准确率不高,不符合需求就要训练自己的包。
总之核心就在 traineddata 文件。
3.3 psm的参数
psm 的参数很重要,表示 tesseract 识别图像的方式,比如说是一行一行识别还是逐字识别。希望逐字识别可以使用 -psm 10,希望逐行识别可以使用 -psm 6,其他没怎么用以后有机会补充。总之,希望有更好的识别效果需要选择合适的 psm。