|
|
|
|
|
#pragma once
|
|
|
|
|
|
/*********版权所有(C)2024, 武汉高德红外股份有限公司***************
|
|
|
|
|
|
* 文件名称:ArithStandardDll.h
|
|
|
|
|
|
* 文件标识:高德光电搜索跟踪算法SDK
|
|
|
|
|
|
* 内容摘要:
|
|
|
|
|
|
* 其它说明:算法动态链接库(Arith DLL)的函数、全局变量、宏定义,统一前缀为简写"ARIDLL"
|
|
|
|
|
|
* 当前版本:V2.0
|
|
|
|
|
|
* 创建作者:04046wcw
|
|
|
|
|
|
* 创建日期:2023-11-01
|
|
|
|
|
|
****************************************************************/
|
|
|
|
|
|
#ifndef __NEO_ARTTHSTANDARDDLL_H__
|
|
|
|
|
|
#define __NEO_ARTTHSTANDARDDLL_H__
|
|
|
|
|
|
|
|
|
|
|
|
#include "PlatformDefine.h"
|
|
|
|
|
|
#include "Arith_CommonDef.h"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef _WIN32
|
|
|
|
|
|
#define STD_TRACKER_API extern "C" __declspec(dllexport)
|
|
|
|
|
|
#else
|
|
|
|
|
|
#define STD_TRACKER_API __attribute__ ((visibility("default")))
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
|
|
extern "C" {
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
|
|
|
|
//单个目标的结构体[兼容输入/输出,检测/跟踪]
|
|
|
|
|
|
typedef struct tagARIDLL_OBJINFO
|
|
|
|
|
|
{
|
|
|
|
|
|
//*****1.目标状态信息*****
|
|
|
|
|
|
int nFrameId; //目标当前信息所对应的帧编号
|
|
|
|
|
|
unsigned char unObjStatus; //目标搜索状态信息,更新/新增/删除
|
|
|
|
|
|
unsigned char bMainTracked; //目标是否为主跟踪目标
|
|
|
|
|
|
TrackingStatus unTrackingStatus;//目标跟踪状态
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//*****2.目标管道信息*****
|
|
|
|
|
|
int nOutputID; //输出告警目标
|
|
|
|
|
|
int nInPipesID; //目标在管道数组中的编号
|
|
|
|
|
|
int nPipeLostCnt; //目标当前管道连续丢失计数
|
|
|
|
|
|
int nTotalCnt; //目标当前管道总帧数
|
|
|
|
|
|
unsigned char bInCurrFov; //目标是否在当前视场
|
|
|
|
|
|
int nAntiJamming; //抗干扰状态
|
|
|
|
|
|
|
|
|
|
|
|
//*****3.目标核心信息*****
|
|
|
|
|
|
float nX; //目标中心点图像坐标x
|
|
|
|
|
|
float nY; //目标中心点图像坐标y
|
|
|
|
|
|
float nObjW; //目标宽度
|
|
|
|
|
|
float nObjH; //目标高度
|
|
|
|
|
|
float fAz; //目标当前方位角
|
|
|
|
|
|
float fPt; //目标当前俯仰角
|
|
|
|
|
|
|
|
|
|
|
|
// 目标预测位置
|
|
|
|
|
|
float fPredAz; //目标预测位置方位角
|
|
|
|
|
|
float fPredPt; //目标预测位置俯仰角
|
|
|
|
|
|
|
|
|
|
|
|
//*****4.其他属性信息*****
|
|
|
|
|
|
int nObjGray; //目标灰度
|
|
|
|
|
|
int nObjMaxGray; //目标极值灰度
|
|
|
|
|
|
int nMaxPosX; //目标极大值点X
|
|
|
|
|
|
int nMaxPosY; //目标极大值点Y
|
|
|
|
|
|
int nPixCnts; //目标像素个数
|
|
|
|
|
|
unsigned char ubSizeType; //目标尺寸类型
|
|
|
|
|
|
float fProb; //目标识别置信度
|
|
|
|
|
|
float fSNR; //目标信噪比值
|
|
|
|
|
|
float fTgEntropy; //目标信息熵值
|
|
|
|
|
|
float fBgEntropy; //目标背景信息熵
|
|
|
|
|
|
float fSaliency; //目标显著性值
|
|
|
|
|
|
|
|
|
|
|
|
bool nJammingSucess; //目标成功干扰
|
|
|
|
|
|
|
|
|
|
|
|
int unClsType; //目标类别
|
|
|
|
|
|
float fReIDSim; //当前目标与主目标的ReID相似度
|
|
|
|
|
|
|
|
|
|
|
|
// 如果处于跟踪状态,则输出下列值
|
|
|
|
|
|
RECT32S SA_SrBox; //小面目标跟踪波门
|
|
|
|
|
|
SizeType SA_SizeType; //尺度信息
|
|
|
|
|
|
RECT32S KCF_SrBox; //KCF波门
|
|
|
|
|
|
RECT32S TLD_SrBox; //TLD波门
|
|
|
|
|
|
FLOAT32 fConf; //跟踪置信度
|
|
|
|
|
|
ObjSrc ArithSrc; //跟踪算法来源,决策后
|
|
|
|
|
|
|
|
|
|
|
|
unsigned char byte[20]; //预留
|
|
|
|
|
|
|
|
|
|
|
|
}ARIDLL_OBJINFO;
|
|
|
|
|
|
|
|
|
|
|
|
//输入【系统参数】结构体sizeof(m_stInputPara)=464
|
|
|
|
|
|
typedef struct tagARIDLL_INPUTPARA
|
|
|
|
|
|
{
|
|
|
|
|
|
int nTimeStamp; //当前帧采集时刻时间戳,单位毫秒
|
|
|
|
|
|
int unFrmId; //当前帧图像帧编号
|
|
|
|
|
|
short unFreq; //输入图像帧频
|
|
|
|
|
|
ServoInfo stServoInfo; //传感器伺服信息
|
|
|
|
|
|
CamInfo stCameraInfo; //相机信息
|
|
|
|
|
|
AirCraftInfo stAirCraftInfo; //载体信息
|
|
|
|
|
|
GuideInfo stGuideInfo; //外部引导信息
|
|
|
|
|
|
|
|
|
|
|
|
AIT_OUTPUT stAITrackerInfo; //AI跟踪器结果sizeof(AIT_OUTPUT)=264
|
|
|
|
|
|
|
|
|
|
|
|
int nServoDelatCnt; //伺服角度延迟帧数
|
|
|
|
|
|
// 其他输入
|
|
|
|
|
|
bool bImageRataSys; //像旋系统标记,S731实物样机1,数字样机未模拟像旋 -0
|
|
|
|
|
|
int nElevationDiff; //机载设备挂飞高程差
|
|
|
|
|
|
|
|
|
|
|
|
unsigned char byte[48]; //预留
|
|
|
|
|
|
}ARIDLL_INPUTPARA;
|
|
|
|
|
|
|
|
|
|
|
|
//调试信息
|
|
|
|
|
|
typedef struct tagARIDLL_DEBUG_OUTPUT
|
|
|
|
|
|
{
|
|
|
|
|
|
unsigned short nDetectObjsNum; //检测目标个数
|
|
|
|
|
|
// 管道资源
|
|
|
|
|
|
unsigned short nMaxPipeNum; //当前系统管道资源数量
|
|
|
|
|
|
unsigned short nUsePipeNum; //当前非空管道数量
|
|
|
|
|
|
float Arith_time; //算法运行耗时
|
|
|
|
|
|
unsigned int unFrmID; //算法执行的帧编号
|
|
|
|
|
|
|
|
|
|
|
|
//ARM发指令信息
|
|
|
|
|
|
unsigned char nSysMode; //外部系统状态
|
|
|
|
|
|
unsigned char nScenMode; //场景模式
|
|
|
|
|
|
unsigned char nStatus; //待命/检测/跟踪/丢失状态信息等
|
|
|
|
|
|
unsigned char nPixelType; //图像数据类型
|
|
|
|
|
|
unsigned short nWidth; //图像宽
|
|
|
|
|
|
unsigned short nHeight; //图像高
|
|
|
|
|
|
unsigned char nLockType; //1-拉框吸附 2-点选吸附 3-ID锁定 4-修正攻击点 5-解锁
|
|
|
|
|
|
unsigned char nLockID; //锁定id号
|
|
|
|
|
|
unsigned short nLockX; //锁定波门或者修改攻击点
|
|
|
|
|
|
unsigned short nLockY;
|
|
|
|
|
|
unsigned short nLockW;
|
|
|
|
|
|
unsigned short nLockH;
|
|
|
|
|
|
unsigned short nPredictX; //轨迹预测X点
|
|
|
|
|
|
unsigned short nPredictY; //轨迹预测Y点
|
|
|
|
|
|
unsigned short nForceMemFrm; //强制记忆帧数
|
|
|
|
|
|
unsigned char unFreq; //帧频
|
|
|
|
|
|
float fServoAz; //伺服方位角
|
|
|
|
|
|
float fServoPt; //伺服俯仰角
|
|
|
|
|
|
float nFocus; //焦距
|
|
|
|
|
|
float fPixelSize; //像元尺寸
|
|
|
|
|
|
unsigned char unVideoType; //视频类型
|
|
|
|
|
|
|
|
|
|
|
|
//算法参数(公用)
|
|
|
|
|
|
unsigned short nX; //决策输出中心点X
|
|
|
|
|
|
unsigned short nY; //决策输出中心点Y
|
|
|
|
|
|
unsigned short nW; //决策输出宽度
|
|
|
|
|
|
unsigned short nH; //决策输出高度
|
|
|
|
|
|
|
|
|
|
|
|
unsigned short nRecapX; //重捕区域中心X
|
|
|
|
|
|
unsigned short nRecapY; //重捕区域中心Y
|
|
|
|
|
|
unsigned short nRecapW; //重捕区域宽度
|
|
|
|
|
|
unsigned short nRecapH; //重捕区域高度
|
|
|
|
|
|
|
|
|
|
|
|
//对地跟踪信息调试
|
|
|
|
|
|
//对地参数
|
|
|
|
|
|
unsigned char nDecisionStatus; //决策状态
|
|
|
|
|
|
unsigned char nKcfStatus; //kcf状态
|
|
|
|
|
|
unsigned char bAIDStatus; //AI识别状态
|
|
|
|
|
|
float fKCFRes; //KCF响应
|
|
|
|
|
|
float fLargeResTH; //KCF重捕阈值
|
|
|
|
|
|
float fArrKCFRes;
|
|
|
|
|
|
unsigned char nOccKCFStatus;
|
|
|
|
|
|
unsigned char nArrestKCFStatus;
|
|
|
|
|
|
short nAIDBestId;
|
|
|
|
|
|
short nAIDLostCnt;
|
|
|
|
|
|
short unContiTrackedCnt;
|
|
|
|
|
|
short nAIDJamCnt;
|
|
|
|
|
|
unsigned char nOccAIDStatus;
|
|
|
|
|
|
unsigned char nArrestAIDStatus;
|
|
|
|
|
|
unsigned short nTLDNum; //TLD聚类检测个数
|
|
|
|
|
|
unsigned short nLearnCnt; //TLD学习计数
|
|
|
|
|
|
float fMaxNNConf; //TLD检测最大响应
|
|
|
|
|
|
|
|
|
|
|
|
//对空参数
|
|
|
|
|
|
unsigned char sky_bComplexEnv; // 复杂背景标志位
|
|
|
|
|
|
unsigned char sky_bInterferenceMem; // 干扰近记忆标志位
|
|
|
|
|
|
unsigned char sky_bResetByAIDet; // 跟踪被AI重置标记
|
|
|
|
|
|
unsigned char sky_nClassSource; // 目标类别输出来源
|
|
|
|
|
|
unsigned char sky_nDecisionStatus; // 决策状态,输出来源
|
|
|
|
|
|
unsigned char sky_TrkDownRatio; // 对空跟踪降采样倍数
|
|
|
|
|
|
unsigned short sky_TrkMemFrm; // 跟踪目标进记忆帧数
|
|
|
|
|
|
unsigned short sky_nTrkCX; // 决策目标信息中心点X
|
|
|
|
|
|
unsigned short sky_nTrkCY; // 决策目标信息中心点Y
|
|
|
|
|
|
unsigned short sky_nTrkW; // 决策目标信息宽度
|
|
|
|
|
|
unsigned short sky_nTrkH; // 决策目标信息高度
|
|
|
|
|
|
unsigned short sky_nTrkPxlsCnt; // 跟踪目标像素数
|
|
|
|
|
|
unsigned short sky_fTrkConf; // 跟踪目标置信度
|
|
|
|
|
|
unsigned char sky_bGuideInFov; // 导引目标是否在视场
|
|
|
|
|
|
unsigned short sky_nGuideCX; // 导引区域中心X
|
|
|
|
|
|
unsigned short sky_nGuideCY; // 导引区域中心Y
|
|
|
|
|
|
unsigned short sky_nGuideW; // 导引区域宽度
|
|
|
|
|
|
unsigned short sky_nGuideH; // 导引区域高度
|
|
|
|
|
|
|
|
|
|
|
|
unsigned char resv[48]; //预留
|
|
|
|
|
|
}ARIDLL_DEBUG_OUTPUT;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//跟踪目标输出结构体
|
|
|
|
|
|
typedef struct tagARIDLL_OUTPUT
|
|
|
|
|
|
{
|
|
|
|
|
|
int nTimeStamp; //当前帧时间戳(透传),单位:毫秒
|
|
|
|
|
|
|
|
|
|
|
|
// 系统工作模式(透传)
|
|
|
|
|
|
GLB_SYS_MODE nSysMode; //凝视/扇扫/周扫
|
|
|
|
|
|
int nFrmNum; //处理帧计数
|
|
|
|
|
|
|
|
|
|
|
|
// 场景模式
|
|
|
|
|
|
GLB_SCEN_MODE nScenMode; //对空/对地/对海
|
|
|
|
|
|
|
|
|
|
|
|
//*****工作状态*****
|
|
|
|
|
|
GLB_STATUS nStatus; //待命/检测/跟踪/丢失状态信息等
|
|
|
|
|
|
|
|
|
|
|
|
//*****目标检测*****(短时航迹点,用于用户指示)
|
|
|
|
|
|
int nAlarmObjCnts; //当前帧告警目标总个数
|
|
|
|
|
|
ARIDLL_OBJINFO stAlarmObjs[ST_OBJ_NUM]; //检测目标信息数组
|
|
|
|
|
|
|
|
|
|
|
|
//*****目标跟踪*****(长时航迹点,第0个为主目标送伺服跟踪)
|
|
|
|
|
|
int nTrackObjCnts; //跟踪目标个数
|
|
|
|
|
|
ARIDLL_OBJINFO stTrackers[LT_OBJ_NUM]; //跟踪器输出数组
|
|
|
|
|
|
|
|
|
|
|
|
// AI跟踪器协同控制指令输出,用于控制端侧NPU程序
|
|
|
|
|
|
AIT_Command stAI_TkCmd;
|
|
|
|
|
|
|
|
|
|
|
|
//搜索区域(对空场景为导引区域)
|
|
|
|
|
|
RECT32S rsRecaptureRion;
|
|
|
|
|
|
|
|
|
|
|
|
//指示轨迹预测模块是否相信当前跟踪点
|
|
|
|
|
|
BBOOL bPredictJam;
|
|
|
|
|
|
|
|
|
|
|
|
//调试信息
|
|
|
|
|
|
ARIDLL_DEBUG_OUTPUT stDebugInfo;
|
|
|
|
|
|
|
|
|
|
|
|
}ARIDLL_OUTPUT;
|
|
|
|
|
|
|
|
|
|
|
|
/*************************************
|
|
|
|
|
|
* 函数名称: STD_CreatEOArithHandle()
|
|
|
|
|
|
* 功能描述: 算法句柄创建
|
|
|
|
|
|
* 创建日期: 2025/6/24
|
|
|
|
|
|
* 输出参数: 无
|
|
|
|
|
|
* 返回值: STD_TRACKER_API ArithHandle:算法句柄
|
|
|
|
|
|
* 调用关系: 无
|
|
|
|
|
|
* 其它说明: 无
|
|
|
|
|
|
*************************************/
|
|
|
|
|
|
STD_TRACKER_API ArithHandle STD_CreatEOArithHandle();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*************************************
|
|
|
|
|
|
* 函数名称: STD_CreatEOArithNamedHandle()
|
|
|
|
|
|
* 功能描述: 指定算法句柄名称的句柄创建,每个句柄创建都有自己独立的配置文件路径,避免设置重复参数,比如句柄名称
|
|
|
|
|
|
实际上也可以允许句柄名称重复,不建议这样做,因为不能起到区分作用,参数设置请参考文件
|
|
|
|
|
|
* 创建日期: 2025/8/8
|
|
|
|
|
|
* 输入参数: const char * configPath:算法创建相关配置json名称
|
|
|
|
|
|
* 输出参数:
|
|
|
|
|
|
* 返回值: STD_TRACKER_API ArithHandle:算法句柄
|
|
|
|
|
|
* 调用关系:
|
|
|
|
|
|
* 其它说明:
|
|
|
|
|
|
*************************************/
|
|
|
|
|
|
STD_TRACKER_API ArithHandle STD_CreatEOArithNamedHandle(const char* configPath);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*************************************
|
|
|
|
|
|
* 函数名称: STD_DeleteEOArithHandle()
|
|
|
|
|
|
* 功能描述: 释放算法句柄
|
|
|
|
|
|
* 创建日期: 2025/6/24
|
|
|
|
|
|
* 输入参数: ArithHandle hArith:算法句柄
|
|
|
|
|
|
* 输出参数: 无
|
|
|
|
|
|
* 返回值: STD_TRACKER_API void
|
|
|
|
|
|
* 调用关系: 无
|
|
|
|
|
|
* 其它说明: 无
|
|
|
|
|
|
*************************************/
|
|
|
|
|
|
STD_TRACKER_API void STD_DeleteEOArithHandle(ArithHandle hArith);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*************************************
|
|
|
|
|
|
* 函数名称: ARIDLL_EOArithInit()
|
|
|
|
|
|
* 功能描述: 执行算法模块初始化,默认为对空凝视场景
|
|
|
|
|
|
* 创建日期: 2025/6/24
|
|
|
|
|
|
* 输入参数: ArithHandle hArith:算法句柄
|
|
|
|
|
|
* 输入参数: int nWidth:输入图像宽度
|
|
|
|
|
|
* 输入参数: int nHeight:输入图像高度
|
|
|
|
|
|
* 输入参数: GD_PIXEL_FORMAT_E nPixelType:图像的像素类型
|
|
|
|
|
|
* 输出参数: 无
|
|
|
|
|
|
* 返回值: STD_TRACKER_API void
|
|
|
|
|
|
* 调用关系: 无
|
|
|
|
|
|
* 其它说明: GLB_PT_TYPE nPixelType 暂未使用的参数
|
|
|
|
|
|
*************************************/
|
|
|
|
|
|
STD_TRACKER_API void ARIDLL_EOArithInit(ArithHandle hArith, int nWidth, int nHeight, GD_PIXEL_FORMAT_E nPixelType);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*************************************
|
|
|
|
|
|
* 函数名称: ARIDLL_EOArithInitWithMode()
|
|
|
|
|
|
* 功能描述: 执行算法模块初始化2 - 带模式的初始化,可指定系统模式和场景模式
|
|
|
|
|
|
* 创建日期: 2025/6/24
|
|
|
|
|
|
* 输入参数: ArithHandle hArith:算法句柄
|
|
|
|
|
|
* 输入参数: int nWidth:输入图像宽度
|
|
|
|
|
|
* 输入参数: int nHeight:输入图像高度
|
|
|
|
|
|
* 输入参数: GD_PIXEL_FORMAT_E nPixelType:图像的像素类型
|
|
|
|
|
|
* 输入参数: GLB_SYS_MODE nSysMode:系统模式
|
|
|
|
|
|
* 输入参数: GLB_SCEN_MODE nScenMode:场景模式
|
|
|
|
|
|
* 输出参数: 无
|
|
|
|
|
|
* 返回值: STD_TRACKER_API void
|
|
|
|
|
|
* 调用关系: 无
|
|
|
|
|
|
* 其它说明: GLB_PT_TYPE nPixelType 暂未使用的参数
|
|
|
|
|
|
*************************************/
|
|
|
|
|
|
STD_TRACKER_API void ARIDLL_EOArithInitWithMode(ArithHandle hArith, int nWidth, int nHeight, GD_PIXEL_FORMAT_E nPixelType,
|
|
|
|
|
|
GLB_SYS_MODE nSysMode, GLB_SCEN_MODE nScenMode);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*************************************
|
|
|
|
|
|
* 函数名称: ARIDLL_CreateAITracker()
|
|
|
|
|
|
* 功能描述: 创建AI跟踪器模块
|
|
|
|
|
|
* 创建日期: 2025/6/24
|
|
|
|
|
|
* 输入参数: ArithHandle hArith:算法句柄
|
|
|
|
|
|
* 输入参数: int nWidth:输入图像宽度
|
|
|
|
|
|
* 输入参数: int nHeight:输入图像高度
|
|
|
|
|
|
* 输入参数: const char * configPath:AI跟踪参数配置文件名称
|
|
|
|
|
|
* 输出参数: 无
|
|
|
|
|
|
* 返回值: STD_TRACKER_API bool
|
|
|
|
|
|
* 调用关系: 无
|
|
|
|
|
|
* 其它说明: 创建AI跟踪器后,NeoTracker仅在切换为AI跟踪场景模式时才会使用AI跟踪
|
|
|
|
|
|
*************************************/
|
|
|
|
|
|
STD_TRACKER_API bool ARIDLL_CreateAITracker(ArithHandle hArith, int nWidth, int nHeight, const char* configPath);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*************************************
|
|
|
|
|
|
* 函数名称: ARIDLL_RunController()
|
|
|
|
|
|
* 功能描述: 目标搜跟流程,算法主处理逻辑
|
|
|
|
|
|
* 创建日期: 2025/6/24
|
|
|
|
|
|
* 输入参数: ArithHandle hArithSrc:算法句柄
|
|
|
|
|
|
* 输入参数: GD_VIDEO_FRAME_S img :输入图像
|
|
|
|
|
|
* 输入参数: ARIDLL_INPUTPARA stInputPara :输入参数
|
|
|
|
|
|
* 输入参数: ARIDLL_OUTPUT * pstOutput :输出结果
|
|
|
|
|
|
* 输出参数: 无
|
|
|
|
|
|
* 返回值: STD_TRACKER_API int :主处理逻辑状态码
|
|
|
|
|
|
* 调用关系: 无
|
|
|
|
|
|
* 其它说明: 无
|
|
|
|
|
|
*************************************/
|
|
|
|
|
|
STD_TRACKER_API int ARIDLL_RunController(ArithHandle hArithSrc, GD_VIDEO_FRAME_S img, ARIDLL_INPUTPARA stInputPara, ARIDLL_OUTPUT* pstOutput);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*************************************
|
|
|
|
|
|
* 函数名称: ARIDLL_SearchFrameTargets()
|
|
|
|
|
|
* 功能描述: 执行单帧小面目标检测算法
|
|
|
|
|
|
* 创建日期: 2025/6/24
|
|
|
|
|
|
* 输入参数: ArithHandle hArithSrc:算法句柄
|
|
|
|
|
|
* 输入参数: GD_VIDEO_FRAME_S img :输入图像
|
|
|
|
|
|
* 输出参数: 无
|
|
|
|
|
|
* 返回值: STD_TRACKER_API int :单帧小面检测算法个数
|
|
|
|
|
|
* 调用关系: 无
|
|
|
|
|
|
* 其它说明: 无
|
|
|
|
|
|
*************************************/
|
|
|
|
|
|
STD_TRACKER_API int ARIDLL_SearchFrameTargets(ArithHandle hArithSrc, GD_VIDEO_FRAME_S img);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*************************************
|
|
|
|
|
|
* 函数名称: ARIDLL_MergeAITargets()
|
|
|
|
|
|
* 功能描述: 接收外部AI识别目标,在主循环调用前调用以传入外部目标
|
|
|
|
|
|
* 创建日期: 2025/6/24
|
|
|
|
|
|
* 输入参数: ArithHandle hArithSrc:算法句柄
|
|
|
|
|
|
* 输入参数: AI_Target * aiDetectArray:输入AI目标检测数组
|
|
|
|
|
|
* 输入参数: int aiNum:输入AI目标检测个数
|
|
|
|
|
|
* 输出参数: 无
|
|
|
|
|
|
* 返回值: STD_TRACKER_API int
|
|
|
|
|
|
* 调用关系: 无
|
|
|
|
|
|
* 其它说明: 无
|
|
|
|
|
|
*************************************/
|
|
|
|
|
|
STD_TRACKER_API int ARIDLL_MergeAITargets(ArithHandle hArithSrc, AI_Target* aiDetectArray,int aiNum);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*************************************
|
|
|
|
|
|
* 函数名称: ARIDLL_SendReIDToTargets()
|
|
|
|
|
|
* 功能描述: 接收外部目标reID特征,将特征传入到算法内部
|
|
|
|
|
|
* 创建日期: 2025/6/25
|
|
|
|
|
|
* 输入参数: ArithHandle hArithSrc:算法句柄
|
|
|
|
|
|
* 输入参数: ReIDFeature * pReidFeatures :ReID特征数组
|
|
|
|
|
|
* 输入参数: int ReIDNums :ReID特征个数
|
|
|
|
|
|
* 输出参数: 无
|
|
|
|
|
|
* 返回值: STD_TRACKER_API int
|
|
|
|
|
|
* 调用关系: 无
|
|
|
|
|
|
* 其它说明: 无
|
|
|
|
|
|
*************************************/
|
|
|
|
|
|
STD_TRACKER_API int ARIDLL_SendReIDToTargets(ArithHandle hArithSrc, ReIDFeature* pReidFeatures, int ReIDNums);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*************************************
|
|
|
|
|
|
* 函数名称: ARIDLL_LockCommand()
|
|
|
|
|
|
* 功能描述: 视场内自适应锁定,智能锁定,有目标锁目标,无目标根据项目需求执行锁定方式,中心点XY一定要传,宽高可选择
|
|
|
|
|
|
* + 点选吸附
|
|
|
|
|
|
* + 框选距离管道目标近距离吸附,远距离强锁框选区域
|
|
|
|
|
|
* 创建日期: 2025/6/24
|
|
|
|
|
|
* 输入参数: ArithHandle hArithSrc:算法句柄
|
|
|
|
|
|
* 输入参数: int nLockX:锁定点目标图像坐标中心点X
|
|
|
|
|
|
* 输入参数: int nLockY:锁定点目标图像坐标中心点Y
|
|
|
|
|
|
* 输入参数: int nLockW:锁定波门宽度, 目标宽度
|
|
|
|
|
|
* 输入参数: int nLockH:锁定波门高度, 目标高度
|
|
|
|
|
|
* 输出参数: 无
|
|
|
|
|
|
* 返回值: STD_TRACKER_API void
|
|
|
|
|
|
* 调用关系: 无
|
|
|
|
|
|
* 其它说明: 下发指令在下一帧转入锁定,宽高送0则算法根据识别结果自动选择波门
|
|
|
|
|
|
*************************************/
|
|
|
|
|
|
STD_TRACKER_API void ARIDLL_LockCommand(ArithHandle hArithSrc, int nLockX, int nLockY, int nLockW, int nLockH);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*************************************
|
|
|
|
|
|
* 函数名称: ARIDLL_LockCommand_DefaultSize()
|
|
|
|
|
|
* 功能描述: 框选吸附
|
|
|
|
|
|
* 创建日期: 2025/6/24
|
|
|
|
|
|
* 输入参数: ArithHandle hArithSrc:算法句柄
|
|
|
|
|
|
* 输入参数: int nLockX:锁定点目标图像坐标中心点X
|
|
|
|
|
|
* 输入参数: int nLockY:锁定点目标图像坐标中心点Y
|
|
|
|
|
|
* 输入参数: int nLockW:锁定波门宽度, 目标宽度
|
|
|
|
|
|
* 输入参数: int nLockH:锁定波门高度, 目标高度
|
|
|
|
|
|
* 输出参数: 无
|
|
|
|
|
|
* 返回值: STD_TRACKER_API void
|
|
|
|
|
|
* 调用关系: 无
|
|
|
|
|
|
* 其它说明: 无
|
|
|
|
|
|
*************************************/
|
|
|
|
|
|
STD_TRACKER_API void ARIDLL_LockCommand_DefaultSize(ArithHandle hArithSrc, int nLockX, int nLockY, int nLockW, int nLockH);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*************************************
|
|
|
|
|
|
* 函数名称: ARIDLL_LockTargetByID()
|
|
|
|
|
|
* 功能描述: 视场内根据批号锁定,当前帧处理
|
|
|
|
|
|
* 创建日期: 2025/6/24
|
|
|
|
|
|
* 输入参数: ArithHandle hArithSrc:算法句柄
|
|
|
|
|
|
* 输入参数: int nBatchID:锁定管道批号
|
|
|
|
|
|
* 输出参数: 无
|
|
|
|
|
|
* 返回值: STD_TRACKER_API void
|
|
|
|
|
|
* 调用关系: 无
|
|
|
|
|
|
* 其它说明: 无
|
|
|
|
|
|
*************************************/
|
|
|
|
|
|
STD_TRACKER_API void ARIDLL_LockTargetByID(ArithHandle hArithSrc, int nBatchID);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*************************************
|
|
|
|
|
|
* 函数名称: ARIDLL_GuideLockMultiCommand()
|
|
|
|
|
|
* 功能描述: 视场外引导锁定-支持批量锁定
|
|
|
|
|
|
* 创建日期: 2025/6/24
|
|
|
|
|
|
* 输入参数: ArithHandle hArithSrc:算法句柄
|
|
|
|
|
|
* 输入参数: TargetGuide * guideList
|
|
|
|
|
|
* SINT32 ID; //目标批号,传递给锁定后目标(必填,0为无效值,外部指定跟踪目标输出批号)
|
|
|
|
|
|
UBYTE8 bIsCoLocate; //协同定位标记,直接透传到目标(非必须,默认0)
|
|
|
|
|
|
Pole stTargetPole; //目标极坐标(伺服系目标方位、俯仰、目标测距)
|
|
|
|
|
|
PointBLH stTargetPos; //目标GPS坐标(大地系纬经高)
|
|
|
|
|
|
FLOAT32 fGuideAzSpeed; //实际锁定点方位角速度(非必须,默认0)
|
|
|
|
|
|
FLOAT32 fGuidePtSpeed; //实际锁定点俯仰角速度(非必须,默认0)
|
|
|
|
|
|
SINT32 nGuideFocus; //引导时的焦距值(必填)
|
|
|
|
|
|
SINT32 nMaxFocus; //最大焦距值(必填)
|
|
|
|
|
|
SINT32 nLockX; //锁定点当前图像坐标X(图像系X)
|
|
|
|
|
|
SINT32 nLockY; //锁定点当前图像坐标Y(图像系Y)
|
|
|
|
|
|
BBOOL bInFOV; //在视场判断(图像系目标在视场判断)
|
|
|
|
|
|
stTargetPole、stTargetPos、nLockX(nLockY,bInFOV),三选一,当前建议选择stTargetPole
|
|
|
|
|
|
* 输入参数: int num:引导目标个数
|
|
|
|
|
|
* 输入参数: int nGuideAge:引导生命周期,帧数衡量,如50HZ平台,1s填50,外部设定
|
|
|
|
|
|
* 输出参数: 无
|
|
|
|
|
|
* 返回值: STD_TRACKER_API void
|
|
|
|
|
|
* 调用关系: 无
|
|
|
|
|
|
* 其它说明: 对空引导在焦距没有拉满的情况下,不要出现是小目标的情况
|
|
|
|
|
|
*************************************/
|
|
|
|
|
|
STD_TRACKER_API void ARIDLL_GuideLockMultiCommand(ArithHandle hArithSrc, TargetGuide* guideList, int num, int nGuideAge);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*************************************
|
|
|
|
|
|
* 函数名称: ARIDLL_unLockCommand()
|
|
|
|
|
|
* 功能描述: 解锁
|
|
|
|
|
|
* 创建日期: 2025/6/24
|
|
|
|
|
|
* 输入参数: ArithHandle hArithSrc:算法句柄
|
|
|
|
|
|
* 输出参数: 无
|
|
|
|
|
|
* 返回值: STD_TRACKER_API void
|
|
|
|
|
|
* 调用关系: 无
|
|
|
|
|
|
* 其它说明: 无
|
|
|
|
|
|
*************************************/
|
|
|
|
|
|
STD_TRACKER_API void ARIDLL_unLockCommand(ArithHandle hArithSrc);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*************************************
|
|
|
|
|
|
* 函数名称: ARIDLL_AdjustTrackRect()
|
|
|
|
|
|
* 功能描述: 微调对地主跟踪器跟踪框
|
|
|
|
|
|
* 创建日期: 2025/6/24
|
|
|
|
|
|
* 输入参数: ArithHandle hArithSrc:算法句柄
|
|
|
|
|
|
* 输入参数: int dx:X 方向的偏移量,向左为负;向右为正
|
|
|
|
|
|
* 输入参数: int dy:Y 方向的偏移量,向上为负;向下为正
|
|
|
|
|
|
* 输入参数: int dw :目标宽度扩大,缩减大小
|
|
|
|
|
|
* 输入参数: int dh :目标高度扩大,缩减大小
|
|
|
|
|
|
* 输出参数: 无
|
|
|
|
|
|
* 返回值: STD_TRACKER_API void
|
|
|
|
|
|
* 调用关系: 无
|
|
|
|
|
|
* 其它说明: 无
|
|
|
|
|
|
*************************************/
|
|
|
|
|
|
STD_TRACKER_API void ARIDLL_AdjustTrackRect(ArithHandle hArithSrc,int dx,int dy,int dw,int dh);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*************************************
|
|
|
|
|
|
* 函数名称: ARIDLL_ReadSetParamFile()
|
|
|
|
|
|
* 功能描述: 读取序列化参数:从文件
|
|
|
|
|
|
* 创建日期: 2025/6/24
|
|
|
|
|
|
* 输入参数: ArithHandle hArithSrc:算法句柄
|
|
|
|
|
|
* 输入参数: const char * configFilePath:保存了算法参数的文件名
|
|
|
|
|
|
* 输出参数: 无
|
|
|
|
|
|
* 返回值: STD_TRACKER_API bool
|
|
|
|
|
|
* 调用关系: 无
|
|
|
|
|
|
* 其它说明: 无
|
|
|
|
|
|
*************************************/
|
|
|
|
|
|
STD_TRACKER_API bool ARIDLL_ReadSetParamFile(ArithHandle hArithSrc, const char* configFilePath);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*************************************
|
|
|
|
|
|
* 函数名称: ARIDLL_ReadSetParamStream()
|
|
|
|
|
|
* 功能描述: 读取序列化参数:从buffer
|
|
|
|
|
|
* 创建日期: 2025/6/24
|
|
|
|
|
|
* 输入参数: ArithHandle hArithSrc:算法句柄
|
|
|
|
|
|
* 输入参数: const char * configsstream:保存了算法参数的文件流
|
|
|
|
|
|
* 输出参数: 无
|
|
|
|
|
|
* 返回值: STD_TRACKER_API bool : 设置成功标记
|
|
|
|
|
|
* 调用关系: 无
|
|
|
|
|
|
* 其它说明: 无
|
|
|
|
|
|
*************************************/
|
|
|
|
|
|
STD_TRACKER_API bool ARIDLL_ReadSetParamStream(ArithHandle hArithSrc,const char* configsstream);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*************************************
|
|
|
|
|
|
* 函数名称: ARIDLL_SetSysMode()
|
|
|
|
|
|
* 功能描述: 设置外部系统工作模式
|
|
|
|
|
|
* 创建日期: 2025/6/24
|
|
|
|
|
|
* 输入参数: ArithHandle hArithSrc:算法句柄
|
|
|
|
|
|
* 输入参数: GLB_SYS_MODE nSysMode:系统模式
|
|
|
|
|
|
* 输出参数: 无
|
|
|
|
|
|
* 返回值: STD_TRACKER_API void
|
|
|
|
|
|
* 调用关系: 无
|
|
|
|
|
|
* 其它说明: 无
|
|
|
|
|
|
*************************************/
|
|
|
|
|
|
STD_TRACKER_API void ARIDLL_SetSysMode(ArithHandle hArithSrc, GLB_SYS_MODE nSysMode);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*************************************
|
|
|
|
|
|
* 函数名称: ARIDLL_SetScenMode()
|
|
|
|
|
|
* 功能描述: 设置工作场景,对空,对地,对海等
|
|
|
|
|
|
* 创建日期: 2025/6/24
|
|
|
|
|
|
* 输入参数: ArithHandle hArithSrc:算法句柄
|
|
|
|
|
|
* 输入参数: GLB_SCEN_MODE nScenMode:工作场景
|
|
|
|
|
|
* 输出参数: 无
|
|
|
|
|
|
* 返回值: STD_TRACKER_API void
|
|
|
|
|
|
* 调用关系: 无
|
|
|
|
|
|
* 其它说明: 无
|
|
|
|
|
|
*************************************/
|
|
|
|
|
|
STD_TRACKER_API void ARIDLL_SetScenMode(ArithHandle hArithSrc, GLB_SCEN_MODE nScenMode);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*************************************
|
|
|
|
|
|
* 函数名称: ARIDLL_SetForceMemTrack()
|
|
|
|
|
|
* 功能描述: 设置强制记忆跟踪
|
|
|
|
|
|
* 创建日期: 2025/6/24
|
|
|
|
|
|
* 输入参数: ArithHandle hArithSrc:算法句柄
|
|
|
|
|
|
* 输入参数: int nMemCnt:强制进记忆帧数,超出强制记忆帧数则退出记忆
|
|
|
|
|
|
* 输出参数: 无
|
|
|
|
|
|
* 返回值: STD_TRACKER_API void
|
|
|
|
|
|
* 调用关系: 无
|
|
|
|
|
|
* 其它说明: 无
|
|
|
|
|
|
*************************************/
|
|
|
|
|
|
STD_TRACKER_API void ARIDLL_SetForceMemTrack(ArithHandle hArithSrc, int nMemCnt);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*************************************
|
|
|
|
|
|
* 函数名称: ARIDLL_SetSkyLineCaliPoints()
|
|
|
|
|
|
* 功能描述: 接收外部传入的天地线标定点,最多支持360个点
|
|
|
|
|
|
* 创建日期: 2025/6/24
|
|
|
|
|
|
* 输入参数: ArithHandle hArithSrc:算法句柄
|
|
|
|
|
|
* 输入参数: ANGLE32F * SkyLinePoints:天地线标定点数组首地址
|
|
|
|
|
|
* 输入参数: int N:天地线标定点个数,最多360个
|
|
|
|
|
|
* 输出参数: 无
|
|
|
|
|
|
* 返回值: STD_TRACKER_API void
|
|
|
|
|
|
* 调用关系: 无
|
|
|
|
|
|
* 其它说明: 无
|
|
|
|
|
|
*************************************/
|
|
|
|
|
|
STD_TRACKER_API void ARIDLL_SetSkyLineCaliPoints(ArithHandle hArithSrc, ANGLE32F* SkyLinePoints, int N);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*************************************
|
|
|
|
|
|
* 函数名称: ARIDLL_ExportParamFile()
|
|
|
|
|
|
* 功能描述: 输出算法配置文件
|
|
|
|
|
|
* 创建日期: 2025/6/24
|
|
|
|
|
|
* 输入参数: ArithHandle hArithSrc:算法句柄
|
|
|
|
|
|
* 输入参数: const char * configFilePath:输出算法配置的文件名
|
|
|
|
|
|
* 输出参数: 无
|
|
|
|
|
|
* 返回值: STD_TRACKER_API void
|
|
|
|
|
|
* 调用关系: 无
|
|
|
|
|
|
* 其它说明: 无
|
|
|
|
|
|
*************************************/
|
|
|
|
|
|
STD_TRACKER_API void ARIDLL_ExportParamFile(ArithHandle hArithSrc, const char* configFilePath);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*************************************
|
|
|
|
|
|
* 函数名称: ARIDLL_ExportOSDJson()
|
|
|
|
|
|
* 功能描述: 输出算法调试json字符串流,算法OSD叠加功能
|
|
|
|
|
|
* 创建日期: 2025/6/24
|
|
|
|
|
|
* 输入参数: ArithHandle hArithSrc:算法句柄
|
|
|
|
|
|
* 输入参数: char * Buffer:接收OSD流的缓冲区
|
|
|
|
|
|
* 输入参数: int bufferSize:接收OSD流的缓冲区的大小
|
|
|
|
|
|
* 输出参数: 无
|
|
|
|
|
|
* 返回值: STD_TRACKER_API int:成功返回0
|
|
|
|
|
|
* 调用关系: 无
|
|
|
|
|
|
* 其它说明: 无
|
|
|
|
|
|
*************************************/
|
|
|
|
|
|
STD_TRACKER_API int ARIDLL_ExportOSDJson(ArithHandle hArithSrc, char* Buffer, int bufferSize);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*************************************
|
|
|
|
|
|
* 函数名称: ARIDLL_SetSOTRect()
|
|
|
|
|
|
* 功能描述: 按照固定大小调整波门
|
|
|
|
|
|
* 创建日期: 2025/6/24
|
|
|
|
|
|
* 输入参数: ArithHandle hArithSrc
|
|
|
|
|
|
* 输入参数: int objX:新的锁定X中心
|
|
|
|
|
|
* 输入参数: int objY:新的锁定Y中心
|
|
|
|
|
|
* 输入参数: int objW:新的锁定目标宽度
|
|
|
|
|
|
* 输入参数: int objH:新的锁定目标高度
|
|
|
|
|
|
* 输出参数: 无
|
|
|
|
|
|
* 返回值: STD_TRACKER_API void
|
|
|
|
|
|
* 调用关系: 无
|
|
|
|
|
|
* 其它说明: 无
|
|
|
|
|
|
*************************************/
|
|
|
|
|
|
STD_TRACKER_API void ARIDLL_SetSOTRect(ArithHandle hArithSrc, int objX, int objY, int objW, int objH);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*************************************
|
|
|
|
|
|
* 函数名称: ARIDLL_SetPredictInfo()
|
|
|
|
|
|
* 功能描述: 外部预测的主跟踪位置点
|
|
|
|
|
|
* 创建日期: 2025/7/7
|
|
|
|
|
|
* 输入参数: ArithHandle hArithSrc:算法句柄
|
|
|
|
|
|
* 输入参数: int X1:当前帧预测x位置
|
|
|
|
|
|
* 输入参数: int Y1:当前帧预测y位置
|
|
|
|
|
|
* 输入参数: int X2:8s后预测的x位置
|
|
|
|
|
|
* 输入参数: int Y2:8s后预测的y位置
|
|
|
|
|
|
* 输出参数: 无
|
|
|
|
|
|
* 返回值: STD_TRACKER_API void
|
|
|
|
|
|
* 调用关系: 无
|
|
|
|
|
|
* 其它说明: 无
|
|
|
|
|
|
*************************************/
|
|
|
|
|
|
STD_TRACKER_API void ARIDLL_SetPredictInfo(ArithHandle hArithSrc, int X1, int Y1, int X2, int Y2);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*************************************
|
|
|
|
|
|
* 函数名称: ARIDLL_ExportAIT_FromInterface()
|
|
|
|
|
|
* 功能描述: AI跟踪器由NeoTracker算法内部调用,提供接口便于获取AI跟踪器结果到外部
|
|
|
|
|
|
* 创建日期: 2025/9/9
|
|
|
|
|
|
* 输入参数: ArithHandle hArithSrc:算法句柄
|
|
|
|
|
|
* 输出参数: AIT_OUTPUT * pAITrackerInfo:跟踪输出结果
|
|
|
|
|
|
* 返回值: STD_TRACKER_API void无
|
|
|
|
|
|
* 调用关系: 无
|
|
|
|
|
|
* 其它说明: 无
|
|
|
|
|
|
*************************************/
|
|
|
|
|
|
STD_TRACKER_API void ARIDLL_ExportAIT_FromInterface(ArithHandle hArithSrc, AIT_OUTPUT * pAITrackerInfo);
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
|
|
}
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#endif
|