目錄
一、前言
二、多目標跟蹤框架
三、目標跟蹤流程圖
四、常速度模型
五、擴展卡爾曼濾波
六、噪音處理
七、航跡關聯
八、航跡管理
一、前言
雷達檢測到目標可以是行人,車輛、護欄等,為保證目標能夠穩定的輸出,在雷達資料信號處理檢測到目標之后必須使用目標跟蹤演算法,如果要想軟體輸出的效果比較好,就要設計的細致,在設計跟蹤演算法時必須考慮目標的屬性,也就是特征,總結歸類目標出現的場景,基于這些特征和場景來設計不同關聯門和運動模型,然后一步步實作就okay了,

二、多目標跟蹤框架
多目標跟蹤將聚類輸出的目標大小、測量值和測量誤差協方差作為輸入,輸出目標的位置,速度和大小等,
Step1:預處理,移除處于極端角度,較差的角度SNR的目標及x/y所定義的最大距離之外的目標,
Step2:狀態預測,根據常速度模型進行一步時間預測并計算出狀態誤差協方差,量測預測
Step3:航跡關聯,對每一個真實量測資料計算其與量測預測的殘差觀察是否在定義的波門范圍來決定是否關聯第i個跟蹤器,緊接著對波門內的量測打分(距離成本函式)
Step4:未關聯量測重分配,創建新的跟蹤器跟蹤器
Step5:關聯的量測做進一步的跟蹤濾波

三、目標跟蹤流程圖

四、常速度模型
這里暫時先不考慮安裝角度,但是實際情況下安裝在車輛或者輪船上是需要考慮安裝角度的,最后得出的目標是在本車坐標系下的目標方位角,并且這里不考慮目標高度,沒有垂向的FOV,有沒有俯仰角其實是設計天線應該考慮到的,如果發射天線和接收天線布局不在同一直線上,即有高度的間隔就可以測高,
狀態方程:
![]()
上式中:

注:w(n)是程序噪音向量,其協方差為Q(n)4x4,
量測方程:
![]()
上式中:

注:V(n)是測量噪音向量,協方差為R(n)3x3
上述為非線性方程,使用標準的EKF,采用泰勒展開式保留1階項將其線性化:
![]()



五、擴展卡爾曼濾波
為什么使用EKF呢?
其實就是建立的模型和雷達測量得到的資料(r,r',theta)具有非線性的關系,因此使用一階泰勒展開轉化為線性關系即可,
關于EKF的實施其實就是分為預測和更新兩個步驟,包括下面五個方程,在代碼中直接使用就行了,
噪音如何選取?
Q表征了系統模bai型的統計特性du,增加Q中元素的值,等zhi價于增加系統噪聲或dao增加系統引數版的不確定性,從而使權得增益矩陣Gf增大,加大了系統校正權值,提高了系統動態性能和穩態值,
矩陣 R 表征了測量噪聲, 增加 R 中元素的值, 意味加大測量噪聲的影響, 同時使 Gf 減小, 減弱系統校正權值, 降低了系統瞬態回應和穩態值, 所以矩陣 Q 和 R 的選取具有矛盾性, 二者進行選取時, 應視具體情況權衡而定,

六、噪音處理
由于測量噪音R是由傳感器本身決定的,因此這里僅需對模型程序噪音Q進行設計即可,雖然不涉及Rn,但是我仍然會給出Rn是怎么計算的,Q的話一般有兩種模型,一是分段白噪音,另一種是連續白噪音,這里不討論區別了,它們其實都是根據經驗調參值,這里直接使用分段白噪音模型,
分段白噪音模型如下:
![]()
它的矩陣形式為:

注:
加速度方差是一個經驗值
初始Q選取:根據跟蹤濾波器的激活時間來選擇,工程中假設新的跟蹤器的“程序噪聲”高,允許最快收斂,選擇最高噪音;較近的目標有較大的SNR以此補償較大的噪音測量,假設有較高程序噪音;
七、航跡關聯
航跡關聯的目的是減少計算量,對所有的量測點進行過濾,將可能是下一時刻真實量測點作為候選點(關聯上了tracker),其實工程中這里是改動最多的地方以便適應不同的場景(遠近距離,新舊tracker等),另外關聯的波門形式也是五花八門,需要關聯的變數也是需要考究的,但總歸跟量測值有莫大關系,
關聯波門的設定:
采用橢球作為波門的形狀,上述圖表示在縱向距離60米處目標不同速度、方位角測量殘差產生的門限形狀,
![]()
上式中a,b, c分別表示目標的距離大小(m),角度大小(rad),速度(m/s),
在本工程中引入可擴展的波門,即對于新的或者較遠的跟蹤器,假設程序噪聲稍大,可以擴大關聯的范圍,(此處的引數可以調節波門大小及波門的閾值,影響測量值的關聯)

八、航跡管理
航跡管理是用于管理tracker的,什么時候創建、洗掉、激活等
航跡管理的流程圖如下:

首先檢測當前的跟蹤器是否有效,如果是的話檢測量測點是否能夠進入波門并對進入波門的進行打分,得分最高者可以將其標記為associated,更新當前跟蹤器的狀態age=0,跟蹤次數tick++,在assocMeasIndx串列中的標出其關聯的tracker,
如果跟蹤器無效,將其直接加入freeTrackerIndxArray串列中,如果沒通過波門,或者量測誤差(新息)協方差矩陣不可逆,將其標記為not_associated,如果跟蹤器已存在,則age++,tick--,當丟失關聯的次數age超過一定閾值,將其加入freeTrackerIndxArray串列,
對于未關聯的點,根據allocate重分配演算法(2.1.4)判斷是否再關聯并建立新的跟蹤器,如果可以則將該量測點索引加入selectIndxArray串列中,并將對應在assocMeasIndx串列的量測點置為associated,
PS:
assocMeasIndx:表示量測點與哪一個tracker相關聯,初始化為not_associated,
freeTrackerIndxArray:表示要釋放哪一個已存在的tracker,初始化為not_associated,
SelectIndxArray:表示要將未關聯的量測點與哪一個已釋放的tracker關聯起來

關于它的狀態機描述如下:

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/226324.html
標籤:其他
上一篇:java
