CVPR2016之A Key Volume Mining Deep Framework for Action Recognition論文閱讀(視訊關鍵幀選取)
該論文的主要思想是從視訊中選取關鍵的幀卷(frame volume)用來行為識別。
該文章的意圖是通過對視訊中關鍵幀進行選取,減少與視訊表達內容不相關的視訊幀,實現視訊中行為識別準確率的提升。
該文章主要從兩個方面進行闡述:1、如何選取關鍵幀。2、如何檢測並框住人體動作行為以便用來識別
下面我講從兩個方面闡述這個問題。
如何選取關鍵幀
關鍵幀的選取採用了多示例學習的方法(multiple-instance learning),多示例學習是區別於監督學習、半監督學習以及非監督學習的一種方法。多示例學習有多種形式,一般分為如下三種:instance-space paradigm,bag-space paradigm the embedded-space paradigm.其中,多示例學習是以包(bag)的形式存在,其主要目的是對bag的型別進行分類。傳統的監督學習是對example進行標記(在多示例學習中成為instance),每個instance對應一個label。而多示例學習則是每一個包對應一個label,而包裡面的instance是沒有label的。
在該論文采用的多示例學習是instance-space paradigm。而由於bag中的instance不含有label,因此一般需要有前提條件才能使用該方法。instance-space有兩種假設條件:一種是SMI(Sttandard MI)假設,另一種是Collective assumption 假設。
該思想來自於論文Multiple Instance Classification:review,taxonomy and comparative study
該方法的假設內容是:標記為正的bag中至少含有一個instance的label為正,標記為負的bag的instance的label全部為負。因此,判斷一個包的label是正還是負,通過如下公式可計算:
其中f(x)是樣本(instance)標籤的正負。
既然instance沒有標籤,那麼label的正負如何得到?
在這篇論文中,使用了EM-like loop的方法。EM方法是一種機器學習方法,同樣也是處理樣本label缺失型的分類問題。在這裡,我們參考了一篇論文中的方法,這篇論文是
Support Vector Machines for Multiple-Instance Learning
該論文利用SVM對樣本進行標記,採用的是EM方法。這裡貼上該方法的虛擬碼:
包的label設定為負,則包內的instance的label全為負。問題便出在label為正的包,其中可能含有label為負的instance。如何在label為正的bag中find label=1的instance? 這也是本論文所關心的問題。
看似難以區分,但仍存在辦法:即EM方法。首先設定初始值,假設所有的bag為正的instance全部賦予label=1,在該基礎上迭代,更新w和b,更新後的SVM的資料分割線的移動導致有正bag的所有instance被全部分到label=0..這是不存在的,故選取響應最強的instance,將其label設定為1.再一次更新迭代w和b。直至收斂,達到如下圖所示的效果:
這樣對bag進行分類時,將能清晰看出bag是否含有label=1的instance。
本論文藉助於這一思想,但又不完全相同,本論文意圖不在於對bag進行分類,而在於在label=1的bag中尋找label=1的instance。
介紹了前面的MIL和mi-SVM的思想後,本論文基於如上的思想完成視訊關鍵幀的選取。首先本論文中一個bag含有K個volume,而該K個volume來自一段video。假設video的關鍵幀比例為r,則bag中包含有關鍵幀的概率為
K越大,含關鍵幀的概率越高。
該論文將volumes送入N(即學習的種類)個學習的classifier後,得到的response最強的volume則是關鍵的volume。
至於classifier 如何學習,將在後面闡述。
該網路的網路結構如圖所示:
通過網路得到了score matrix,根據該matrix的響應對網路進行更新。score matrix如下所示
where k is the volume index, K is the total number of volumes;n is the class label, N is the total number of classes.Sk,n denotes the response of the n-th binary classifier at the k-th volume.
因此可以根據得分矩陣得到
當分類器的分類類別與視訊類別不一致時,採用maxout,當一致時,採用stochasticout。Loss函式為:
當n≠Y時,Loss儘可能的讓其response小,反之,n=Y時,response儘可能大。為何n=Y時,採用StochasticOut函式:StochasticOut函式隨機的從向量中選取一個值,而這個隨機性的概率與這個值的大小成比例,也就是說,ScoreMatrix的值越大,越有可能被選中,而MAxOUt則是在裡面選取最大的點。假若這個包(bag)中有多個keyVolume,即如圖所示:
第二個圖又多個modality,因此用MaxOut則會遺漏關鍵幀。而StochasticOut的方法則克服了這一缺陷。
訓練策略:
如何訓練classifier:本文與SVM的不同點在於,本文是採用神經網路進行訓練,不是SVM,因此SVM的w和b在這裡為神經網路的w和b。開始時,bag裡所有的instance的label都與video的label一致,採用baseline framework進行預訓練,進行多工訓練,訓練得到一個moderate classifier(N個分類器的初始狀態來源於此)。訓練的引數應用在KeyVolumeMiningFramework中,進行迭代訓練,網路中尋找到響應最強的score所對應的volume,反向傳播優化引數,猜測:N個二分類器大概是指的sigmoid,因為CNN是shared,沒有區分度,只有sigmoid有區分
至於為何classifier有區分度,這就是baseline學習網路的過程中,將所有的bag的類別進行多分類,進而學習到video的每一個label對應的關鍵特徵,因此對關鍵幀也有較高的響應。
因此,開始訓練時,instance的標籤要有假設,不然無法進行,本論文則是採用將bag的label全部賦予到instance的label。
非監督keyvolume推薦
本方法是edgebox方法的改進,將2D拓展到3D。該方法是在為了提升r的概率。研究發現,KeyVolume多存在於人物有運動的地方。。用edgebox則可以尋找到運動物體,進而bag中的volume可能含有更多的keyvolume。具體的KeyVolume方法如下:
最終在訓練的時候,從pool of candidate proposals中選取K個,同樣也是隨機選取,不過區別是:分數越高,選取的可能性就越大。用這種方式,則更有可能在bag中包含key volume。
在該論文中,採用的方法是two-stream的網路,即挖掘資料時的CNN便是該網路。
總結
該論文的重點便是:如何選取Key Volume,該論文可以同時進行key volume mining以及分類。key volume mining採用了多示例學習的思想,通過假設instance標記,神經網路多次迭代 ,並用設計的loss不斷優化,最終實現的key volume mining。同時使用了EdgeBox的思想,實現了無監督的關鍵volume推薦。最終用該思想實現了state-of-art。