Vision API 可为 Cloud Storage 中存储的 PDF、TIFF 或 GIF 文件中的多个页面或帧提供在线(即时)注释。
您可以请求对为每个文件选择的 5 个帧(GIF;“image/gif”)或页面(PDF;“application/pdf”或 TIFF;“image/tiff”)进行在线特征检测和注释。
此页面中的示例注释针对的是 DOCUMENT_TEXT_DETECTION
,而在线小批量注释适用于所有 Vision 特征。

限制
最多可以为 5 个页面添加注释。用户可以指定 5 个特定页面来添加注释。
身份验证
设置您的 Google Cloud 项目和身份验证
目前支持的特征类型
特征类型 | |
---|---|
CROP_HINTS |
确定图片的建议剪裁区域顶点。 |
DOCUMENT_TEXT_DETECTION |
对文档 (PDF/TIFF) 等包含密集文本的图片和包含手写内容的图片执行 OCR。TEXT_DETECTION 可用于包含稀疏文本的图片。
如果同时存在 DOCUMENT_TEXT_DETECTION 和 TEXT_DETECTION ,则优先考虑。 |
FACE_DETECTION |
检测图片中的人脸。 |
IMAGE_PROPERTIES |
计算一组图片属性,例如图片的主色。 |
LABEL_DETECTION |
根据图片内容添加标签。 |
LANDMARK_DETECTION |
检测图片中的地标。 |
LOGO_DETECTION |
检测图片中的公司徽标。 |
OBJECT_LOCALIZATION |
检测并提取图片中的多个对象。 |
SAFE_SEARCH_DETECTION |
运行安全搜索可检测可能不安全的内容或不良内容。 |
TEXT_DETECTION |
对图片中的文本执行光学字符识别 (OCR)。
文本检测针对大型图片中的稀疏文本区域进行了优化。
如果图片为文档 (PDF/TIFF)、包含密集文本或包含手写内容,请改用 DOCUMENT_TEXT_DETECTION 。 |
WEB_DETECTION |
检测图片中的新闻、事件或名人等主题实体,并借助强大的 Google 图片搜索在网络上查找相似的图片。 |
示例代码
您可以使用本地存储的文件发送注释请求,也可以使用 Cloud Storage 上存储的文件。
使用本地存储的文件
使用以下代码示例获取本地存储的文件的任何特征注释。
REST
如需对一小批文件执行在线 PDF/TIFF/GIF 特征检测,请发出 POST 请求并提供相应的请求正文:
在使用任何请求数据之前,请先进行以下替换:
- BASE64_ENCODED_FILE:二进制文件数据的 base64 表示(ASCII 字符串)。此字符串应类似于以下字符串:
JVBERi0xLjUNCiW1tbW1...ydHhyZWYNCjk5NzM2OQ0KJSVFT0Y=
- PROJECT_ID:您的 Google Cloud 项目 ID。
特定于字段的注意事项:
inputConfig.mimeType
- 下列类型之一:“application/pdf”“image/tiff”或“image/gif”。pages
- 指定要执行特征检测的文件的特定页面。
HTTP 方法和网址:
POST https://vision.googleapis.com/v1/files:annotate
请求 JSON 正文:
{ "requests": [ { "inputConfig": { "content": "BASE64_ENCODED_FILE", "mimeType": "application/pdf" }, "features": [ { "type": "DOCUMENT_TEXT_DETECTION" } ], "pages": [ 1,2,3,4,5 ] } ] }
如需发送请求,请选择以下方式之一:
curl
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: PROJECT_ID" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://vision.googleapis.com/v1/files:annotate"
PowerShell
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "PROJECT_ID" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://vision.googleapis.com/v1/files:annotate" | Select-Object -Expand Content
成功的 annotate
请求会立即返回 JSON 响应。
对于此特征 (DOCUMENT_TEXT_DETECTION
),JSON 响应与图片的文档文本检测请求的响应类似。响应包含按段落、字词和各符号划分的文本块的边界框。还会检测全文。响应还包含一个 context
字段,显示指定的 PDF 或 TIFF 的位置以及结果在文件中的页码。
以下响应 JSON 仅针对单个页面(第 2 页),为清楚起见,这里采用简写形式。
Java
在试用此示例之前,请按照Vision API 快速入门:使用客户端库中的 Java 设置说明进行操作。如需了解详情,请参阅 Vision API Java 参考文档。
Node.js
试用此示例之前,请按照《Vision 快速入门:使用客户端库》中的 Node.js 设置说明进行操作。 如需了解详情,请参阅 Vision Node.js API 参考文档。
如需向 Vision 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Python
试用此示例之前,请按照《Vision 快速入门:使用客户端库》中的 Python 设置说明进行操作。 如需了解详情,请参阅 Vision Python API 参考文档。
如需向 Vision 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
使用 Cloud Storage 上的文件
使用以下代码示例获取 Cloud Storage 文件的任何特征注释。
REST
如需对一小批文件执行在线 PDF/TIFF/GIF 特征检测,请发出 POST
请求并提供相应的请求正文:
在使用任何请求数据之前,请先进行以下替换:
- CLOUD_STORAGE_FILE_URI:Cloud Storage 存储桶中有效文件 (PDF/TIFF) 的路径。您必须至少拥有该文件的读取权限。
示例:
gs://cloud-samples-data/vision/document_understanding/custom_0773375000.pdf
- PROJECT_ID:您的 Google Cloud 项目 ID。
特定于字段的注意事项:
inputConfig.mimeType
- 下列类型之一:“application/pdf”“image/tiff”或“image/gif”。pages
- 指定要执行特征检测的文件的特定页面。
HTTP 方法和网址:
POST https://vision.googleapis.com/v1/files:annotate
请求 JSON 正文:
{ "requests": [ { "inputConfig": { "gcsSource": { "uri": "CLOUD_STORAGE_FILE_URI" }, "mimeType": "application/pdf" }, "features": [ { "type": "DOCUMENT_TEXT_DETECTION" } ], "pages": [ 1,2,3,4,5 ] } ] }
如需发送请求,请选择以下方式之一:
curl
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: PROJECT_ID" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://vision.googleapis.com/v1/files:annotate"
PowerShell
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "PROJECT_ID" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://vision.googleapis.com/v1/files:annotate" | Select-Object -Expand Content
成功的 annotate
请求会立即返回 JSON 响应。
对于此特征 (DOCUMENT_TEXT_DETECTION
),JSON 响应与图片的文档文本检测请求的响应类似。响应包含按段落、字词和各符号划分的文本块的边界框。还会检测全文。响应还包含一个 context
字段,显示指定的 PDF 或 TIFF 的位置以及结果在文件中的页码。
以下响应 JSON 仅针对单个页面(第 2 页),为清楚起见,这里采用简写形式。
Java
在试用此示例之前,请按照Vision API 快速入门:使用客户端库中的 Java 设置说明进行操作。如需了解详情,请参阅 Vision API Java 参考文档。
Node.js
试用此示例之前,请按照《Vision 快速入门:使用客户端库》中的 Node.js 设置说明进行操作。 如需了解详情,请参阅 Vision Node.js API 参考文档。
如需向 Vision 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Python
试用此示例之前,请按照《Vision 快速入门:使用客户端库》中的 Python 设置说明进行操作。 如需了解详情,请参阅 Vision Python API 参考文档。
如需向 Vision 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
试用
请尝试下面的小批量在线特征检测。
您可以使用已指定的 PDF 文件,也可以指定自己的文件。

对于此请求,指定了三种特征类型:
DOCUMENT_TEXT_DETECTION
LABEL_DETECTION
CROP_HINTS
您可以通过更改请求中的相应对象 ({"type": "FEATURE_NAME"}
) 来添加或移除其他特征类型。
选择执行即可发送请求。
请求正文:
{ "requests": [ { "inputConfig": { "gcsSource": { "uri": "gs://cloud-samples-data/vision/document_understanding/custom_0773375000.pdf" }, "mimeType": "application/pdf" }, "features": [ { "type": "DOCUMENT_TEXT_DETECTION" }, { "type": "LABEL_DETECTION" }, { "type": "CROP_HINTS" } ], "pages": [ 1, 2, 3, 4, 5 ] } ] }