文档 AI v1Beta3 API 坐标映射到 pdf 坐标

问题描述

我使用 API version v1beta3 解析了一个 PDF 文件并获得了一个表格的坐标,如下所示。

     "normalizedVertices": [
              {
                "x": 0.6894705,"y": 0.016400337
              },{
                "x": 0.87983346,"y": 0.026072329
              },{
                "x": 0.6894705,"y": 0.026072329
              }
            ]

如何将这些转换为 PDF 坐标?

解决方法

我测试了一份来自 Document AI docs 的 pdf 表格 (gs://cloud-samples-data/documentai/loan_form.pdf)。我同时使用了 v1 和 v1beta3,得到了相同的结果并且按预期工作。

normalizedVertices 返回的 x 和 y 值是从 0 到 1。文档 AI 计算 x 和 y 相对于左上角原点的值的图像。此 document 中解释了边界框逻辑。 online.sodapdf.com 是相对于原点计算 x 的值,相对于最大值点计算 y 的值。

要将值转换为实际的 x 和 y 坐标,就像在 online.sodapdf.com 中一样,请参阅转换:

x = x * width 
y = height - (y * height)) 

为了测试这一点,示例文档的宽度 = 612 和高度 = 792,并选择了一个对象来转换坐标。

loan_form.pdf 中返回的对象具有在“NormalizedVertex”列下显示的坐标。使用上面的公式,您将获得转换后的坐标。计算值可能与实际值相差很小,这可能是由于两种工具的对象检测算法所致。请参阅下面完成的测试:

enter image description here


被测文档的宽度和高度:

enter image description here

检测到的测试对象loan_form.pdf:

enter image description here

在 online.sodapdf.com 中检测到的测试对象:

enter image description here