Pyramidal Person Re-IDentification via Multi-Loss Dynamic Training

行人重識別之動態分塊訓練

Pyramidal Person Re-IDentification via Multi-Loss Dynamic Training
原文鏈接
這篇文章提出了兩個思想:

  • 圖像局部和整體的信息都很重要,要聯合使用。
  • 在訓練的過程中,損失函數的權重應該是動態變化的。

這兩個思想的關聯性不大,我們分開來看。

圖像的分塊和信息的利用:
對於行人重識別中圖像的分塊重要性我們已經熟知,但是通常是塊與塊之間的匹配,這樣的做法不夠嚴謹,於是作者使用瞭如下的分塊方法。
在這裏插入圖片描述
我們只需要看綠色的部分,將三維的feature map分塊(圖中爲了簡便,將三維畫成了二維),將其分成了6塊。分爲6層,21個獨立的feature map。
第一層:123456
第二層:12345、23456
第三層:1234、2345、3456
第四層:123、234、345、456
第五層:12、23、34、45、56
第六層:1、2、3、4、5、6
對21個feature map分別進一步提取特徵向量,並使用交叉熵損失(圖中的ID loss),再將21個特徵向量連接,使用三元組損失。

很簡單的分塊方式,不需要額外進行語義分割,但是實驗效果卻非常好。

損失函數權重的動態變化:
通常的做法是根據實驗結果選擇固定的損失函數權重。但是,在實際的訓練過程中,損失函數的地位是動態變化的。比如,最開始的時候,模型還是懵懂階段,對於它來說,所有的樣本都很難識別。那麼這個時候三元組損失就沒什麼意義。在最後的階段,一些難以識別的樣本漸漸浮出水面,那麼三元組損失就變得重要起來。
注意:並不是說,交叉熵損失越來越不重要,三元組損失越來越重要,這是一個複雜的動態變化過程。

進一步,作者認爲不同的損失函數應該對應不同的採樣方法。
比如,使用隨機採樣(下文的random sampling),行人身份衆多,同一個label的圖像很難採到兩個及以上。舉個例子,batchsize是8,用數字代表圖像的label,那麼一個batch的樣本很可能是這樣的:341,700,123,561,336,59,291,665。這樣的話,三元組損失就沒什麼意義了,因爲要存在正樣本對。所以作者使用了ID-balanced hard triplet sampling,batchsize爲64,每次取8個label,一個label取8張圖。但是這種採樣方式使得不足8張圖的label不會被取到,所以需要兩種採樣結合使用。

作者的做法如下,具體數學推導可以在使用的時候參考原文,這裏主要介紹思想。
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
FL(tp)和FL(id)可以分別理解爲三元組損失和交叉熵損失在當前迭代中的重要程度。當交叉熵更重要時,使用random sampling+交叉熵損失。當三元組更重要時,使用ID-balanced hard triplet sampling+兩個損失函數的加權組合。這就是一個權重動態變化的過程。

總結:雖然兩個思想都不是很複雜,但是效果卻十分好,可以應用於模型的baseline中。


歡迎討論 歡迎吐槽

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章