1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 基于Python的OCR图像识别

基于Python的OCR图像识别

时间:2021-07-07 17:58:26

相关推荐

基于Python的OCR图像识别

前言

由于目前做的项目里面有些地方的需要用到图像文字识别,因此在此总结下,以下方法适合新手

1、使用python的pytesseract库

主要是安装库,比较简单,直接使用pip install安装即可;另外,如果进行中文识别,需要下载语言包,并配置好相应环境,具体操作可以进行百度,教程有不少。因为这个识别方法比较简单(但效果并不是很理想),

(1)Tesseract的安装及配置

Tesseract的安装我们可以移步到该网址https://digi.bib.uni-mannheim.de/tesseract/,里面有很多版本供大家选择,其中w32表示32位系统,w64表示64位系统,大家可以根据自己的需求选择。

下载完成后,安装我们需要知道我们安装的位置,将安装目录配置到系统path变量当中,例如路径是D:\Tesseract-OCR

我们右击我的电脑/此电脑->属性->高级系统设置->环境变量->Path->编辑->新建然后将我们的路径复制进去即可。添加好系统变量后后我们还需要依次点确定

(2)下载语言包

Tesseract默认是不支持中文的,如果想要识别中文或者其它语言需要下载相应的语言包

下载地址如下:https://tesseract-ocr.github.io/tessdoc/Data-Files

其中有两个中文语言包,一个Chinese-Simplified和Chinese-Traditional,它们分别是简体中文和繁体中文,我们选择需要的下载即可。下载完成后我们需要放到Tesseract的路径下的tessdata目录下,例如D:\Tesseract-OCR\tessdata。

(3)其它模块下载

除了上面的步骤,我们还需要下载两个模块:

pip install pytesseractpip install pillow

下面直接贴出测试代码:

import pytesseractfrom PIL import Image# 读取图片im = Image.open('img11.png')# 识别文字,并指定语言string = pytesseract.image_to_string(im, lang='chi_sim')print(string)

因为默认是支持英文的,设置lang='chi_sim',是把语言设置为简体中文,这种效果不是很好,适合那种简单的识别。

2、调用百度AI平台接口

调用百度AI平台接口会有调用次数限制,通用50000次/天,但学习完全够用

这个类似于调用接口实现词法分析等操作,首先通过注册获得APP_ID、API_KEY、SECRET_KEY,然后调用接口实现OCR。由于是在线API,如果图片体积比较大,涉及到上传数据、分析数据、返回数据等一系列操作,需要一定的时间。此外,因为返回的是dict类型数据,所以需要对结果进行处理(这套算法是按行识别文字的,准确率较高,基本可以直接将结果进行提取和拼接)。实现起来比较简单,下面直接贴出代码:

from aip import AipOcrAPP_ID = '00000000'API_KEY = '00000000000000000000'SECRET_KEY = '00000000000000000000'client = AipOcr(APP_ID, API_KEY, SECRET_KEY)def get_file_content(filePath):with open(filePath, 'rb') as fp:return fp.read()def image2text(fileName):image = get_file_content(fileName)dic_result = client.basicGeneral(image)res = dic_result['words_result']result = ''for m in res:result = result + str(m['words'])return resultgetresult = image2text('./test01.jpg')print(getresult)

现在工作中调用的是鹅厂内部自己开发的OCR识别系统,识别场景和准确率确实高很多,下一步也该想想提高准确率,毕竟这两个是别人开发调用的,最好是自己训练模型~

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。