|
|
#ifndef _ARITH_COMMONDEF_
|
|
|
#define _ARITH_COMMONDEF_
|
|
|
|
|
|
|
|
|
#include <stdbool.h>
|
|
|
/*********版权所有(C)2020,武汉高德红外股份有限公司***************************************
|
|
|
* 文件名称: Arith_CommonDef.h
|
|
|
* 文件标识:通用数据结构定义
|
|
|
* 内容摘要:
|
|
|
* 其它说明:
|
|
|
* 当前版本:
|
|
|
* 创建作者:
|
|
|
* 创建日期:2020/12/05
|
|
|
* 包含关系:
|
|
|
*****************************************************************************************/
|
|
|
|
|
|
typedef void* ArithHandle; // 算法句柄类型
|
|
|
|
|
|
|
|
|
// 跟踪器输入规模定义,注意栈空间
|
|
|
#define INPUT_OBJ_NUM (100) //外部最大输入目标个数
|
|
|
|
|
|
// 跟踪器输出规模定义
|
|
|
#define ST_OBJ_NUM (100) //短时目标个数
|
|
|
#define LT_OBJ_NUM (10) //长时跟踪目标个数
|
|
|
|
|
|
|
|
|
//外部系统状态(总体下发)
|
|
|
typedef enum tagGLB_SYS_MODE
|
|
|
{
|
|
|
GLB_SYS_WAIT = 0x01, // 空闲
|
|
|
GLB_SYS_STARE = 0x02, // 凝视
|
|
|
GLB_SYS_FSCAN = 0x03, // 扇扫
|
|
|
GLB_SYS_AUTO = 0x04, // 自主搜跟(无人值守)
|
|
|
GLB_SYS_SCAN = 0x05 // 周扫
|
|
|
}GLB_SYS_MODE;
|
|
|
|
|
|
// 场景模式
|
|
|
typedef enum tagGLB_SCEN_MODE
|
|
|
{
|
|
|
GLB_SCEN_SKY = 0x01, // 对空模式
|
|
|
GLB_SCEN_GROUND = 0x02, // 对地模式
|
|
|
GLB_SCEN_SEA = 0x03, // 对海模式
|
|
|
GLB_SCEN_NONE = 0x00, // 未设置
|
|
|
GLB_SCEN_LAB = 0x04, // 实验室靶标
|
|
|
GLB_SCEN_CUSTOM = 0x05 // 自定义模式:用于算法开发验证,不稳定版本 add @ 20241010
|
|
|
}GLB_SCEN_MODE;
|
|
|
|
|
|
// 外引导来源
|
|
|
typedef enum tagGLB_GUIDE_SOURCE
|
|
|
{
|
|
|
GLB_GUIDE_RADAR = 0x01, //载机雷达
|
|
|
GLB_GUIDE_WARNINGPLANE = 0x02 //预警机
|
|
|
}GLB_GUIDE_SOURCE;
|
|
|
|
|
|
|
|
|
// 视频源
|
|
|
typedef enum tagGLB_VIDEO_TYPE
|
|
|
{
|
|
|
GLB_VIDEO_IR_SW = 0x01,//红外短波
|
|
|
GLB_VIDEO_IR_MW = 0x02,//红外中波
|
|
|
GLB_VIDEO_IR_LW = 0x03,//红外长波
|
|
|
GLB_VIDEO_VL = 0x04 //电视
|
|
|
}GLB_VIDEO_TYPE;
|
|
|
|
|
|
|
|
|
// 红外截波段类型,用于多光谱目标识别,根据需要添加
|
|
|
typedef enum tagGLB_IR_BAND_TYPE
|
|
|
{
|
|
|
GLB_BAND_MW_0 = 0x020,//中波全色
|
|
|
GLB_BAND_MW_1 = 0x021,//中波1
|
|
|
GLB_BAND_MW_2 = 0x022//中波2
|
|
|
}GLB_IR_BAND_TYPE;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 捕控导引阶段定义(算法内部状态)
|
|
|
typedef enum tagGLB_STATUS
|
|
|
{
|
|
|
GLB_STATUS_UNKOWN = 0, //捕控导引阶段 - 未知
|
|
|
GLB_STATUS_WAIT = 1, //捕控导引阶段 - 待命状态
|
|
|
GLB_STATUS_SEARCH = 2, //捕控导引阶段 - 搜索状态
|
|
|
GLB_STATUS_TRACK = 3, //捕控导引阶段 - 跟踪
|
|
|
GLB_STATUS_SCAN = 4, //捕控导引阶段 - 周扫
|
|
|
GLB_STATUS_LOST = 5, //捕控导引阶段 - 跟踪丢失
|
|
|
GLB_STATUS_FSCAN = 6, //捕控导引阶段 - 扇扫
|
|
|
GLB_STATUS_MOTRACK = 9, //多目标跟踪状态
|
|
|
GLB_STATUS_AIM = 10 //内校轴阶段
|
|
|
}GLB_STATUS;
|
|
|
|
|
|
// 算法标识
|
|
|
typedef enum tagemObjSrc
|
|
|
{
|
|
|
Arith_DST = 1,
|
|
|
Arith_DAT = 2,
|
|
|
Arith_AI = 3,
|
|
|
Arith_KCF = 4,
|
|
|
Arith_TLD = 5,
|
|
|
Arith_Manual = 6,
|
|
|
Arith_SiamRPN = 7,
|
|
|
Arith_NanoTrack = 8,
|
|
|
Arith_VitTrack = 9
|
|
|
}ObjSrc;
|
|
|
|
|
|
// 尺度模式
|
|
|
typedef enum tagSizeType
|
|
|
{
|
|
|
unKnown, //不确定目标或未识别尺寸类型
|
|
|
DDimTarget, //超级弱小目标
|
|
|
DimTarget, //弱小目标
|
|
|
SmallTarget, //小目标
|
|
|
MiddleTarget, //临界目标
|
|
|
AreaTarget //面目标
|
|
|
}SizeType;
|
|
|
|
|
|
// 灰度模式
|
|
|
typedef enum tagGrayType
|
|
|
{
|
|
|
BrightTarget = 1, //亮目标
|
|
|
DarkTarget = 2, //暗目标
|
|
|
AllGray = 3 //亮暗目标
|
|
|
}GrayType;
|
|
|
|
|
|
|
|
|
|
|
|
// 目标跟踪状态
|
|
|
typedef enum tagTrackingStatus
|
|
|
{
|
|
|
NOT_TRACKING = 0,//未跟踪
|
|
|
STABLE_TRACKING = 1,//稳跟
|
|
|
MEM_TRACKING = 2//记忆跟踪
|
|
|
}TrackingStatus;
|
|
|
|
|
|
|
|
|
// 遮挡事件等级判断
|
|
|
typedef enum tagOccLev
|
|
|
{
|
|
|
NO_OCC = 0, //无遮挡
|
|
|
SIM_OCC = 1,//轻微遮挡
|
|
|
MID_OCC = 2,//中等遮挡
|
|
|
FULL_OCC = 3//完全遮挡
|
|
|
}OccLev;
|
|
|
|
|
|
// 目标形变事件
|
|
|
typedef enum tagShapeTransLev
|
|
|
{
|
|
|
NO_ShapeTrans = 0,//无形变
|
|
|
MID_ShapeTrans = 1,//轻微形变
|
|
|
FULL_ShapeTrans = 2//显著形变
|
|
|
}ShapeTransLev;
|
|
|
|
|
|
|
|
|
// 跟踪事件(可包含所有跟踪期间需要特殊处理的事件
|
|
|
// 如强制记忆跟踪、遮挡、形变、变焦、变倍等)
|
|
|
typedef struct tagTrackEvent
|
|
|
{
|
|
|
OccLev occ;
|
|
|
ShapeTransLev shapeTrans;
|
|
|
}TrackEvent;
|
|
|
|
|
|
//跟踪决策事件
|
|
|
typedef enum tagTrackDecision
|
|
|
{
|
|
|
NO_Deci = 0, //无决策结果
|
|
|
KCF_Deci = 1, //KCF
|
|
|
AIT_Deci = 2, //AI
|
|
|
AID_Deci = 3, //AI识别
|
|
|
Predict_Deci =4 //长时预测
|
|
|
}TrackDecision;
|
|
|
|
|
|
// 定义红外目标类别编号
|
|
|
#define DT_TARGET_CLS_ID 99 //红外检测无目标区分能力,赋值为99
|
|
|
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
// 系统符号定义
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
typedef bool BBOOL;
|
|
|
typedef unsigned char UBYTE8;
|
|
|
typedef signed char BYTE8;
|
|
|
typedef unsigned short UINT16;
|
|
|
typedef short SINT16;
|
|
|
typedef unsigned int UINT32;
|
|
|
typedef int SINT32;
|
|
|
typedef unsigned long COLORREF;
|
|
|
typedef unsigned short WORD;
|
|
|
typedef unsigned long DWORD;
|
|
|
typedef unsigned char BYTE;
|
|
|
typedef float FLOAT32;
|
|
|
typedef double DOUBLE64;
|
|
|
typedef long double LDOUBLE80;
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
// 系统数据结构
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
// 定义坐标结构体--整型32位
|
|
|
typedef struct tagPoint32S // BYTES: 2*4=8
|
|
|
{
|
|
|
SINT32 x; // 图像像素x坐标
|
|
|
SINT32 y; // 图像像素y坐标
|
|
|
} POINT32S;
|
|
|
|
|
|
// 定义坐标结构体--整型16位
|
|
|
typedef struct tagPoint16S // BYTES: 2*2=4
|
|
|
{
|
|
|
SINT16 x; // 图像像素x坐标
|
|
|
SINT16 y; // 图像像素y坐标
|
|
|
} POINT16S;
|
|
|
|
|
|
// 定义坐标结构体--浮点型
|
|
|
typedef struct tagPoint32F // BYTES: 2*4=8
|
|
|
{
|
|
|
FLOAT32 x; // 图像像素x坐标
|
|
|
FLOAT32 y; // 图像像素y坐标
|
|
|
} POINT32F;
|
|
|
|
|
|
|
|
|
// RPY姿态角
|
|
|
typedef struct tgEulerRPY
|
|
|
{
|
|
|
double fRoll; // 横滚角
|
|
|
double fPitch; // 俯仰角
|
|
|
double fYaw; // 方位角
|
|
|
} EulerRPY; // 单位:°
|
|
|
|
|
|
|
|
|
|
|
|
// 极坐标系
|
|
|
typedef struct tgPointPole
|
|
|
{
|
|
|
double alpha; // 俯仰角
|
|
|
double beta; // 方位角
|
|
|
double distance; // 极径
|
|
|
} Pole; // 单位:°
|
|
|
|
|
|
|
|
|
|
|
|
// 空间直角坐标系,也可以看做向量
|
|
|
typedef struct tgPointXYZ
|
|
|
{
|
|
|
double X;
|
|
|
double Y;
|
|
|
double Z;
|
|
|
} PointXYZ; // 单位:米
|
|
|
|
|
|
|
|
|
typedef struct tgPointBLH
|
|
|
{
|
|
|
double B; // 纬度
|
|
|
double L; // 经度
|
|
|
double H; // 高程
|
|
|
} PointBLH; // 地理坐标系 //单位:°
|
|
|
|
|
|
|
|
|
// 相机内参
|
|
|
typedef struct tgCameraParam
|
|
|
{
|
|
|
int ImageWidth;
|
|
|
int ImageHeight;
|
|
|
float f; // 焦距 mm
|
|
|
float dSize; // 像元尺寸 um
|
|
|
int dx; // 像主点偏移x,0代表图像中心
|
|
|
int dy; // 像主点偏移y,0代表图像中心
|
|
|
float fAglReso;// 角分辨率,内部计算便于使用
|
|
|
|
|
|
bool bImageRataSys; //像旋系统标记,S731实物样机1,数字样机未模拟像旋 -0
|
|
|
} CameraParam;
|
|
|
|
|
|
// 伺服信息
|
|
|
typedef struct tgServoParam
|
|
|
{
|
|
|
float fAz; // 方位
|
|
|
float fPt; // 俯仰
|
|
|
|
|
|
// S731扩展
|
|
|
float fFSMAz; // 快反方位
|
|
|
float fFSMPt; // 快反俯仰
|
|
|
} ServoParam;
|
|
|
|
|
|
typedef struct tgDeviceSetupError
|
|
|
{
|
|
|
double g_YawBias;
|
|
|
double g_PitchBias;
|
|
|
double g_RollBias;
|
|
|
double g_XBias;
|
|
|
double g_YBias;
|
|
|
double g_ZBias;
|
|
|
} DeviceSetupError;
|
|
|
|
|
|
// 定义目标宽高结构体--32位 //BYTES: 3*4=12
|
|
|
typedef struct tagSize32S
|
|
|
{
|
|
|
SINT32 w; // 宽度
|
|
|
SINT32 h; // 高度
|
|
|
SINT32 s; // 面积
|
|
|
|
|
|
} SIZE32S;
|
|
|
|
|
|
// 定义目标宽高结构体--浮点型
|
|
|
typedef struct tagSize32F // BYTES: 3*4=12
|
|
|
{
|
|
|
FLOAT32 w; // 宽度
|
|
|
FLOAT32 h; // 高度
|
|
|
FLOAT32 s; // 面积
|
|
|
} SIZE32F;
|
|
|
|
|
|
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
|
// 定义速度结构体--整型32位 //BYTES: 2*4=8
|
|
|
typedef struct tagSpeed32S
|
|
|
{
|
|
|
SINT32 vx; // x方向速度
|
|
|
SINT32 vy; // y方向速度
|
|
|
} SPEED32S;
|
|
|
|
|
|
// 定义速度结构体--浮点型
|
|
|
typedef struct tagSpeed32F // BYTES: 2*4=8
|
|
|
{
|
|
|
FLOAT32 vx; // x方向速度
|
|
|
FLOAT32 vy; // y方向速度
|
|
|
} SPEED32F;
|
|
|
|
|
|
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
|
// 定义矩形结构体--左上角坐标及宽高--整型16位
|
|
|
typedef struct tagRect16S // BYTES: 4*2=8
|
|
|
{
|
|
|
SINT16 x; // 左上点x坐标
|
|
|
SINT16 y; // 左上点y坐标
|
|
|
SINT16 w; // 矩形宽度
|
|
|
SINT16 h; // 矩形高度
|
|
|
} RECT16S;
|
|
|
|
|
|
// 定义矩形结构体--左上角坐标及宽高--整型32位
|
|
|
typedef struct tagRect32S // BYTES: 4*4=16
|
|
|
{
|
|
|
SINT32 x; // 左上点x坐标
|
|
|
SINT32 y; // 左上点y坐标
|
|
|
SINT32 w; // 矩形宽度
|
|
|
SINT32 h; // 矩形高度
|
|
|
} RECT32S;
|
|
|
|
|
|
// 定义矩形结构体--左上角坐标及宽高--浮点型
|
|
|
typedef struct tagRect32F // BYTES: 4*4=16
|
|
|
{
|
|
|
FLOAT32 x; // 左上点x坐标
|
|
|
FLOAT32 y; // 左上点y坐标
|
|
|
FLOAT32 w; // 矩形宽度
|
|
|
FLOAT32 h; // 矩形高度
|
|
|
} RECT32F;
|
|
|
|
|
|
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
|
// 定义矩形结构体--中心点坐标及宽高、大小-整型
|
|
|
typedef struct tagCENTERRECT // BYTES: 5*2=10
|
|
|
{
|
|
|
SINT16 cx; // 中心点x坐标
|
|
|
SINT16 cy; // 中心点y坐标
|
|
|
SINT16 w; // 矩形宽度
|
|
|
SINT16 h; // 矩形高度
|
|
|
SINT32 s; // 目标大小
|
|
|
}CENTERRECT;
|
|
|
|
|
|
// 定义矩形结构体--中心点坐标及宽高、大小-整型32位
|
|
|
typedef struct tagCENTERRECT32S // BYTES: 4*4=16
|
|
|
{
|
|
|
SINT32 cx; // 中心点x坐标
|
|
|
SINT32 cy; // 中心点y坐标
|
|
|
SINT32 w; // 矩形宽度
|
|
|
SINT32 h; // 矩形高度
|
|
|
SINT32 s; // 目标大小
|
|
|
} CENTERRECT32S;
|
|
|
|
|
|
// 定义矩形结构体--中心点坐标及宽高、大小-浮点型
|
|
|
typedef struct tagCENTERRECT32F // BYTES: 5*4=20
|
|
|
{
|
|
|
FLOAT32 cx; // 中心点x坐标
|
|
|
FLOAT32 cy; // 中心点y坐标
|
|
|
FLOAT32 w; // 矩形宽度
|
|
|
FLOAT32 h; // 矩形高度
|
|
|
FLOAT32 s; // 目标大小
|
|
|
} CENTERRECT32F;
|
|
|
|
|
|
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
|
// 定义矩形结构体--左上角及右下角坐标
|
|
|
typedef struct tagMINMAXRECT // BYTES: 4*2=8
|
|
|
{
|
|
|
SINT16 minX; // 左上点x坐标
|
|
|
SINT16 minY; // 左上点y坐标
|
|
|
SINT16 maxX; // 右下点x坐标
|
|
|
SINT16 maxY; // 右下点y坐标
|
|
|
} MINMAXRECT;
|
|
|
|
|
|
// 定义矩形结构体--左上角及右下角坐标-整型32位
|
|
|
typedef struct tagMINMAXRECT32S // BYTES: 4*4=16
|
|
|
{
|
|
|
SINT32 minX; // 左上点x坐标
|
|
|
SINT32 minY; // 左上点y坐标
|
|
|
SINT32 maxX; // 右下点x坐标
|
|
|
SINT32 maxY; // 右下点y坐标
|
|
|
} MINMAXRECT32S;
|
|
|
|
|
|
// 定义矩形结构体--左上角及右下角坐标-浮点32位
|
|
|
typedef struct tagMINMAXRECT32F // BYTES: 4*4=16
|
|
|
{
|
|
|
FLOAT32 minX; // 左上点x坐标
|
|
|
FLOAT32 minY; // 左上点y坐标
|
|
|
FLOAT32 maxX; // 右下点x坐标
|
|
|
FLOAT32 maxY; // 右下点y坐标
|
|
|
} MINMAXRECT32F;
|
|
|
|
|
|
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
|
// 定义目标角度结构体
|
|
|
typedef struct tagAngle32F // BYTES: 2*4=8
|
|
|
{
|
|
|
FLOAT32 fAz; // 方位角
|
|
|
FLOAT32 fPt; // 俯仰角
|
|
|
FLOAT32 Dr; // 极坐标角度
|
|
|
} ANGLE32F;
|
|
|
|
|
|
|
|
|
|
|
|
// 定义目标宽高结构体--16位 //BYTES: 2*2 + 1*4=8
|
|
|
typedef struct tagSize16S
|
|
|
{
|
|
|
SINT16 w; // 宽度
|
|
|
SINT16 h; // 高度
|
|
|
SINT32 s; // 面积
|
|
|
} SIZE16S;
|
|
|
|
|
|
// 定义距离结构体--整型32位
|
|
|
typedef struct tagDist32S // BYTES: 2*4=8
|
|
|
{
|
|
|
SINT32 dx; // x方向距离
|
|
|
SINT32 dy; // y方向距离
|
|
|
} DIST32S;
|
|
|
|
|
|
// 定义距离结构体--浮点型
|
|
|
typedef struct tagDist32F // BYTES: 2*4=8
|
|
|
{
|
|
|
FLOAT32 dx; // x方向距离
|
|
|
FLOAT32 dy; // y方向距离
|
|
|
} DIST32F;
|
|
|
|
|
|
|
|
|
// 外部引导目标列表,用于批量转锁定
|
|
|
typedef struct tagTargetGuide
|
|
|
{
|
|
|
SINT32 ID; //目标批号,传递给锁定后目标
|
|
|
UBYTE8 bIsCoLocate; //协同定位标记,直接透传到目标
|
|
|
Pole stTargetPole; //目标极坐标
|
|
|
PointBLH stTargetPos; //目标GPS坐标
|
|
|
FLOAT32 fGuideAzSpeed; //实际锁定点方位角速度
|
|
|
FLOAT32 fGuidePtSpeed; //实际锁定点俯仰角速度
|
|
|
SINT32 nLockX; //锁定点当前图像坐标X
|
|
|
SINT32 nLockY; //锁定点当前图像坐标Y
|
|
|
BBOOL bInFOV; //在视场判断
|
|
|
}TargetGuide;
|
|
|
|
|
|
// 载体信息
|
|
|
typedef struct tagAirCraftInfo
|
|
|
{
|
|
|
unsigned char nPlaneID; //载机ID
|
|
|
PointBLH stPos; //位置
|
|
|
EulerRPY stAtt; //姿态
|
|
|
}AirCraftInfo;
|
|
|
|
|
|
// 相机信息
|
|
|
typedef struct tagCamInfo
|
|
|
{
|
|
|
int nFocus; //实时焦距值
|
|
|
float fPixelSize; //像元尺寸
|
|
|
GLB_VIDEO_TYPE unVideoType; //视频源类型
|
|
|
int dCamx; //像主点偏移x,0- 图像中心 ,不知道就填0
|
|
|
int dCamy; //像主点偏移y,0- 图像中心 ,不知道就填0
|
|
|
float fAglReso; //角分辨率
|
|
|
}CamInfo;
|
|
|
|
|
|
// 伺服状态
|
|
|
typedef struct tagServoInfo
|
|
|
{
|
|
|
float fServoAz; //当前帧伺服方位角
|
|
|
float fServoPt; //当前帧伺服俯仰角
|
|
|
float fServoAzSpeed; //当前帧伺服方位角速度
|
|
|
float fServoPtSpeed; //当前帧伺服俯仰角速度
|
|
|
}ServoInfo;
|
|
|
|
|
|
// 引导信息
|
|
|
typedef struct tagGuideInfo
|
|
|
{
|
|
|
BBOOL bGuideUpdate; //引导当前帧更新标志(有效标志)
|
|
|
FLOAT32 fGuideYaw;
|
|
|
BBOOL fGuidePitch;
|
|
|
BBOOL fGuideDistance;
|
|
|
GLB_GUIDE_SOURCE nGuideInfSource; // 引导信息来源,本机雷达
|
|
|
}GuideInfo;
|
|
|
|
|
|
|
|
|
//*****************************************************************************
|
|
|
#define AIT_DETECTION_MAX_NUM 50
|
|
|
|
|
|
typedef struct tagAITPATH
|
|
|
{
|
|
|
//DasimaRPN
|
|
|
const char *siam_model;
|
|
|
const char *siam_cls;
|
|
|
const char *siam_reg;
|
|
|
}AIT_PATH;
|
|
|
|
|
|
|
|
|
typedef struct tagAITTARGET
|
|
|
{
|
|
|
CENTERRECT32F tTarget;
|
|
|
float fScore;
|
|
|
}AIT_TARGET;
|
|
|
|
|
|
// AI跟踪器类型
|
|
|
typedef enum tagAITrackerType
|
|
|
{
|
|
|
DaSaimRPN = 0,
|
|
|
NanoTrack = 1,
|
|
|
VitTrack = 2
|
|
|
}AITrackerType;
|
|
|
|
|
|
|
|
|
|
|
|
// nanotrack输出结构
|
|
|
typedef struct tagTrack_Res_Nano
|
|
|
{
|
|
|
RECT32S rect; // 跟踪器自带评估分值
|
|
|
float score; // 跟踪器自带评估分值
|
|
|
int peak_num; // 超过阈值的波峰数量
|
|
|
float peak_ratio; // 超过阈值的波峰投影占比
|
|
|
int peak_status; // 通过波峰图分析的干扰判断结果 1:有干扰 0:无干扰
|
|
|
int disturb_status; // 通过CLS特征图二分类网络模型的干扰判断结果 1:有干扰 0:无干扰
|
|
|
}Track_Res_Nano;
|
|
|
|
|
|
|
|
|
//定义ai跟踪器的输出
|
|
|
|
|
|
typedef struct tagAITInfo
|
|
|
{
|
|
|
//*******工作状态*******
|
|
|
int nStatus; //空闲/跟踪/定位/重捕状态信息等
|
|
|
int nErrorCode; //错误码编号
|
|
|
int nFrameId;
|
|
|
//*****跟踪目标信息*****
|
|
|
int nX; //目标中心点图像坐标x
|
|
|
int nY; //目标中心点图像坐标y
|
|
|
int nObjW; //目标宽度
|
|
|
int nObjH; //目标高度
|
|
|
unsigned char ubIDType; //目标识别类别标签
|
|
|
float fProb; //目标识别置信度
|
|
|
|
|
|
//******调试信息*********
|
|
|
unsigned char bInited;
|
|
|
int nTotalCnt; //跟踪帧数
|
|
|
int nContiLostCnt; //丢失
|
|
|
//int nDetectNum;
|
|
|
int nContiDetectNum;
|
|
|
|
|
|
|
|
|
RECT32F rfBox; //x,y 这里表示中心点
|
|
|
RECT32F rfBoxPre; //x,y 这里表示中心点
|
|
|
|
|
|
float fX; //表示中心点
|
|
|
float fY;
|
|
|
float fObjW;
|
|
|
float fObjH;
|
|
|
|
|
|
|
|
|
int nSearchX; //搜索区域中心X
|
|
|
int nSearchY; //搜索区域中心Y
|
|
|
int nSearchW; //搜索区域宽度W
|
|
|
int nSearchH; //搜索区域高度H
|
|
|
|
|
|
|
|
|
//******AI跟踪高得分检测结果*******
|
|
|
int nDetectNum;
|
|
|
AIT_TARGET nDetectArray[AIT_DETECTION_MAX_NUM];
|
|
|
int nClusterNum;
|
|
|
CENTERRECT32F nSimilarArray[AIT_DETECTION_MAX_NUM];
|
|
|
|
|
|
//******AI nanotrack输出*******
|
|
|
Track_Res_Nano stNanoTrack_out;
|
|
|
|
|
|
AITrackerType type;//AI跟踪算法类型标记
|
|
|
|
|
|
}AIT_OUTPUT;
|
|
|
|
|
|
|
|
|
//定义ai跟踪器的控制指令
|
|
|
typedef struct tagAITCommand
|
|
|
{
|
|
|
bool bTrack; //持续跟踪指令,清空0表明解锁
|
|
|
bool bControlAIT; //AITrack可自循环跟踪,也可由决策结果指导跟踪
|
|
|
unsigned char nInitMode; //1-AITrack自初始化跟踪 2-采用决策box初始化
|
|
|
CENTERRECT32F InitBox; //初始化跟踪指令
|
|
|
CENTERRECT32F TargetBox; //指示目标框,用于确认下一帧的搜索范围,范围在AI跟踪内部根据提示目标框自行计算
|
|
|
}AIT_Command;
|
|
|
|
|
|
|
|
|
#endif |