目标
在本示例中,您将使用 Google Vision API 检测图片中的人脸。为了证明自己已正确检测到人脸,您将借助相应数据在每个人脸周围画一个方框。
费用
在本文档中,您将使用 Google Cloud 的以下收费组件:
- Cloud Vision
准备工作
- 登录您的 Google Cloud 账号。如果您是 Google Cloud 新手,请创建一个账号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
-
在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目。
-
启用 Google Cloud Vision API。
-
在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目。
-
启用 Google Cloud Vision API。
- 设置您的环境以便使用应用默认凭据。
-
设置语言特定的任务和工具:
C#
- 安装 Google 客户端库。
- 安装 Visual Studio 2012/2015。
Java
- 安装 Java。
- API 参考。
下载并安装 Apache Maven 构建系统。构建项目时,Maven 将确保安装 Google API 客户端库和 Vision API 客户端库,因为我们已将它们包含在
pom.xml
中。...
Node.js
- 安装 Google 客户端库。
- 安装 node.js。
- API 参考。
安装 npm 和 node-canvas。示例代码包含
package.json
,用于使用npm install
命令安装所有依赖项。请注意,您可能还需要安装 node-canvas 的其他依赖项;如需了解详情,请参阅 node-canvas 安装文档。
PHP
- 安装 Google 客户端库。
- 安装 PHP 和 Composer。
- API 参考。
- 安装并启用 PHP 版 GD。
Python
- 安装 Google 客户端库。
- 安装 Python。
- API 参考。
- 安装 pillow。
Ruby
- 安装 Google 客户端库。
- 安装 Ruby 和 Bundler。
- API 参考。
- 安装 ImageMagick。
创建服务对象
要使用官方客户端 SDK 访问 Google API,请根据相应 API 的发现文档(用于向 SDK 描述 API)来创建服务对象。您需要使用自己的凭据从 Vision API 的发现服务中获取该文档。
Java
Node.js
Python
发送人脸检测请求
要构建发送至 Vision API 的请求,请先查阅 API 文档。在本示例中,您将要求 images
资源对图片执行 annotate
操作。对此 API 的请求采用具有 requests
列表的对象形式。此列表中的每项均包含两种信息:
- Base64 编码的图片数据
- 要在该图片中注释的一列特征。
在本示例中,您只需针对一张图片请求 FACE_DETECTION
注释,然后返回相关的响应部分:
Java
Node.js
Python
处理响应
恭喜!您已检测到图片中的人脸。对人脸注释请求的响应包含有关检测到的人脸的一些元数据,其中包括环绕人脸的多边形的坐标。不过目前,这只是一列数字。接下来,我们用这些数字来确认您确实已找到图片中的人脸。我们将使用 Vision API 返回的坐标在图片的副本上绘制多边形。
综合应用
Java
...
要构建并运行该示例,请从示例代码目录运行以下命令:
mvn clean compile assembly:single java -cp target/vision-face-detection-1.0-SNAPSHOT-jar-with-dependencies.jar \ com.google.cloud.vision.samples.facedetect.FaceDetectApp \ data/face.jpg \ output.jpg
Node.js
要运行该示例,请从示例代码目录运行以下命令:
node faceDetection resources/face.png
Python
清理
为避免因本教程中使用的资源导致您的 Google Cloud 账号产生费用,请删除包含这些资源的项目,或者保留项目但删除各个资源。
- 在 Google Cloud 控制台中,进入管理资源页面。
- 在项目列表中,选择要删除的项目,然后点击删除。
- 在对话框中输入项目 ID,然后点击关闭以删除项目。