生成反应应用以将用户添加到人脸服务

本指南将演示如何开始使用示例人脸注册应用程序。 该应用演示了有关获得有意义的同意,以便将用户添加到人脸识别服务并获取高准确度人脸数据的最佳做法。 集成系统可以使用诸如此类的应用,基于用户的人脸数据提供无接触的访问控制、身份验证、出勤跟踪或个性化展台。

启动时,应用程序会向用户显示一个详细的同意屏幕。 如果用户同意,则应用会提示用户输入用户名和密码,然后使用设备的相机捕获高质量的人脸图像。

该示例应用使用 JavaScript 和 React Native 框架编写而成。 它当前可以部署到 Android 和 iOS 设备上;将来将提供更多部署选项。

先决条件

  • Azure 订阅 - 创建试用订阅
  • 拥有 Azure 订阅后,在 Azure 门户中创建人脸资源,获取密钥和终结点。 部署后,选择”转到资源”。
    • 需要从创建的资源获取密钥和终结点,以便将应用程序连接到人脸 API。
    • 仅对于本地开发和测试,API 密钥和终结点是环境变量。 对于最终部署,请将 API 密钥存储在一个安全位置,而不要存储在代码或环境变量中。

重要的安全注意事项

  • 对于本地开发和初始有限测试,使用环境变量保存 API 密钥和终结点是可接受的(虽然不是最佳做法)。 对于试点和最终部署,应安全地存储 API 密钥,这可能涉及使用中间服务来验证登录期间生成的用户令牌。
  • 不要在代码中存储 API 密钥或终结点,也不要将它们提交给版本控制系统(如 Git)。 如果错误地出现了这种情况,你应立即生成新的 API 密钥/终结点,并撤消以前的密钥/终结点。
  • 最佳做法是考虑为开发和生产使用单独的 API 密钥。

设置开发环境

  1. 克隆示例应用的 git 存储库。
  2. 若要设置开发环境,请按照 React Native 文档进行操作。 选择“React Native CLI 快速入门”。 选择你的开发 OS,并选择“Android”作为目标 OS。 完成“安装依赖项”和“Android 开发环境”部分 。
  3. 下载你喜欢的文本编辑器,如 Visual Studio Code
  4. 在 Azure 门户中资源的“概述”选项卡下检索 FaceAPI 终结点和密钥。 请勿将人脸 API 密钥签入到远程存储库。
  5. 使用 Android Studio 中的 Android 虚拟设备仿真器或你自己的 Android 设备运行应用。 若要在物理设备上测试应用,请按照相关 React Native 文档进行操作。

创建用户添加体验

现在,你已设置示例应用,接着可根据自己的需求对其进行调整。

例如,你可能想要在同意页上添加特定情况的信息:

应用同意页

此服务提供图像质量检查,帮助你确定图像的质量是否足以用于添加客户或尝试人脸识别。 此应用演示如何从设备的相机访问帧、选择质量最高的帧,并将检测到的人脸添加到人脸 API 服务。

许多人脸识别问题都是低质量的参考图像所致。 下面是一些会降低模型性能的因素:

  • 人脸大小(人脸离相机很远)
  • 人脸方向(人脸转过相机或向远离相机的方向倾斜)
  • 光照条件差(低光或背光),在此情况下,图像可能曝光较差或噪点过多
  • 遮挡(人脸被部分隐藏或遮挡,包括帽子或厚框眼镜等配饰)
  • 模糊(例如在拍照时人脸迅速移动)。

应用图像捕获说明页

请注意,该应用还提供了用于删除用户信息的功能,以及用于重新添加的选项。

配置文件管理页

若要扩展应用的功能以涵盖完整的体验,请阅读概述,了解要实现的其他功能以及最佳做法。

部署应用

首先,确保应用已准备好进行生产部署:从应用代码中删除任何密钥或机密,并确保已遵循安全最佳做法

在准备好发布应用以进行生产时,你将生成一个可随时发布的 APK(适用于 Android 应用的包文件格式)文件。 必须使用私钥对此 APK 文件进行签名。 借助此发布版本,你可以开始将应用直接分发到设备。

查看准备发布文档,了解如何生成私钥、对应用程序进行签名以及生成发布 APK。

创建已签名的 APK 后,请参阅发布应用文档,详细了解如何发布应用。

后续步骤

在本指南中,你学习了如何设置开发环境和开始使用示例应用。 如果你不熟悉 React Native,可以阅读相关入门文档,了解更多背景信息。 它还可以帮助你熟悉人脸 API。 在开始开发之前,请阅读有关添加用户的其他部分。