From a882eb1c521ec497fe115ebde4190ac9058c6806 Mon Sep 17 00:00:00 2001 From: wangchongwu <759291707@qq.com> Date: Fri, 29 Aug 2025 10:18:07 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E9=9D=A2=E7=9B=AE=E6=A0=87?= =?UTF-8?q?=E6=A3=80=E6=B5=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- NeoTracker/src/Arith_SkyTracker.cpp | 6 +++--- NeoTracker/src/Arith_TrackSAObj.cpp | 17 ++++++++++++++--- NeoTracker/src/Detect/Arith_DetectAreaObj.cpp | 4 ++-- 3 files changed, 19 insertions(+), 8 deletions(-) diff --git a/NeoTracker/src/Arith_SkyTracker.cpp b/NeoTracker/src/Arith_SkyTracker.cpp index 19fd8fa..d8fea1b 100644 --- a/NeoTracker/src/Arith_SkyTracker.cpp +++ b/NeoTracker/src/Arith_SkyTracker.cpp @@ -1084,17 +1084,17 @@ DecPolicy SkyTracker::TO_TrackDecisionOf_KCF_CEND(GD_VIDEO_FRAME_S img) policy.Act_KCFTracker = Act::Adjust; g_GLB_nTrackDecisionCnt++; // 1.附近没有目标且跟踪偏离,隔5帧重置一次KCF(更苛刻条件下) - // 2.CEND检出稳定的尺寸条件下,每20帧重置1次KCF + // 2.CEND检出稳定的尺寸条件下,每1s重置1次KCF if ( ((1 == nCrossTarget && fSizeSameCendKCF < 0.7f && g_GLB_nTrackDecisionCnt > 5) || (pObjStatusCEND->fConfidence > 0.8f && nBkgAbnormal <= 2 - && g_GLB_nTrackDecisionCnt > 20 && pObjStatusCEND->sfSize.s < 300)) + && g_GLB_nTrackDecisionCnt > GLB_FRM_FREQ && pObjStatusCEND->sfSize.s < 300)) ) { policy.Act_KCFTracker = Act::Reset; } - if (g_GLB_nTrackDecisionCnt > 20) + if (g_GLB_nTrackDecisionCnt > GLB_FRM_FREQ) { g_GLB_nTrackDecisionCnt = 0; } diff --git a/NeoTracker/src/Arith_TrackSAObj.cpp b/NeoTracker/src/Arith_TrackSAObj.cpp index e03aa1d..60aa5b5 100644 --- a/NeoTracker/src/Arith_TrackSAObj.cpp +++ b/NeoTracker/src/Arith_TrackSAObj.cpp @@ -701,8 +701,8 @@ void SA_Tracker::SARegionDet(GD_VIDEO_FRAME_S img, GLB_INPUT* p_GLB_Input, SINT3 // 针对S3315近处大目标伺服不收敛优化 if (!stMotionMod_mean.bTrackStable && (trackTarget->snSize.w > 8 || m_LockingPipe->ObjectFilter.fPxlsCnt > 10)) { - m_TSA_Input.crCenterRect.w = MAX(m_TSA_Input.crCenterRect.w, 256); - m_TSA_Input.crCenterRect.h = MAX(m_TSA_Input.crCenterRect.w, 256); + m_TSA_Input.crCenterRect.w = MAX(m_TSA_Input.crCenterRect.w, 180); + m_TSA_Input.crCenterRect.h = MAX(m_TSA_Input.crCenterRect.w, 180); } SINT32 nAreaTargetNum = pDAT_Module->Detect(img, m_TSA_Input.crCenterRect, nObjCombineDist, GLB_STATUS_TRACK); @@ -1475,7 +1475,7 @@ SINT32 SA_Tracker::FindMatchTarget(PIPE* pPipe, TARGET_OBJECT* ptTargetArray, SI //小目标情况下,周围可能检测出干扰的相似目标(真正的目标无法检出),需要强逻辑限定 //面目标情况下,单个目标允许大范围关联,关闭距离限定;非单个目标限定关联距离 if (/*PIPE_EVENT_JUST_LOCK != m_LockingPipe->ubEventStatus && */ - m_LockingPipe->stMotionMod_mean.bTrackStable && + /*m_LockingPipe->stMotionMod_mean.bTrackStable && */ m_SizeMode <= SizeType::SmallTarget || (m_SizeMode >= SizeType::MiddleTarget && !bSingleTarget)) { if ((ABS(ptTarget->pfCenPos.x - stMotionMod_mean.crnObjPrediRtLong.cx) > MAX(ABS(fAzSpeed) * 2, nPredictDiffThresX) @@ -1486,6 +1486,17 @@ SINT32 SA_Tracker::FindMatchTarget(PIPE* pPipe, TARGET_OBJECT* ptTargetArray, SI fSimMax = -1; } } + //else if (m_LockingPipe->stMotionMod_mean.nObjPredictFarCnt < 3 && + // m_LockingPipe->stMotionMod_mean.nObjPredictFarCnt > 0) + //{ + // if ((ABS(ptTarget->pfCenPos.x - stMotionMod_mean.crnObjPrediRtLong.cx) > 50 + // || ABS(ptTarget->pfCenPos.y - stMotionMod_mean.crnObjPrediRtLong.cy) > 50 + // && (ABS(ptTarget->pfCenPos.x - m_ObjStatus.ptPos.x) > 50 + // || ABS(ptTarget->pfCenPos.y - m_ObjStatus.ptPos.y) > 50))) + // { + // fSimMax = -1; + // } + //} //// 灰度类型不同,任何情况都不允许跳跃 //if (ptTarget->fSNR * ptMainTarget->fSNR < 0) diff --git a/NeoTracker/src/Detect/Arith_DetectAreaObj.cpp b/NeoTracker/src/Detect/Arith_DetectAreaObj.cpp index 7dbcd3a..1851799 100644 --- a/NeoTracker/src/Detect/Arith_DetectAreaObj.cpp +++ b/NeoTracker/src/Detect/Arith_DetectAreaObj.cpp @@ -434,7 +434,7 @@ SINT32 DetectAreaObj::DAT_DetectAreaTarget(GD_VIDEO_FRAME_S img, GLB_STATUS nSta m_DAT_stPara.nDSmpScale = 1; } } - + m_DAT_stPara.nDSmpScale = MAX(2, m_DAT_stPara.nDSmpScale); ////自动调整降采样倍数 //if (nStatus != GLB_STATUS_TRACK) //{ @@ -1077,7 +1077,7 @@ void DetectAreaObj::DAT_Initialization(SINT32 nWidth, SINT32 nHeight, CENTERRECT m_DAT_stPara.nObjBkgGrayDiffMin = 10; m_DAT_stPara.fBkgGrayDiffCoeff = 0.35f; m_DAT_stPara.fgdk = DAT_OBJ_SNR_MIN; - m_DAT_stPara.nObjCombineDist = 11; + m_DAT_stPara.nObjCombineDist = 1; //20161113Whao,亮暗目标两套阈值 m_DAT_stPara.nGrayThresMinBright = DAT_GRAY_THRES_BRIGHT_MIN;