# 眼睛状态检测器
## **1. 接口简介**
眼睛检测器要求输入原始图像数据和人脸特征点,返回左眼和右眼的状态。
## **2. 类型说明**
### **2.1 struct SeetaImageData**
|名称 | 类型 | 说明|
|---|---|---|
|data|unit8_t* |图像数据|
|width | int32_t | 图像的宽度|
|height | int32_t | 图像的高度|
|channels | int32_t | 图像的通道数|
说明:存储彩色(三通道)或灰度(单通道)图像,像素连续存储,行优先,采用 BGR888 格式存放彩色图像,单字节灰度值存放灰度图像。
### **2.2 struct SeetaPointF**
|名称 | 类型 | 说明|
|---|---|---|
|x|double|人脸特征点横坐标|
|y|double|人脸特征点纵坐标|
## 3 class EyeStateDetector
眼睛状态检测器。
### 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 构造函数
#### EyeStateDetector
|参数 | 类型 |缺省值|说明|
|---|---|---|---|
|setting|const SeetaModelSetting&| |检测器结构参数|
### 3.4 成员函数
#### Detect
输入原始图像数据和人脸特征点,返回左眼和右眼的状态。
|参数 | 类型 |缺省值|说明|
|---|---|---|---|
|image|const SeetaImageData&| |原始图像数据|
|points|const SeetaPointF*| |人脸特征点数组|
|leftState|EYE_STATE| |返回的左眼状态|
|rightState|EYE_STATE| |返回的右眼状态|
说明:EYE_STATE可取值为EYE_CLOSE(闭眼)、EYE_OPEN(睁眼)、EYE_RANDOM(非眼部区域)和EYE_UNKNOWN(未知状态)。
#### set
设置相关属性值。其中
**PROPERTY_NUMBER_THREADS**:
表示计算线程数,默认为 4.
|参数 | 类型 |缺省值|说明|
|---|---|---|---|
|property|Property||属性类别|
|value|double||设置的属性值|
|返回值|void| | | |
#### get
获取相关属性值。
|参数 | 类型 |缺省值|说明|
|---|---|---|---|
|property|Property||属性类别|
|返回值|double||对应的属性值|