cnn_cls.h 1011 Bytes
#ifndef _CNNCls_H_
#define _CNNCls_H_

#include <memory>
#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<float>& result);
    int PostProcess_batch(vector<vector<float>>& result);

    int GetInputWidth();
    int GetInputHeight();

    ConfigParams config;

private:
    void Release();

    vector<vector<int>> outDims_;
    vector<vector<int>> inDims_;
    ModelProcess model_;
    uint32_t modelWidth_;
    uint32_t modelHeight_;
    aclrtRunMode runMode_;

};

}

#endif