人脸检测功能可定位数字图片或视频等视觉媒体中的人脸。当检测到人脸时,它具有关联的位置、大小和方向;并且可以搜索眼睛和鼻子等特征点。
以下是我们在机器学习套件的人脸检测功能中使用的一些术语:
面部跟踪将面部检测扩展到视频序列。系统可以逐帧跟踪出现在视频中任意时长的任何人脸。这意味着,在连续的视频帧中检测到的人脸可以被识别为同一个人。请注意,这并不是一种人脸识别形式;人脸跟踪仅根据人脸在视频序列中的位置和动作进行推断。
特征点是指人脸内的兴趣点。左眼、右眼和鼻基底部都是特征点。机器学习套件能够在检测到的面部上查找特征点。
轮廓是一组与面部特征形状相一致的点。机器学习套件能够找到面部的轮廓线。
分类决定了是否出现了某些面部特征。例如,人脸可以按照眼睛是睁开还是闭着,或者脸部是否有微笑进行分类。
人脸朝向
以下术语描述了人脸相对于镜头的角度:
- 欧拉 X:如果欧拉 X 角为正,表示面部向上。
- 欧拉 Y:如果欧拉 Y 角为正,表示面部朝向镜头右侧;如果面部为负,则朝向左侧。
- 欧拉 Z:如果欧拉 Z 角为正,表示人脸相对于镜头逆时针旋转。
当同时设置 LANDMARK_MODE_NONE
、CONTOUR_MODE_ALL
、CLASSIFICATION_MODE_NONE
和 PERFORMANCE_MODE_FAST
时,机器学习套件不会报告检测到的面部的欧拉 X、欧拉 Y 或欧拉 Z 角。
地标
特征点是指面部的一些关键点。左眼、右眼、鼻基都是特征点。
机器学习套件在不查找地标的情况下检测人脸。 地标检测是一个可选步骤,默认情况下处于停用状态。
下表总结了在给定关联人脸的欧拉 Y 角的情况下可检测到的所有特征点:
欧拉 Y 角 | 可检测到的特征点 |
---|---|
< -36 度 | 左眼、左嘴、左耳、鼻基、左脸颊 |
-36 度到 -12 度 | 左嘴、鼻基、嘴巴底部、右眼、左眼、左脸颊、左耳尖 |
-12 度到 12 度 | 右眼、左眼、鼻基、左脸颊、右脸颊、左侧嘴巴、右侧嘴巴、嘴巴底部 |
12 度到 36 度 | 右嘴、鼻基、嘴巴底部、左眼、右眼、右脸颊、右耳尖 |
> 36 度 | 右眼、右嘴、右耳、鼻基、右脸颊 |
检测到的每个特征点都包含它在图片中的关联位置。
轮廓
轮廓是一组表示面部特征形状的点。下图说明了这些点如何映射到人脸。点击图片将其放大:
机器学习套件检测到的每个特征轮廓都由固定数量的点表示:
椭圆形脸 | 36 点 | 上唇(上部) | 11 点 |
---|---|---|---|
左眉毛(上侧) | 5 点 | 上唇(底部) | 9 点 |
左眉毛(下侧) | 5 点 | 下唇(上部) | 9 点 |
右眉毛(上侧) | 5 点 | 下唇(底部) | 9 点 |
右眉毛(下侧) | 5 点 | 鼻梁 | 2 分 |
左眼 | 16 点 | 鼻部下方 | 3 分 |
右眼 | 16 点 | ||
左脸颊(中心) | 1 个端点 | ||
右脸颊(中心) | 1 分 |
当您一次性获得所有面部的轮廓时,您会获得一个由 133 个点组成的数组,这些点将映射到如下所示的特征轮廓:
特征轮廓的索引 | |
---|---|
0-35 | 椭圆形脸 |
36-40 | 左眉毛(上侧) |
41-45 | 左眉毛(下侧) |
46-50 | 右眉毛(上侧) |
51-55 | 右眉毛(下侧) |
56-71 | 左眼 |
72-87 | 右眼 |
88-96 | 上唇(底部) |
97-105 | 下唇(上部) |
106-116 | 上唇(上部) |
117-125 | 下唇(底部) |
126、127 | 鼻梁 |
128-130 | 鼻部底部(请注意,中心点位于索引 128 处) |
131 | 左脸颊(中心) |
132 | 右脸颊(中心) |
分类
分类用于指示是否出现了某些面部特征。 机器学习套件目前支持两种分类:睁眼和笑容。
分类是一个确定性值。它表示出现面部特征的置信度。例如,笑容分类的值为 0.7 或以上表示一个人很有可能在笑。
这两个分类都依赖于特征点检测。
另请注意,“睁眼”和“微笑”分类仅适用于正面的人脸,即欧拉 Y 角较小(介于 -18 度到 18 度之间的人脸)。
最小面尺寸
最小人脸大小是所需的人脸大小,表示为头部宽度与图片宽度的比率。例如,值 0.1 表示要搜索的最小人脸大约为所搜索图片宽度的 10%。
最小人脸大小是在性能与准确性之间的权衡:将最小大小设置得较小,可让检测器找到较小的人脸,但检测时间会更长;设置为较大可能会排除较小的人脸,但运行速度会更快。
最小人脸大小并非硬性限制;检测器可能会发现略小于指定大小的人脸。
后续步骤
在 iOS 或 Android 应用中使用人脸检测: