human_car_parsing.h 3.98 KB
/*******************************************************************************************
* 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