【发布时间】:2021-05-17 22:33:04
【问题描述】:
我想检测页面图像中的粗体(可能还有斜体)文本——想想 TIFF 或图像 PDF。我需要指向任何这样做的开源软件的指针。
这是一个词典条目的图片(来自 Tzeltal--西班牙语词典),说明了这样的文本:
第一行是粗体,然后是斜体,然后是“normal”;第二个有几个粗体字,然后是几个正常字体。格式表示隐式结构:粗体表示词条,斜体表示词性,正常表示大多数其他内容。如果不知道什么是粗体/斜体/正常,就不可能将这些条目解析为结构化文本(如 XML)。
当我们的字典解析项目几年前处于活动状态时,我们使用 Tesseract 版本 3 对图像进行 OCR,并使用 hocr 输出为我们提供页面上的位置信息(例如,分离字典中的不同条目至关重要)。 hocr 输出还包括粗体的标签“strong”和斜体的标签“em”。虽然“em”标签相当准确,但“strong”标签几乎是随机的。现在是 Tesseract doesn't even try (see also) 的第 4 版。您仍然可以告诉 tesseract 使用旧引擎,但正如我所说,这似乎完全不准确,至少在我们提供给它的文本上是这样。
区分粗体和普通文本似乎并不难;即使在那个距离我看不懂文字,我也可以站在离显示器很远的地方,挑选出粗体和非粗体。 (我想判断整个文本是粗体还是非粗体会更难,但是当两者都出现时区分它们似乎很容易——对人类来说。)
我听说 ABBYY FineReader 会输出有关字体样式的信息,但由于各种原因,这对我们的应用程序不起作用。
如果有一种区分粗体和非粗体文本的非 OCR 方法,可以在粗体文本周围放置边界框,我们可能会将这些延伸与 Tesseract 输出的字符/单词的边界框匹配(允许对于几个像素的差异)。我知道有research on this decades ago(也有here),但是有没有开源软件可以真正做到这一点?
【问题讨论】: