Google Cloud Document AI中TableBoundHints失效问题咨询
问题分析与解决
首先你的代码里存在明显的语法错误,这才是导致TableBoundHint无法正常工作的主要原因,和Beta阶段的功能稳定性关系不大。
代码中的核心错误
你在构建NormalizedVertex时,每个顶点都重复调用了setX()方法,完全没有设置Y坐标值,这会导致BoundingBox的区域计算完全错误:
// 错误示例:重复设置X,未设置Y .addNormalizedVertices(NormalizedVertex.newBuilder().setX(0).setX(0).build())
每个NormalizedVertex需要分别设置**X(水平方向)和Y(垂直方向)**坐标,你把Y坐标的设置写成了重复的X调用,这就导致所有顶点的Y值都是默认的0,BoundingBox变成了一条水平线段,自然无法正确定位表格区域。
修正后的代码
下面是修正后的代码,注意每个顶点都正确设置了X和Y坐标:
TableBoundHint tableBoundHints = TableBoundHint.newBuilder() .setBoundingBox(BoundingPoly.newBuilder() // 左上角:X=0, Y=0 .addNormalizedVertices(NormalizedVertex.newBuilder().setX(0).setY(0).build()) // 右上角:X=1, Y=0 .addNormalizedVertices(NormalizedVertex.newBuilder().setX(1).setY(0).build()) // 右下角:X=1, Y=0.25f .addNormalizedVertices(NormalizedVertex.newBuilder().setX(1).setY(0.25f).build()) // 左下角:X=0, Y=0.25f .addNormalizedVertices(NormalizedVertex.newBuilder().setX(0).setY(0.25f).build()) .build()) .setPageNumber(1) .build();
关于Beta阶段的说明
虽然Google Cloud Document AI的TableBoundHint目前处于Beta阶段,但核心的区域定位功能是可以正常工作的。如果修正代码后仍然有问题,可以检查:
- 页码是否正确(Document AI的页码从1开始计数)
- 归一化坐标是否符合要求(X和Y的取值范围是0到1,对应文档的左上角到右下角)
- 是否在
ProcessDocumentRequest中正确将这个TableBoundHint添加到tableBoundHints列表里
内容的提问来源于stack exchange,提问作者Pankaj Srivastava
相关产品推荐
相关产品推荐

