From 782bff5e8e2b25690d2d102a4e39b9c28ae1fe7b Mon Sep 17 00:00:00 2001 From: waiwaylee Date: Tue, 20 Oct 2026 10:47:05 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=EF=BC=9A1=E3=80=81=E8=B0=83?= =?UTF-8?q?=E6=95=B4=E8=88=AA=E8=BF=B9=E8=B4=A8=E9=87=8F=E4=B8=8B=E9=99=8D?= =?UTF-8?q?=E9=80=BB=E8=BE=91=EF=BC=9B=202=E3=80=81=E6=99=AE=E9=80=9A?= =?UTF-8?q?=E8=88=AA=E8=BF=B9=E6=B6=88=E4=BA=A1=E6=9D=A1=E4=BB=B6=E6=94=B9?= =?UTF-8?q?=E4=B8=BA=E7=94=B1=E8=88=AA=E8=BF=B9=E8=B4=A8=E9=87=8F=E7=A1=AE?= =?UTF-8?q?=E5=AE=9A=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: waiwaylee --- data_process_class_dll/parameters.h | 16 ++++------------ data_process_class_dll/track_asso.cpp | 9 ++++++--- data_process_class_dll/track_die.cpp | 2 +- 3 files changed, 11 insertions(+), 16 deletions(-) diff --git a/data_process_class_dll/parameters.h b/data_process_class_dll/parameters.h index f0eabb3..1dd035c 100644 --- a/data_process_class_dll/parameters.h +++ b/data_process_class_dll/parameters.h @@ -57,7 +57,8 @@ #define TRACK_QUALITY_SNR_WEIGHT 0.3 #define TRACK_QUALITY_LEN_WEIGHT 0.2 #define TRACK_QUALITY_ITER_COEFF 0.8 -#define TRACK_QUALITY_DECREASE_COEFF 0.005 +#define TRACK_QUALITY_DECREASE_COEFF_O2 -0.0008 +#define TRACK_QUALITY_DECREASE_COEFF_O1 -0.0025 //航迹起批质量条件 #define TRACK_START_QUALITY_L3 0.7 @@ -67,17 +68,8 @@ #define TRACK_START_QUALITY_L7 0.3 //航迹消批质量条件 -#define TRACK_DIE_QUALITY_E4 0.3 -#define TRACK_DIE_QUALITY_E5 0.4 -#define TRACK_DIE_QUALITY_E6 0.5 -#define TRACK_DIE_QUALITY_E7 0.6 -#define TRACK_DIE_QUALITY_E8 0.7 - -#define TRACK_DIE_QUALITY_PRAMARY_E6 0.3 -#define TRACK_DIE_QUALITY_PRAMARY_E7 0.4 -#define TRACK_DIE_QUALITY_PRAMARY_E8 0.5 -#define TRACK_DIE_QUALITY_PRAMARY_E9 0.6 -#define TRACK_DIE_QUALITY_PRAMARY_E10 0.7 +#define TRACK_DIE_QUALITY 0.3 +#define TRACK_DIE_QUALITY_PRAMARY 0.3 #ifdef MECHANICAL_SCANNING /******************************机扫数据处理参数**************************************/ diff --git a/data_process_class_dll/track_asso.cpp b/data_process_class_dll/track_asso.cpp index 587cb14..9f83f48 100644 --- a/data_process_class_dll/track_asso.cpp +++ b/data_process_class_dll/track_asso.cpp @@ -793,21 +793,24 @@ void Track_Asso:: model_filter(std::vector *trust_track,struct Ra (*trust_track)[i].circle_id++; (*trust_track)[i].T_track = static_cast((*trust_track)[i].T_track+delta_T*1000.0); //更新航迹时间 (*trust_track)[i].GNSS_time = static_cast((*trust_track)[i].GNSS_time+delta_T*1000.0); //更新航迹时间 - (*trust_track)[i].Unupdated_time += static_cast(delta_T*1000.0); (*trust_track)[i].Extrapolate_round =(*trust_track)[i].Extrapolate_round+1; //连续未用实点更新时间 (*trust_track)[i].point_flag=0; //虚点 (*trust_track)[i].Track_Update_Flag = 1; //航迹更新标志 }else{ (*trust_track)[i].Extrapolate_round =(*trust_track)[i].Extrapolate_round+1; //连续未用实点更新时间 - (*trust_track)[i].Unupdated_time += static_cast(delta_T*1000.0); (*trust_track)[i].point_flag=0; //虚点 (*trust_track)[i].Track_Update_Flag = 0; //航迹更新标志 } //航迹质量递减 - (*trust_track)[i].Quality -= (*trust_track)[i].Unupdated_time / 1000.0 * TRACK_QUALITY_DECREASE_COEFF; + double t = (*trust_track)[i].Unupdated_time / 1000.0; + (*trust_track)[i].Quality -= t * t * TRACK_QUALITY_DECREASE_COEFF_O2 + t * TRACK_QUALITY_DECREASE_COEFF_O1; + (*trust_track)[i].Unupdated_time += static_cast(delta_T*1000.0); + t = (*trust_track)[i].Unupdated_time / 1000.0; + (*trust_track)[i].Quality += t * t * TRACK_QUALITY_DECREASE_COEFF_O2 + t * TRACK_QUALITY_DECREASE_COEFF_O1; (*trust_track)[i].Quality = (*trust_track)[i].Quality < 0.0 ? 0.0 : (*trust_track)[i].Quality; (*trust_track)[i].Point_sum = (*trust_track)[i].Point_sum + 1; + } } } diff --git a/data_process_class_dll/track_die.cpp b/data_process_class_dll/track_die.cpp index 5e893fe..26e33c1 100644 --- a/data_process_class_dll/track_die.cpp +++ b/data_process_class_dll/track_die.cpp @@ -23,7 +23,7 @@ void Track_Die::track_die_process( std::vector *trust_track, } //非重点航迹自动消亡 - if((*Iter).Track_Mode == 0 && (*Iter).primary_target_flag == 0 && (*Iter).Extrapolate_round > TRACK_DIE_ROUND) + if((*Iter).Track_Mode == 0 && (*Iter).primary_target_flag == 0 && (*Iter).Quality < TRACK_DIE_QUALITY) { die_flag = true; }