SeetaFace6/docs/特征点检测.md
2025-04-25 14:48:24 +08:00

113 lines
3.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 人脸特征点检测器
## **1. 接口简介** <br>
人脸特征点检测器要求输入原始图像数据和人脸位置,返回人脸 5 个或者其他数量的的特征点的坐标(特征点的数量和加载的模型有关)。<br>
## **2. 类型说明**<br>
### **2.1 struct SeetaImageData**<br>
|名称 | 类型 | 说明|
|---|---|---|
|data|unit8_t* |图像数据|
|width | int32_t | 图像的宽度|
|height | int32_t | 图像的高度|
|channels | int32_t | 图像的通道数|
说明:存储彩色(三通道)或灰度(单通道)图像,像素连续存储,行优先,采用 BGR888 格式存放彩色图像,单字节灰度值存放灰度图像。
### **2.2 struct SeetaRect**<br>
|名称 | 类型 | 说明|
|---|---|---|
|x|int32_t |人脸区域左上角横坐标|
|y| int32_t | 人脸区域左上角纵坐标|
|width| int32_t | 人脸区域宽度|
|height| int32_t | 人脸区域高度|
### **2.3 struct SeetaPointF**<br>
|名称 | 类型 | 说明|
|---|---|---|
|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<SeetaPointF>| |获取的人脸特征点数组 |
#### mark_v2
获取人脸特征点和遮挡信息。
|参数 | 类型 |缺省值|说明|
|---|---|---|---|
|image|const SeetaImageData&| |图像原始数据|
|face|const SeetaRect&| |人脸位置|
|返回值|std::vector<PointWithMask>| |获取人脸特征点和是否遮挡数组|