Python——图片文字识别与提取
在工作中,有时候会有大量的截图、拍照数据需要提取,传统只能人工录入。但随着人工智能的发展,OCR技术已经可以实现了图片的文字识别,本节就讲讲如何安装部署文字识别环境,并进行文字识别实战。
<1> 前置条件
1、掌握Python的基本知识
2、会使用pip安装扩展包
3、下载安装pytesseract软件
4、会配置Windows的环境变量。
<2> 使用pip安装pytesseract扩展包
使用pytesseract包的第一步是使用pip安装该软件包。在命令提示符环境中,输入如下指令:
pip install pytesseract
等待上述指令提示安装安装即可,如果出错,大概率是你的网络问题。如下:
看到Successfully表示pytesseract包安装成功。
<3> 安装window配套软件包
登录https://digi.bib.uni-mannheim.de/tesseract/网站,下载对应版本的软件。如下:
然后打开软件,开始软件的安装。如下先选择安装的语言,建议默认English即可,因为改为其它语言可能出现意想不到的错误。点击OK即可。
出现如下界面,点击Next即可。
这里会出现License Agreement,这是一个授权条款,点击I Agree即可,如下:
出现Choose Users界面,意思是你安装的软件谁可以用。建议默认,如果选择just for me会将软件安装到用户目录下。这里直接点击Next即可。
接下来是Choose Components,即选择组件。默认支持英文、数字的识别,如果要支持中文识别需要勾选Additional script data(han开头的4个)和Additional language data(chinese开头的4个)两项的中文内容。 然后点击Next,如下:
这里是安装目录,建议默认,直接点击Next即可。
接下来是选择是否将其添加到开始菜单,建议默认,直接点击Install。
然后等待安装完成,如下。
出现如下界面,表示安装完成。点击Next即可。
最后点击Finish按钮,结束程序安装。
<4> 配置环境变量
在Windows系统环境下使用,需要配置环境变量,主要涉及两个。
第一个是path变量需要新增tesseract的安装目录。我采用的默认路径,所以是:"C:\Program Files\Tesseract-OCR"。
第二个是path变量需要新增tesseract的数据目录。如下:需要先新增一个变量名“TESSDATA_PREFIX”,变量值设置为:"安装路径\tessdata"。我采用的默认路径,所以是:"C:\Program Files\Tesseract-OCR\tessdata",如下:
然后将新建的变量名添加到path变量列表中,如下:
完成上述步骤后,需要重启电脑,否则接下来的步骤可能会失效。
验证是否安装成功,在命令提示符下输入tesseract --version,如果出现如下类似信息即表示成功,否则配置失败。
<5> 图片文字识别
现在有了环境之后,小编就随便在网上找一个图来测试一下,看看效果如何,下面是在随便找的一个路牌图片。
写一个字符提取脚本,如下:
# 导入相关包
from PIL import Image
import pytesseract
# 打开图片
p='test.png'
im = Image.open(p)
# 使用包进行文字识别
pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'
text = pytesseract.image_to_string(im, lang='chi_sim')
print(text)
上述代码中,除了我们安装的包pytesseract外,还使用了PIL包,主要是利用PIL.Image完成图片的读取,这里可以不必理会,按照给定的语法使用就行。
利用该代码,输入的结果如下:
从识别的结果来看,能够识别部分文字,但对于框框内的文字识别出现了错误。对于此类问题需要对代码进行适当调优,从而去除框框的影响,有兴趣的小伙伴可以继续深入研究。