【问题标题】:How to read PDF templates using java OCR如何使用 java OCR 读取 PDF 模板
【发布时间】:2012-07-24 04:36:03
【问题描述】:

有人可以为以下场景提出解决方案吗?

我们有餐厅的菜单。每家餐厅都有自己的菜单。目标是识别菜单中的元素,例如菜单项、配料、价格等,并更新数据库。

Fox 示例:餐厅菜单可以在名为“Sandwiches”的组下包含“Chicken”、“Vegetarian”等菜单项。

为此,我计划使用 OCR 的 Java 实现。这会成功吗?

【问题讨论】:

  • 您是否已经拥有正确的 PDF 格式的文档?如果是这样,您可以使用 PDFBox 之类的东西来解析信息。如果您确实需要扫描图像,它会复杂得多,而且我不熟悉用于此的 java 实现。但是为了处理带有文本和对象的 PDF 文档,我一直在使用 PDFBox。 PDFClown 我也用在我需要扫描大部分页面的场景中,可能是您想要查看的其他内容。
  • 这是现有项目还是新项目?
  • PDF 是餐厅菜单的精确扫描件。

标签: java pdf ocr


【解决方案1】:

如果您想在代码中使用 OCR,您可以使用 Tessrect-OCR 进行一些原生开发。它是一个非常强大的库,具有快速输出。此链接用于 Tessrect 的包装类,或者您也可以使用 Tess4j Tesjeract 的替代品(第一个)。这是 google 使用的同一个库,您还可以添加多种语言支持。

【讨论】:

    【解决方案2】:

    将 PDF 转换为图像(使用 javacv 等)并使用 tesseract 或 tess4j 对其进行 OCR。这不是永久的或最佳的解决方案,但效果很好!

    【讨论】:

    • 安装了 GhostScript 的 Tess4J 可以通过在执行 OCR 之前将其转换为图像来识别 PDF。
    【解决方案3】:

    如果您正在输入 PDF,然后使用它,则无需这样做;只需阅读 PDF(见下文)。但是,如果您正在扫描 PDF(图像,而不是文本),则需要使用 OCR。

    要从文件中读取 PDF,您可以使用 iTextPDFBox 之类的内容

    【讨论】:

      【解决方案4】:

      有趣的项目! Java 或任何其他语言,我认为 OCR 不够准确,无法满足您的需求。菜单通常使用非标准字体打印,有时还带有背景图像,这使得 OCR 难以准确读取每个单词。然后你有格式化的挑战。一些菜单可能按鸡肉、素食、牛肉来组织内容。其他的可能有 Light Fare、Entree、Appetizer、小盘子等类别。

      这让我觉得这是一个真正的数据工程挑战。虽然菜单看起来像是分层的,但它们的实际结构非常灵活,并且从一个到另一个变化很大。将 OCR 添加到这个混乱中会给整个混乱添加错别字,现在你需要寻找像“鸡”这样的词,因为你实际上可能有 Chicen 或 Cichen 或 (h1ckn.

      也许我从未使用过真正出色的 OCR 软件,而我正在想象一个不存在的问题。我认为大多数餐馆都是在电脑上输入菜单的,你最好让他们与你分享这些文件。

      【讨论】:

        猜你喜欢
        • 2016-08-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-14
        • 1970-01-01
        • 2011-04-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多