陳汗青,李菲菲,陳 虬
(上海理工大學 光電信息與計算機工程學院,上海 200093)
隨著互聯(lián)網(wǎng)技術(shù)和以5G為代表的高速移動通信技術(shù)的發(fā)展,每天都有海量的視頻信息被上傳到互聯(lián)網(wǎng)上。視頻信息攜帶內(nèi)容豐富、便于理解,被廣泛應(yīng)用于信息傳輸。近年來各種智能手機與短視頻平臺的興起使得人們可隨時隨地拍攝并上傳視頻。人們在瀏覽互聯(lián)網(wǎng)信息的同時還可以對視頻進行編輯操作,并將視頻二次上傳到互聯(lián)網(wǎng)上。因此,設(shè)計一個有效的視頻檢索算法,從龐大的視頻庫中快速檢索出人們需要的視頻是一個重要的研究方向。
典型的視頻檢索系統(tǒng)主要分為特征提取和相似性匹配兩個方面。一些已有的算法主要通過提取出視頻關(guān)鍵幀,然后按照圖像特征處理方式來進行特征提取操作,例如使用顏色直方圖(Color Histogram)[1]、局部二值模式(Local Binary Patterns)[2]和SIFT(Scale-Invariant Feature Transform)[3]等特征描述子來提取特征。為了得到更好的特征表示,多特征融合的方法逐漸被用于視頻檢索。
近年來隨著深度學習在計算機視覺領(lǐng)域的應(yīng)用,多種卷積神經(jīng)網(wǎng)絡(luò)模型被相繼提出,并被廣泛應(yīng)用于包括視頻檢索任務(wù)在內(nèi)的各種特征提取工作。文獻[4]使用GoogLeNet[5]提取視頻幀特征,然后使用稀疏編碼來對特征進行處理。文獻[6]使用孿生卷積神經(jīng)網(wǎng)絡(luò)來對視頻幀特征進行提取,通過真實值與預測值之間的誤差來訓練網(wǎng)絡(luò)。文獻[7]使用預訓練的卷積神經(jīng)網(wǎng)絡(luò)提取特征,然后使用視覺詞袋方法處理提取到的特征。
然而,這些基于單個視頻幀的處理方式往往忽略了視頻幀之間的時間相關(guān)性,損失了時序特征,導致視頻特征提取不夠充分,影響了檢索精度。因此,還需要增加一些后續(xù)時間對其進行操作,例如基于霍夫投票的時間對齊[8]和基于時間網(wǎng)絡(luò)的時間對齊[9]方法。這些操作雖然增加了算法的復雜度,但降低了檢索效率。
在進行相似度計算時,相比于圖片或者其他多媒體信息,視頻信息特征量較大,導致在計算相似度時計算消耗過大,因此對內(nèi)存和存儲空間都有著較高的要求。近年來,哈希方法被廣泛運用于各種多媒體信息檢索任務(wù)中。借助于快速的異或操作,在二進制空間用漢明距離來衡量相似度,處理速度快且內(nèi)存消耗小。但哈希方法主要還是應(yīng)用在圖片檢索領(lǐng)域[10],在視頻檢索領(lǐng)域的應(yīng)用還較少[11]。
本文提出一種將三維卷積[12]和哈希方法相結(jié)合的視頻檢索算法,算法的整體框架如圖1所示。該算法分為3步:(1)在大型視頻數(shù)據(jù)集上預訓練網(wǎng)絡(luò),得到一個能有效提取視頻特征的三維卷積神經(jīng)網(wǎng)絡(luò);(2)在目標檢索數(shù)據(jù)集下微調(diào)網(wǎng)絡(luò),使用目標數(shù)據(jù)集數(shù)據(jù)來訓練加入了哈希層的網(wǎng)絡(luò),以便使得網(wǎng)絡(luò)具備哈希映射能力。隨后,將視頻特征映射得到二值編碼;(3)最后為視頻檢索階段。查詢視頻與待檢索視頻分別通過網(wǎng)絡(luò)得到二值編碼后,通過在漢明空間計算漢明距離快速得到兩個視頻之間的相似度,從而進行檢索操作。
圖1 本文視頻檢索算法整體框架Figure 1. The framework of theproposed video retrieval algorithm
接下來本文將分別介紹視頻特征的提取、視頻特征編碼與視頻檢索過程中本文應(yīng)用的一些技術(shù)與原理,最后在實驗部分驗證提出的算法在兩個公開視頻數(shù)據(jù)集上的實驗效果,并進行實驗分析。
使用三維卷積處理視頻信息時首先需要從視頻中提取出一定量的視頻幀。一個視頻片段是由一系列視頻場景構(gòu)成。一個視頻場景由多個鏡頭組成,而每一個鏡頭里包含了多個視頻幀,因此視頻幀是組成視頻的基本單位。一段很短的視頻中往往包含著大量的視頻幀,相鄰的幀之間場景和鏡頭變化通常較小,所以在對視頻進行特征提取操作時,如果對每一幀逐幀提取特征,會導致計算量偏大。
為此,本文將整個視頻片段均勻分割成固定個數(shù)的視頻片段,從每個片段中選出代表幀用于代表視頻片段的特征信息,最終由一系列代表幀的特征信息來表示整個視頻的信息。圖2展示了代表幀的提取方式。使用這種視頻幀選擇方式能夠顯著減小計算量。
圖2 代表幀提取Figure 2. Extraction of representative frame
為了同時提取到視頻的時間和空間信息,并保留視頻幀之間的時間相關(guān)性,本文使用三維卷積神經(jīng)網(wǎng)絡(luò)來提取視頻特征。如圖3所示,三維卷積神經(jīng)網(wǎng)絡(luò)和二維卷積神經(jīng)網(wǎng)絡(luò)的一個最大不同就是三維卷積神經(jīng)網(wǎng)絡(luò)同時作用于多個視頻幀,而二維卷積神經(jīng)網(wǎng)絡(luò)在提取特征時只作用于單個的圖像。圖3(a)中,二維卷積的卷積核是二維的,在卷積運算時只在平面上移動,而圖3(b)中三維卷積卷核是立體的,在做卷積運算時在時間和空間維度同時進行。按時間順序采樣提取出的視頻幀在三維卷積核作用下提取出的特征包含了幀與幀之間的時間關(guān)系。通過三維卷積提取出的視頻特征不僅包含單個視頻幀的特征信息還包含幀與幀之間的時間信息,所以三維卷積神經(jīng)網(wǎng)絡(luò)輸出的特征能更好地代表原視頻信息。
圖3 二維卷積和三維卷積(a)二維卷積 (b)三維卷積Figure 3. 2D convolution and 3D convolution(a)2D convolution (b)3D convolution
在面對具體的檢索任務(wù)時,通常存在整理好的可訓練樣本不足的問題。即使訓練樣本充足,從頭開始訓練一個網(wǎng)絡(luò)也需要一定的時間,且需耗費大量的計算資源。為了解決這些問題,可采用預訓練的卷積神經(jīng)網(wǎng)絡(luò),然后根據(jù)實際任務(wù)的需要,在目標域微調(diào)神經(jīng)網(wǎng)絡(luò)的參數(shù)。這樣既解決了訓練樣本不足的問題,又能夠達到良好的效果。
很多卷積神經(jīng)網(wǎng)絡(luò)模型在大型圖片數(shù)據(jù)集ImageNet取得了理想的分類精度,并且預訓練的網(wǎng)絡(luò)模型可以遷移到其他計算機視覺任務(wù)中。據(jù)此,本文使用了在Kinetic視頻數(shù)據(jù)集上預訓練的3D ResNet18[13]三維卷積神經(jīng)網(wǎng)絡(luò)。Kinetic數(shù)據(jù)集包含400類視頻,視頻總數(shù)超過30萬,其中每一類視頻至少包含400個視頻。該數(shù)據(jù)集涵蓋的視頻種類豐富,包含人與物的互動、人與人的動作互動等。大規(guī)模的視頻數(shù)據(jù)集保證了網(wǎng)絡(luò)訓練的數(shù)據(jù)量,而多樣性的視頻樣本在一定程度上又保證了網(wǎng)絡(luò)的泛化能力,為網(wǎng)絡(luò)在目標數(shù)據(jù)下微調(diào)奠定了基礎(chǔ)。
采用殘差連接的卷積神經(jīng)網(wǎng)絡(luò)在保證網(wǎng)絡(luò)深度的前提下能防止梯度消失,且ResNet[14](Residual Networks)卷積神經(jīng)網(wǎng)絡(luò)模型已經(jīng)在各種計算機視覺任務(wù)中取得了良好的效果。為了更好地提取視頻特征,本文采用和ResNet卷積神經(jīng)網(wǎng)絡(luò)模型類似的連接方式將三維卷積模塊連接到一起。網(wǎng)絡(luò)的具體結(jié)構(gòu)和參數(shù)如表1所示。
表1 3D ResNet18網(wǎng)絡(luò)參數(shù)Table 1. Network parameters of 3D ResNet18
本文使用在大型數(shù)據(jù)集上預訓練的網(wǎng)絡(luò)來提取特征,不僅減少了工作量,還解決了數(shù)據(jù)不足帶來的困擾。
為了檢索出與查詢視頻相似的視頻,需要計算兩個視頻之間的相似度。早期方法采用歐氏距離來計算相似度,計算量大,檢索效率低下。本文采用哈希方法將視頻編碼為固定長度的哈希碼,在二進制空間中使用漢明距離來計算相似度,精度高且計算迅速。
如圖1第2步所示,本文在原始的分類網(wǎng)絡(luò)分類層之前加入1個哈希層[15],通過1個tanh激活函數(shù)將特征映射到[-1,1]之間,從而得到每一個視頻的哈希特征。再通過式(1)的sign函數(shù),將特征二值化得到每一個視頻對應(yīng)的哈希編碼。
(1)
式中,H代表哈希碼的值;x代表經(jīng)過哈希層激活函數(shù)之后的輸出值。在網(wǎng)絡(luò)訓練時,本文采用式(2)交叉熵損失函數(shù)來訓練網(wǎng)絡(luò)
(2)
如圖1第3步所示,在測試檢索階段,本文直接提取哈希層輸出的二值特征作為每一個視頻的特征。獲得查詢視頻和數(shù)據(jù)庫中待檢索視頻對應(yīng)的二值編碼,并在二值空間中使用漢明距離度量兩個視頻的相似性,例如編碼為“1 -1 1 -1-1 1”的視頻與編碼為“1 -1 1 -1 1 -1”的視頻之間漢明距離為2,可以用漢明距離2來度量這兩個視頻之間的相似性。漢明距離越小則證明兩個視頻越相似;漢明距離越大,說明視頻間相似性較低。這種特征編碼方式不需要占用大量磁盤空間來存儲神經(jīng)網(wǎng)絡(luò)提取出的視頻特征,不僅可以提高檢索效率,還能減少計算機的內(nèi)存消耗。
為了驗證所提出算法的效果,本文在兩個公開的視頻數(shù)據(jù)集UCF-101[16]和HMDB-51[17]上進行實驗。UCF-101由101個類共13 320個視頻數(shù)據(jù)構(gòu)成。本文從數(shù)據(jù)集中劃分出9 537個視頻作為訓練集,其余3 783個視頻作為測試集。HMDB-51數(shù)據(jù)集共包含51類共6 766個短視頻,本文從中選擇出5 100個視頻進行實驗,其中訓練集有3 570個視頻,測試集有1 530個視頻。
對于每一個視頻,本文參照C3D網(wǎng)絡(luò)結(jié)構(gòu)[18]提取出16幀作為代表特征,每一幀的尺寸都為112×112。為了和已有的一些算法進行比較,本文將視頻特征分別映射得到64位、128位、和256位的哈希編碼。另外,本文采用了平均檢索精度(mAP)作為評價指標。
在訓練過程中,本文設(shè)置Batch Size大小為60,采用了帶動量的隨機梯度下降優(yōu)化方法,初始學習率為0.01,每40個epoch后學習率降低為原來的1/10,一共訓練了160個epoch。在測試過程中設(shè)置Batch Size大小為120。
為了驗證提出算法的性能,本文將新算法分別和兩種傳統(tǒng)的哈希方法LSH[19]、ITQ[20]以及兩種深度學習方法DH[21]、DCNNH[22]進行對比,具體的實驗數(shù)據(jù)如表2~表3以及圖4~圖5所示。
圖4 UCF-101數(shù)據(jù)集下檢索精度對比圖Figure 4.Diagram of comparison of retrieval accuracy on UCF-101 data set
圖5 HMDB-51數(shù)據(jù)集下檢索精度對比圖 Figure 5.Diagram of comparison of retrieval accuracy on HMDB-51 data set
表2 UCF-101數(shù)據(jù)集下檢索精度對比Table 2.Comparison of retrieval accuracy on UCF-101 data set
表3 HMDB-51數(shù)據(jù)集下檢索精度對比Table 3. Comparison of retrieval accuracy on HMDB-51 data set
在UCF-101數(shù)據(jù)集下的結(jié)果表明,本文提出的算法檢索精度相較于傳統(tǒng)方法及基于深度學習的方法都有明顯的提升。和傳統(tǒng)的哈希算法LSH和ITQ相比,本文提出的算法在各個哈希位精度的提升都在0.1左右,提升效果明顯。同樣是使用卷積神經(jīng)網(wǎng)絡(luò)來提取特征,相較于DCNNH[21]使用二維卷積神經(jīng)網(wǎng)絡(luò)對單個視頻幀提取特征,然后加權(quán)平均計算得到視頻特征的模式,本文使用三維卷積神經(jīng)網(wǎng)絡(luò)對多個視頻幀進行特征提取,提取精度在哈希碼為64、128和256位的情況下分別提升了0.068、0.038和0.035。該結(jié)果證明三維卷積神經(jīng)網(wǎng)絡(luò)在提取視頻特征上相較于其它特征提取方式有一定的優(yōu)越性,時空信息的保存也更為完整。
本文提出的算法在HMDB-51數(shù)據(jù)集上同樣表現(xiàn)出了較好的效果。和傳統(tǒng)哈希方法LSH和ITQ相比,本文算法精度在各個哈希位上的提升幅度都在0.1以上,最高的提升幅度達0.173,最低提升幅度為0.106。本文提出的算法精度也高于使用深度學習方法的DCNNH。此外通過觀察哈希碼長度與檢索精度的關(guān)系可以發(fā)現(xiàn)隨著哈希碼長度的增加,檢索精度也在增加。這給場景復雜視頻和長視頻檢索提供了一個方向,即可以通過提高采樣視頻幀的頻率,使用更多的視頻幀作為代表幀來提高特征表示能力。還可以通過增加哈希編碼的長度,在特征維度允許的情況下使用更多的二值編碼表征視頻信息來提高檢索精度。
相較于UCF-101數(shù)據(jù)集,HMDB-51數(shù)據(jù)集訓練視頻更少,卻依然能夠取得不錯的檢索效果。該結(jié)果證明了使用在大型數(shù)據(jù)集上預訓練的網(wǎng)絡(luò),然后在目標數(shù)據(jù)集上進行微調(diào)的方法的可行性。采用這種策略,本文所提方法在省去大量工作的前提下,依然可以得到較好的效果。
本文提出了一種基于三維卷積和哈希方法的視頻檢索算法。該方法使用三維卷積同時對多個視頻幀進行特征提取操作,保留了視頻時間信息,使得提取到的特征更具代表性。此外,為了高效地進行檢索,本文還引入哈希方法,將視頻特征通過哈希層映射得到視頻的二值編碼,進而快速地計算兩個視頻之間的漢明距離,從而進行相似度比較。在兩個公開數(shù)據(jù)集上的結(jié)果表明,相比以往的方法,本文提出的方法在檢索效果上有較大的提升。但是本文所提方法在對視頻幀的選取方面還有一些不足,需要繼續(xù)改進以提高其性能。