# 人脸跟踪器 ## **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 SeetaTrackingFaceInfo**
|名称 | 类型 | 说明| |---|---|---| |pos|SeetaRect|人脸位置| |score|float|人脸置信分数| |frame_no|int|视频帧的索引| |PID|int|跟踪的人脸标识id| ### **2.4 struct SeetaTrackingFaceInfoArray**
|名称 | 类型 | 说明| |---|---|---| |data|const SeetaTrackingFaceInfo*|人脸信息数组| |size|int|人脸信息数组长度| ## 3 class FaceTracker 人脸跟踪器。 ### 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 构造函数 #### FaceTrakcer |参数 | 类型 |缺省值|说明| |---|---|---|---| |setting|const SeetaModelSetting&| |跟踪器结构参数| |video_width|int| |视频的宽度| |video_height|int| |视频的高度| ### 3.4 成员函数 #### SetSingleCalculationThreads 设置底层的计算线程数量。 |参数 | 类型 |缺省值|说明| |---|---|---|---| |num|int| |线程数量| |返回值|void| || #### Track 对视频帧中的人脸进行跟踪。 |参数 | 类型 |缺省值|说明| |---|---|---|---| |image|const SeetaImageData&| |原始图像数据| |返回值|SeetaTrackingFaceInfoArray| |跟踪到的人脸信息数组| #### Track 对视频帧中的人脸进行跟踪。 |参数 | 类型 |缺省值|说明| |---|---|---|---| |image|const SeetaImageData&| |原始图像数据| |frame_no|int| |视频帧索引| |返回值|SeetaTrackingFaceInfoArray| |跟踪到的人脸信息数组| #### SetMinFaceSize 设置检测器的最小人脸大小。 |参数 | 类型 |缺省值|说明| |---|---|---|---| |size|int32_t| |最小人脸大小| |返回值|void| || 说明:size 的大小保证大于等于 20,size的值越小,能够检测到的人脸的尺寸越小, 检测速度越慢。 #### GetMinFaceSize 获取最小人脸的大小。 |参数 | 类型 |缺省值|说明| |---|---|---|---| |返回值|int32_t| |最小人脸大小| #### SetThreshold 设置检测器的检测阈值。 |参数 | 类型 |缺省值|说明| |---|---|---|---| |thresh|float| |检测阈值| |返回值|void| || #### GetScoreThreshold 获取检测器检测阈值。 |参数 | 类型 |缺省值|说明| |---|---|---|---| |返回值|float| |检测阈值| #### SetVideoStable 设置以稳定模式输出人脸跟踪结果。 |参数 | 类型 |缺省值|说明| |---|---|---|---| |stable|bool| |是否是稳定模式| |返回值|void| || 说明:只有在视频中连续跟踪时,才使用此方法。 #### GetVideoStable 获取当前是否是稳定工作模式。 |参数 | 类型 |缺省值|说明| |---|---|---|---| |返回值|bool| |是否是稳定模式|