**
本文主要是描述如何采用Python去进行对文字和数字类图像识别方案,实测有效!!!
**
- 图像识别,是指利用计算机对图像进行处理、分析和理解,以识别各种不同模式的目标和对象的技术,是应用深度学习算法的一种实践应用。现阶段图像识别技术一般分为人脸识别与商品识别,人脸识别主要运用在安全检查、身份核验与移动支付中;商品识别主要运用在商品流通过程中,特别是无人货架、智能零售柜等无人零售领域 。
- 图像的传统识别流程分为四个步骤:图像采集→图像预处理→特征提取→图像识别。图像识别软件国外代表的有康耐视等,国内代表的有图智能、海深科技等。另外在地理学中指将遥感图像进行分类的技术。
- 图形刺激作用于感觉器官,人们辨认出它是经验过的某一图形的过程,也叫图像再认。在图像识别中,既要有当时进入感官的信息,也要有记忆中存储的信息。只有通过存储的信息与当前的信息进行比较的加工过程,才能实现对图像的再认。
图像识别技术的产生以及更新成为当下十分重要的发展方向,同时表现出了良好的发展前景,在信息收集、医疗以及产品安全等方面,都已经开始广泛运用图像识别技术,发挥了非常大的作用。 - 人的图像识别能力是很强的。图像距离的改变或图像在感觉器官上作用位置的改变,都会造成图像在视网膜上的大小和形状的改变。即使在这种情况下,人们仍然可以认出他们过去知觉过的图像。甚至图像识别可以不受感觉通道的限制。例如,人可以用眼看字,当别人在他背上写字时,他也可认出这个字来。
通过pytesseract调用tesseract
优点:部署快,轻量级,离线可用,免费
缺点:自带的中文库识别率较低,需要自己建数据进行训练
Tesseract 是一个OCR 库,目前由Google 赞助(Google 也是一家以OCR 和机器学习技术闻名于世的公司)。Tesseract 是目前公认最优秀、最精确的开源OCR 系统。
除了极高的精确度,Tesseract 也具有很高的灵活性。它可以通过训练识别出任何字体(只要这些字体的风格保持不变就可以),也可以识别出任何Unicode 字符。
安装pytesseract
pytesseract是一个OCR识别引擎,使用Python调用tesseract-ocr软件,可以实现OCR文字识别。
安装pytesseract:
pip install pytesseract
安装OpenCV
OpenCV是一个计算机视觉库,提供了很多图片处理的功能,可以用来识别文字。
安装OpenCV:
pip install opencv-python
安装tesseract-ocr的识别引擎
最新版本下载地址: https://github.com/UB-Mannheim/tesseract/wiki
安装完后,需要将Tesseract添加到系统变量中。
环境变量: 我的电脑 ->属性 -> 高级系统设置 ->环境变量 ->系统变量 ,在 path 中添加 安装路径。
但
有一点很重要
就是需要将pytesseract.py中的tesseract_cmd改为安装的地址,如下图
中文的识别
因为tesseract-ocr默认不支持中文识别,如果想要识别中文或者其它语言需要下载相应的语言包。
首先到网站 https://tesseract-ocr.github.io/tessdoc/Data-Files中下载中文包
下载完成后我们需要放到Tesseract的路径下的tessdata目录下,如图:
实测验证
import cv2
import pytesseract
image = cv2.imread('myWorld/123.png')
# 加载图像
# 转换为灰度图
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# 二值化处理
thresh = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY_INV | cv2.THRESH_OTSU)[1]
# 使用pytesseract识别
text = pytesseract.image_to_string(thresh)
print(text)
... # 使用pytesseract识别
... text = pytesseract.image_to_string(thresh)
... print(text)
...
123456785236589542
... # 使用pytesseract识别
... text = pytesseract.image_to_string(thresh)
... print(text)
...
I love python