当前位置: 首页 > article >正文

Tesseract-OCR 文字识别

什么是 Tesseract-OCR?

Tesseract-OCR 是一个由 Google 维护的开源 OCR 引擎,其最初由 HP 开发,后来在 2006 年被 Google 开源。它支持多种语言的文本识别,并不断优化提升识别精度。Tesseract 支持从简单的命令行调用到与复杂项目集成,是一个灵活而强大的工具。


Tesseract-OCR 的主要特性

  • 多语言支持:Tesseract 内置了 100 多种语言的数据包,并支持用户自定义训练,识别如手写体等特定需求的字体。
  • 开源与跨平台:作为一个开源项目,Tesseract 可以在 Windows、Linux 和 macOS 上运行,满足了广泛用户的需求。
  • 高度可扩展:支持通过训练和微调增加对特殊字符或特定语言的识别能力,尤其适合企业定制需求。
  • 多种输出格式:Tesseract 不仅能输出纯文本,还支持 PDF、HTML 和可选的带有位置信息的输出格式。

安装

Windows下个版本tesseract工具下载:Index of /tesseract

点击tesseract-ocr-setup-4.00.00dev.exe,选择安装目录,然后下一步直至完成:

安装完毕后,目录如下:

添加环境变量:

测试环境变量是否生效:

下载中文简体字库:https://raw.githubusercontent.com/tesseract-ocr/tessdata/4.00/chi_sim.traineddata

放在如下目录:

 

基本使用方法

安装完成后,您可以直接在命令行运行 Tesseract:

tesseract input_image.png output_text

其中,input_image.png 是输入图片文件,output_text 是输出的文本文件。

要指定语言,可以使用 -l 参数。例如:

tesseract input_image.png output_text -l eng

如果要同时识别多种语言,可以用加号分隔:

tesseract input_image.png output_text -l eng+chi_sim

验证

用Windows自带的画图工具写一行文字:

截图后,放在如图所示目录:

然后在当前文件夹下右键打开终端,输入命令:tesseract 1.png jieguo -l chi_sim

终端打印结果如下:

Windows PowerShell
版权所有(C) Microsoft Corporation。保留所有权利。

安装最新的 PowerShell,了解新功能和改进!https://aka.ms/PSWindows

PS D:\OCR-test> tesseract 1.png jieguo -l chi_sim
Tesseract Open Source OCR Engine v4.00.00alpha with Leptonica
PS D:\OCR-test>

在图片同级目录下多个一个txt文件:

还差一个字未识别出来,增加参数 -psm 7再次测试。终端打印如下:

Windows PowerShell
版权所有(C) Microsoft Corporation。保留所有权利。

安装最新的 PowerShell,了解新功能和改进!https://aka.ms/PSWindows


PS D:\OCR-test> tesseract 1.png jieguo2 -l chi_sim -psm 7
Tesseract Open Source OCR Engine v4.00.00alpha with Leptonica
PS D:\OCR-test>

结果:

 

参数 psm 的作用是什么

Tesseract-OCR 提供了一个 psm 参数,用于设置页面分割模式(Page Segmentation Mode),以指定 Tesseract 如何理解输入图像中的文本布局。这是一个非常重要的参数,因为不同的页面布局可能需要不同的分割策略。例如,一段连续的文本与包含表格的文档在处理方式上会有所不同。

 

psm 参数的取值与含义

psm 参数后接一个数字,表示不同的页面分割模式。以下是每个模式的含义:

数值模式描述
0仅检测方向和脚本,不进行 OCR 识别。
1假定是单列文本的自动分割(默认模式)。
2自动分割,但图片可能包含多个文本块。
3全自动页面分割(但不执行 OCR 方块之间的文本流检测)。
4假定是单个文本块的垂直对齐文本。
5假定整个图像是一个水平文本行。
6假定整个图像是一个统一的文本块。
7将图像视为一组独立文本行(无结构化文本块)。
8将图像视为单个文本字母(适合字符级 OCR)。
9假定图像是圆形文本,例如封印或硬币上的字符。
10处理一个单词。
11处理一个单字符。
12自动分割图像(默认模式),同时检测水平和垂直文字块的方向。

 

示例用法

在命令行中使用 psm 参数,可以根据图像内容调整分割模式:

 tesseract input_image.png output_text -psm 6

 场景 1:扫描文档 如果输入是一个扫描文档,使用默认的 -psm 3-psm 6 一般足够,Tesseract 会自动分析布局。

场景 2:单行文本 如果输入图像中只包含单行文本,可以使用:

tesseract input_image.png output_text -psm 7

场景 3:单个字符识别 如果需要精确提取单个字符的内容,可以使用: 

tesseract input_image.png output_text -psm 10 

psm 参数的选择对 OCR 的准确性影响很大。例如,当处理复杂布局(如多列文档)时,默认的页面分割模式可能无法正确理解文档结构,此时可以尝试模式 2 或模式 3 以改进结果。


http://www.kler.cn/a/460259.html

相关文章:

  • 重学 Android 自定义 View 系列(十):带指针的渐变环形进度条
  • 【JVM】总结篇-字节码篇
  • IDEA2023.1修改默认Maven配置
  • WeNet:面向生产的流式和非流式端到端语音识别工具包
  • Python 将文字和二维码 生成到BMP上 可以做标签打印等
  • Datawhale AI冬令营 动手学AI Agent
  • 【Spring】Spring DI(依赖注入)详解—自动装配—byType实现原理
  • 智元与汇川加码,机器人如何利好电机市场?
  • Sigrity System SI SerialLink模式进行HDMI2协议仿真分析操作指导-TP1
  • AI安全的挑战:如何让人工智能变得更加可信
  • 【从零开始入门unity游戏开发之——C#篇41】C#迭代器(Iterator)——自定义类实现 foreach 操作
  • 图像处理-Ch7-小波函数
  • 开源大数据平台E-MapReduce
  • 【广州计算机学会、广州互联网协会联合主办 | ACM独立出版 | 高录用】第四届大数据、信息与计算机网络国际学术会议(BDICN 2025)
  • 【电路理论四】正弦电流电路
  • 前端经典面试合集(二)——Vue/React/Node/工程化工具/计算机网络
  • Log4j2的Filters配置详解(ThresholdFilter )
  • ROS自学笔记三十:话题消息输出并转换为Excel形式
  • python钉钉机器人
  • 【探商宝】企业查询多维度解析---创新信息篇
  • [硬件] DELL BIOS 相关注意事项
  • 【漏洞复现】金和OA C6 FileDownLoad.aspx 任意文件读取漏洞复现
  • ImageSharp:高性能跨平台.NET开源图形库
  • Java垃圾回收机制与垃圾收集器
  • 期末速成C++【继承与派生 多态与虚函数】
  • TCP/IP 协议演进中的瓶颈,权衡和突破