python图片文字识别——windows下tesseract-ocr的安装与使用(代码片段)

盼小辉丶 盼小辉丶     2022-12-17     409

关键词:

前言

最近想做一篇爬虫分析给男朋友/女朋友送礼物的博文,但是在某宝上使用“七夕礼物送女友”关键字进行搜索得到的商品的标题很多都是类似这样的《生日礼物女生七夕情人节给闺蜜送女友朋友送给女孩的实用小高级感》,让人仅看标题根本不知道卖的是什么,但是看到很多封面图片上包含的有商品名或者商品说明,于是想到可以识别封面图中的文字进行分析。
虽然可以通过自己训练模型来实现此效果,但暂时又实在是比较懒惰,就使用了现有工具 Tesseract,将安装和使用进行分享。

Windows下Tesseract-OCR的安装与配置

提取、识别图片中的文字也称为光学字符识别 (Optical Character Recognition, OCR),其是指将手写或印刷文本的图像转换为文本,包括来自扫描文档、文档照片、场景照片(例如风景照片中标志和广告牌上的文字)或叠加在图像上的字幕等文字。

Tesseract-OCR简介与版本选择

Tesseract 是一个开源 OCR 引擎,Tesseract 可以直接通过命令行使用,或者通过使用 API 从图像中提取文本。它为多种语言提供了API,其中显然包括 Python。除了可以使用二进制安装包进行安装外,也可以针对各种设备使用源代码进行编译,包括 Android 和 iPhone。Tesseract 支持 unicode (UTF-8),可以识别 100 多种语言。Tesseract 支持各种输出格式,包括纯文本、HTML、PDF、TSV等,5.0.0 alpha 还增加了对 XML 输出的支持。
目前,Tesseract 主要包含三个版本:3.x、4.x和 5.0.0 alpha。最新的 3.x 版本(可用于某些具有特殊需求的项目,如特征回归)为 3.05.02,于 2018 年 6 月 19 日发布;最新的稳定版本(基于 LSTM)是 4.1.1,发布于 2019 年 12 月 26 日;5.0.0 alpha 对代码进行了重构,增加了一些实验性的功能。参考官方意见,由于需要使用 Tesseract API,因此选择使用 4.1.0。
有关 Tesseract 的更多介绍,可以参考官方文档.

tesseract-OCR安装

安装过程主要参考官方文档

  1. 首先,下载根据需要下载安装包,这里选择 tesseract-ocr-w64-setup-v4.1.0.20190314.exe

  2. 双击下载完成的安装包进行安装。

  3. 点击 Next 后,经典同意 (I Agree) 服务条款。

  4. 单击 I Agree 后,选择为所有用户或仅当前用户安装,这里选择默认的为所有用户。

  5. 单击 Next 后,选择附加脚本和语言数据。
    根据需要,选择附加脚本数据:

    根据需要,选择附加语言数据:

    这里选择了中文相关的附加语言包:

  6. 点击 Next 后,选择软件安装位置,这里使用默认位置。

    Warning: Tesseract 应该安装默认目录或新目录中,否则由于卸载程序会删除整个安装目录,会导致该目录及其所有子目录和文件被删除。

  7. 点击 Next 后,选择是否创建快捷方式,及快捷方式位置。
    由于我只想使用 Tesseract API,因此此处选择不创建快捷方式,勾选 Do not create shortcuts 前复选框,如果需要快捷方式,取消勾选此复选框即可。

  8. 点击 Install 开始安装。

  9. 安装完成后,点击 Next

  10. 最后点击 Finish 完成安装。

Tesseract-OCR配置

将 Tesseract 添加进环境变量中。右键单击“此电脑”,选择“属性”,单击“高级系统设置”,然后单击“环境变量”,“编辑”系统环境变量“Path”,选择“新建”将 Tesseract-OCR 的安装目录(此处展示的安装目录为默认位置,如果修改了安装目录需要根据自己的安装位置进行修改)添加到环境变量中。

确定”生效后,可以在 shell 中运行以下命令进行验证:

tesseract -v

若成功配置,则会打印版本信息:

tesseract v4.0.0.20190314
 leptonica-1.78.0
  libgif 5.1.4 : libjpeg 8d (libjpeg-turbo 1.5.3) : libpng 1.6.34 : libtiff 4.0.9 : zlib 1.2.11 : libwebp 0.6.1 : libopenjp2 2.2.0
 Found AVX2
 Found AVX
 Found SSE

安装Python调用Tesseract API所需依赖项

  1. 安装 pillow,在命令行 shell 中使用以下命令
    pip install pillow
    
  2. 安装 pytesser3,在命令行 shell 中使用以下命令
    pip install pytesser3
    
  3. 安装 pytesseract,在命令行 shell 中使用以下命令
    pip install pytesseract
    

Tesseract-OCR测试与使用

如果需要提取的文字并非英文,则还需要下载其他语言的数据包,但是,如果在安装过程已经选择了所需的附加语言数据则不需要再次下载;否则需要在下载所需语言包后,将其置于 C:\\Program Files\\Tesseract-OCR\\tessdata 目录下(如果修改了默认安装目录,需要根据自己的安装位置进行修改)。

除了直接使用程序外,还可以使用以下两种方式调用 Tesseract。

命令行模式

命令格式如下:

tesseract 输入图片的文件名 输出文件名 [-l lang][-psm pagesegmode][configfile...]

例如识别 “test.png” 图片中文字,保存至 “result.txt” 文件中。

tesseract test.png result


可以看到识别的准确率非常优秀。

使用 Python 调用 Tesseract API

测试使用 Tesseract 识别中文的准确率。

import pytesseract
from PIL import Image
img = Image.open("test_1.png")
print(pytesseract.image_to_string(img,lang='chi_sim'))

识别图片:

识别结果:

通过反射填充(reflection padding)减少块伪影
当我们在卷积层中将填充( padding )应上
	
的图像q
	
导致块伪影。减少这些高频分量的一种方法是在网络训练
于输入张量时,在张量周围填充常数
	
网

1. 首先,通过将|
2. 然后减去原始|

像移动一个像素来计算高频分量,
像以创建一个矩阵。
加添加总变分损失( total variation loss )作为正则化器:

。但是,边界处的值突然下降会产生高频分量,

看到识别的问题问题并不大,但是格式很奇怪,接下来试一下识别商品图片上的文字:

img = Image.open("test_2.webp")
print(pytesseract.image_to_string(img,lang='chi_sim'))

识别图片与识别结果如下所示:


识别效果,呃,能用只能说。

温馨提示

  1. 为了获得更好的 OCR 结果,需要提高提供给 Tesseract 的图像质量。
  2. 除了官方预先训练好的语言包外,也可以训练 Tesseract 识别其他语言。有关更多信息,请参阅 Tesseract 训练

php怎么做图片识别

...eizijiaocheng-367765.html2.如果是做图片对比匹配:建议用c++、python等写一个后台程序,然后把图片交给后台程序处理,处理完成后返回处理结果 查看详情

利用百度文字识别图片中的文字(python版)

importglobfromosimportpathimportosfromaipimportAipOcrfromPILimportImagedefconvertimg(picfile,outdir):‘‘‘调整图片大小,对于过大的图片进行压缩picfile:图片路径outdir:图片输出路径‘‘‘img=Image.open(picfile)width,height=img.sizewhile( 查看详情

python:截取图片后识别文字输出至剪切板

...Y和SECRET_KEY这3个关键信息。详细创建和调用过程可以参考python怎么使用百度文字识别功能和百度API接口说明。 查看详情

识别jpg图片转文字的教程

如何识别JPG图片转文字呢?相信很多人跟小编一样电脑中都保存了一些带有文字的图片,其中就有JPG格式的图片,如果想将其识别出来转文字的话我们应该怎样去操作呢?下面小编就来为大家简单讲解下具体的操作方法。  辅... 查看详情

python提取图片中的文字(代码片段)

Python提取图片中的文字相关依赖库安装OCR工具安装识别代码相关依赖库安装pipinstallPILpipinstallpytesseractOCR工具安装下载链接修改pytesseract源码中的路径,将tesseract_cmd的值改为安装Tesseract-OCR应用程序路径安装识别中文所需依赖... 查看详情

利用python识别出图片中的文字

参考技术Afromkkb_ocrimportocr_wordurl='https://xiaoke-asset-prod.kaikeba.com/python_ai/demos/demo1.jpg'ocr_word(url) 查看详情

python怎么识别文字?正确的方法详解

...点介绍机器视觉的一个分支:文字识别。介绍如何用一些Python库来识别和使用在线图片中的文字。我们可以很轻松的阅读图片里的文字,但是机器阅读这些图片就会非常困难,利用这种人类用户可以正常读取但是大多数存贮器没 查看详情

python使用easyocr实现图片文字识别

​​项目git地址​​1.安装easyocrpipinstalleasyocr2.使用easyocrword.pngpython代码:importeasyocrimportsslssl._create_default_https_context=ssl._create_unverified_contextreader=easyocr.Reader([ch_sim,en])#thisneedstor 查看详情

pythoneasyocr图片文字识别

✅作者简介:热爱科研的算法开发者,Python、Matlab项目可交流、沟通、学习。 查看详情

怎么在迅捷ocr文字识别软件中将图片文字识别出来

工作中我们经常会遇到从图片中识别文字的问题,如果我们一个字一个字打出来,太浪费时间了,这时候就需要使用借助到文字识别软件来帮助实现图片文字识别的问题了,具体要怎样去操作呢?一起来看看下面的方法。  解... 查看详情

批量识别图中文字自动命名,让你1秒找到骚图(代码片段)

自从上次批量的保存了半佛老师的各种骚图之后:我用Python一键保存了半佛老师所有的骚气表情包,每次做视频,找图就相当的费劲,因为图片太多,每次想要找到固定的图的话。就像大海捞针一样。因为上个版本的代码保存图... 查看详情

python•图片识别pytesseract快速识别提取图片中的文字(代码片段)

...f0c;请手机端注意流量。文章目录前言一、配置环境1.安装python依赖2.安装识别引擎安装tesseract识别引擎`(可跳过)`验证是否安装成功二、使用步骤1.引入库2.提取图片文字3.运行效果总结完整代码前言利用python做图... 查看详情

在迅捷ocr文字识别软件中怎么进行图片局部识别

怎么进行图片局部识别呢?我们在观看一些图片的时候,有些图片上的文字我们会需要将局部文字识别提取出来,但是如何去识别呢,借助图片文字识别软件就可以帮助实现了,下面为大家讲解下具体的操作方法。  使用工具... 查看详情

tesseract-ocr+java实现图片文字识别(代码片段)

...,就是光学字符识别技术。主要是对包含文本资料的图片进行识别,获取文本信息的技术。  目前tesseract-ocr这个工具可以很方便的在Windows、Linux、Mac下安装。  windows下的安装链接:https://digi.bib.uni-mannheim.de/tesseract/t... 查看详情

python进行图片的文字识别(代码片段)

需要安装一些库才能够进行:pip3installtesseractapt-getinstalltesseract-ocrpipinstallpytesseract图片如下:代码短小精悍:fromPILimportImageimportpytesseracttext=pytesseract.image_to_string(Image.open("ocr.png"))print(text)运行代码效果如下ÿ... 查看详情

快速实现图片转文字的方法

在日常的生活和办公中,哪一种方法可以快速实现图片转文字呢,实现图片转文字的快速方法,可以尝试借助一种名叫OCR文字识别的工具,可以帮助我们快速的将图片转换成文字,下面小编就分享一个使用工具实现图片转文字的... 查看详情

python使用easyocr模块完成图片文字识别

参考技术A  EasyOCR实际上是一个python包,它将pytorch作为后端处理程序。EasyOCR像任何其他OCR(谷歌的tesseract或任何其他OCR)一样从图像中检测文本,但在我使用它的参考资料中,我发现它是从图像中检测文本的最直接的方... 查看详情

手机拍摄的图片转文字的方法

...的电子通讯设备了,当我们使用手机拍摄一张带有文字的图片,如何才能把图片其中的文字转换成可以编辑的文字呢?是不是大家从来都没有想过,图片也可以转文字。当然是可以的啦,下面小编分享一个简单图片转文字的方法... 查看详情