Tesseract:旧文档中的 OCR 十六进制和二进制字符串

Tesseract:旧文档中的 OCR 十六进制和二进制字符串

我对 Tesseract 有一些疑问

语境

我目前正在研究东德 (GDR) 于 80 年代开发的一种旧加密算法。我用 C# 实现了该算法。现在我有大约 30 页的测试用例需要检查。因为我不想手动输入每个二进制/十六进制字符串,所以我想使用 Tesseract(或任何可用的免费软件)对其进行 OCR。

问题

我无法获得满意的结果。下面将详细说明。

当前状态

(抱歉,我不能直接发布图片)该文档如下所示: 页面的一部分/详细信件

幼稚的方法

使用默认设置(我使用德语,相关部分应该无关紧要)我得到的结果很糟糕。

tesseract -l deu input.tiff output pdf

结果如下
尤其是零,识别起来比较麻烦。单词、字母和 1 的识别稍微好一些。

我尝试过的(预处理)

  1. 旋转页面
  2. 增加对比度
  3. 对图像进行二值化
  4. 侵蚀/扩大图像以填充字母之间的小间隙

最终结果如下。据我所知,关于 OCR,这应该会让事情变得更好一些。

我尝试过的(Tesseract 设置)

我的配置文件如下所示:

load_system_dawg F
load_freq_dawg F
language_model_penalty_non_dict_word 0
language_model_penalty_non_freq_dict_word 0
tessedit_create_pdf T
tessedit_char_whitelist 0123456789ABCDEF

我基本上告诉 Tesseract 不要尝试用字母组成有用的单词,只允许十六进制字符串所需的字符。

如你看到的这里这会导致结果略好一些,但并非在所有情况下都如此。最后一行中的一些零被检测到得更好。在 F 之间没有发生任何有用的事情。

使用神经网络与传统 OCR(--oem 0/1)的设置会略有不同。传统算法会将许多 0 检测为 9(从不将其检测为 0),但更一致(但效果不佳)

问题

我还能做些什么来改善结果?我知道我可以额外训练神经网络,但据我所知,这需要一些努力,我想避免(为自己构建 Tesseract,让 ML 工作,制作标记的测试数据等)。

还要别的吗?

感谢您的帮助。

相关内容