1. 程式人生 > >資料關聯演算法之最近鄰資料關聯(Nearest Neighbor,NN)

資料關聯演算法之最近鄰資料關聯(Nearest Neighbor,NN)

在上一篇部落格中有詳細介紹資料關聯的步驟:

  1. 建立關聯門,確定關聯門限。
  2. 門限過濾。
  3. 確定相似性度量方法。
  4. 建立關聯矩陣。
  5. 確定關聯判定準則。
  6. 形成關聯對。

在這些步驟中,關聯門可以選擇矩形或橢圓形,對於最近鄰演算法,相似性度量方法選擇加權歐式距離。

資料關聯是將不確定性觀測資料與軌跡進行配對,而最近鄰演算法又是什麼呢?最近鄰演算法利用加權歐式距離計算每一個觀測資料到真實目標的距離,然後再取其最近的一個觀測資料作為目標真實狀態,所以,當我們收到感測器傳回來的觀測資料時,首先計算加權歐式距離,然後再取其最近的點跡。

本文將分兩部分介紹最近鄰演算法。第一部分著重介紹加權歐式距離公式的由來,第二部分舉例說明最近鄰的含義。

加權歐式距離

 統計距離的定義:假設在第K次掃描之前,已經建立了N條航跡。第K次新觀測為Z_{j}\left ( k \right ),j=1,2,...,N。在第 i 條航跡的關聯門內,觀測 j 和航跡 i 的差向量定義為測量值和預測值之間的差,即濾波器殘差。

                                                              e_{ij}\left ( k \right )=Z_{j}\left ( k \right )-H\hat{X}_{i}\left ( k/k-1 \right )

其中\hat{X}_{i}\left ( k/k-1 \right )為狀態估計的一步預測方程\hat{X}_{i}\left ( k/k-1 \right )=\phi \left ( k \right )\hat{X}_{i}\left ( k/k \right )\phi \left ( k \right )為狀態轉移矩陣,H為觀測矩陣,設S\left ( k \right )e_{ij}\left ( k \right )的協方差矩陣。S\left ( k \right )=E\left [ e_{ij\left ( k \right )} \right e_{ij\left ( k \right )}^{T}],則統計距離(平方)為

                                                             d_{ij}^{2}=e_{ij}\left ( k \right )S_{ij}^{-1}\left ( k \right )e_{ij}^{T}\left ( k \right )

它就是判斷最近鄰點的度量標準,即加權歐式距離

注:如果這部分基礎知識點不懂的可以先看《多感測器資訊融合及應用》何友 王國巨集版本

最近鄰

1、最近鄰資料關聯:將落在關聯門內並且與被跟蹤目標的預測位置“最鄰近”的觀測點作為與航跡相關聯的觀測。

如有三批目標和三個測量,所形成的關聯矩陣為

                                          \begin{bmatrix} 2 & 1 & 3\\ 4 & 5 & 6\\ 9& 8 &7 \end{bmatrix}

m1,m2,m3表示關聯矩陣每列,m1表示第一列,m2表示第二列,m3表示第三列,分別代表三個測量值。T1,T2,T3表示矩陣每行,T1表示第一行,T2表示第二行,T3表示第三行,分別代表三批目標值。

按最近鄰

    m2\rightarrow T1     m1\rightarrow T2     m3\rightarrow T3

注:測量與目標的分配是按最小值來分配的,分配完之後,則出掉那一行和那一列,剩下再按最小分配。

       如:在關聯矩陣中,第一行數字1最小,則m2\rightarrow T1配對,然後劃掉矩陣第一行第二列,再看剩下的第二行中數字4最小,則m1\rightarrow T2,再劃掉第二行第一列,接著操作,得到m3\rightarrow T3

特點:一個目標最多隻與跟蹤門中一個測量相關,取跟蹤門中距目標最近的測量與目標相關。

2、全域性最近鄰:使總的距離或關聯代價達到最小,最優分配的問題

min\left \{ \sum_{i=1}^{n} \sum_{j=1}^{n}C_{ij}x_{ij}\right \}             \sum_{i=1}^{n}x_{ij}=1              \sum_{j=1}^{n}x_{ij}=1   

其中x_{ij}為二值變數,為0表示不關聯,為1表關聯,C_{ij}表示測量 i 與目標 j 之間距離。用矩陣表示時,矩陣的每行每列只能有1個元素為1。

例: \begin{bmatrix} 3 &4 \\ 6& 9 \end{bmatrix} m1,m2表示關聯矩陣第一列和第二列,代表2個測量資料,T1和T2表示關聯資料第一行和第二行,代表2個目標。     

關聯結果:m2\rightarrow T1     m1\rightarrow T2 矩陣表示   \left [ x_{ij} \right ]=\begin{bmatrix} 0 &1 \\ 1 &0 \end{bmatrix}

例:關聯矩陣C\left ( i,j \right )=\begin{bmatrix} 1 & 2 &3 \\ 2 & 4 &6 \\ 3 &6 & 9 \end{bmatrix}

關聯結果:    m1\rightarrow T3     m2\rightarrow T2     m3\rightarrow T1      矩陣表示        \left [ x_{ij} \right ]=\begin{bmatrix} 0 & 0 &1 \\ 0 & 1&0 \\ 1& 0&0 \end{bmatrix}

注:全域性最近鄰的關聯結果即是在所有配對的結果中選取其總數最小的那一個。比如說第一個例子,有兩種關聯結果,第一種m1\rightarrow T1  ,m2\rightarrow T2  3+9=12。 第二種  m2\rightarrow T1 ,m1\rightarrow T2  4+6=10。所以選擇第二種關聯結果。

關聯矩陣較大時,二維分配問題可Munkre演算法或Burgeois演算法求解,求解具多項式複雜度,非NP問題

特點:一個目標最多隻與跟蹤門中一個測量相關,以總關聯代價(或總距離)作為關聯評價標準,取總關聯代價或總距離最小的關聯對為正確關聯對。

總結:最近鄰資料關聯演算法的優點是運算量小,易於硬體的實現,但是隻能適用於稀疏目標和雜波環境的目標跟蹤系統。當在目標或者雜波密度較大時,很容易出現誤跟和漏跟現象,同時演算法跟蹤效能不高。