motor_phone_det.h
3.22 KB
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
/*******************************************************************************************
* Version: motor_phone_det_x64_v0.0.1
* CopyRight: 中科视语(北京)科技有限公司
* UpdateDate: 20230911
* Content:二轮车玩手机检测
********************************************************************************************/
#ifndef MOTOR_PHONE_DET_H_
#define MOTOR_PHONE_DET_H_
#ifdef _MSC_VER
#ifdef MOTOR_PHONE_DET_EXPORTS
#define MOTOR_PHONE_DET_API __declspec(dllexport)
#else
#define MOTOR_PHONE_DET_API __declspec(dllimport)
#endif
#else
#define MOTOR_PHONE_DET_API __attribute__ ((visibility ("default")))
#endif
#include "sy_common.h"
#define MAX_OBJ_COUNT 1000
#ifdef __cplusplus
extern "C"
{
#endif
typedef struct motor_phone_info //结果结构体
{
int left;
int top;
int right;
int bottom;
int index;
double confidence; // 置信度
}motor_phone_info;
typedef struct motor_phone_result
{
motor_phone_info objinfo[MAX_OBJ_COUNT];
int objcount;
};
typedef struct motor_phone_param
{
//int mode; //运行模式 GPU_MODE 或者 CPU_MODE
int devId; //运行卡号 GPU模式下有效
char* modelNames;
float thresld; //检测阈值 默认为0.3
//int engine; //指定运行引擎(ENGINE_MCAFFE2 / ENGINE_TENSORRT)
//int max_batch; //ָ指定trt最大batch数
//char* trt_serialize_file;
//motor_phone_param() :mode(DEVICE_GPU), gpuid(0), thresld(0.4), engine(ENGINE_MCAFFE2), max_batch(10){};
}motor_phone_param;
/*************************************************************************
* FUNCTION: hst_init
* PURPOSE: 初始化
* PARAM:
[in] handle -处理句柄
[in] param -初始化参数
* RETURN: handle
* NOTES:成功(0)或者错误代码(<0)
*************************************************************************/
MOTOR_PHONE_DET_API int motor_phone_init(void **handle, motor_phone_param param);
MOTOR_PHONE_DET_API int motor_phone_process_batch(void * handle, sy_img *image_data_array, int batchsize, motor_phone_result *result);
/*************************************************************************
* FUNCTION: hst_release
* PURPOSE: 资源释放
* PARAM:
[in] handle - 处理句柄
* RETURN: NULL
* NOTES:
*************************************************************************/
MOTOR_PHONE_DET_API void motor_phone_release(void **handle);
/*************************************************************************
* FUNCTION: hst_process_gpu
* PURPOSE:
* PARAM:
[in] handle - 处理句柄
[in] rgb - 图片数据(3通道BGR数据 cv::Mat格式)
[in] width - 图片宽度
[in] height - 图片高度
[in] result - 搜索结果,在外部申请足够内存
* RETURN: -1:图像错误; 其他:检测到的个数
* NOTES:
*************************************************************************/
MOTOR_PHONE_DET_API int motor_phone_process(void * handle, sy_img image, motor_phone_result *result);
/*************************************************************************
* FUNCTION: hst_getversion
* PURPOSE: 释放
* PARAM: NULL
* RETURN: 版本号
* NOTES:
*************************************************************************/
MOTOR_PHONE_DET_API const char * motor_phone_getversion();
#ifdef __cplusplus
};
#endif
#endif