Video Analysis底层库拆分,sdk的go封装
chenshijun
2020-09-09 a3dc3aa4ec63bcc7844bc4ae7a77f992b9fa74dd
csdk_struct.h
@@ -62,6 +62,20 @@
    long        nFaceID;//face tracking id
} cFaceInfo;
typedef struct _cThfqParam{
   int brightness_min;//0-100,太暗阈值,建议25.越小越可能把过暗的人脸当作正常人脸,此参数会影响THFQ_Result::brightness
   int brightness_max;//0-100,太亮阈值,建议75.越大越可能把的过亮人脸当作正常人脸,此参数会影响THFQ_Result::brightness
}cThfqParam;
typedef struct _cThfqResult{
   int brightness;//人脸亮度,只有3种可能的值:[-1->太暗,0->正常,1->太亮],亮度结果会受亮度阈值参数brightness_min和brightness_max影响
   int occlusion;//人脸遮挡度,范围值为0-100,越大表示人脸遮挡程度越高
   int hat;//带帽子,范围为0-100,越大表示越可能有佩戴帽子,建议判别阈值为50
   int blur;//人脸模糊度,范围值为0-100,越大表示图像越模糊,建议人脸模糊度判别阈值为70
   int glasses;//带眼镜,范围为0-100,越大表示越可能有戴眼镜,建议判别阈值为70
}cThfqResult;
typedef struct _cObjInfo
{
    cRECT rcObj;
@@ -69,8 +83,43 @@
    float prob;
} cObjInfo;
typedef struct _cPlateIDResult
{
typedef struct _cPlateIDCfg {
    int nFastMemorySize;            // 单位 K
    int nMemorySize;                // 单位 M
    int nMinPlateWidth;            // 检测的最小车牌宽度,以像素为单位
    int nMaxPlateWidth;            // 检测的最大车牌宽度,以像素为单位
    int nMaxImageWidth;            // 最大图像宽度
    int nMaxImageHeight;         // 最大图像高度
    unsigned char bIsFieldImage;   // 是否是场图像
    unsigned char bMovingImage;      // 识别运动or静止图像
    unsigned char nOrderOpt;      // 输出顺序选项 0-置信度 1-自上而下 2-自下而上
    unsigned char bLeanCorrection;   // 是否启用车牌旋转功能,默认开启
    unsigned char nImproveSpeed;   // 0: 识别率优先 1:识别速度优先
    unsigned char bCarLogo;         // 0: 不检测车标 1: 检测车标
    unsigned char bLotDetect;      // 0: 不检测车位 1: 检测车位
    unsigned char bShadow;         // 0: 针对无阴影的车牌 1:针对有阴影的车牌,默认开启
    unsigned char bShieldRailing;   // 0: 屏蔽栏杆干扰, 1:不屏蔽栏杆干扰
    unsigned char bCarModel;      // 0: 不识别车型, 1: 识别车型
    unsigned char bLocateTh;      // 车牌定位阈值
    unsigned char bOCRTh;           // 车牌识别阈值
    unsigned char bIndividual;      // 个性化车牌开启
    unsigned char bTwoRowYellow;   // 双层黄色车牌开启
    unsigned char bArmPolice;      // 单层武警车牌开启
    unsigned char bArmPolice2;      // 双层武警车牌开启
    unsigned char bTwoRowArmy;      // 双层军队车牌开启
    unsigned char bTractor;          // 农用车车牌开启
    unsigned char bEmbassy;          // 使馆车牌开启
    unsigned char bChangNei;      // 厂内车牌开启
    unsigned char bMinHang;          // 民航车牌开启
    unsigned char bConsulate;      // 领事馆车牌开启
    unsigned char bNewEnergy;      // 新能源车牌开启
    unsigned char bOnlyTwoRowYellow;// 只识别双层黄牌开启
    unsigned char bOnlyLocation;    // 只定位车牌开启
}cPlateIDCfg;
typedef struct _cPlateIDResult {
   char license[16];   // 车牌字符串
   char color[8];      // 车牌颜色
@@ -96,4 +145,87 @@
   unsigned short nCarModelConfidence;   // 车型可信度   
}cPlateIDResult;
typedef struct _cPlateIDCloudSDKCfg {
   int iImageMode;         //0:为帧模式 1:为场模式
   int iRecMode;           //识别模式,0:单张图片识别,1:视频检测+识别,2:视频多帧融合识别(注:1模式比2模式快,但识别率和捕获率比2低)
   int iMinPlateWidth;     //识别最小车牌宽度
   int iMaxPlateWidth;     //识别最大车牌宽度
   int iImageWidth;        //图片宽度
   int iImageHeight;       //图片高度
   int iMinHorAngle;
   int iMaxHorAngle;       //水平矫正角度范围,支持最大角度为[-30°,30°]
   int iMinVerAngle;
   int iMaxVerAngle;       //垂直矫正角度范围,支持最大角度为[-30°,30°]
   //此些项针对车型识别有用,其余无用
   float fExpLeftRightR;   //车脸左右扩充(车牌的宽度)倍数 参考值为1.6
   float fExpTopR;         //车脸上部扩充(车牌的高度)倍数 参考值为6.0
   float fExpBottomR;      //车脸下部扩充(车牌的高度)倍数 参考值为1.5
}cPlateIDCloudSDKCfg;
typedef struct _cPlateIDCloudSDKResult {
   char number[20];     //识别结果
   cRECT PlateRect;    //车牌位置
   int x[4];
   int y[4];
   int iConfidence;    //车牌置信度
   int ePlateType;     //车牌类型
   int iMoveDir;       //车辆运动方向 0:朝近运动,1:朝远运动,-1:未知
   int eVColor1;       //车身主颜色
   int eVColor2;       //车身次颜色
   int eVehicleBright; //车辆深浅色
   unsigned char *pResultBits; //视频识别模式中抓拍的图片,视频模式识别下有效,需要开辟
   int iFramNo;        //视频模式下帧号
   int sTime[7];       //视频识别模式中抓拍此张图的时间
   //针对车脸识别应用此项,其余无用
   unsigned char  *pVehicleFaceImage; //对应的车脸的图片,需要提前开辟内存,开辟个最大内存就可以,宽高可以都为1000
   int iVehicleFaceWidth;             //车脸宽度
   int iVehicleFaceHeight;            //车脸高度
   int iGrayFaceFlag;                 //车脸是否为灰度图
   cRECT charLocation[20];     //车牌字符的位置(基于大图)
   int charConfidence[20];     //字符识别置信度
   int iCharNum;               //车牌字符数目
}cPlateIDCloudSDKResult;
typedef struct _cPlateInfo
{
   int ePlateColor;
   int  ePlateType;
   char platenumber[20];         //车牌号码
   int iPlateConfidence;
   int iCharNum;
   int iCharConfidence[20];
}cPlateInfo;
typedef struct _cVehicleITSResult {
   int iPlateFlag;         //是否识别到车牌
   cPlateInfo plateInfo;    //车牌信息
   cRECT plateRect;        //车牌位置
   cRECT tempVehicleRect;  //车辆位置
   char tempVehicleType[1024];     //车辆类型--总名称  jeep-大切诺基-2004
   char tempVehicleBrand[1024];    //车辆品牌       jeep
   char tempVehicleSub[1024];      //车辆子型号     大切诺基
   char tempVehicleType1[1024];    //车辆类型   轿车 货车  客车  面包车
   float fVDConf;                  //车辆检测置信度
   float fConfdence;               //车辆类型置信度
   int iVehicleSubModel;           //车型名称索引
   int eVehicleBright;             //车辆深浅色
   int eVehicleColor1;             //车身主颜色
   int eVehicleColor2;             //车身辅颜色
   unsigned char*pCaptureImage; //视频模式识别下抓拍的图片数据
   int iImageWidth;             //视频模式下抓拍图像宽度
   int iImageHeight;            //视频模式下抓拍图像高度
}cVehicleITSResult;
#endif