motor_phone_det.h 3.19 KB
/*******************************************************************************************
* 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 devId;		//运行卡号 GPU模式下有效
		char* modelNames;
		char* modelNames_b;
		float thresld;	//检测阈值 默认为0.3
		int max_batch;
		motor_phone_param() :devId(0), max_batch(8), thresld(0.4), modelNames(nullptr), modelNames_b(nullptr) {};
	}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);
	MOTOR_PHONE_DET_API int motor_phone_process_batchV2(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