劉松
(四川大學(xué)電子信息學(xué)院 四川省成都市 610065)
本文的主要貢獻(xiàn)可以概括如下:
(1)提出了一個(gè)基于超分辨率重建生成對(duì)抗網(wǎng)絡(luò)的超低分辨率動(dòng)作識(shí)別算法。據(jù)我們所知,這是超分辨率重建方法第一次應(yīng)用于低分辨率動(dòng)作識(shí)別領(lǐng)域。
(2)我們?cè)诰W(wǎng)絡(luò)訓(xùn)練中使用了我們稱之為長(zhǎng)范圍時(shí)域卷積的新的訓(xùn)練策略,該訓(xùn)練策略取得了很好的效果。
(3)大量的實(shí)驗(yàn)表明我們的方法的有效性和優(yōu)越性。在只采用RGB 圖像的情況下,與其他使用了光流圖像作為輸出的算法相比也毫不遜色。
如之前的研究工作所假設(shè)那樣,我們?cè)谟?xùn)練階段也使用了高分辨率視頻。但和半耦合和全耦合網(wǎng)絡(luò)相比,我們并不如他們那樣簡(jiǎn)單地采用高分辨率圖像作為網(wǎng)絡(luò)輸入以輔助訓(xùn)練,我們?yōu)榱嗽趧?dòng)作識(shí)別模塊獲得更易識(shí)別的特征,我們通過一個(gè)生成對(duì)抗網(wǎng)絡(luò)通過學(xué)習(xí)高低分辨率數(shù)據(jù)之間的映射以恢復(fù)低分辨率圖像。圖1 展示了我們的超分辨率生成對(duì)抗網(wǎng)絡(luò)的大致架構(gòu)。
1.1.1 生成對(duì)抗網(wǎng)絡(luò)
自生成對(duì)抗網(wǎng)絡(luò)[2-3]提出以來,其在生成逼真圖像方面的優(yōu)異表現(xiàn)一直令人印象深刻。生成對(duì)抗網(wǎng)絡(luò)通過一個(gè)對(duì)抗過程輪回優(yōu)化生成器和判別器,使得生成器達(dá)到最優(yōu)狀態(tài)。生成對(duì)抗網(wǎng)絡(luò)的損失函數(shù)可以表示如下:
其中,x 代表真實(shí)數(shù)據(jù),z 表示隨機(jī)噪聲,Dθ和Gw分別代表判別器和生成器。
我們本文的目標(biāo)是自低分辨率圖像恢復(fù)出高質(zhì)量圖像,同時(shí)獲得易于識(shí)別的特征,因此我們的輸入應(yīng)該是低分辨率圖像而不是隨機(jī)噪聲。受之前在超分辨率重建領(lǐng)域應(yīng)對(duì)大下采樣因子(x8)工作的啟發(fā),我們采用了在SDSR 中的生成結(jié)構(gòu)和在ESRGAN 中的判別損失函數(shù)。
1.1.2 網(wǎng)絡(luò)結(jié)構(gòu)
在本小節(jié)中,我們將分別介紹生成器和判別器的網(wǎng)絡(luò)結(jié)構(gòu)。如圖2 所示,我們的生成器由特征提取器和上采樣模塊兩部分組成。
1.1.3 生成器損失函數(shù)
接下來,我們將依次介紹像素級(jí)的MSE 損失、基于VGG 的感知損失和對(duì)抗損失以及判別器的損失函數(shù)。
MSE 損失。像素級(jí)的MSE 損失計(jì)算如下:
圖1:超分辨率模塊的大致結(jié)構(gòu)圖,其中ELR 表示超低分辨率(extreme low resolution),SR 和HR 分別代表超分辨率和高分辨率
圖2:生成器網(wǎng)絡(luò)結(jié)構(gòu)示意圖
這種形式的MSE 損失函數(shù)被目前超分辨率領(lǐng)域許多先進(jìn)方法所采用。
感知損失。感知損失一般是基于一個(gè)預(yù)訓(xùn)練的VGG-19 網(wǎng)絡(luò)的最后一層提取的特征,用以衡量生成的超分辨率圖像在高級(jí)語義信息層面和高分辨率圖像是否接近。我們使用?i,j來表示VGG 網(wǎng)絡(luò)獲取特征的過程,其中j 表示第j 層卷積之后,i 表示第i 層最大池化之前。我們可以定義感知損失如下:
其中,Wi,j和Hi,j表示各自VGG 網(wǎng)絡(luò)特征圖的維度。
對(duì)抗損失。除了以上基于圖像內(nèi)容的損失函數(shù),我們還添加了對(duì)抗的部分。對(duì)抗損失可以表示如下:
最后,我們可以將生成器的損失函數(shù)總結(jié)如下:
我們假設(shè)我們要對(duì)一個(gè)共計(jì)有L 幀的低分辨率視頻進(jìn)行動(dòng)作識(shí)別,我們將隨機(jī)選取一幀設(shè)為L(zhǎng)1作為起點(diǎn),我們以起點(diǎn)開始往后再連續(xù)選取幀得到一個(gè)視頻片段{L1,L2,L3......Lk}。我們得目標(biāo)是對(duì)這個(gè)低分辨率視頻中得動(dòng)作進(jìn)行識(shí)別并且我們的算法過程可以用公式表示成如下形式:
其中G 表示我們的超分辨率模塊而w 則為其參數(shù);F 則表示任意端到端的動(dòng)作識(shí)別模型。有之前那些采用光流作為輸入且應(yīng)用雙流網(wǎng)絡(luò)的低分辨率動(dòng)作識(shí)別算法不同,本文我們采用3D 殘差卷積神經(jīng)網(wǎng)絡(luò)作為上式中的F 以對(duì)超分辨率重建后的圖像序列進(jìn)行時(shí)空建模。3D 殘差卷積神經(jīng)網(wǎng)絡(luò)既有強(qiáng)大的時(shí)空建模能力,又避免了使用光流圖像作為輸入節(jié)約了算力。最后,基于F 模型的輸出,每個(gè)動(dòng)作類別的預(yù)測(cè)概率將會(huì)通過預(yù)測(cè)函數(shù)H 算出,本文選用softmax 函數(shù)作為H。
1.3.1 數(shù)據(jù)增強(qiáng)
具體而言,我們先分別根據(jù)官方的劃分文件將兩個(gè)數(shù)據(jù)集劃分成訓(xùn)練測(cè)試集。然后我們將訓(xùn)練集和訓(xùn)練集進(jìn)行合并,測(cè)試集和測(cè)試集進(jìn)行合并。合并后的訓(xùn)練集我們?cè)儆脕韺?duì)生成對(duì)抗網(wǎng)絡(luò)進(jìn)行訓(xùn)練。
1.3.2 長(zhǎng)范圍時(shí)域卷積
為了學(xué)得更好的視頻表征,我們將采用長(zhǎng)范圍時(shí)域卷積以對(duì)長(zhǎng)距離的時(shí)空信息進(jìn)行建模,以此來彌補(bǔ)空間信息的不足。具體而言,對(duì)于每個(gè)視頻片段我們通常采用16 幀作為輸入,現(xiàn)在我們則將輸入擴(kuò)張至64 幀,這將覆蓋更多時(shí)域上的內(nèi)容進(jìn)行卷積操作。
我們選擇了HMDB51 數(shù)據(jù)集以和其他先進(jìn)的方法做直接的對(duì)比。并且我們放棄了Dogcentric 而選擇了UCF101 數(shù)據(jù)集以繼續(xù)充分驗(yàn)證我們方法的有效性。原因有以下幾點(diǎn):一方面來說,本文的目的在于對(duì)遠(yuǎn)處的人類動(dòng)作進(jìn)行有效識(shí)別或?yàn)殡[私保護(hù)起見而識(shí)別低分辨率視頻中的人類行為。然而,Dogcentric 是一個(gè)以狗的視角拍攝并記錄了一些狗的動(dòng)作的數(shù)據(jù)集。另一方面來說,UCF101 數(shù)據(jù)集包含了各式各樣從人類于室內(nèi)運(yùn)動(dòng)到野外活動(dòng)的人類行為動(dòng)作,這非常契合本文的初心:識(shí)別遠(yuǎn)離攝像頭的人類動(dòng)作和隱私保護(hù)條件下的動(dòng)作識(shí)別。以上這些理由使得UCF101 數(shù)據(jù)集更加合理且更具挑戰(zhàn)性以作為低分辨率動(dòng)作識(shí)別數(shù)據(jù)集。
我們的訓(xùn)練過程包括兩個(gè)階段:
(1)訓(xùn)練超分辨率模塊并使用該模塊自低分辨率視頻中恢復(fù)超分辨率圖像;
(2)使用恢復(fù)好的超分辨率圖像作為識(shí)別模型的輸入進(jìn)行訓(xùn)練。
對(duì)于超分辨率模塊,我們使用HMDB51 和UCF101 數(shù)據(jù)集對(duì)我們?cè)O(shè)計(jì)的生成對(duì)抗網(wǎng)絡(luò)進(jìn)行從頭訓(xùn)練。如之前討論的那樣,我們采用仿真的低分辨率數(shù)據(jù)作為網(wǎng)絡(luò)輸入而采用對(duì)應(yīng)的高分辨率數(shù)據(jù)作為標(biāo)簽進(jìn)行訓(xùn)練。我們采用了Adam[31]作為我們網(wǎng)絡(luò)的優(yōu)化器并將初始學(xué)習(xí)率設(shè)置為10-3,權(quán)值衰減我們?cè)O(shè)置為10-5,并且如果驗(yàn)證損失持續(xù)10 個(gè)epoch 沒有下降,我們將對(duì)學(xué)習(xí)率進(jìn)行衰減。在批尺寸(batch size)設(shè)置為60 的情況下,整個(gè)超分辨率模塊的訓(xùn)練持續(xù)了299 個(gè)epochs。
對(duì)于動(dòng)作識(shí)別模塊,我們按照[]中的設(shè)置進(jìn)行訓(xùn)練。并且我們使用了他們預(yù)訓(xùn)練好的模型對(duì)我們?cè)诘头直媛是闆r下UCF101 和HMDB51 兩個(gè)數(shù)據(jù)集進(jìn)行微調(diào)。我們分別對(duì)輸入16 幀和64 幀做了消融實(shí)驗(yàn)。我們使用SGD[32]對(duì)我們的網(wǎng)絡(luò)參數(shù)進(jìn)行優(yōu)化并將學(xué)習(xí)率設(shè)置為10-3,權(quán)值衰減我們?cè)O(shè)置為10-5。本小節(jié)全部實(shí)驗(yàn)都是在ubuntu 環(huán)境下,使用兩張Nvidia GTX 1080Ti 顯卡,應(yīng)用Pytorch框架完成。
我們將我們所提方法與其他低分辨率動(dòng)作識(shí)別算法在12x16 HMDB51 這一極具挑戰(zhàn)的數(shù)據(jù)集上進(jìn)行了比較。表1 不僅列出了各方法的準(zhǔn)確率而且展示了各種方法使用的輸入模態(tài)和輸入幀數(shù),從表1 我們不難看出我們的方法比起其他先進(jìn)算法表現(xiàn)都更加優(yōu)異。更重要的是,僅僅采用16 幀RGB 幀作為模型輸入,我們的方法都比第二好的算法領(lǐng)先1.5%識(shí)別率。并且如果我們按照之前其他工作的取幀方式,在取64 幀的情況下,我們的方法更是比其他算法有了大幅領(lǐng)先。這清楚地表明了我們算法在低分辨率動(dòng)作識(shí)別領(lǐng)域的有效性和優(yōu)異性。
表1:在HMDB51 數(shù)據(jù)集上我們所提算法與其他先進(jìn)方法的比較
在本文中,我們提出了一種基于超分辨率生成網(wǎng)絡(luò)的方法來識(shí)別極低分辨率視頻中的動(dòng)作。我們的方法包括兩個(gè)模塊,即超分辨率模塊和動(dòng)作識(shí)別模塊。我們的超分辨率模塊可以從低分辨率幀中恢復(fù)丟失的信息以獲取超分辨率幀,以更好地進(jìn)行識(shí)別。識(shí)別模塊采用恢復(fù)的超分辨率幀作為輸入,預(yù)測(cè)低分辨率視頻中的動(dòng)作類別。在HMDB51 和UCF101 數(shù)據(jù)集上的大量實(shí)驗(yàn)表明,我們的方法總體上達(dá)到了目前最先進(jìn)的精度性能。