VehicleHeadTail.h 882 Bytes
#include "sy_errorinfo.h"
#include "cnn_cls.h"
#include "dvpp_processx.h"
#include <time.h>
#include <sys/time.h>
#include "stream_data.h"
#include <string.h>
#include <vector>

using namespace atlas_utils;
using namespace std;

typedef struct head_tail_param
{
    int devId;              //ָ指定显卡id
    int max_batch;
    std::string sdk_root;
    head_tail_param() :devId(0), max_batch(8){};
} head_tail_param;

struct HeadTailResult {
    int cls;        // {'车尾': 0, '车侧': 1, '车头': 2}
    float confidence;
};

class VehicleHeadTail
{

public:
    VehicleHeadTail(/* args */);
    ~VehicleHeadTail();

    int init(head_tail_param param);

    int detect(vector<sy_img>, vector<HeadTailResult>&);

private:
    int release();

private:
    aclrtContext m_ctx;
    aclrtStream stream;
    CnnCls*  m_cnn_cls;
    DvppProcessx* m_dvpp;
    int max_batch;
};