/******************************************************************************************* * Version: human_car_parsing_v0.0.0 * CopyRight: 中科院自动化研究所模式识别实验室图像视频组 * UpdateDate: 20190402 * Content: 人骑车语义分析 ********************************************************************************************/ #ifndef HUMANCARPARSING_H_ #define HUMANCARPARSING_H_ #ifdef _MSC_VER #ifdef HUMANCARPARSING_EXPORTS #define HUMANCARPARSING_API __declspec(dllexport) #else #define HUMANCARPARSING_API __declspec(dllimport) #endif #else #define HUMANCARPARSING_API __attribute__ ((visibility ("default"))) #endif #include "sy_common.h" #ifdef __cplusplus extern "C" { #endif #ifndef __CLASSIFY_OBJ_RESULT__ #define __CLASSIFY_OBJ_RESULT__ typedef struct classify_obj_res //分类结果结构体 { int res_index; //分类结果 float res_prob; //分类结构体 classify_obj_res() : res_index(0), res_prob(0) {}; } classify_obj_res; #endif #ifndef __HCF_FEA_RES__ #define __HCF_FEA_RES__ const int HCF_FEATURE_SIZE = 1280; #endif #ifndef __HCP_RESULT__ #define __HCP_RESULT__ const int HCP_ATTRI_INDEX_SIZE = 14; typedef struct hcp_analysis_result { classify_obj_res res_objs[HCP_ATTRI_INDEX_SIZE]; //分类结果 float feature[HCF_FEATURE_SIZE]; //人骑车特征 } hcp_analysis_result; #endif #ifndef __HCP_PARAM__ #define __HCP_PARAM__ typedef struct hcp_param { int devId; //ָ指定显卡id char* modelNames; char* modelNames_b; int max_batch; hcp_param() :devId(0), max_batch(8), modelNames(nullptr), modelNames_b(nullptr) {}; }hcp_param; #endif /************************************************************************* * FUNCTION: hcp_init * PURPOSE: 初始化 * PARAM: [out] tools - 句柄 [in] param - 初始化参数 * RETURN: [out] int - 初始化是否成功(SUCCEEDED表示成功,FAILED表示失败) * NOTES: *************************************************************************/ HUMANCARPARSING_API int hcp_init(void ** handle, hcp_param param); /************************************************************************* * FUNCTION: hcp_process * PURPOSE: 人骑车属性检测 * PARAM: [in] tools - 句柄 [in] img_data - 检测图像数据 [in] result - 检测结果 * RETURN: [out] int - 检测是否成功(SUCCEEDED表示成功,FAILED表示失败) * NOTES: *************************************************************************/ // HUMANCARPARSING_API int hcp_process(void * handle, sy_img img_data, hcp_analysis_result * result); /************************************************************************* * FUNCTION: hcp_batch * PURPOSE: 人骑车属性检测 * PARAM: [in] tools - 句柄 [in] img_data_array - 检测图像数据 [in] batch_size - 检测图像数目 [in] result - 检测结果 * RETURN: [out] int - 检测是否成功(SUCCEEDED表示成功,FAILED表示失败) * NOTES: *************************************************************************/ HUMANCARPARSING_API int hcp_batch(void * handle, sy_img * img_data_array, int batch_size, hcp_analysis_result * result); HUMANCARPARSING_API int hcp_batchV2(void *handle, sy_img* img_data_array, int batch_size, hcp_analysis_result * result); /************************************************************************* * FUNCTION: hcp_release * PURPOSE: 资源释放 * PARAM: [in] tools - 处理句柄 * RETURN: NULL * NOTES: *************************************************************************/ HUMANCARPARSING_API void hcp_release(void ** handle); /************************************************************************* * FUNCTION: hcp_get_version * PURPOSE: * PARAM: NULL * RETURN: 版本号 * NOTES: *************************************************************************/ HUMANCARPARSING_API const char * hcp_get_version(); #ifdef __cplusplus }; #endif #endif