更新:1、增加航迹质量信息输出;
2、航迹起始时计算初始航迹质量; 3、航迹关联时更新航迹质量; Signed-off-by: waiwaylee <waiwaylee@foxmail.com>
This commit is contained in:
@@ -452,16 +452,48 @@ void Track_Init::tmp_track_to_trust_track(std::vector<Trust_Track> *trust_tra
|
||||
double range=(*Iter)[L-1].r;
|
||||
double azi=(*Iter)[L-1].azi/PI*180;
|
||||
|
||||
//(已停用)1km以内,SNR小于20dB的临时航迹不转为可靠航迹
|
||||
// bool snr_flag = true;
|
||||
// for(int p_idx = 0; p_idx < L; p_idx++){
|
||||
// if((*Iter)[p_idx].r < 1000 && (*Iter)[p_idx].snr < 20){
|
||||
// snr_flag = false;
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
//计算航迹初始质量
|
||||
double average_snr = 0;
|
||||
for(int i=0;i<L;i++)
|
||||
{
|
||||
average_snr += (*Iter)[i].SNR;
|
||||
}
|
||||
average_snr /= L;
|
||||
double snr_tmp = 1/(1+exp(-(average_snr - 16) / 1.2));
|
||||
double &d = (*Iter)[L-1].d;
|
||||
double d_tmp = exp(-d);
|
||||
double quality_tmp = d_tmp * TRACK_QUALITY_D_WEIGHT + snr_tmp * TRACK_QUALITY_SNR_WEIGHT;
|
||||
quality_tmp /= (TRACK_QUALITY_D_WEIGHT + TRACK_QUALITY_SNR_WEIGHT);
|
||||
for(int i=0;i<L;i++)
|
||||
{
|
||||
(*Iter)[i].quality = quality_tmp;
|
||||
}
|
||||
|
||||
if( (L <=10 && L>=Work_Parameter.track_start_point_num)&& track_init_prohibit(range,azi,Work_Parameter)==0) //按长度查找TRUST_TRACK_POINT
|
||||
//航迹起批条件判断
|
||||
bool track_init_flag = true;
|
||||
|
||||
//航迹长度大于10点,不起批
|
||||
if(L > 10){
|
||||
track_init_flag = false;
|
||||
}
|
||||
|
||||
//航迹长度小于起始点数,不起批
|
||||
if(L < Work_Parameter.track_start_point_num){
|
||||
track_init_flag = false;
|
||||
}
|
||||
|
||||
//航迹起批禁止区域判断
|
||||
if(track_init_prohibit(range,azi,Work_Parameter)!=0)
|
||||
{
|
||||
track_init_flag = false;
|
||||
}
|
||||
|
||||
//TODO: 航迹质量起批条件判断
|
||||
|
||||
|
||||
//TODO: 杂波密度判断
|
||||
|
||||
if(track_init_flag)
|
||||
{
|
||||
//加入Track_to_start中
|
||||
Track_to_start.push_back(std::vector <Temp_track> ());
|
||||
@@ -576,6 +608,9 @@ void Track_Init::tmp_track_to_trust_track(std::vector<Trust_Track> *trust_tra
|
||||
trust_track_tmp.associate_point_number = 0;
|
||||
trust_track_tmp.manual_tracking_flag = 0;
|
||||
trust_track_tmp.point_type = 0;
|
||||
trust_track_tmp.Quality = Track_to_start[i][L-1].quality;
|
||||
trust_track_tmp.Point_sum = L;
|
||||
trust_track_tmp.Valid_point_sum = L;
|
||||
trust_track_tmp.u[0]=0.3333;
|
||||
trust_track_tmp.u[1]=0.3333;
|
||||
trust_track_tmp.u[2]=0.3333;
|
||||
@@ -612,6 +647,7 @@ void Track_Init::tmp_track_to_trust_track(std::vector<Trust_Track> *trust_tra
|
||||
Trust_Track_Output[*Trust_track_num_Output-1][j].Amplitude=static_cast<float>(Track_to_start[i][j].amplitude);
|
||||
Trust_Track_Output[*Trust_track_num_Output-1][j].track_snr = static_cast<float>(Track_to_start[i][j].SNR);
|
||||
Trust_Track_Output[*Trust_track_num_Output-1][j].track_rcs = static_cast<float>(Track_to_start[i][j].RCS);
|
||||
Trust_Track_Output[*Trust_track_num_Output-1][j].Quality = static_cast<float>(Track_to_start[i][j].quality * TRACK_QUALITY_MAX);
|
||||
|
||||
Trust_Track_Output[*Trust_track_num_Output-1][j].pitch_num = Track_to_start[i][j].pitch_num;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user