本文介紹了一種從運動中無監督地學習物體性質的方法:Self-Supervised Learning via Conditional Motion Propagation [1].
這篇文章來自香港中文大學和南洋理工大學,被CVPR 2019接收。
這篇文章的作者用一種容易理解、接近直覺的方式來分享這篇文章的思路來源,希望能對讀者有所啟示。
基於運動分析的無監督學習
人為何能具有無監督學習的能力?其中有個很重要的因素是,人能夠從運動中學習到:什麼是物體、不同物體的性質、運動的規律等等。
嬰兒從出生到成長的過程中,無時無刻不在觀察著世界的運轉。儘管沒有系統地學過力學和運動學,TA還是可以輕易地根據一些已經形成常識的法則形成個體的概念,理解不同物體的運動學性質,甚至預測物體的未來運動。
那麼這樣的常識和法則是什麼呢?這很難完整地定義。
也許你會說,一個個體傾向於具有一致的運動大小和方向,但這其實僅僅適用於平動中的剛體。然而現實世界中大多數物體具有高自由度,例如人體,甚至是可變形的,例如水流。
既然無法顯式地定義它,那麼這種常識,可否能透過神經網路來自動地從大量影片中學習呢?
從運動中學習(learn-from-motion),我們首先需要理解運動是什麼。
運動是物體的運動學屬性的外在反映。從運動中學習,無非就是透過現象(運動)總結規律(物體屬性)。
如圖1,對於有監督學習來說,這種規律具有完整的定義和顯式的標註,例如例項分割,因此可以直接對內在規律(個體的類別和mask)進行監督。但如前面所說,這類運動學屬性常識不僅難定義,而且更難標註,因此我們需要尋求新的學習正規化。
圖1. 監督學習正規化
如圖2,一種合理的無監督學習正規化是,透過觀測到的表象來感知隱式的內在規律,再把這種規律以某種新的表象表達出來。然後對這個新的表象應用一些限制和假設並表示成損失函式來學習。我們將之定義為“感知-表達正規化”。
圖2. 一種無監督學習正規化:感知-表達
對應到從運動中學習這個問題,我們的觀測表象和預測表象可以有多種組合:
1)觀測:影片;預測:運動
2)觀測:運動;預測:圖片/影片
3)觀測:單張圖片;預測:運動
4)觀測:單張圖片;預測:運動前景分割
對於1),觀測表象是影片,其本身就具有運動資訊,那麼如果最後任務是預測運動的話,其學習到的內在規律僅僅是幀間關聯性而已(參考無監督光流學習[2])。
對於2),運動(例如光流)中包含的資訊太少,例如一塊區域是靜止的,我們就無法確定這塊區域是什麼物體,因此這種方式也難以獲得我們需要的資訊。
對於3),代表從靜態圖片中預測運動,這是一個很合適的思路,事實上已經有一些工作在做這個事情[3][4]。不過要注意的是,靜態圖片中物體的未來運動具有不確定性,例如一輛汽車可能正在前進,也可能在倒車。現有的工作基於編碼後的運動能夠形成一個多元標準高斯分佈的假設來訓練。而由於現實世界中物體的結構複雜性和運動不確定性,這個假設其實是很強的,因而導致網路的收斂難度較大。
對於4),也有對應的工作[5]。他們從影片中提取運動前景作為監督,來學習從靜態圖片中分割出運動前景。這個工作基於的假設是同一個物體上畫素的運動具有相似性。然而這個假設僅僅適用於平動的剛體。
人類對運動的想象
我們不妨來反思一下人對運動的想象是個什麼過程。
圖3. 人對運動的想象
如圖3,看到一張靜態影像,人會首先判斷其中每個物體的屬性,例如圖片中的舞者是個鉸接體,舞者的頭是剛體等等。然後我們會想象每一部分運動起來會是什麼樣子,也就是給一些抽象的指令,例如圖片中的舞者右手抬起、低下頭等。
最後人能夠在腦海中想象出這些物體完整的運動,包括右手繞著肩關節的旋轉,頭部向下的移動,以及身體其它部位的運動。這個過程可以用一個簡單的公式描述:屬性+指令=運動。
同樣地,這個公式可以適用於各種其它物體,比如汽車、狗、鳥等。從而,我們得到了第5種“感知-表達正規化“的輸入輸出組合。即:
5)觀測:單張圖片和抽象指令;預測:運動;而“內在規律”即為物體屬性。
物體屬性是我們希望學到的資訊,而運動可以用已有的光流來描述,那麼我們只需要有“指令”就可以了。
然而,這個指令是抽象的,對於無監督學習系統來說,它不知道“左手”、“右腿”和“頭”是什麼概念,自然無法理解這些指令。接下來我們要做的,是用一種最簡單的方式來模擬這種指令。
條件運動傳播
我們的論文[1]將上述“屬性+指令=運動”的想法實現為“條件運動傳播”任務。
圖4. 條件運動傳播
如圖4,我們對影像進行編碼,期望得到物體屬性相關特徵,然後從運動場中抽樣出稀疏運動代表“指令”(條件),將兩者輸入到運動解碼器中預測出完整運動場。
最理想的情況,抽樣點應該恰好涵蓋所有的運動自由度,這樣的“指令”是在確保完備性的前提下最精簡的。然而這個目標是很難達到的。為此,我們設計了一種基於“分水嶺”的抽樣策略,以期抽樣點儘量落在運動物體上,並且足夠稀疏。
由於本文主要討論思想,這篇論文的其它細節可以參考原paper和程式碼(文末附地址)。
條件運動傳播的應用
為了驗證條件運動傳播無監督學習物體性質的能力,我們在文章中介紹了三種應用。
1)首先是表徵學習能力。
我們將條件運動傳播網路中的影像編碼器提取出來,用來初始化其它高階任務,包括語意分割、例項分割和人體解析。
我們期望用條件運動傳播任務初始化的神經網路引數能為這些更高階的任務提供一個較好的初始化。這也是自監督學習領域的標準評價指標。在這些任務上,條件運動傳播相比以往自監督學習方法獲得了較大提升。
圖5. PASCAL VOC 2012語義分割任務中不同初始化方式的效能對比
2)在測試時,條件運動傳播可以由使用者制定“指令”。
經過視覺化分析,我們發現了一些有趣的現象。
圖6. 條件運動傳播測試時可以由使用者制定“指令”
例如在圖6第一個例子中,給定舞者一個“抬左腳”的指令(對應腳上的紅色箭頭),預測出來的運動場中,整個左腳連同小腿繞著膝關節旋轉。而給定舞者“身體向前”的指令後,預測出來身體是整體平移。這些觀測大致符合人體作為一個鉸接體的運動規律。
圖6另一個例子中,給定舞者左側大腿後抬的指令,預測結果中整個左腿能夠一起運動;而給定舞者右腿後移的指令,預測結果中腳仍舊還是固定的,因為右腳支撐在地上。這些結果遵循物體的運動學屬性,並且反映出了一部分現實世界中的物理規律。
利用這些特性,我們將它應用到了互動式影片生成。
圖7. 互動式影片生成。T=0為輸入圖片,紅色箭頭為使用者的指令(滑鼠拖拽),利用條件運動傳播,能夠根據不同的指令生成合理的運動後的影像。
如圖7,我們將原圖用預測出來的光流做warping後得到運動後的影像。這樣我們可以使用滑鼠讓一張靜態圖中的物體動起來,並且它們的運動符合其原有的運動規律(請看文末影片演示)。
3)半自動例項標註。
我們發現條件運動傳播能很好地分割出物體的邊界,而不受複雜的背景影響。因此我們利用訓練好的條件運動傳播網路實現了半自動例項標註。
圖8. 半自動例項標註
如圖8,使用者只需指定少量落在目標物體上的positive points和物體外的negative points即可得到物體的mask。由於條件運動傳播是無監督的,沒有物體類別的限制,因此可以用來標註一些不常見的物體。
到此為止,這些結果都沒有用到任何人工的標註。
總結
條件運動傳播尚且還是最初級的探索,權當拋磚引玉。是否還有運動分析思路,更好的“觀測-規律-預測”組合,更好的無監督學習正規化?這些都需要後續的研究者來回答。
論文地址:
http://personal.ie.cuhk.edu.hk/~ccloy/files/cvpr_2019_self.pdf
程式碼地址:
https://github.com/XiaohangZhan/conditional-motion-propagation
Demo演示:
References:
[1] Xiaohang Zhan, Xingang Pan, Ziwei Liu, Dahua Lin, and Chen Change Loy. Self-Supervised Learning via Conditional Motion Propagation. In CVPR, 2019.
[2] Simon Meister, Junhwa Hur, and Stefan Roth. UnFlow: Unsupervised learning of optical flow with a bidirectional census loss. In AAAI, 2018.
[3] Jacob Walker, Abhinav Gupta, and Martial Hebert. Dense optical flow prediction from a static image. In ICCV, 2015.
[4] Jacob Walker, Carl Doersch, Abhinav Gupta, and Martial Hebert. An uncertain future: Forecasting from static images using variational autoencoders. In ECCV. Springer, 2016.
[5] Deepak Pathak, Ross B Girshick, Piotr Doll´ar, Trevor Darrell, and Bharath Hariharan. Learning features by watching objects move. In CVPR, 2017.