You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于Tesseract 4.0中LSTM神经网络适用参数及参数范围的问询

你提到的这个问题确实挺常见的——Tesseract 4.0里传统OCR引擎和LSTM引擎的参数兼容性差异很大,尤其是你试过的tessedit_char_whitelist和tessedit_char_blacklist,在LSTM模式(不管是OEM_LSTM_ONLY还是默认的混合模式OEM_DEFAULT)下确实会被直接忽略,因为这俩是专门给传统引擎设计的。

下面给你梳理清楚LSTM适用的参数,以及怎么区分两种引擎的参数范围:

Tesseract 4.0 LSTM神经网络专属/兼容参数说明

一、先解决你的核心疑问:字符黑白名单的替代方案

要在LSTM模式下限制识别的字符集,得用LSTM专属的黑白名单参数:

  • lstm_char_whitelist:和传统的tessedit_char_whitelist功能一致,但只对LSTM引擎生效
  • lstm_char_blacklist:替代tessedit_char_blacklist,用于排除特定字符

比如你要让LSTM只识别数字,命令行里就这么写:

tesseract input.png output --oem 1 -c lstm_char_whitelist=0123456789

(--oem 1指定用纯LSTM引擎)

二、常用的LSTM专属参数

除了字符约束,这些参数是专门针对LSTM设计的:

  • lstm_choice_mode:控制LSTM的候选字符选择逻辑,比如设为2会优先按置信度排序,设为1会结合字典辅助识别
  • lstm_batch_size:调整批量处理的字符数量,数值越大识别速度越快,但内存占用也越高
  • load_system_dawg/load_freq_dawg:LSTM默认不加载字典(因为它依赖上下文建模而非字典匹配),如果需要字典辅助可以开启这两个参数
  • min_characters_to_try/max_characters_to_try:限制LSTM尝试识别的文本长度范围,适合短文本(比如验证码)场景

三、怎么区分参数属于传统引擎还是LSTM?

Tesseract的参数命名有很明确的规律:

  • 所有**前缀带lstm_**的参数,都是LSTM专属的,只在OEM_LSTM_ONLY或OEM_DEFAULT模式下生效
  • 不带lstm_的传统参数,大部分只在OEM_TESSERACT_ONLY模式下有用,少数通用参数(比如页面分割模式tessedit_pageseg_mode、图像反转tessedit_do_invert)两种引擎都支持

如果想要完整的参数列表,直接在命令行运行:

tesseract --print-parameters

然后筛选带lstm_的条目,就是所有LSTM相关的参数了。

内容的提问来源于stack exchange,提问作者Fabian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:37:46