来自谷歌云视觉 API OCR 的逐行数据

Gya*_*nee 2 python pdf ocr google-cloud-vision

我已经扫描了银行对账单的 PDF(基于图像)。谷歌视觉 API 能够非常准确地检测文本,但它返回文本块,我需要逐行文本(银行交易)。知道如何去做吗?

小智 5

我使用 Google Vision API - DOCUMENT_TEXT_DETECTION 来获取逐行数据。返回的数据具有以下结构: 不同 API 的结构可能会发生变化。

{
   'description': 'Some Text',
   'coordinates': [ P1, P2, P3, P4]
}
Run Code Online (Sandbox Code Playgroud)

我使用的方法是计算所有单词的中点。

{
   'description': 'Some Text',
   'center': { x: (P1.x + P2.x + P3.x + P4.x)/4, 
               y: (P1.y + P2.y + P3.y + P4.y)/4 }
}
Run Code Online (Sandbox Code Playgroud)

现在我根据它们的中心坐标对这些词进行排序。在 X 和 Y 轴上。但是要在 Y 坐标中排序,您将需要一些 Y 容差变量。

例如,

word_1.center.y = 15
word_2.center.y = 18
word_3.center.y = 28
Run Code Online (Sandbox Code Playgroud)

现在,您必须决定更改行需要多少 Y 坐标值差异(这取决于文档中使用的字体大小)。

(word_2.center.y - word_1.center.y) < Y-Tolerance # True ~ In same line
(word_3.center.y - word_2.center.y) < Y-Tolerance # False ~ In different line
Run Code Online (Sandbox Code Playgroud)

在获得同一行中的单词列表后。根据它们的 X 坐标对它们进行排序。

如有任何其他查询,请联系。