HumanCarAnalysis.h 2.19 KB
#ifndef __HUMAN_CAR_ANALYSIS_H__
#define __HUMAN_CAR_ANALYSIS_H__


#include "include.h"

struct HumanCarResult {
    int head;                   // 0 – (长发) , 1 - (短发) , 2 - (光头) , 3 -( 帽子),  4- (头盔), 5– (其他)
    float head_prob;
    int eye;                    // 0 – (未戴眼镜) , 1 - (戴眼镜) 
    float eye_prob;
    int mouth;                  // 0 – (未戴口罩) , 1 - (戴口罩) 
    float mouth_prob;
    int weibo;                  // 0 – (未戴围巾) , 1 - (戴围巾)
    float weibo_prob;
    int up_wear;                // 0 – (T恤/背心) , 1 - (衬衫) , 2 - (毛衣) , 3 - (羽绒服) , 4 – (大衣/风衣) , 5 – (外套/夹克/西服) , 6 - (连衣裙) , 7 - (无上衣) , 8 – (其他) 
    float up_wear_prob;
    int up_color{14};               // 0 – (黑) , 1 - (白) , 2 - (红) , 3 - (黄) , 4 – (蓝) , 5 – (绿) , 6 – (灰) , 7 – (多色) , 8 – (其他) 
    float up_color_prob{0.0};
    int up_tex;                 // 0 – (纯色) , 1 - (碎花) , 2 - (条纹) , 3 - (格子) , 4 – (其他)
    float up_tex_prob;
    int bag;                    // 0 – (无包) , 1 - (背包) 
    float bag_prob;
    int sex;                    // 0 – (男) , 1 - (女) , 2 - (其他) 
    float sex_prob;
    int age;                    // 0 – (小孩) , 1 - (青年) , 2 - (中年) , 3 - (老年) , 4 – (其他) 
    float age_prob;
    int carColor;               // 0 – (黑) , 1 - (白) , 2 - (红) , 3 - (黄) , 4 – (蓝) , 5 – (绿) , 6 – (灰/银) , 7 – (多色) , 8 – (其他) 
    float carColor_prob;
    int orient{0};                 // 0 – (正面) , 1 - (背面) , 2 - (侧面)
    float orient_prob{0.0};
    int dasan;                  // 0 – (无) , 1 - (有) 
    float dasan_prob;
    int take;                   // 0 – (无) , 1 - (有)
    float take_prob;
};

class HumanCarAnalysis
{
public:
    HumanCarAnalysis(/* args */);
    ~HumanCarAnalysis();
    
    int init(int devId, std::string sdk_root);

    std::vector<HumanCarResult> detect(vector<sy_img> vec_img);

private:
    int release();

private:
    void* m_handle{nullptr};
    aclrtContext ctx{nullptr};
};



#endif      // __HUMAN_CAR_ANALYSIS_H__