Video Intelligence API 可以检测、跟踪和识别视频内容中超过 10 万个品牌和徽标。
本页介绍了如何使用 Video Intelligence API 识别视频中的徽标。
在 Cloud Storage 中为视频添加注释
以下代码示例演示了如何在 Cloud Storage 中检测视频中的徽标。
REST
发送处理请求
要在本地视频文件上执行注释,请对视频文件的内容进行 base64 编码。在请求的 inputContent
字段中添加 base64 编码的内容。如需了解如何对视频文件的内容进行 base64 编码,请参阅 Base64 编码。
下面演示了如何向 videos:annotate
方法发送 POST
请求。该示例使用通过 Google Cloud CLI 为项目设置的服务账号的访问令牌。如需了解如何安装 Google Cloud CLI,
使用服务设置项目
并获取访问令牌,请参阅
Video Intelligence 快速入门。
在使用任何请求数据之前,请先进行以下替换:
- INPUT_URI:包含要添加注释的文件的 Cloud Storage 存储分区(包括文件名)。必须以
gs://
开头。
例如:"inputUri": "gs://cloud-videointelligence-demo/assistant.mp4",
- PROJECT_NUMBER:您的 Google Cloud 项目的数字标识符
HTTP 方法和网址:
POST https://videointelligence.googleapis.com/v1/videos:annotate
请求 JSON 正文:
{ "inputUri":"INPUT_URI", "features": ["LOGO_RECOGNITION"] }
如需发送您的请求,请展开以下选项之一:
您应该收到类似以下内容的 JSON 响应:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/operations/OPERATION_ID" }
如果响应成功,Video Intelligence API 将返回您的操作的 name
。上面的示例展示了此类响应的示例,其中 project-number
是您的项目编号,operation-id
是为请求创建的长时间运行的操作的 ID。
- PROJECT_NUMBER:您项目的编号
- LOCATION_ID:在其中添加注释的 Cloud 区域。支持的云区域为:
us-east1
、us-west1
、europe-west1
、asia-east1
。如果未指定区域,系统将根据视频文件位置确定区域。 - OPERATION_ID:是为请求创建的长时间运行的操作的 ID,并在启动操作时在响应中提供,例如
12345...
获取结果
要获取请求的结果,请使用对 videos:annotate
的调用返回的操作名称发送 GET
请求,如下例所示。
在使用任何请求数据之前,请先进行以下替换:
- OPERATION_NAME:Video Intelligence API 返回的操作名称。操作名称采用
projects/PROJECT_NUMBER/locations/LOCATION_ID/operations/OPERATION_ID
格式 - PROJECT_NUMBER:您的 Google Cloud 项目的数字标识符
HTTP 方法和网址:
GET https://videointelligence.googleapis.com/v1/OPERATION_NAME
如需发送您的请求,请展开以下选项之一:
您应该收到类似以下内容的 JSON 响应:
下载注释结果
将来源中的注释复制到目标存储分区(请参阅复制文件和对象):
gcloud storage cp gcs_uri gs://my-bucket
注意:如果输出 gcs uri 由用户提供,则注释存储在该 gcs uri 中。
Go
如需向 Video Intelligence 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Java
如需向 Video Intelligence 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Node.js
如需向 Video Intelligence 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Python
如需向 Video Intelligence 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
其他语言
C#: 请遵循 C# 设置说明 在客户端库页面上 然后访问 适用于 .NET 的 Video Intelligence 参考文档。
PHP: 请遵循 PHP 设置说明 在客户端库页面上 然后访问 适用于 PHP 的 Video Intelligence 参考文档。
Ruby: 请遵循 Ruby 设置说明 在客户端库页面上 然后访问 Ruby 版 Video Intelligence 参考文档。
为本地视频添加注释
以下代码示例演示了如何在本地视频文件中检测徽标。
REST
发送视频注释请求
要对本地视频文件执行注释,请务必对视频文件的内容进行 base64 编码。在请求的 inputContent
字段中添加 base64 编码的内容。如需了解如何对视频文件的内容进行 base64 编码,请参阅 Base64 编码。
以下代码展示了如何向 videos:annotate
方法发送 POST 请求。该示例使用通过 Google Cloud CLI 为项目设置的服务账号的访问令牌。如需了解有关安装 Google Cloud CLI、使用服务账号设置项目以及获取访问令牌的说明,请参阅 Video Intelligence API 快速入门。
在使用任何请求数据之前,请先进行以下替换:
- "inputContent": BASE64_ENCODED_CONTENT
例如:"UklGRg41AwBBVkkgTElTVAwBAABoZHJsYXZpaDgAAAA1ggAAxPMBAAAAAAAQCAA..."
- LANGUAGE_CODE:[可选]请参阅支持的语言
- PROJECT_NUMBER:您的 Google Cloud 项目的数字标识符
HTTP 方法和网址:
POST https://videointelligence.googleapis.com/v1/videos:annotate
请求 JSON 正文:
{ "inputContent": "BASE64_ENCODED_CONTENT", "features": ["LOGO_RECOGNITION"], "videoContext": { } }
如需发送您的请求,请展开以下选项之一:
您应该收到类似以下内容的 JSON 响应:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/operations/OPERATION_ID" }
如果响应成功,Video Intelligence API 将返回您的操作的 name
。上面的示例展示了此类响应的示例,其中 project-number
是您的项目名称,operation-id
是为请求创建的长时间运行的操作的 ID。
- OPERATION_ID:并在启动操作时在响应中提供,例如
12345...
获取注释结果
要检索操作的结果,请使用从 videos:annotate 调用返回的操作名称发出 GET 请求,如以下示例所示。
在使用任何请求数据之前,请先进行以下替换:
- PROJECT_NUMBER:您的 Google Cloud 项目的数字标识符
HTTP 方法和网址:
GET https://videointelligence.googleapis.com/v1/OPERATION_NAME
如需发送您的请求,请展开以下选项之一:
您应该收到类似以下内容的 JSON 响应:
文本检测注释以 textAnnotations
列表的形式返回。注意:仅当 done 字段的值为 True 时才会返回该字段。该操作不会包含在操作未完成的响应中。
Go
如需向 Video Intelligence 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Java
如需向 Video Intelligence 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Node.js
如需向 Video Intelligence 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Python
如需向 Video Intelligence 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
其他语言
C#:请按照客户端库页面上的 C# 设置说明操作,然后访问 .NET 版 Video Intelligence 参考文档。
PHP: 请遵循 PHP 设置说明 在客户端库页面上 然后访问 适用于 PHP 的 Video Intelligence 参考文档。
Ruby:请按照客户端库页面上的 Ruby 设置说明操作,然后访问 Ruby 版 Video Intelligence 参考文档。