我的大多数目标图像仅包含文本元素,这是预期的,因为我的主要目的是从中提取文本。但有些目标图像包含非文本视觉元素(文档中的实际图像),我想知道其中哪些是这样的。
DocumentAI 有办法做到这一点吗?
我尝试使用 Python 检查
block
中 page
对象的 DocumentAI
的面积来检测图像:
def has_visual_elements(page):
"""Checks if a page likely contains non-text visual elements."""
for block in page.blocks:
if block.layout:
layout = block.layout.bounding_poly
# Calculate the area of the bounding box
width = layout.vertices[2].x - layout.vertices[0].x
height = layout.vertices[2].y - layout.vertices[0].y
area = abs(width * height)
if area > 10000:
return True
return False
如果
area
大于某个值,则其中可能存在非文本视觉元素。但某些仅包含文本元素的图像会返回较大的 area
值。所以这无法解决。
Document AI 专注于提取文本内容,而不是在其标准文本输出格式中明确标记非文本视觉元素的存在。
如果您的目标是识别非文本视觉元素,我认为更好的方法是使用 Vision API 对象本地化。每个
LocalizedObjectAnnotation
标识有关对象、对象位置以及包含对象的图像区域的矩形边界的信息。
只需按照以下步骤了解如何设置您的 Vision API。