/******************************************************************************************* * Version: triffic_light_det_x64_v0.0.1 * CopyRight: 中科视语(北京)科技有限公司 * UpdateDate: 20230922 * Content:头肩检测_货车 ********************************************************************************************/ #ifndef TRAFFIC_LIGHT_H_ #define TRAFFIC_LIGHT_H_ #ifdef _MSC_VER #ifdef TRAFFIC_LIGHT_EXPORTS #define TRAFFIC_LIGHT_API __declspec(dllexport) #else #define TRAFFIC_LIGHT_API __declspec(dllimport) #endif #else #define TRAFFIC_LIGHT_API __attribute__ ((visibility ("default"))) #endif #include "sy_common.h" #define MAX_OBJ_COUNT 1000 #ifdef __cplusplus extern "C" { #endif typedef struct traffic_light_info //结果结构体 { int left; int top; int right; int bottom; double confidence; // 置信度 int index; // 类别索引 }traffic_light_info; typedef struct traffic_light_result { traffic_light_info objinfo[MAX_OBJ_COUNT]; int objcount; }; typedef struct traffic_light_param { int devId; //运行卡号 GPU模式下有效 char* modelNames; char* modelNames_b; float thresld; //检测阈值 默认为0.3 int max_batch; traffic_light_param() :devId(0), max_batch(8), thresld(0.4), modelNames(nullptr), modelNames_b(nullptr) {}; }traffic_light_param; /************************************************************************* * FUNCTION: hst_init * PURPOSE: 初始化 * PARAM: [in] handle -处理句柄 [in] param -初始化参数 * RETURN: handle * NOTES:成功(0)或者错误代码(<0) *************************************************************************/ TRAFFIC_LIGHT_API int traffic_light_init(void **handle, traffic_light_param param); TRAFFIC_LIGHT_API int traffic_light_process_batch(void * handle, sy_img *image_data_array, int batchsize, traffic_light_result *result); TRAFFIC_LIGHT_API int traffic_light_process_batchV2(void * handle, sy_img *image_data_array, int batchsize, traffic_light_result *result); /************************************************************************* * FUNCTION: hst_release * PURPOSE: 资源释放 * PARAM: [in] handle - 处理句柄 * RETURN: NULL * NOTES: *************************************************************************/ TRAFFIC_LIGHT_API void traffic_light_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: *************************************************************************/ TRAFFIC_LIGHT_API int traffic_light_process(void * handle, sy_img image, traffic_light_result *result); /************************************************************************* * FUNCTION: hst_getversion * PURPOSE: 释放 * PARAM: NULL * RETURN: 版本号 * NOTES: *************************************************************************/ TRAFFIC_LIGHT_API const char * traffic_light_getversion(); #ifdef __cplusplus }; #endif #endif