光流與視訊行為識別的關係

weixin_41874599發表於2018-11-26

在視訊行為識別(action recognition)方向,目前最常見的網路框架有兩類,一類是直接將視訊作為輸入的3D卷積網路,另一類即是將影像以及光流(optical flow)分別作為輸入的two-stream網路。目前two-stream類的方法在效果上還是明顯要優於3D卷積類的方法,本文主要討論two-stream類方法中光流的應用。

雖然光流在two-stream類的方法裡被廣泛應用並且具有很好的效果,但這裡存在一個問題,就是光流在行為識別模型中到底起到了什麼作用,它本身的語義資訊到底是什麼?通常我們認為光流代表了視訊的motion資訊,然後直接就將其當作一個黑盒子作為了網路的輸入。近期,arXiv上放出的「On the Integration of Optical Flow and Action Recognition」(https://arxiv.org/abs/1712.08416)一文對光流在行為識別中的作用進行了深入的研究,探討了為什麼光流在行為識別中是有效的,在行為識別中怎麼樣的光流才是好的以及我們應該如何改進光流。這篇文章的結論可以說是有點反直覺的,此處先放出這篇文章的幾個結論,再分別進行介紹(以第一部分為主)。

  • 光流在行為識別模型中很有效,並不是因為它能夠捕捉運動資訊,而主要是因為光流對影像外觀(appearance)的不變性。

  • 光流演算法通常使用終點誤差(end-point-error, EPE)來衡量,但EPE的大小與行為識別效果的好壞並沒有很強的相關性

  • 光流演算法在邊緣以及小位移部分的準確度對動作識別的效果的相關性比較大。

  • 用行為識別分類誤差來訓練(fine tune)光流比起用EPE誤差來能獲得更好的行為識別效果。

  • 使用行為識別分類誤差來訓練得到的光流,與普通的光流的差異主要集中在人體的內部與邊緣區域。

為何要將光流作為行為識別模型的輸入?

通常認為光流代表著視訊的運動或時序資訊。在行為識別的資料集(如UCF101) 中,雖然有很多動作盡使用單幀影像就可以判別,還是有一些動作是依賴於時序資訊的。理論上視訊影像幀直接包含這些時序資訊,那麼3D卷積網路也應該能夠同等得學到光流中所包含的這些時序資訊。但目前結合光流的方法總是有更好的效果,在一些資料集上,使用光流的網路甚至能夠獲得比使用影像更好的效果,即便直觀來說影像包含更多物體以及場景相關的資訊。

那麼問題就是,為何光流在行為識別中這麼有用呢?本文作者在UCF101上,使用two-stream中比較常用的TSN網路進行了實驗探索。結果如下表:

藉助這些實驗結果,本文對一些通常觀念中直觀的看法進行了討論

(1)光流中包含的運動軌跡資訊是其對行為識別有效的原因?

通常都是使用5幀或10幀光流作為網路輸入,這些連續的光流幀實際代表了影像中密集的軌跡資訊,作者此處將輸入的光流場打亂順序- Flow(shuffled flow fields),發現效果只下降了8%左右。這表明軌跡資訊並不是關鍵因素。

(2)光流中包含的幀間motion資訊是其對行為識別有效的原因?

上一步中光流還是逐幀算的,進一步去除時序資訊,在計算光流前先打亂影像順序- Flow (shuffled image),這樣得到的光流與物理上的motion已經不符合了,但仍然會包含物體的形狀。雖然效果有所下降,但依舊有不錯的準確率。這表明motion資訊也並非是關鍵因素。

基於以上的實驗結果,作者提出了他們的觀點:光流在行為識別模型中效果好的原因在於其對於影像表觀的不變性,這使得行為識別模型在低variance的情況下可以更容易得學習。這個觀點可以通過實驗以及一些相關工作來佐證:

(1)通過變動影像表觀資訊,分別觀察以flow以及rgb影像作為輸入的行為模型的效能

這個實驗中訓練照常,但測試時修改影像的顏色,如下圖所示意:

其中,左邊為原圖,中間為altered colormap即更改了影像的顏色空間(如修改為HSV或BRG的形式),右側為對RGB各個通道的數值進行縮放。通過上面表格的資訊可以看出,在變動顏色後,基於RGB的方法效果降低非常明顯,而基於Flow的方法效果變化不大。這說明了光流對於顏色這種表觀資訊具有很好的不變性。

(2)2stream 模型在大型視訊資料集中的表現

參考今年 Deepmind 在[2]中的討論,當視訊資料集的大小非常大時,僅使用影像的網路會比僅使用光流的網路獲得更好的效果。這裡作者的觀點是認為,當資料集夠大時,其本身能夠涵蓋複雜的光照、紋理、背景等資訊,使得模型能夠獲得更好的泛化能力,也使得光流的表觀不變性沒有那麼重要了。

這一部分我認為是這篇文章最重要的一部分,得出了與通常想法相悖的結論,即光流在行為識別模型中發揮作用的主要原因是其對於表觀的不變性,而非其包含的motion或軌跡資訊。

光流的準確性與行為識別的準確性相關嗎?

接下來作者討論了光流的測評指標對於行為識別模型的有效性。目前有大量的光流演算法,包括傳統的方法以及這幾年基於CNN的方法。通常光流使用終點誤差(end-point-error, EPE)來衡量準確性。那麼此處的問題就是,一個準確性高的光流演算法,是否能夠帶來高的行為識別準確性。實驗的結果如下圖所示。

可以看出,兩者並沒有很強的關聯性。並非EPE誤差低的光流方法就能獲得更好的行為識別精度。進一步,作者探索了光流中的區域性區域EPE與動作識別準確率之間的關係,結果如下圖所示。

圖片含義就不詳細介紹了,具體可見原文。通過對此圖的分析,可以得到兩個結論:

  • 光流演算法在邊緣部分的準確度對動作識別的效果的相關性比較大。

  • 光流演算法在小位移的準確度對動作識別的效果的相關性比較大,不過由於光流演算法本身對於小位移表現較好而對大位移表現較差,所以這個結果也可能是由於光流本身的特性造成的。

所以,這一部分作者的結論為,光流整體的準確率與動作識別的準確率聯絡不大,而物體邊緣附近的光流以及小位移光流的準確性對動作識別準確率的影響比較大。

對於行為識別任務而言,存在比光流更好的運動表示嗎?

在經過上述的分析後,作者認為需要尋求一個比普通光流更好的運動表示。此處,作者選擇使用行為分類的損失函式來fine tune光流網路,從而獲得提升。並沒有探索光流之外的表示方式。

其實驗結果如以下兩表所示。

以上的實驗主要可以得到以下兩個結論:

  • 使用action loss來fine tune光流,最終能獲得更好的行為識別精度

  • 使用action loss來fine tune光流,光流本身的精度基本不會下降

作者進一步對action loss 來fine tune的光流進行了視覺化。

左右分別為不同的flow演算法,左右的第四列為普通flow和action loss 來fine tune 過的flow的差值。可以看出,差異主要集中在人體的內部與邊緣區域。

個人討論

這篇工作對光流在行為識別中的作用進行了細緻的討論,我覺得是有很大的意義,對後續的工作也很有啟發:

  • 作者在文中主要是想用action loss來改進光流,但既然光流發揮作用的主要原因在於其表觀不變性,那麼更換另外一種專門針對表觀不變性設計的表示作為行為識別模型的輸入會不會更好?比如使用分割的結果替代光流。

  • 若捨棄光流,同時針對表觀的色彩/紋理/光照做資料增強,那麼只用RGB影像可能也能獲得不錯的效果。

  • 可以通過提高網路本身對錶觀變化的學習能力,來替代光流表觀不變性的作用。

  • 若不採用光流,是否還能構建另外一種針對運動/軌跡資訊的low-level特徵,來更好地提供視訊中的時序資訊。

雖然在UCF101等比較早期的資料集中,用雙流網路已經能夠獲得很好的效果,但今年幾個新的視訊資料集給行為識別帶來了更多的挑戰。比如在Moments-in-Time資料集中,其行為類別與場景以及物體的關聯性就比較弱了,也有很多依賴於時序的動作(如 開 與 關 是時序上對稱的動作),這使得對於時序資訊的建模愈發重要。

總的來說,作者得出了光流的核心作用是表觀不變性的結論,並認為應該改進光流。但我覺得這篇文章可能會啟發更多人設計不使用光流的行為識別演算法(畢竟光流的效率還是很被人詬病的...)。今年越來越多的人開始研究視訊相關的領域,在17年末也期待明年能看到更多有趣的工作吧~

參考文獻

[1] Laura Sevilla-Lara et al. On the Integration of Optical Flow and Action Recognition. abs/1712.08416, 2017.

[2] J. Carreira and A. Zisserman. Quo vadis, action recog- nition? A new model and the kinetics dataset. CoRR, abs/1705.07750, 2017.

相關文章