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

Tesseract配置参数详解及适用场景(PyTesseract进行OCR)

在使用 PyTesseract 进行 OCR 时,合理配置参数是提高识别准确率的关键。以下是 Tesseract 常用参数的详细解释和适用场景。

一、关键参数

(1)页面分割模式(Page Segmentation Mode, --psm)

控制 Tesseract 如何分析图像中的文本布局,对单行文本、多列文本、表格等不同场景有不同优化。

参数值描述适用场景
0仅定向和脚本检测用于分析文本方向和语言脚本(如中文、英文)
1自动分页处理包含多页内容的图像(如扫描书籍)
2自动分页,但不进行 OCR仅分析页面布局,不识别文本
3全自动分页,无需 OCR默认模式,适用于常规文档
4假设为单列文本处理报纸、杂志等多列文本
5假设为垂直排列的文本处理竖排文字(如古籍、日语竖排)
6假设为单行文本处理单行较长的文本(如标题)
7视为单个文本行短文本、验证码、标语
8视为单个单词孤立单词、品牌名、验证码(无空格)
9视为单个单词在圆圈中圆形排列的文字(如标志)
10视为单个字符单个字母或数字(如车牌字符)
11稀疏文本分散在图像中的文本(如水印、标签)
12稀疏文本,先进行 OSD稀疏文本且需要自动检测方向
13原始行忽略布局,按行处理(适用于不规则文本)

验证码场景推荐:psm 7(单行文本)或 psm 8(单个单词)。

(2)OCR 引擎模式(OCR Engine Mode, --oem)

控制使用的 OCR 引擎类型。

参数值描述适用场景
0仅使用传统 Tesseract 引擎旧版本兼容性,对简单文本可能更快
1仅使用 LSTM 引擎推荐模式,识别准确率更高,支持更多语言
2同时使用两种引擎综合两种引擎结果,可能更准确但更慢
3默认,自动选择通常选择 LSTM 引擎(推荐)

推荐配置:–oem 3(自动选择 LSTM)。

(3)字符白名单(tessedit_char_whitelist)

限制 Tesseract 只识别指定字符,大幅提高特定场景的准确率。

# 仅识别数字
config = r'-c tessedit_char_whitelist=0123456789'# 识别数字和小写字母
config = r'-c tessedit_char_whitelist=0123456789abcdefghijklmnopqrstuvwxyz'

适用场景:

  • 验证码(已知字符集)
  • 车牌识别(如 ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789)
  • 特定领域文本(如仅含数字的发票金额)

(4)语言参数(-l)

指定识别语言,需安装相应语言包。

# 英文
text = pytesseract.image_to_string(image, lang='eng')# 简体中文
text = pytesseract.image_to_string(image, lang='chi_sim')# 中英文混合
text = pytesseract.image_to_string(image, lang='eng+chi_sim')

安装语言包:

  • Windows:通过 Tesseract 安装程序勾选语言包
  • Linux:sudo apt-get install tesseract-ocr-(如 tesseract-ocr-chi-sim)

(5)其他常用参数

参数描述示例
tessedit_pageseg_mode--psm 等效,用于配置文件-c tessedit_pageseg_mode=8
preserve_interword_spaces保留单词间空格(默认为0)-c preserve_interword_spaces=1
textord_min_linesize最小文本行高(像素)-c textord_min_linesize=20
tessedit_char_blacklist黑名单字符(不识别的字符)-c tessedit_char_blacklist=!@#$%^&*()

二、组合参数示例

(1)验证码识别

# 配置:LSTM引擎,视为单个单词,仅识别数字和小写字母
config = r'--oem 3 --psm 8 -c tessedit_char_whitelist=0123456789abcdefghijklmnopqrstuvwxyz'
text = pytesseract.image_to_string(image, config=config)

(2)单行文本(如车牌)

# 配置:单行文本,仅识别大写字母和数字
config = r'--oem 3 --psm 7 -c tessedit_char_whitelist=ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'
text = pytesseract.image_to_string(image, config=config)

(3)多列文本(如报纸)

# 配置:自动检测多列布局
config = r'--oem 3 --psm 4'
text = pytesseract.image_to_string(image, config=config)

(4)竖排中文文本

# 配置:垂直排列文本,中文识别
config = r'--oem 3 --psm 5 -l chi_sim'
text = pytesseract.image_to_string(image, config=config)

相关文章:

  • GAN模式奔溃的探讨论文综述(一)
  • 服务器中日志分析的作用都有哪些
  • 功率估计和功率降低方法指南(3~5)
  • LangChain【7】之工具创建和错误处理策略
  • 六级作文--句型
  • FFmpeg 低延迟同屏方案
  • 27.【新型数据架构】-数据共享架构
  • SOC-ESP32S3部分:32-LVGL显示框架
  • postman基础
  • 攻克同屏延迟难题:设备量增长如何解决
  • 便携式雷达信号源,开启高精度电磁模拟新时代
  • 《深度学习入门:基于python的理论与实现》观后感
  • 腾讯加持,销售易 CRM 优势几何?
  • 2021年江西工业互联网大赛———探索组态密码
  • leetcode_206 反转链表
  • Kubernetes指标实现有效的集群监控和优化
  • 【AUTOSAR COM】E2E的不同profiles的含义以及应用
  • AI预测3D新模型百十个定位预测+胆码预测+去和尾2025年6月6日第100弹
  • 鸿蒙开发 获取当前页面的路径和名字
  • k8s下离线搭建elasticsearch
  • wordpress 英文站赚钱/免费推广工具
  • 网站上传不了照片/关键词排名网络推广
  • 网站改版 新闻/郑州网站建设推广优化
  • 凡科网做网站教程/网站流量查询工具
  • 湖北移动网站建设/营销网店推广的软文
  • 免费网站建设平台哪个好/网店运营工作内容