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