tesseract 语言包下载_基于Tesseract 的OCR图片识别

057796d032d1414df3a710a562edf89d.png

markdown排版好像不支持。。。


## 1、简介

Tesseract,一款由HP实验室开发由Google维护的开源OCR(OpticalCharacterRecognition,光学字符识别)引擎,特点是开源,免费,支持多语言,多平台。

最初Tesseract是用C语言写的,在1998年改用C++。

github 地址:tesseract-ocr/tesseract

## 2、mac 安装

* tesseract 安装:

brew install tesseract (默认包含英文语言包)

tesseract 安装路径:/usr/local/Cellar/tesseract/4.0.0_1/bin/tesseract

linux 安装:tesseract 4.0 编译安装(CentOS) 4.1.0版本

linux 下目录:安装路径 /usr/local/tesseract 语言包 /usr/share/tesseract

/usr/local/tesseract/bin/tesseract

修改 tesseract 路径:pytesseract.py文件下的 tesseract_cmd,改为/usr/local/tesseract/bin/tesseract

* tesseract 语言包安装:brew install tesseract-lang (也可只安装中午语言包 chi_sim)

语言包 git 地址:tesseract-ocr/tessdata

tesseract 语言包存放路径: /usr/local/share/tessdata/

* 安装测试:

tesseract -v

## 3、基本用法

命令说明

tesseract imagename outputbase [-l lang] [--psm pagesegmode] [configfile...]

tesseract 图片名 输出文件名 -l 字库文件 -psm pagesegmode 配置文件

例如:

tesseract test.jpg result -l eng --psm 7 nobatch

-l eng 表示用英文文字库(默认使用英文。如需要下载中文字库文件,解压后,存放到tessdata目录下去,字库文件扩展名为 .raineddata 简体中文字库文件名为: chi_sim.traineddata,命令为:chi_sim)

-psm 7 表示告诉tesseract test.jpg图片是一行文本 这个参数可以减少识别错误率. 默认为 3

configfile 参数值为tessdataconfigs 和 tessdatatessconfigs 目录下的文件名.

[] 中配置是可选配置。

*psm 参数说明*

a122ed4423813ce7206d2c48fc6a0f03.png

**egg**:

c780990a6610c31455e3444a1bfd14f8.png

## 4、python 接口封装

python 接口依赖包安装

pip install pytesseract

fb514d717c836d6516ffd10a375d54a1.png

处理结果:

4017e9532b4c572392d4ab871f2a362f.png

## 5、图片预处理

### 5.1 设置模板匹配目标图像

#### 实例化SIFT

采用SIFT算法计算模板与目标图像的特征点并匹配,如果匹配度过小则拒绝识别图片。(如身份证内容识别上传的目标图像为非身份证照片)计算出图像的关键点和sift特征向量

2e314a0bacfbf12ed1632658256608be.png

#### KNN

使用K最邻近算法计算目标图像与模板图像的匹配点

9a7b8fed73a87628c5f326e231982fcb.png

#### 去噪:

过滤掉匹配距离较为相近的点

df29187738db168e85bc8e608b090de8.png

#### 偏移矫正:

利用单应性匹配解决目标图像相对模板图像间拉伸、扭曲、偏移,旋转、倾斜的问题。

ed6c36c2dd6caf284ec0d9936b639bfc.png

#### 缩放:

对目标图像进行仿射转换

fd8b5e4490294c7bb36b41a4e6ab1e26.png

处理后的目标图像与原图对比:

cc173af0e64ffe30203ae36f12ac2963.png

### 5.2 文字识别

利用模板匹配算法,确定票据号码、票据状态的位置

即利用matchTemplate函数进行模板匹配,找到票据号码、票据状态等文字的位置后,由于电子票据是刚体,所以上面文字的位置是固定的,所以根据位置信息即可找到需要识别的文字的位置,并将其截取出来

#### 待搜索模板

bc71428946c9a57c8f19ae59b4bcecc8.png

#### 灰度:

将目标图像及模板灰度处理

6f5b5145acb584bfd009dcac5da52568.png

#### 模板匹配:

模板匹配就是在整个图像区域发现与给定子图像匹配的小块区域,并得到目标图像最佳位置的坐标,从而计算出待识别区域坐标

1bb73e0e89c1cf32148c88a67c9c8a06.png

#### 目标区域:

以下为待识别区域”票据号码“

964e3c649a1f542493171f0baf453d31.png

#### 识别:

二值化:将整个待识别图像呈现出明显的黑白效果的过程。

da857ec9f71269a488045b9616099bb8.png

结果如下:

f53f3c7be764518f411ef7039d934c36.png

#### 文字转换:

利用tesseract 将图片识别为文字

623e262e629c5c070411f73fa2a7eea6.png

识别结果如下:

a1744b975f6a83498dc249410f60945e.png

## 6、样本训练

## 7、问题:

1、tesseract 训练类容暂时未加入

2、识别率需优化提升

## 8、相关代码:

## 9、相关连接:

SIFT 算法介绍:SIFT特征提取分析_人工智能_Rachel Zhang的专栏-CSDN博客

模板匹配介绍:OpenCV---模板匹配matchTemplate - 山上有风景 - 博客园

自适应阈值介绍:https://www.jianshu.com/p/146d419639b7

识别示例:

420152bbcce5669434b8bf09a635530d.png
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值