You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

112 lines
2.8 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#pragma once
// 测试用跟踪器算法
#include "Arith_Common.hpp"
#include "Arith_TrackSAObj.h"
#include "KCF/API_KCF_Tracker.h"
#include "Arith_BkgMonitor.h"
#include "Arith_OccludeJudge.h"
#include "Arith_ObjArrest.h"
#include "Arith_AI_Tracker.h"
#include "TLD/API_TLD.h"
#include "Arith_Match.h"
#include "Arith_OccJudgeAI.h"
#include "Arith_AIDMonitor.h"
#include "PIPE/API_MOT_PipeProc.h"
#include "Arith_TrackNDYT.h"
struct Param_CustomTracker
{
/* data */
};
class CustomTracker
{
public:
CustomTracker(SINT32 nWidth, SINT32 nHeight);
~CustomTracker();
Param_CustomTracker mTrakingPara;
// 跟踪初始化:统一使用管道作为接口
bool Init(GD_VIDEO_FRAME_S img, PIPE* pLockPipe, GLB_INPUT* p_GLB_Input);
// 跟踪
bool Track(GD_VIDEO_FRAME_S img, GLB_INPUT* p_GLB_Input, API_MOT_PIPE* g_GLB_PipeProc);
// 跟踪器解锁
void Cancle();
// 跟踪结果,用于输出
OBJECTSTATUS ObjStatus;
//KCF跟踪结果
OBJECTSTATUS ObjStatusKCF;
//AI跟踪结果
OBJECTSTATUS ObjStatusAI;
PIPE* m_LockingPipe;//锁定管道指针指向PIPE队列锁定目标初始化赋值
// 遮挡判断模块
OccJudge* m_pOccJudgeKCF;
OccJudgeAI* m_pOccJudgeAI;
TrackEvent tkEventKCF; //KCF跟踪事件处置
AID_Monitor* Ai_DMonitor; //AI Detection 管道监控模块
TrackEvent tkEventAI; //AI跟踪事件处置
API_MOT_PIPE* m_pGLB_MOT_PIPE; // 多目标跟踪管道,背景目标监控信息
SINT32 m_nKCFResetCnt;
SINT32 m_nAIResetCnt;
SINT32 m_nAISeResetCnt;
public:
// 跟踪融合
bool TrackDecision(GD_VIDEO_FRAME_S img, GLB_INPUT* p_GLB_Input);
bool TO_TrackDecisionOfMiddleObj_KCF_AI(GD_VIDEO_FRAME_S img, GLB_INPUT* p_GLB_Input);
// 跟踪事件处理
void EventProcess(TrackEvent tkEvent, TrackEvent pEventAI, GD_VIDEO_FRAME_S img, PIPE* pLockingPipe,GLB_INPUT* p_GLB_Input);
// 重捕获重置操作
void RecapRestProcess(TrackEvent tkEvent, GD_VIDEO_FRAME_S img, PIPE* pLockingPipe, GLB_INPUT* p_GLB_Input);
//对地跟踪器状态更新
bool GroundTrackKCF(GD_VIDEO_FRAME_S img, GLB_INPUT* p_GLB_Input, API_KCF_Tracker* pKCFTracker,
OccJudge* pOccJudge, TrackEvent* tkEventStatus, TLD_Para* pTLDPara);
bool GroundTrackAI(GLB_INPUT* p_GLB_Input, AIT_Interface* pAITracker, OccJudgeAI* pOccJudge,
TrackEvent* tkEventAI, TLD_Para* pTLDPara);
//kcf跟踪器通用
API_KCF_Tracker* m_pKCFTracker;
NCCAccuracy* m_pNccCorrect;
// TLD
API_TLD* m_pTLDTracker;
// 遮挡重捕模块
TargetArrest* m_pTargetArrest;
// AI跟踪器信息接口
AIT_Interface* m_pAITracker;
NDYT* m_pNDYTTracker;
public:
CENTERRECT getKCFTracker_SrBox();
// 获取TLD搜索波门
CENTERRECT getTLD_SrBox();
};