具有两列文本的 Google Vision 复杂 OCR 执行

Posted

技术标签:

【中文标题】具有两列文本的 Google Vision 复杂 OCR 执行【英文标题】:Google Vision complex OCR execution with two-column text 【发布时间】:2018-05-23 04:16:04 【问题描述】:

对不起,如果这个问题之前已经在这里问过,但我找不到答案。

所以,我正在创建 C# OCR 程序以扫描商店收据。 Vision OCR DocumentTextDetection 本身可以非常准确地处理文本,但我还有其他问题:

当我扫描收据(下图中给出的模板)时,Vision OCR 在两列密集文本中表现异常。例如,我有这个收据模板格式:

响应通常是一列字符串,填充第一列的产品名称或第二列的价格。

所以通常反应的例子:

收据 产品1 产品2 产品3 9.99 A 产品4 9.99 A 12.10 安 产品5

此响应无法让我正确地将每个项目与相应的价格联系起来。

当我使用图像编辑程序(如 Photoshop)缩小产品和价格列之间的距离时,它可以正常工作并逐行扫描收据,因此我可以轻松识别哪个价格属于哪个产品。

我的问题是:您能否给我一个提示,我如何通过创建新图像以编程方式调整这两列之间的距离。或者也许更好的主意是将收据图像分离为 2 张图像,每列 1 张图像,然后分别进行 OCR?但老实说,我不知道如何识别列空间并将它们切割成新图像,所以对此有什么建议吗?

【问题讨论】:

你实现了吗?可以分享一下代码吗,我也遇到了同样的问题? 【参考方案1】:

首先对图像进行二值化处理,然后使用一些图像处理算法如“形态-腐蚀”对其进行预处理,根据两列之间的空间将原始图像分成两半。如何?由于像素值在黑色区域中最低,因此在水平扫描原稿时可以识别出有下降值。最后,您可以使用 OCR 来检测数字。

【讨论】:

如果两列包含在一个文本中,我该怎么做,另一个文本会腐蚀吗? ***.com/questions/53949316/…

以上是关于具有两列文本的 Google Vision 复杂 OCR 执行的主要内容,如果未能解决你的问题,请参考以下文章

Google Cloud Vision API PDF 文本提取

Google Cloud Vision Document OCR - 在结果文本中保留布局

Google Vision 文本检测返回过多不必要的数据

如何使用 Google Vision Api 检测块内的所有文本

获得对 Google Vision OCR 文本注释结果的信心

Google Vision API 文本检测奇怪行为 - Javascript