优化面目标检测

main
wangchongwu 3 months ago
parent 04dd7d3816
commit a882eb1c52

@ -1084,17 +1084,17 @@ DecPolicy SkyTracker::TO_TrackDecisionOf_KCF_CEND(GD_VIDEO_FRAME_S img)
policy.Act_KCFTracker = Act::Adjust; policy.Act_KCFTracker = Act::Adjust;
g_GLB_nTrackDecisionCnt++; g_GLB_nTrackDecisionCnt++;
// 1.附近没有目标且跟踪偏离隔5帧重置一次KCF更苛刻条件下 // 1.附近没有目标且跟踪偏离隔5帧重置一次KCF更苛刻条件下
// 2.CEND检出稳定的尺寸条件下20帧重置1次KCF // 2.CEND检出稳定的尺寸条件下1s重置1次KCF
if ( if (
((1 == nCrossTarget && fSizeSameCendKCF < 0.7f && g_GLB_nTrackDecisionCnt > 5) ((1 == nCrossTarget && fSizeSameCendKCF < 0.7f && g_GLB_nTrackDecisionCnt > 5)
|| (pObjStatusCEND->fConfidence > 0.8f && nBkgAbnormal <= 2 || (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; policy.Act_KCFTracker = Act::Reset;
} }
if (g_GLB_nTrackDecisionCnt > 20) if (g_GLB_nTrackDecisionCnt > GLB_FRM_FREQ)
{ {
g_GLB_nTrackDecisionCnt = 0; g_GLB_nTrackDecisionCnt = 0;
} }

@ -701,8 +701,8 @@ void SA_Tracker::SARegionDet(GD_VIDEO_FRAME_S img, GLB_INPUT* p_GLB_Input, SINT3
// 针对S3315近处大目标伺服不收敛优化 // 针对S3315近处大目标伺服不收敛优化
if (!stMotionMod_mean.bTrackStable && (trackTarget->snSize.w > 8 || m_LockingPipe->ObjectFilter.fPxlsCnt > 10)) 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.w = MAX(m_TSA_Input.crCenterRect.w, 180);
m_TSA_Input.crCenterRect.h = MAX(m_TSA_Input.crCenterRect.w, 256); 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); 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 && */ 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)) m_SizeMode <= SizeType::SmallTarget || (m_SizeMode >= SizeType::MiddleTarget && !bSingleTarget))
{ {
if ((ABS(ptTarget->pfCenPos.x - stMotionMod_mean.crnObjPrediRtLong.cx) > MAX(ABS(fAzSpeed) * 2, nPredictDiffThresX) 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; 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) //if (ptTarget->fSNR * ptMainTarget->fSNR < 0)

@ -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 = 1;
} }
} }
m_DAT_stPara.nDSmpScale = MAX(2, m_DAT_stPara.nDSmpScale);
////自动调整降采样倍数 ////自动调整降采样倍数
//if (nStatus != GLB_STATUS_TRACK) //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.nObjBkgGrayDiffMin = 10;
m_DAT_stPara.fBkgGrayDiffCoeff = 0.35f; m_DAT_stPara.fBkgGrayDiffCoeff = 0.35f;
m_DAT_stPara.fgdk = DAT_OBJ_SNR_MIN; m_DAT_stPara.fgdk = DAT_OBJ_SNR_MIN;
m_DAT_stPara.nObjCombineDist = 11; m_DAT_stPara.nObjCombineDist = 1;
//20161113Whao亮暗目标两套阈值 //20161113Whao亮暗目标两套阈值
m_DAT_stPara.nGrayThresMinBright = DAT_GRAY_THRES_BRIGHT_MIN; m_DAT_stPara.nGrayThresMinBright = DAT_GRAY_THRES_BRIGHT_MIN;

Loading…
Cancel
Save