Blame view

src/ai_engine_module/motor_phone_det.h 3.22 KB
c5fce6ce   Zhao Shuaihua   增加二轮车玩手机505、加装雨棚5...
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