人脸检测

  • Unreal C++

更新时间不可用

enableFaceDetection

开启/关闭本地人脸检测。

C++
virtual int enableFaceDetection(bool enabled) = 0;

注意: 该方法仅适用于 Android 和 iOS。

调用时机

该方法需要在相机启动(如通过调用 startPreview [2/2] 或 enableVideo 实现)后调用。

调用限制

无。

相关回调

成功调用该方法后,SDK 会触发 onFacePositionChanged 回调向你报告人脸检测的信息:

  • 摄像头采集的画面大小
  • 人脸在 view 中的位置
  • 人脸距设备屏幕的距离

参数

参数名描述
enabled

是否开启人脸检测:

  • true:开启人脸检测。
  • false:(默认)关闭人脸检测。
表格内容超出当前宽度,可横向滚动查看更多列。

返回值

  • 0: 方法调用成功。
  • < 0: 方法调用失败。详见错误码了解详情和解决建议。

所属接口类

onFacePositionChanged

报告本地人脸检测结果。

C++
virtual void onFacePositionChanged(int imageWidth, int imageHeight,
                const Rectangle* vecRectangle, const int* vecDistance,
                int numFaces) {
                (void) imageWidth;
                (void) imageHeight;
                (void) vecRectangle;
                (void) vecDistance;
                (void) numFaces;
                }

详情

调用 enableFaceDetection(true) 开启本地人脸检测后,你可以通过该回调实时获取以下人脸检测的信息:

  • 摄像头采集的画面大小
  • 人脸在 view 中的位置
  • 人脸距设备屏幕的距离

其中,人脸距设备屏幕的距离由 SDK 通过摄像头采集的画面大小和人脸在 view 中的位置拟合计算得出。

注意:

  • 该回调仅适用于 Android 和 iOS 平台。
  • 当检测到摄像头前的人脸消失时,该回调会立刻触发;在无人脸的状态下,该回调触发频率会降低,以节省设备耗能。
  • 当人脸距离设备屏幕过近时,SDK 不会触发该回调。
  • Android 平台上,人脸距设备屏幕的距离(distance)值有一定误差,请不要用它进行精确计算。

参数

参数名描述
imageWidth

摄像头采集画面的宽度 (px)。

imageHeight

摄像头采集画面的高度 (px)。

vecRectangle

是一个长度为 numFaces 的数组,表示检测到的人脸信息:

  • x:人脸在 view 中的 x 坐标 (px)。以摄像头采集 view 的左上角为原点,x 坐标为人脸左上角相对于原点的横向位移。
  • y:人脸在 view 中的 y 坐标 (px)。以摄像头采集 view 的左上角为原点,y 坐标为人脸左上角相对原点的纵向位移。
  • width:人脸在 view 中的宽度 (px)。
  • height:人脸在 view 中的高度 (px)。
vecDistance

是一个长度为 numFaces 的数组,表示人脸和设备屏幕之间的距离 (cm)。

numFaces

检测的人脸数量。如果为 0,则表示没有检测到人脸。

表格内容超出当前宽度,可横向滚动查看更多列。

所属接口类