图片文字识别工具调研

1.OCR与tesseract简介

将图片翻译成文字一般被称为光学文字识别(Optical Character Recognition,OCR)。可以实现OCR 的底层库并不多,目前很多库都是使用共同的几个底层OCR 库,或者是在上面进行定制。

  Tesseract 是一个OCR 库,目前由Google 赞助(Google 也是一家以OCR 和机器学习技术闻名于世的公司)。Tesseract 是目前公认最优秀、最精确的开源OCR 系统。

 用Tesseract可以识别格式规范的文字,主要具有以下特点:

• 使用一个标准字体(不包含手写体、草书,或者十分“花哨的”字体)

• 虽然被复印或拍照,字体还是很清晰,没有多余的痕迹或污点

• 排列整齐,没有歪歪斜斜的字

• 没有超出图片范围,也没有残缺不全,或紧紧贴在图片的边缘

2.tesseract安装与使用

Tesseract的Windows安装包下载地址为: http://digi.bib.uni-mannheim.de/tesseract/tesseract-ocr-setup-4.00.00dev.exe ,下载后双击直接安装即可。

安装的时候要注意,tesseract的安装并不默认安装什么语言,如果自己需要简体中文的语言包,那么就不能一直点next点到finish。如下图,我安装了MATH和简体中文包。

安装完后,需要将Tesseract添加到系统变量中。在CMD中输入tesseract -v, 如显示以下界面,则表示Tesseract安装完成且添加到系统变量中。

添加系统变量过程:把tesseract安装位置加入到环境变量中,我的安装位置是“C:\Program Files (x86)\Tesseract-OCR”如下图所示

  

 

 

添加环境变量如下图所示

 

双击打开“path”,把刚才的安装路径加入到path中,注意,添加的时候开头用“;”跟之前的变量隔开,结尾以“;”结束。下面是我的配置信息。

 

打开DOS命令终端,输入:“tesseract -v”可以看到版本信息,

如下图

 

如果报错,估计是环境变量没配好。

注意:我的dos命令终端打开路径是“C:\WINDOWS\system32”,在这个路径下安装成功,所以使用的时候也一定在这个路径下打开。

如果打开的是用户名终端路径,会报错,我就遇到这个问题,如下图。

Linux 用户可以通过apt-get 安装“$sudo apt-get tesseract-ocr”。

 

使用方法:将图片放到E盘的figures/other文件夹下,目标:生成对应txt文本,打开DOS输入命令行“tesseract E://figures/other/poems.jpg E://figures/other/poems”

如图所示

结果如下所示:

其他结果例子如下所示:

可以看到识别的情况不如刚才规范字体的好,但是也能识别图片中的大部分字母。

 

如果是识别简体中文,需要事先安装简体中文语言包,下载地址为:https://github.com/tesseract-ocr/tessdata/find/master/chi_sim.traineddata ,再讲chi_sim.traineddata放在C:\Program Files (x86)\Tesseract-OCR\tessdata目录下。(我这没能成功)

 

3.python

 pytesseract是Tesseract关于Python的接口,可以使用pip install pytesseract安装。安装完后,就可以使用Python调用Tesseract了,不过,你还需要一个Python的图片处理模块,可以安装pillow. 1. 用Python提取图片中的文字,用到的工具包有PIL ,pytesseract,tesseract-ocr.

 

注意:

(1)代码就几行,但是库的安装相对麻烦一点,首先是PIL库安装,有的电脑可以直接从PYCHARM库里直接导入,但是大部分的电脑是安装不了的,可以采取两种方式一种是用pip install PIL这种方式一般比较慢,还有一种方法就是在PYCHARM库里面直接安装pillow-PIL安装成功后就不会报错了。

然后就是pytesseract库的安装,在pycharm库里面可以直接搜索到然后安装。这两个库安装完成后运行代码还是会报错:‘tesseract is not installed or it's not in your path’,原因是没有找到 Tesseract-OCR\tesseract.exe 的位置,需要先下载tesseract.exe具体安装参考https://blog.csdn.net/e8714614luan/article/details/103974924?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task

安装完成后打开pytesseract源码查找 tesseract_cmd = 'tesseract',修改成

红色方框里面是刚才安装的目录。

然后再运行代码:

from PIL import Image



import pytesseract



images=Image.open('003.jpg')

print(images.size)

text=pytesseract.image_to_string(images)

print(text)

003.jpg

提取结果

 

import pytesseract

from PIL import Image



im_en = Image.open('003.jpg')

im_ch = Image.open('004.jpg')



print('========识别字母========')

print(pytesseract.image_to_string(im_en), '\n\n')



print('========识别中文========')

print(pytesseract.image_to_string(im_ch, lang='chi_sim'))

 

结果:

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值