【问题标题】:Finding known text in an image (guided OCR)在图像中查找已知文本(引导式 OCR)
【发布时间】:2015-02-23 22:28:42
【问题描述】:

我正在寻找一种方法来定位图像中的已知文本。

具体来说,我正在尝试创建一个工具,将一组扫描页面转换为支持搜索和复制+粘贴的 PDF。我了解这通常是如何完成的:OCR 页面,保留文本的位置,然后将文本作为不可见层添加到 PDF。 Acrobat 内置了这个功能,tesseract 可以输出 hOCR 文件(包含识别的文本及其位置),可以被 hocr2pdf 用来生成文本层。

不幸的是,我的源图像质量相当低(最多 150 DPI,有大量 JPEG 伪影,并且某些文本后面的背景不纯),导致 OCR 结果非常差。但是,我确实有每个页面上显示的文本(无图片和布局)的副本。

将已知文本与其在扫描页面上的位置相匹配似乎更容易准确地完成,但我没有发现任何内置此功能的软件。我如何利用现有软件来做到这一点?

编辑:文本的大小和字体各不相同,尽管其中的段落是一致的。

【问题讨论】:

  • 你能发布一两个样本吗?你知道字体样式和大小的细节吗?这些在整个文档中是不变的吗?
  • 您是否需要可以为您完成此任务的工具/软件?
  • @MarkSetchell 我无法发布确切的文档,但我会看看能否生成质量相当的样本。
  • @kkuilla,我正在开发一个用于处理这些文档的实用程序。我正在寻找可以在开箱即用的图像中定位已知文本的现有工具或库,或者关于如何使用一些较低级别的 api 自己实现它的建议。我只需要弄清楚如何在给定图像和文本的情况下获取每个字符的位置。剩下的我知道怎么做。
  • 我会说这个问题可能是题外话,因为它是"too broad""Questions asking us to recommend or find a book, tool, software library, tutorial or other off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it." 请参阅How to ask

标签: image-processing ocr


【解决方案1】:

我想到的想法是互相关。因此,我将获取您知道页面上出现的单词列表,并将它们一次渲染到画布上,以创建该单词的图片。您需要使用与文档中的文字类似的字体和大小 - 这是我在评论中提出的要求。然后,我将对单词的图片与扫描的图像进行归一化的互相关,以查看它出现的位置。我会使用适用于 Windows 和 OSX(在 OS X 上使用 homebrew)并包含在大多数 Linux 发行版中的 ImageMagick 来完成所有这些工作。

所以,让我们截取您问题第二段的屏幕截图,然后查找单词 pretty - 您提到非常差的 OCR

首先,您需要将单词pretty 渲染到白色背景上。该命令将是这样的:

convert -background white -fill black -font Times -pointsize 14 label:pretty word.png

结果:

然后使用来自 here 的 Fred Weinhaus 的脚本执行标准化互相关,如下所示:

normcrosscorr -p word.png scan.png correlation-result.png
Match Coords: (504,30) And Score In Range 0 to 1: (0.999803)

你可以看到比赛的坐标是504,30。

结果:

另一个想法

另一个想法可能是采用 Google 的 Tesseract-OCR 并将标准字典替换为包含您正在处理的页面上的单词的文本文件......

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-22
    • 1970-01-01
    • 2012-10-26
    • 2023-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多