Video Analysis底层库拆分,sdk的go封装
chenshijun
2020-09-09 a3dc3aa4ec63bcc7844bc4ae7a77f992b9fa74dd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
#ifndef THFACEQUALITY_I_H
#define THFACEQUALITY_I_H
 
#include "THFaceImage_i.h"
 
/*
* ============================================================================
*  Name     : THFaceQuality_i.h
*  Part of  : Face Quality (THFaceQuality) SDK
*  Created  : 5.11.2019 by XXX
*  Description:
*     THFaceQuality_i.h -  Face Quality (THFaceQuality) SDK header file
*  Version  : 1.0.0
*  Copyright: All Rights Reserved by XXXX
*  Revision:
* ============================================================================
*/
 
#define THFACEQUALITY_API extern "C"
 
struct THFQ_Param
{
    int brightness_min;//0-100,太暗阈值,建议25.越小越可能把过暗的人脸当作正常人脸,此参数会影响THFQ_Result::brightness
    int brightness_max;//0-100,太亮阈值,建议75.越大越可能把的过亮人脸当作正常人脸,此参数会影响THFQ_Result::brightness
};
 
struct THFQ_Result
{
    int brightness;//人脸亮度,只有3种可能的值:[-1->太暗,0->正常,1->太亮],亮度结果会受亮度阈值参数brightness_min和brightness_max影响
    int occlusion;//人脸遮挡度,范围值为0-100,越大表示人脸遮挡程度越高
    int hat;//带帽子,范围为0-100,越大表示越可能有佩戴帽子,建议判别阈值为50
    int blur;//人脸模糊度,范围值为0-100,越大表示图像越模糊,建议人脸模糊度判别阈值为70
    int glasses;//带眼镜,范围为0-100,越大表示越可能有戴眼镜,建议判别阈值为70
};
 
THFACEQUALITY_API int THFQ_Create(short nChannelNum);
/*
描述:初始化人脸质量模块,建议在应用程序初始化时调用一次
参数:
    nChannelNum[intput],算法通道数,一个线程使用一个通道
返回值:
    大于0为成功初始化的通道数,小于等于0为加载模型失败
*/
 
THFACEQUALITY_API void THFQ_Release();
/*
描述:释放人脸质量模块,建议在应用程序退出时调用一次
参数:
    无
返回值:
    无
*/
 
THFACEQUALITY_API void THFQ_SetParam(THFQ_Param* pParam);
/*
描述:设置参数
参数:
    pParam[input],算法相关参数,主要是亮度阈值,如果参数为NULL,算法内部将使用默认值
返回值:
    无
*/
 
THFACEQUALITY_API int THFQ_Check(short nChannelID, BYTE* pImage, int bpp, int nWidth, int nHeight, THFI_FacePos* pfp,THFQ_Result* pResult);
/*
描述:获取一个人脸的所有质量判别结果
参数:
    nChannelID[intput],通道id,与初始化THFQ_Create相关,一般来说合法的通道id为0到nChannelNum-1
    pImage[input],图像数据地址,图像数据必须为bgr顺序
    bpp[input],图像数据格式,必须为24,代表bgr三通道数据
    nWidth[input],图像宽
    nHeight[input],图像高
    pfp[input],人脸检测结果,由THFaceImage模块的人脸检测接口THFI_DetectFace返回的THFI_FacePos数据
    pResult[output],质量判别结果
返回值:
    -1,算法未初始化或通道id非法
    -2,图像数据参数非法
    -3,pfp或pResult为NULL
    0,成功
*/
 
THFACEQUALITY_API int THFQ_Check_Brightness(short nChannelID, BYTE* pImage, int bpp, int nWidth, int nHeight, THFI_FacePos* pfp, int* nBrightness);
/*
描述:获取一个人脸的亮度判别结果
参数:
    nChannelID[intput],通道id,与初始化THFQ_Create相关,一般来说合法的通道id为0到nChannelNum-1
    pImage[input],图像数据地址,图像数据必须为bgr顺序
    bpp[input],图像数据格式,必须为24,代表bgr三通道数据
    nWidth[input],图像宽
    nHeight[input],图像高
    pfp[input],人脸检测结果,由THFaceImage模块的人脸检测接口THFI_DetectFace返回的THFI_FacePos数据
    nBrightness[output],亮度判别结果
返回值:
    -1,算法未初始化或通道id非法
    -2,图像数据参数非法
    -3,pfp或nBrightness为NULL
    0,成功
*/
 
THFACEQUALITY_API int THFQ_Check_Occlusion(short nChannelID, BYTE* pImage, int bpp, int nWidth, int nHeight, THFI_FacePos* pfp, int* nOcclusion);
/*
描述:获取一个人脸的遮挡判别结果
参数:
    nChannelID[intput],通道id,与初始化THFQ_Create相关,一般来说合法的通道id为0到nChannelNum-1
    pImage[input],图像数据地址,图像数据必须为bgr顺序
    bpp[input],图像数据格式,必须为24,代表bgr三通道数据
    nWidth[input],图像宽
    nHeight[input],图像高
    pfp[input],人脸检测结果,由THFaceImage模块的人脸检测接口THFI_DetectFace返回的THFI_FacePos数据
    nOcclusion[output],遮挡判别结果
返回值:
    -1,算法未初始化或通道id非法
    -2,图像数据参数非法
    -3,pfp或nOcclusion为NULL
    0,成功
*/
 
THFACEQUALITY_API int THFQ_Check_Hat(short nChannelID, BYTE* pImage, int bpp, int nWidth, int nHeight, THFI_FacePos* pfp, int* nHat);
/*
描述:获取一个人脸的帽子判别结果
参数:
    nChannelID[intput],通道id,与初始化THFQ_Create相关,一般来说合法的通道id为0到nChannelNum-1
    pImage[input],图像数据地址,图像数据必须为bgr顺序
    bpp[input],图像数据格式,必须为24,代表bgr三通道数据
    nWidth[input],图像宽
    nHeight[input],图像高
    pfp[input],人脸检测结果,由THFaceImage模块的人脸检测接口THFI_DetectFace返回的THFI_FacePos数据
    nHat[output],帽子判别结果
返回值:
    -1,算法未初始化或通道id非法
    -2,图像数据参数非法
    -3,pfp或nHat为NULL
    0,成功
*/
 
THFACEQUALITY_API int THFQ_Check_BlurGlasses(short nChannelID, BYTE* pImage, int bpp, int nWidth, int nHeight, THFI_FacePos* pfp, int* nBlur,int* nGlasses);
/*
描述:获取一个人脸的模糊度与眼镜判别结果
参数:
    nChannelID[intput],通道id,与初始化THFQ_Create相关,一般来说合法的通道id为0到nChannelNum-1
    pImage[input],图像数据地址,图像数据必须为bgr顺序
    bpp[input],图像数据格式,必须为24,代表bgr三通道数据
    nWidth[input],图像宽
    nHeight[input],图像高
    pfp[input],人脸检测结果,由THFaceImage模块的人脸检测接口THFI_DetectFace返回的THFI_FacePos数据
    nBlur[output],模糊度判别结果
    nGlasses[output],眼镜判别结果
返回值:
    -1,算法未初始化或通道id非法
    -2,图像数据参数非法
    -3,pfp或nBlur或nGlasses为NULL
    0,成功
*/
 
 
#endif