tesseract ChoiceIterator 置信度阈值

tesseract ChoiceIterator confidence threshold

我正在尝试使用 tesseract (3.03) ChoiceIterator 列出序列号中每个字符的可能替代项。对于某些角色,它似乎工作正常:

symbol 3, conf: 82.660316   
   - 3 conf: 82.660316
   - B conf: 74.598289
   - S conf: 74.530128

对于其他角色它不起作用(即它没有 return 任何替代品):

symbol I, conf: 90.924942

现在,我很难相信 "I" 不容易与“1”混淆(实际上在我的例子中这个字符是“1”而不是 "I")。我猜 tesseract 一定是因为置信度低(即置信度低于某个阈值?)而放弃了替代方案,但我找不到任何合适的选择。

在深入研究 Tesseract 代码数小时后,我终于找到了它 - 参数名称是 "matcher_bad_match_pad",它告诉 Tesseract 相对于角色的最高置信度预测的截止阈值是多少。所以,在我的例子中:

symbol I, conf: 90.924942

如果 "matcher_bad_match_pad" 设置为 0.20 并且“1”的置信度为 0.70,它将被拒绝。像这样修复它:

tesseract.SetVariable("matcher_bad_match_pad", "0.25");