本讲是Android Camera专题系列的第48讲,我们介绍Android Camera2 API专题的FD人脸检测。
更多资源:
| 资源 | 描述 |
|---|---|
| 在线课程 | 极客笔记在线课程 |
| 知识星球 | 星球名称:深入浅出Android Camera 星球ID: 17296815 |
| 极客笔记圈 |
FD模式
CaptureRequest#STATISTICS_FACE_DETECT_MODE,通过CameraCharacteristics# STATISTICS_INFO_AVAILABLE_FACE_DETECT_MODES判断支持哪些Mode
| STATISTICS_FACE_DETECT_MODE取值 | 描述 |
|---|---|
| STATISTICS_FACE_DETECT_MODE_OFF | 在CaptureResult中不用包含人脸统计数据,也就是FD算法可以不跑 |
| STATISTICS_FACE_DETECT_MODE_SIMPLE | 使能FD算法,在CaptureResult中返回检测到的人脸位置、置信度 |
| STATISTICS_FACE_DETECT_MODE_FULL | 使能FD算法,在CaptureResult中返回检测到的人脸位置、置信度、landmarks、face ID |
通过CameraCharacteristics#STATISTICS_INFO_MAX_FACE_COUNT获取最大同时能识别到的人脸数
FD Results
从CaptureResult#STATISTICS_FACES读取人脸检测结果
| android.hardware.camera2.params.Face成员 | 描述 |
|---|---|
| mBounds(Rect) | 人脸的位置,SENSOR_INFO_ACTIVE_ARRAY_SIZE 作为其坐标系 |
| mScore(int) | 人脸置信度值[1,100] |
| mId(int) | 人脸的唯一标识id,可用于跟踪某个人脸 |
| mLeftEye(Point) | 左眼中心的坐标,SENSOR_INFO_ACTIVE_ARRAY_SIZE 作为其坐标系 |
| mRightEye(Point) | 右眼中心的坐标,SENSOR_INFO_ACTIVE_ARRAY_SIZE 作为其坐标系 |
| mMouth(Point) | 嘴巴中心的坐标,SENSOR_INFO_ACTIVE_ARRAY_SIZE 作为其坐标系 |
使能FD
判断FD是否支持
- FD mode是否包含Simple或Full
-
支持的最大识别人脸数 > 0
使能FD
Preview#startCameraPreview
|--> CameraController2#startFaceDetection
|----> CameraSettings#setFaceDetectMode
|----> CameraSettings#setSceneMode
上报FD信息和画FD框

极客笔记