人脸特征点检测器
1. 接口简介
人脸特征点检测器要求输入原始图像数据和人脸位置,返回人脸 5 个或者其他数量的的特征点的坐标(特征点的数量和加载的模型有关)。
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 SeetaPointF
| 名称 |
类型 |
说明 |
| x |
double |
人脸特征点横坐标 |
| y |
double |
人脸特征点纵坐标 |
3 class FaceLandmarker
人脸特征点检测器。
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 构造函数
FaceLandmarker
| 参数 |
类型 |
缺省值 |
说明 |
| setting |
const SeetaModelSetting& |
|
检测器结构参数 |
3.4 成员函数
number
获取模型对应的特征点数组长度。
| 参数 |
类型 |
缺省值 |
说明 |
| 返回值 |
int |
|
模型特征点数组长度 |
mark
获取人脸特征点。
| 参数 |
类型 |
缺省值 |
说明 |
| image |
const SeetaImageData& |
|
图像原始数据 |
| face |
const SeetaRect& |
|
人脸位置 |
| points |
SeetaPointF* |
|
获取的人脸特征点数组(需预分配好数组长度,长度为number()返回的值) |
| 返回值 |
void |
|
|
mark
获取人脸特征点和遮挡信息。
| 参数 |
类型 |
缺省值 |
说明 |
| image |
const SeetaImageData& |
|
图像原始数据 |
| face |
const SeetaRect& |
|
人脸位置 |
| points |
SeetaPointF* |
|
获取的人脸特征点数组(需预分配好数组长度,长度为number()返回的值) |
| mask |
int32_t* |
|
获取人脸特征点位置对应的遮挡信息数组(需预分配好数组长度,长度为number()返回的值), 其中值为1表示被遮挡,0表示未被遮挡 |
| 返回值 |
void |
|
|
mark
获取人脸特征点。
| 参数 |
类型 |
缺省值 |
说明 |
| image |
const SeetaImageData& |
|
图像原始数据 |
| face |
const SeetaRect& |
|
人脸位置 |
| 返回值 |
std::vector |
|
获取的人脸特征点数组 |
mark_v2
获取人脸特征点和遮挡信息。
| 参数 |
类型 |
缺省值 |
说明 |
| image |
const SeetaImageData& |
|
图像原始数据 |
| face |
const SeetaRect& |
|
人脸位置 |
| 返回值 |
std::vector |
|
获取人脸特征点和是否遮挡数组 |