【问题标题】:Reading multiple invoices from an image using OCR/computer vision使用 OCR/计算机视觉从图像中读取多张发票
【发布时间】:2020-04-06 16:03:58
【问题描述】:

我希望从以下包含 2 张发票的图像中提取键值对。

图片示例

我正在使用 AWS Textract 来实现这一点,但是我希望能够将键值对映射回发票。例如,“Cornbread SVC”应映射到帐单#1,而“1 #1 CHKN PLATE”应映射到帐单#2。

我认为的一种方法是对图像进行一些预处理,如果我们能找出不存在的话。票据及其坐标然后根据尺寸裁剪图像。所以基本上图像上的“5”张钞票会产生“5”张钞票的坐标,然后根据不同的钞票尺寸拍摄原始图像并裁剪 5 次。然后将每个账单作为单独的图像发送到 AWS Textract。

但是,我还没有找到检测号码的方法。图像中的钞票及其边界坐标。

任何帮助将不胜感激。我愿意使用任何其他 API 或方法来实现这一点。

【问题讨论】:

  • 尝试检测斑点或轮廓?理想情况下哪个可以引用每张账单?

标签: python amazon-web-services computer-vision amazon-textract


【解决方案1】:

正如您已经提到的,在进行任何 OCR 之前,有必要拆分账单。有一些技术可以实现这一点。

您可以使用 OpenCV 并检测图像中的白纸,see。根据我的经验,我可以告诉你,当图像的背景足够暗时,它会起作用。例如,当您在白色桌子上拍照时,它将不起作用。因此,使用这种方法实现的用户体验不会令人满意 - 有时有效,有时无效。

如果是移动应用,您可以要求用户在每张收据周围画一个矩形。在移动扫描仪中使用了类似的方法来处理单个文档,example

我更喜欢的最后一个选项是使用扫描应用程序/SDK 并强制用户简单地为单张收据拍照。它可能听起来有点僵硬和不酷,但它一直有效。让我们面对现实吧——你有可能失败的步骤越多,就会发生更多的失败。在发票数据提取过程中,您至少有以下步骤:

  • 图像捕捉
  • 图像处理
  • OCR - 不是 100% 准确
  • 数据识别(发票号码是什么等) - 并非 100% 准确

至少,您有两个不是 100% 的步骤。为什么要添加一个不能在 100% 情况下工作的新步骤,而它可以通过拍摄单独的图像来实现相同的功能?

【讨论】:

    猜你喜欢
    • 2020-09-16
    • 1970-01-01
    • 1970-01-01
    • 2020-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多