|
|
|
@ -667,7 +667,7 @@ void SA_Tracker::SARegionDet(GD_VIDEO_FRAME_S img, GLB_INPUT* p_GLB_Input, SINT3
|
|
|
|
|
|
|
|
|
|
|
|
pDST_Module->SetCombinDist(nCombinDist);
|
|
|
|
pDST_Module->SetCombinDist(nCombinDist);
|
|
|
|
|
|
|
|
|
|
|
|
pDST_Module->Detect(img, m_TSA_Input.crCenterRect, GLB_STATUS_TRACK);
|
|
|
|
SINT32 nSmallTargetNum = pDST_Module->Detect(img, m_TSA_Input.crCenterRect, GLB_STATUS_TRACK);
|
|
|
|
// 小目标可以开面目标检测
|
|
|
|
// 小目标可以开面目标检测
|
|
|
|
if (bEnableAreaObjDetect)
|
|
|
|
if (bEnableAreaObjDetect)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
@ -679,7 +679,7 @@ void SA_Tracker::SARegionDet(GD_VIDEO_FRAME_S img, GLB_INPUT* p_GLB_Input, SINT3
|
|
|
|
// 面目标跟踪模式
|
|
|
|
// 面目标跟踪模式
|
|
|
|
if (m_SizeMode == SizeType::AreaTarget)
|
|
|
|
if (m_SizeMode == SizeType::AreaTarget)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
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);
|
|
|
|
m_TSA_output.crCenterRect = pDAT_Module->getDAT_stOutput()->crCenterRect;
|
|
|
|
m_TSA_output.crCenterRect = pDAT_Module->getDAT_stOutput()->crCenterRect;
|
|
|
|
m_TSky_Output->mTrakingPara_Output.nAreaCombineDist = nObjCombineDist; // 面目标合并距离调试输出
|
|
|
|
m_TSky_Output->mTrakingPara_Output.nAreaCombineDist = nObjCombineDist; // 面目标合并距离调试输出
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -1262,7 +1262,7 @@ SINT32 SA_Tracker::FindMatchTarget(PIPE* pPipe, TARGET_OBJECT* ptTargetArray, SI
|
|
|
|
ABS(ptTarget->snSize.h - pPipe->ObjectFilter.sfSize.h) > 3 * nDSmpScale ||
|
|
|
|
ABS(ptTarget->snSize.h - pPipe->ObjectFilter.sfSize.h) > 3 * nDSmpScale ||
|
|
|
|
ABS(ptTarget->snSize.w - pPipe->ObjectFilter.sfSize.w) > 3 * nDSmpScale) && m_LockingPipe->unLostCnt < GLB_FRM_FREQ)
|
|
|
|
ABS(ptTarget->snSize.w - pPipe->ObjectFilter.sfSize.w) > 3 * nDSmpScale) && m_LockingPipe->unLostCnt < GLB_FRM_FREQ)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
continue;
|
|
|
|
//continue;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@ -1311,7 +1311,18 @@ SINT32 SA_Tracker::FindMatchTarget(PIPE* pPipe, TARGET_OBJECT* ptTargetArray, SI
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 阈值调整
|
|
|
|
// 阈值调整
|
|
|
|
if (pPipe->unLostCnt < 20)
|
|
|
|
if (pPipe->unLostCnt < 3)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
fSScaleChangeLowThres = 0.3;
|
|
|
|
|
|
|
|
fSScaleChangeHighThres = 3.f;
|
|
|
|
|
|
|
|
fAScaleChangeLowThres = 0.5;
|
|
|
|
|
|
|
|
fAScaleChangeHighThres = 2.0;
|
|
|
|
|
|
|
|
nLastDiffThresX = MAX(nMoveMin, 6);
|
|
|
|
|
|
|
|
nLastDiffThresY = MAX(nMoveMin, 6);
|
|
|
|
|
|
|
|
nPredictDiffThresX = MAX(nFThreMin, 6);
|
|
|
|
|
|
|
|
nPredictDiffThresY = MAX(nFThreMin, 6);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else if (pPipe->unLostCnt < 20)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
fSScaleChangeLowThres = 0.3;
|
|
|
|
fSScaleChangeLowThres = 0.3;
|
|
|
|
fSScaleChangeHighThres = 3.f;
|
|
|
|
fSScaleChangeHighThres = 3.f;
|
|
|
|
@ -1369,11 +1380,12 @@ SINT32 SA_Tracker::FindMatchTarget(PIPE* pPipe, TARGET_OBJECT* ptTargetArray, SI
|
|
|
|
fPixChange = (FLOAT32)(ptTarget->unObjPxlsCnt) / MAX(ptMainTarget->unObjPxlsCnt, 0.001f);
|
|
|
|
fPixChange = (FLOAT32)(ptTarget->unObjPxlsCnt) / MAX(ptMainTarget->unObjPxlsCnt, 0.001f);
|
|
|
|
|
|
|
|
|
|
|
|
// 大于DAT_TARGET_MIN的目标可能是临界目标
|
|
|
|
// 大于DAT_TARGET_MIN的目标可能是临界目标
|
|
|
|
if (ptTarget->unObjPxlsCnt < 6 || ptMainTarget->unObjPxlsCnt < 6)
|
|
|
|
if (ptTarget->unObjPxlsCnt < 9 || ptMainTarget->unObjPxlsCnt < 9)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
if (fSScaleChangeHighThres < fPixChange || fSScaleChangeLowThres > fPixChange)
|
|
|
|
if ((ptTarget->unObjPxlsCnt == 1)
|
|
|
|
|
|
|
|
&& (fSScaleChangeHighThres < fPixChange || fSScaleChangeLowThres > fPixChange))
|
|
|
|
{
|
|
|
|
{
|
|
|
|
fSimMax = -1;
|
|
|
|
//fSimMax = -1;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else if (fSScaleChangeHighThres < fSizeChange || fSScaleChangeLowThres > fSizeChange)//均为面目标的情形
|
|
|
|
else if (fSScaleChangeHighThres < fSizeChange || fSScaleChangeLowThres > fSizeChange)//均为面目标的情形
|
|
|
|
|