#ifndef _CNNCls_H_ #define _CNNCls_H_ #include #include "utils.h" #include "acl/acl.h" #include "model_process.h" using namespace std; namespace atlas_utils { #ifndef BBOX_WIDTH #define BBOX_WIDTH 8 #endif #ifndef DATA_TYPE_SIZE #define DATA_TYPE_SIZE 4 #endif class CnnCls { public: struct ConfigParams { float confThr = 0.0; //显示初始化,有的编译器会不执行默认初始化 }; CnnCls() {} ~CnnCls() { Release(); } int Init(const char* modelPath); int Inference(ImageData& input); int PostProcess(vector& result); int PostProcess_batch(vector>& result); int GetInputWidth(); int GetInputHeight(); ConfigParams config; private: void Release(); vector> outDims_; vector> inDims_; ModelProcess model_; uint32_t modelWidth_; uint32_t modelHeight_; aclrtRunMode runMode_; }; } #endif