# 人脸检测器 ## **1. 接口简介**
人脸检测器会对输入的彩色图片或者灰度图像进行人脸检测,并返回所有检测到的人脸位置。
## **2. 类型说明**
### **2.1 struct SeetaImageData**
|名称 | 类型 | 说明| |---|---|---| |data|unit8_t* |图像数据| |width | int32_t | 图像的宽度| |height | int32_t | 图像的高度| |channels | int32_t | 图像的通道数| 说明:存储彩色(三通道)或灰度(单通道)图像,像素连续存储,行优先,采用 BGR888 格式存放彩色图像,单字节灰度值存放灰度图像。 ### **2.2 struct SeetaRect**
|名称 | 类型 | 说明| |---|---|---| |x|int32_t |人脸区域左上角横坐标| |y| int32_t | 人脸区域左上角纵坐标| |width| int32_t | 人脸区域宽度| |height| int32_t | 人脸区域高度| ### **2.3 struct SeetaFaceInfo**
|名称 | 类型 | 说明| |---|---|---| |pos|SeetaRect|人脸位置| |score|float|人脸置信分数| ### **2.4 struct SeetaFaceInfoArray**
|名称 | 类型 | 说明| |---|---|---| |data|const SeetaFaceInfo*|人脸信息数组| |size|int|人脸信息数组长度| ## 3 class FaceDetector 人脸检测器。 ### 3.1 Enum SeetaDevice 模型运行的计算设备。
|名称 |说明| |---|---| |SEETA_DEVICE_AUTO|自动检测,会优先使用 GPU| |SEETA_DEVICE_CPU|使用CPU计算| |SEETA_DEVICE_GPU|使用GPU计算| ### 3.2 struct SeetaModelSetting 构造人脸检测器需要传入的结构体参数。
|参数 | 类型 |缺省值|说明| |---|---|---|---| |model|const char**| |检测器模型| |id|int| |GPU id| |device|SeetaDevice|AUTO |计算设备(CPU 或者 GPU)| ### 3.3 构造函数 #### FaceDetector |参数 | 类型 |缺省值|说明| |---|---|---|---| |setting|const SeetaModelSetting&| |检测器结构参数| ### 3.4 成员函数 #### detect 输入彩色图像,检测其中的人脸。
|参数 | 类型 |缺省值|说明| |---|---|---|---| |image|const SeetaImageData&| |输入的图像数据| |返回值|SeetaFaceInfoArray| |人脸信息数组| #### set 设置人脸检测器相关属性值。其中
**PROPERTY_MIN_FACE_SIZE**: 表示人脸检测器可以检测到的最小人脸,该值越小,支持检测到的人脸尺寸越小,检测速度越慢,默认值为20;
**PROPERTY_THRESHOLD**: 表示人脸检测器过滤阈值,默认为 0.90;
**PROPERTY_MAX_IMAGE_WIDTH** 和 **PROPERTY_MAX_IMAGE_HEIGHT**: 分别表示支持输入的图像的最大宽度和高度;
**PROPERTY_NUMBER_THREADS**: 表示人脸检测器计算线程数,默认为 4. |参数 | 类型 |缺省值|说明| |---|---|---|---| |property|Property||人脸检测器属性类别| |value|double||设置的属性值| |返回值|void| | | | #### get 获取人脸检测器相关属性值。
|参数 | 类型 |缺省值|说明| |---|---|---|---| |property|Property||人脸检测器属性类别| |返回值|double||对应的人脸属性值|