程 萍,馮 杰,馬漢杰,許永恩,王 健
(浙江理工大學 信息學院,杭州 310018)
隨著網絡技術的普及、多媒體信息的爆炸性增長、社會生活節奏不斷加快,人們往往沒有足夠的時間觀看整段視頻節目,而是希望根據自己的需求觀看特定的部分.足球作為全球最受歡迎的一項體育運動,有著廣泛的收看群體.足球比賽的持續時間較長,人們感興趣的內容卻是不同的,有人喜歡看精彩鏡頭(射門、點球等),有人喜歡看中場配合.然而,面對海量的視頻數據,依靠傳統人工剪輯分類方式,不僅極大地浪費人力資源而且也不能保證工作的及時性與可靠性.
目前,足球視頻的場景分類面臨的主要問題包括:場景切換檢測的查全率和查準率不夠高,無法滿足實際需求,其次,在人工制定足球語義方面,需要耗費大量的人力資源.為了解決上述問題,國內外學者進行了系統、深入的研究,并取得了一定的成果.
在解決場景切換檢測準確率問題上,陸思燁等[1]提出基于雙閾值灰度直方圖的場景檢測算法,通過比較相鄰幀的灰度直方圖差與高低閾值的大小,針對場景可能的漸變情形,比較非相鄰幀的直方圖差與高低閾值的大小來判斷是否發生了場景切換.方宏俊等[2]結合數字電視圖像處理芯片中硬件算法設計的低復雜度要求,介紹了一種基于動態階數控制直方圖分布的場景檢測優化設計算法.孫桃等[3]對動畫幀圖像分塊并提取其 HSV顏色特征,然后將連續幀的相似度存入一個固定長度的緩存隊列中,最后基于動態 Bayesian 決策判定是否有場景切換.段淑玉等[4]提出一種應用于幀率提升系統的,根據內插幀各匹配塊的均值SAD為檢測依據的場景切換檢測算法,解決場景切換時ME/MC算法因匹配失誤產生嚴重塊效應的問題.
語義方面,早期的場景分類研究中,文獻[5,6]是基于圖像特征的,即通過描述顏色、紋理和形狀等底層特征來實現分類.之后,用融合多種特征的方法來描述不同內容的圖像場景,Naveed等[7]利用混合特征進行訓練以預測人類活動.他們使用HOG、SIFT、LBP等作為訓練系統的特征集.Kang等人[8]在對視頻底層特征分析的基礎上,提取音視頻關鍵字作為中級特征,基于隱馬爾科夫模型來檢測精彩視頻片段.Ekin等[9]通過提取視頻的中低級特征,提出了一種有效的足球視頻摘要生成框架,能夠生成慢速運動、進球和基于對象特征分類的慢速運動3類摘要.文獻[10,11]結合網絡直播文本對體育視頻事件進行檢測,實驗表明檢測到的事件類型更加豐富,準確率也得到較大提升.但網絡直播文本的獲取和文本事件與視頻事件的對齊是此方法的關鍵和難點.于俊清等[12]利用足球比賽中觀眾情緒波動情況,建立情感激勵曲線并對曲線尖峰進行檢測,但基于尖峰檢測誤差較大,檢測性能無法滿足實際需要.
相較于傳統的場景分類方法,文獻[13]利用卷積神經網絡(Convolutional Neural Network,CNN)進行場景分類,通過自學習的方式來“識別”圖像,利用反饋網絡實現實現分類.Jiang等[14]首先將視頻分解為關鍵幀,然后將這些關鍵幀的CNN特征傳遞給RNN進行分類.Tjondronegoro等[15]對不同類型的事件進行統計分析,選擇6個具有區分性的特征,根據統計結果建立一系列規則把足球視頻事件分為進球、射門和犯規3類.但過程比較繁雜,人力耗費較大.Ji等[16]提出基于三維卷積神經網絡的體系結構,該算法捕捉多個相鄰幀中編碼的運動信息,從輸入幀中生成多個信息通道.最終的特征表示為結合了所有通道的信息.但該算法應用場景是機場監控視頻中人的行為識別.目前,對于足球視頻中的活動識別,模型僅限于處理二維數據的輸入實現分類.本文提出了一種基于三維CNN(C3D)的足球視頻分類模型,模型通過執行三維卷積,從空間和時間維度中提取特征,從而捕獲編碼在多個相鄰幀中的運動信息.具體算法流程如圖1所示.

圖1 算法流程圖
本文的算法以視頻作為輸入,在場景切換檢測的基礎上將視頻分割成小片段,根據預定義的類別將片段進行標記,然后,將小片段送入C3D(三維卷積)網絡中進行訓練.
本文提出的算法建立在三維卷積的神經網絡模型上,模型以視頻作為輸入.首先,對足球視頻的場景切換進行檢測,提取不同場景的視頻片段以實現鏡頭分割,通過邊界檢測算法將視頻中每個鏡頭的邊界幀檢測出來,然后通過這些邊界幀將完整的視頻分割成一系列獨立的鏡頭.
根據足球視頻場景變換的特點,整場比賽中突變鏡頭的情況較多,在綜合考慮了效率和準確率之后,本文選取了基于像素比較的鏡頭分割方法:幀間差分法,如式(1)所示:

其中,Ik(x,y)和Ik+1(x,y)分別表示第k幀和第k+1幀在(x,y)處的亮度值,M和N分別表示該幀圖像的高度和寬度.D(k,k+1)的值表示兩幀之間的變化.當D(k,k+1)大于某一設定的閾值時則認為這兩幀分別屬于兩個不同的鏡頭.
對于回放鏡頭,由于鏡頭切換頻率較低,文獻[12]通過實驗驗證了基于Logo 的回放鏡頭檢測方法的可行性,因此,本文采取上述基于徽標檢測的方法對回放場景進行檢測.
文獻[17]通過提取特征值并結合決策樹來對鏡頭進行分類和語義標注.本文結合決策樹算法及人工規則對分割好的鏡頭進行語義標注.決策樹流程如圖2所示.

圖2 決策樹流程圖
在決策樹的第一層首先區分的是回放鏡頭和非回放鏡頭,決策樹的第二層則是通過顏色直方圖來判斷場地面積,以此將非回放鏡頭分為場內鏡頭和場外鏡頭(觀眾鏡頭、開場鏡頭);第三層通過計算人臉比例提取場內鏡頭中的特寫鏡頭;第四層通過計算場地和球員面積比例將剩下的場內鏡頭分為遠鏡頭、VAR鏡頭和中鏡頭.
本文將鏡頭場景分為7類,分別為:遠鏡頭、中鏡頭、特寫鏡頭、回放鏡頭、觀眾鏡頭、開場鏡頭及VAR鏡頭.各鏡頭語義代表幀如圖3所示.

圖3 鏡頭代表幀
本文優化了經典的C3D網絡的結構.經典的C3D網絡結構是由8個3D卷積層(Convolution)、5個3D最大池化層(MaxPooling)、2個全連接層(Fully-Connect)構成.優化后的網絡結構減少卷積層的個數,新的網絡結構為5個卷積層,5個最大池化層,3個全連接層,2個Dropout層及1個Softmax層組成,如圖4所示.

圖4 C3D網絡模型圖
1)輸入層
輸入層的數據為一個個視頻片段,但由于視頻的長度長短不一,我們選用最近鄰插值的方式,對視頻片段少于采樣長度的數據進行填補,以達到每次采樣的長度為28幀.同時,我們還將視頻序列幀的大小統一尺寸為122×122.
2)卷積層與池化層
本文采用三維卷積,在視頻的空間和時間維上對相鄰幀進行卷積操作以提取特征.這些特征保存了空間信息和時間信息,便于對視頻中物體的運動進行檢測.針對單通道,與2D卷積不同之處在于,輸入圖像多了一個depth維度,故輸入大小為(1,depth,height,width),卷積核也多了一個k_d(depth)維度,因此卷積核在輸入3D圖像的空間維度(height和width維)和depth維度上均進行滑窗操作,每次滑窗與(k_d,k_h,k_w)窗口內的values進行相關操作,得到輸出3D圖像中的一個value.如圖5所示.

圖5 2D卷積
針對多通道,輸入大小為(3,depth,height,width),則與2D卷積的操作一樣,每次滑窗與3個channels上的(k_d,k_h,k_w)窗口內的所有values進行相關操作,得到輸出3D圖像中的一個value.如圖6所示.
我們的視頻片段每幀的大小為c×l×w×h,其中c為圖像的通道數,l為視頻序列的長度,即我們的采樣幀數,w和h為每幀的寬和高.卷積層的核大小為d×k×k,d為卷積核的時間深度,k為核的空間大小,本文卷積層的核大小為3×3×3,所有池化層都是最大池化,內核大小為2×2×2(第一層除外),步長為1.第一層池化層的內核大小為1×2×2,其目的是不過早地合并時間信號,同時滿足28幀的剪輯長度.

圖6 3D卷積
3)Dropout 層
為了防止模型過擬合,我們引入了Dropout層,它將深度神經網絡模型作為一個集成的模型進行訓練,然后將所有值取平均,而不只是訓練單個模型.網絡模型將Dropout率為p,即一個神經元被保留的概率為1-p.當一個神經元被丟棄時,無論輸入的是什么、相關的參數是多少,它的輸出值都會被設置0.Dropout_1和 Dropout_2 層的p值初始設置為0.5.
4)Flatten層
Fatten層的作用是將數據“拍平”,即將多維的數據一維化,作為從卷積層到全連接層的過渡.Flatten層的處理不會影響批處理batch_size的大小,因此,本文的數據在經過Flatten層處理后,數據大小為256×9=2304.
5)損失函數
損失函數是衡量我們的網絡結構在我們的數據集上訓練的好壞的一項指標.當訓練集的預測大部分為錯誤時,則對應輸出較大的損失函數值.當模型的輸出結果較好,則損失函數的輸出也將較低.如果我們想要改變算法的某些部分來提高我們模型的性能,損失函數的輸出將作為我們的參考標準.本文在架構中使用了交叉熵損失函數,如式(2)所示:
通過概率分布q來表達概率分布p的困難程度,p代表正確答案,q代表的是預測值,交叉熵越小,兩個概率的分布越接近.
在此基礎上,利用Softmax函數求出每個類的概率.Softmax函數如式(3)所示:

其中,S是每個可能結果M的分類概率得分.假設我們有一個具有M種可能結果的分類問題,當我們輸入一幅圖像進行分類時,我們根據每個結果得到分類分數S1,S2,…,SM.在得到預測后,將某一特定框架的分類分數除以所有指數分數之和后,得到基于最小損失的實際類,該類的概率最大.
實驗環境為Ubuntu16.0,運行內存為16 GB,GPU型號為 NIVIDIA 1080 Ti,內存為12 GB.本文用MXNet框架搭建模型.
針對足球比賽視頻,目前還未形成一個公開的數據集,為了訓練本文的分類算法,必須自行收集數據,并根據需要對鏡頭的場景進行標記.因此,本文也為足球數據集的生成做出了貢獻.在本文的分類中包含7種類型,包括開場鏡頭、觀眾鏡頭、遠鏡頭、中場鏡頭、回放鏡頭、特寫鏡頭、以及VAR鏡頭.每個類別的場景鏡頭約600個,每個鏡頭的平均持續時間為7秒,視頻的幀率為25 秒/幀.本文的數據集包括5場世界杯比賽,每場比賽為90分鐘.我們將數據的訓練集與測試集按4:1的比例分配.
由于本文的數據集有限,在采用3D CNN提取特征時,容易導致模型過度擬合,因此,我們引入了Dropout層,并設置不同的Dropout參數進行訓練.訓練準確率與測試準確率如表1所示.
本文發現,模型在Dropout值為0.7時,效果最好,因此,我們用這個Dropout值對網絡進行訓練.
在訓練過程中,網絡在迭代周期為1000時,損失函數的值最小,此后,損失函數開始收斂,如圖7所示.

表1 不同的Dropout值對應的準確率

圖7 迭代周期與準確率
與此同時,模型的優化函數采用自適應估計(Adam)梯度優化函數,其他參數配置如表2所示.

表2 超參數配置
本文算法將足球視頻場景分為7類,分類結果如表3所示,表格最右列表示未分類(漏檢)鏡頭數,對角線的位置表示正確分類的鏡頭數.由表3可以看出,本文算法針對特寫鏡頭的場景分類準確率最高96%,與文獻[18]對比,場景類別更加豐富.同時,在特寫鏡頭分類時,準確率高于文獻[18]的基于HMM的事件檢測分類算法.與文獻[19]提出的基于貝葉斯網絡的足球事件檢測算法相比,雖然遠鏡頭分類準確率低于其算法,但特寫鏡頭的準確率高于其算法.與Jiang[14]所提出的2D CNN網絡比較,特征提取更為有效,分類的準確率較高.與Chen[15]相比,數據集更豐富,比較的類別也更多.與基于LSTM的2D CNN相比,3D CNN同時捕獲了二維CNN的時空特征,取得了較好的效果.本文數據對比如表4所示.
2 D CNN在空間特征的學習效果較好,但無法對視頻的時間特征進行處理.本文提出的基于C3D的足球視頻場景分類算法,分別對時間特征和空間特征進行了有效的提取,實現了比傳統技術更好的精度,本文在特寫鏡頭分類時,準確率提高了2%.本文算法在場景切換檢測的基礎上,根據預定義的類別將各個場景片段進行標記,利用3D CNN學習時空特征,然后將其進行分類.下一步工作計劃是進行實時的足球視頻場景分類,與此同時,擴展場景類別以識別足球視頻中更復雜的場景.

表3 查全率與準確率實驗結果

表4 特寫鏡頭分類結果對比