深入理解MOT評價指標

2021-10-11 02:33:56 字數 2414 閱讀 9809

之前一直對其多目標跟蹤的評價指標一知半解,今天記錄一下其具體的演算法細節,不當之處請大家一定要指正!

mota可以算是mot中最重要的乙個指標,其計算公式都耳熟能詳了,如下:

其中g tt

gt_gt

t​表示第t幀中ground truth的個數,ftt

ft_ft

t​表示第t幀中漏檢的個數,fpt

fp_fp

t​表示第t幀中虛檢的個數,ids

wtidsw_

idswt​

表示第t幀中軌跡的id號發生轉變的個數。

下面對這四個指標一一進行分析:

g tt

gt_gt

t​:很簡單,對應label中第t幀有幾個instance,那麼該值就是標註的instance的個數。總數只需要把每一幀的個數求和即可;

f nt

fn_fn

t​:漏檢表示假如gt在第t幀本應該有5個instance,但是在你得到的檢測結果中只有四個能與之匹配(例如匹配可以等價於iou>0.5),這個時候就存在乙個gt的box漏檢,此時fn為1。總數把每一幀的fn求和即可;

f pt

fp_fp

t​:虛檢表示檢測出來的bbox不在gt裡面的情況,例如我某一幀檢測到了6個框,但gt只有5個instance,且6個框中只能與gt匹配4個,這種情況下顯然有兩個框不在gt中,因此fp等於2,相應地fn=1;

i ds

wtidsw_

idswt​

:我們通過tracking可以得到若干條軌跡,假設gt中只有一條軌跡,那麼這條軌跡可能在不同的時間對應不同的得到的tracking的軌跡。例如前一半時間gt軌跡對應的位置離軌跡1近,此時id號就屬於1;而隨著時間的推移,軌跡1與gt的位置不斷偏離,而軌跡二與gt越來越近,在某個時刻gt就與軌跡2相對應了,此時就發生了id switch。

如果抽象的話可以結合下圖來看,就很清晰了:

以a圖為例:1時刻檢測的框與gt對應的框太遠(iou過大),導致gt漏檢,且檢測框虛檢;2時刻檢測框離gt近了一些,此時檢測框和gt box的iou大於閾值,該檢測框為tp;3時刻出現了兩個檢測框(紅&藍),此時紅框為tp,藍框過遠為fp(此時虛檢的藍色框又開啟了一條軌跡);4時刻紅色檢測框離gt很遠,但藍色的很近,因此紅色軌跡的檢測框為fp,而藍色的為tp,注意此時該gt軌跡的id從紅色切換到了藍色,即發生了id switch。最後兩幀紅色軌跡消失(檢測框不存在了),藍色始終為tp。因此整個過程gt=6,fn=1(第1幀),fp=4(藍色和紅色的空心點),idsw=1(第4幀)。

因此mota的值越大越好,最大為100(一般採用百分數),最小的話因為fp和ids的關係,可能為負數。

理解了mota以後,其他的評價指標就顯得更容易了。

motp的計算公式相對容易,如下所示:

motp衡量的是檢測結果的精度,即檢測框與給他分配的gt之間的平均度量距離。ctc_

ct​表示第t幀成功與gt匹配的檢測框數目(匹配過程可能也是用iou大於某閾值?),而dt,

id_dt,i

​表示匹配對之間的距離度量(iou或者歐式距離等度量)。如果度量是iou的話,那麼motp越大越好;如果為歐式距離,那麼motp越小越好。

對於所有的gt裡面的軌跡來說,滿足高於80%時間都能成功匹配的軌跡佔比。這裡不關心中途id是否發生改變,只要能有檢測框和他匹配上即可。還是以下圖為例:

圖(a)gt軌跡只有一條,該軌跡在6個時間點只有第乙個沒匹配上,因此83.3%的時間是有匹配的,此時mt為100%;圖(b)顯然mt為0%;圖(c)有兩條gt軌跡,上面那條5/6時間有匹配,下面那條只有1/3時間有匹配,此時大於80%的只有一條,mt為50%;圖(d)應該也為100%(時間佔比5/6?不太確定)。

因此mt越大越好,mt越大就表明gt中被成功匹配時間佔比很長的軌跡越多,跟蹤效果越好。

對於所有的gt裡面的軌跡來說,滿足小於20%時間都能成功匹配的軌跡佔比。這個指標與mt相反,因此越小表明跟蹤效果越好。

mota指標中詳細講過,即乙個gt軌跡在不同的時間段,可能會和你**出來的不同的軌跡匹配,每一次匹配軌跡的改變就是一次id switch。id switch越大表明**出來的軌跡與gt的偏離就越多(偏離多了才會被其他軌跡接管,出現id switch)。因此該指標越小越好。

深入理解指標

指標 是乙個特殊的變數 它裡面儲存 的數值被解釋成為記憶體裡的乙個位址 指標也是一種資料型別,並且也是有值的。要搞清乙個指標需要搞清指標的四方面的內容 指標的型別,指標所指向的型別,指標的值或者叫指標所指向的記憶體區,還有指標本身所佔據的記憶體區。讓我們分別說明。先宣告幾個指標放著做例子 例一 1 ...

深入理解指標

指標 是乙個特殊的變數 它裡面儲存 的數值被解釋成為記憶體裡的乙個位址 指標也是一種資料型別,並且也是有值的。要搞清乙個指標需要搞清指標的四方面的內容 指標的型別,指標所指向的型別,指標的值或者叫指標所指向的記憶體區,還有指標本身所佔據的記憶體區。讓我們分別說明。先宣告幾個指標放著做例子 例一 1 ...

深入理解指標

指標的概念 指標是乙個特殊的變數,它裡面儲存的數值被解釋成為記憶體裡的乙個位址。要搞清乙個指標需要搞清指標的四方面的內容 指標的型別,指標所指向的型別,指標的值或者叫指標所指向的記憶體區,還有指標本身所佔據的記憶體區。讓我們分別說明。先宣告幾個指標做例子 例一 1 in ptr 2 char ptr...