Temporal action localization in untrimmed videos via Multi-stage CNNs SCNN论文阅读笔记
文章標(biāo)題:Temporal Action Localization in Untrimmed Videos via Multi-stage CNNs
文章鏈接:Shou_Temporal_Action_Localization_CVPR_2016_paper.pdf
論文地址:https://github.com/zhengshou/scnn/
這篇論文是CVPR2016上的論文,主要解決視頻識別中的兩個問題:
Action Recognition:目的為判斷一個已經(jīng)分割好的短視頻片段的類別。特點是簡化了問題,一般使用的數(shù)據(jù)庫都先將動作分割好了,一個視頻片斷中包含一段明確的動作,時間較短(幾秒鐘)且有唯一確定的label。所以也可以看作是輸入為視頻,輸出為動作標(biāo)簽的多分類問題。常用數(shù)據(jù)庫包括UCF101,HMDB51等。
Temporal Action Location:不僅要知道一個動作在視頻中是否發(fā)生,還需要知道動作發(fā)生在視頻的哪段時間(包括開始和結(jié)束時間)。特點是需要處理較長的,未分割的視頻。且視頻通常有較多干擾,目標(biāo)動作一般只占視頻的一小部分。常用數(shù)據(jù)庫包括THUMOS2014/2015, ActivityNet等。
這篇文章主要解決Temporal Action Localization的問題。SCNN指segment based CNN,即基于視頻片段的CNN網(wǎng)絡(luò)。
SCNN主要包括三個部分:多尺度視頻片段生成,動作分類網(wǎng)絡(luò)和分類網(wǎng)絡(luò)微調(diào)
網(wǎng)絡(luò)模型
該論文模型總覽圖如上圖所示。
1.多尺度視頻片段生成:
第一步為生成候選的視頻片段,作為下一階段網(wǎng)絡(luò)的輸入。
首先將每一幀視頻resize到 171?128171 * 128171?128 像素大小,對于末修剪過的視頻,使用滑窗的方法產(chǎn)生視頻片段,包括多個長度幀的片段:16,32,64,128,256,51216,32,64,128,256,51216,32,64,128,256,512 ,視頻幀的重復(fù)度為75%。對于每一個末修剪視頻,得到一系列視頻片段: Φ={(sh,?h,?h′)}h=1H\Phi=\left\{\left(\mathrm{s}_{\mathrm{h}}, \phi_{\mathrm{h}}, \phi_{\mathrm{h}}^{\prime}\right)\right\}_{\mathrm{h}=1}^{\mathrm{H}}Φ={(sh?,?h?,?h′?)}h=1H? ,?h\phi_{\mathrm{h}}?h? 和 ?h′\phi_{\mathrm{h}}^{\prime}?h′? 是第 h\mathrm{h}h 個片段 sh\mathrm{s}_{\mathrm{h}}sh? 的起始時間和終止時間。在得到視頻片段后,對其進行平均采樣16幀視頻,從而使得輸出的segment的長度均為16。
2.多階段SCNN
SCNN 共有3個階段:proposal, classification and localization network。三者均為結(jié)構(gòu)相同的C3D network,只有最后一層全連接層根據(jù)任務(wù)不同而有不同的長度。三者的輸入均為上一步得到的segment。
Proposal Network: 輸出為兩類,即預(yù)測該segment是動作的概率及是背景的概率(action or not)。在生成訓(xùn)練數(shù)據(jù)時,同時還記錄和segment和ground truth instance之間的最大重疊度(IoU)。以及類別(即如果存在多個重疊的ground truth,取重疊度最大的那個)。將得到的所有片段輸入到C3D網(wǎng)絡(luò)中,經(jīng)過fc8后分為兩類,即判斷是否為背景,訓(xùn)練時將IoU大于0.7的作為正樣本(動作),小于0.3的作為負樣本(背景),對負樣本進行采樣使得正負樣本比例均衡。采用softmax loss進行訓(xùn)練。proposal network的主要作用是去除一些背景片段。
classification Network: 經(jīng)過Proposal Network后,背景被去除,對剩下的數(shù)據(jù)進行KKK個類別的動作分類。輸出為K+1個類別(包括背景類)的分?jǐn)?shù), 這個網(wǎng)絡(luò)被用來初始化localization network, 僅在訓(xùn)練階段使用,在測試階段不使用。訓(xùn)練時同樣將IoU大于0.7的作為正樣本(K類動作),小于0.3的作為背景類,對背景類動作進行采樣使得背景類動作的數(shù)量和K類動作數(shù)量的平均值相近。訓(xùn)練時同樣采用softmax loss。
Localization Network:輸出為K+1個類別(包括背景類)的分?jǐn)?shù),這個分?jǐn)?shù)應(yīng)該算做是該segment是某類動作的置信度分?jǐn)?shù)。在訓(xùn)練時localization network用訓(xùn)練好的classification network做初始化,使用與classification network 相同的數(shù)據(jù)集,但增加了基于IoU分?jǐn)?shù)的overlap Loss.其loss function為:
L=Lsoftmax?+λ?Loverlap?\mathcal{L}=\mathcal{L}_{\text {softmax }}+\lambda \cdot \mathcal{L}_{\text {overlap }} L=Lsoftmax??+λ?Loverlap??
λ\lambdaλ為比例系數(shù),SCNN中設(shè)為1。overlap loss為:
Loverlap?=1N∑n(12?((Pn(kn))2(vn)α?1)?[kn>0])\mathcal{L}_{\text {overlap }}=\frac{1}{N} \sum_{n}\left(\frac{1}{2} \cdot\left(\frac{\left(P_{n}^{\left(k_{n}\right)}\right)^{2}}{\left(v_{n}\right)^{\alpha}}-1\right) \cdot\left[k_{n}>0\right]\right) Loverlap??=N1?n∑????21?????(vn?)α(Pn(kn?)?)2??1????[kn?>0]???
其中kn為該segment的真實類別,vn為其IoU, Pn為localization network 的輸出分?jǐn)?shù)。α 為超參數(shù)。 這個loss的作用是根據(jù)IoU的分?jǐn)?shù)調(diào)整預(yù)測結(jié)果,使得輸出的分?jǐn)?shù)不僅能對動作的類別進行分類,還能夠估計其與ground truth的重疊程度。有利于后續(xù)的NMS。
如果當(dāng)前片段屬于背景,則Loverlap=0L_{overlap} = 0Loverlap?=0,此時的損失函數(shù)為L=LsoftmaxL = L_{softmax}L=Lsoftmax?;
如果當(dāng)前片段為動作,則L達到最小值時,取λ=1\lambda = 1λ=1,可計算得到Pn(kn)=(vn)αP_n^{(k_n)} = \sqrt{(v_n)^{\alpha}}Pn(kn?)?=(vn?)α?,因此懲罰兩種情況:由于誤分類,導(dǎo)致Pn(kn)P_n^{(k_n)}Pn(kn?)?很小;或者當(dāng)Pn(kn)P_n^{(k_n)}Pn(kn?)?很大,超過目標(biāo)(vn)α\sqrt{(v_n)^{\alpha}}(vn?)α?
L隨著vnv_nvn?的減小而增大,表示與GT重疊部分小的片段不可靠,因為其可能包含很大的噪聲。在特殊情況vn=1v_n = 1vn?=1時,損失函數(shù)僅為softmax損失,隨著Pn(kn)P_n^{(k_n)}Pn(kn?)?從0變?yōu)?,損失函數(shù)從+∞+ \infty+∞變?yōu)?。
測試時的計算流程: 在測試時,只使用proposal 及 localization network。對于每個segment,先用proposal network計算它是動作的概率,若這個概率高于閾值(0.7),則作為一個候選segment進入下一個階段用localization network計算置信度分?jǐn)?shù),低于閾值的segment都會被舍棄。
后處理
后處理是在測試階段進行的。使用的方法是基于 PlP_lPl?(localization network的輸出分?jǐn)?shù))進行非極大化抑制(NMS)來移除重疊,在SCNN中,NMS的閾值被設(shè)置為0.1。下圖就是NMS的一個例子,對于時序上重疊的動作,通過NMS去除分?jǐn)?shù)低的,保留分?jǐn)?shù)高的。
結(jié)果
在測評結(jié)果時,temporal action localization 問題一般使用的是mAP指標(biāo),即各個動作類別的Average Precision(AP)的平均。當(dāng)一個動作實例與ground truth的重疊度IoU大于閾值,且類別正確時,被視為正確的預(yù)測。常用的閾值為0.5,或者同時用多個閾值來進行比較。SCNN分別在MEXaction2以及THUMOS 2014上進行了實驗,其結(jié)果如下表所示。
參考網(wǎng)址:
1.https://zhuanlan.zhihu.com/p/170389674
2.https://niuyuanyuanna.github.io/2018/12/24/computer_version/scnn/#localization-network
3.https://mp.weixin.qq.com/s/bcS_qHdOA_C5zJTje81AoQ
總結(jié)
以上是生活随笔為你收集整理的Temporal action localization in untrimmed videos via Multi-stage CNNs SCNN论文阅读笔记的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。