陳 誠
(四川大學網絡空間安全學院,成都 610207)
隨著互聯網和社交媒體的快速發(fā)展,網絡已經成為人們獲取和分享信息的重要平臺,并且隨著各類短視頻與直播平臺的出現,人們可以很方便地在社交平臺上發(fā)表分享自己的生活。據統計顯示,抖音、快手等短視頻平臺的用戶已經達到上億人。在滿足用戶們個性化與分享自由需求的同時,據統計,抖音已經擁有50063萬月活用戶、用戶月人均日運行時長24.5 min(2020 年3 月)。這說明了現在的互聯網網民已經將更多的時間用在短視頻以及直播上面,相較于文字與圖片,視頻內容擁有更加豐富的內容展示,并且短視頻結合用戶大數據、云計算相關技術向用戶推薦其喜歡的內容,更加增強了用戶的粘性。然而這也給人工審核帶來了極大的工作量,也為視頻內容版權的保護帶來了巨大的挑戰(zhàn)。因此,如何快速而充分地表示出視頻的內容成為了目前亟待解決的難題。目前,對視頻流進行關鍵幀抽取成為了相關問題的首要解決方法。
現有的關鍵幀抽取方法大致有基于前后幀差分的關鍵幀抽取方法、基于音頻的關鍵幀抽取方法、基于運動光流的關鍵幀抽取方法。然而基于幀差分的關鍵幀抽取方法抽取出的冗余幀過多,對于抽取出關鍵幀后續(xù)的處理帶來了更大的開銷、而基于音頻的關鍵幀抽取方法具有一定的誤差,難以準確地囊括視頻中的關鍵信息,基于運動光流的關鍵幀抽取方法時間開銷太大,難以滿足當前日益增長的海量視頻場景。針對上述問題,本文提出了一種基于圖像熵極值和局部幀差分的關鍵幀抽取方法,在保證不遺漏圖像中關鍵信息的同時提升了檢測速率、減少了冗余幀的數量。
目前對于海量增長的視頻數據內容,對如此龐大的數據進行處理一直是一個十分耗時的過程,因此如何通過提取準確反映視頻內容的關鍵幀序列,對于處理一個長段視頻內容來說必不可少,視頻流與視頻幀的關系如圖1 所示。視頻關鍵幀的提取重點在于如何去掉重復幀以及提取出最能代表視頻內容的關鍵幀序列。
圖1 視頻流組成結構
視頻流是視覺圖像連續(xù)運動的集合,即視頻由多個連續(xù)視頻幀組合而成,幀率越高,代表著該視頻越連續(xù),人類視覺中的視頻越流程。一般來說,超過30 幀,人眼便無法察覺出視頻中不連續(xù)的視頻幀,而隨著如今高清高幀率視頻的出現,許多視頻網站開始推出60 幀甚至更高幀數的視頻來滿足用戶的需要,但這也給處理這些視頻幀帶來了更大的挑戰(zhàn)。
關鍵幀的提取需要包含三個注意的點,總結如下:
(1)提取出的關鍵幀集合中應當包含該視頻流中最準確、最合適且最能代表視頻內容信息的關鍵幀,即在一段連續(xù)的幀中能夠選取出最能代表該視頻幀序列運動信息與空間信息的幀作為關鍵幀。
(2)提取出的關鍵幀應當避免冗余,即關鍵幀集合中應該盡可能地減少含有重合度較高的關鍵幀,以減小后續(xù)檢測任務的時間與性能開銷。
(3)為了應對如今大量且實時的視頻流處理任務,提取關鍵幀的計算量應當盡可能小,從而加快檢測效率,達到接近實時的檢測效率,以滿足實際視頻處理檢測任務的需求。
對于圖像而言,圖像的信息通常由圖像的色彩信息代表,而圖像的色彩信息在計算機中可以用顏色直方圖來進行表示,如圖2所示?;趲罘值某槿》椒ㄓ脠D像的顏色特征來代表該圖像的整體信息,對于一個視頻流中的視頻幀集合,該方法通過計算所有視頻幀的顏色直方圖,并對前后相鄰幀的顏色直方圖進行差值計算求得顏色直方圖差值矩陣的絕對值之和,判斷該值是否超出設定閾值范圍。如果超出了閾值,則視該圖像為新的關鍵幀,并將其保存至關鍵幀集合,如果未超過,則視其與前幀變化不大,舍棄該幀。該方法的優(yōu)點是原理通俗易懂、且計算簡單,缺點是相鄰視頻幀的顏色直方圖和其變化收到光照影響對幾十幀視頻內容之間的幀非常敏感;盡管相鄰幀之間的變化很小,但相鄰視頻幀的顏色直方圖特征將會發(fā)生顯著變化。如前所述,為了快速有效地進行關鍵幀提取,該方法將會保留大量冗余幀,不能滿足最初的需求。
圖2 圖像顏色直方圖
除了基于視頻信息對關鍵幀進行抽取,還有通過音頻信號對關鍵幀進行抽取的方法,即基于音頻信號的關鍵幀提取方法。該方法首先將音頻信號分割成EE 序列,然后使用中值濾波平滑EE序列。中值濾波函數為
其中d和E分別表示第幀的檢測函數值和短時能量值。之后通過檢測函數和閾值得到音頻EE序列的分割位置,公式為
其中與分別是最低閾值和最高閾值。之后判斷分割后的EE 序列值是否小于閾值max,如果小于閾值則將其視為分割完成的EE 序列,如果沒有,重復上述過程將其分割為更小的EE 序列。得到分割后的音頻EE 序列后,找到時間序列相對應的圖像幀作為該段序列的關鍵幀。這種方法有效的利用了圖像信息之外的音頻信息對視頻進行關鍵幀提取,且音頻信息的加入可以定位色情內容幀出現的時間序列,從而避免色情關鍵幀的遺漏。但是音頻信息存在著不確定性,基于音頻的關鍵幀抽取方法過于依賴音頻信號而未能有效利用圖像信息,選取出不準確的關鍵幀或者出現冗余關鍵幀的概率將會大大增加,且利用音頻信號進行關鍵幀抽取在處理時長上耗時較多,不利于實際場景中的實時檢測。
光流是一個空間中物體運動軌跡形成的矢量。即通過檢測前后幀之間對應像素的運動軌跡,從而計算出相鄰幀之間的運動信息?;趧幼鞯年P鍵幀提取方法主要基于場景的時間動態(tài)變化以及視頻中的運動信息。這種方法的實現過程一般基于圖像的像素差異或光流計算。Wayne wolf 等提出計算視頻流中的光流值并取得局部極值點作為關鍵幀,該方法用于識別視頻中鏡頭瞬間停頓或者鏡頭中運動態(tài)較為突出的兩種情況。具體方法是首先計算每一幀的光流值,并計算簡單的運動矢量,如圖3所示,然后將所有幀的矢量作為軸,時間為軸做成函數圖進行分析,選擇運動最小值處的關鍵幀。
圖3 視頻幀序列中的光流向量
Ling等認為相鄰幀之間的運動矢量幅度之間的差異包含著較為顯著的運動信息,因此可以利用幀與幀之間的運動直方圖對視頻中的關鍵幀進行提取。運動直方圖中包含復雜運動且相較于相鄰幀包含更為突出的運動信息的幀被抽取為關鍵幀。首先通過在每個視頻幀的運動直方圖上計算熵值曲線中的峰值,然后通過找到幀與幀之間具有顯著凸出的峰值熵作為最終選取的關鍵幀。這種方法利用了視頻流中復雜運動的熵值和連續(xù)幀之間運動的變化來提取關鍵幀。
基于動作的關鍵幀抽取方法對運動信息較多的視頻流具有較好的效果,然而其計算量過大且時間開銷過長,難以滿足實際關鍵幀抽取場景的需要。
當前對色情視頻流抽幀的方法主要是基于單一方法,存在著抽取速度較慢、易遺漏關鍵信息幀等問題,并不能保證抽取到合適關鍵幀的同時不遺漏關鍵信息。為了解決上述問題,本文提出了一種適用于短視頻和直播的抽幀方法,分為圖像信息熵極值計算與幀差分計算兩個步驟。
圖像信息熵極值計算圖像信息熵可以很好的概括一張視頻幀所包含信息的內容量,而將圖像信息熵映射至視頻幀編號坐標軸上,局部極值的視頻幀表明在局部視頻幀中該幀處于信息變化的轉折點,因此可以將該幀視作為局部關鍵幀。對于視頻中的視頻幀,可以用式(3)來計算:
其中pf()表示第f個視頻幀的概率密度函數,可以通過對其灰度強度直方圖進行歸一化計算得到,之后將計算得到的圖像熵值( f)映射到以圖像幀編號為X 軸的二維坐標軸中,最后通過取分段內圖像熵為極值的圖像編號作為該分段中的關鍵幀,如圖4所示。雖然采用圖像熵極值的方法可以找到連續(xù)視頻幀中,圖像信息變化的轉折極值點作為關鍵幀,但是對于高幀率圖像,采用這種方法選出的候選關鍵幀中仍然存在大量前后幀變化很小的候選關鍵幀,這大大增加了后續(xù)圖像分類的時間開銷與性能開銷,因此本文還提出了一種針對短視頻和直播視頻流的關鍵幀二次提取方法,即局部幀差分方法。
圖4 圖像序號-圖像熵映射
由于視頻幀抽取的應用場景(即短視頻、視頻直播等)大多數背景不變或者較小變化,因此為了避免整個場景變化過小導致長時間無法獲取關鍵幀,本文提出了一種局部幀差分的方式,對前后幀局部進行差分絕對值計算,最后選出局部最大差分絕對值作為前后幀的差分值,之后通過判斷局部最大差分值是否超過設定閾值來確定是否保留該幀作為關鍵幀。例如輸入圖像的大小為416 × 416,則先將前后兩個幀分割為16 × 16=256 個等大小為26 × 26 的網格,之后按照前后對應網格位置進行幀差分計算,并將得到的幀差分網格取絕對值并相加一元化作為該網格的局部幀差分值,最后通過選取所有網格中最大的局部幀差分值作為該前后幀的差異值,并通過判斷該差異值是否超過設定閾值。如果超過了閾值則視作前后兩幀變化大將前一幀留作關鍵幀并將后一幀作為前一幀繼續(xù)與下一幀進行局部幀差分計算;如果未超過閾值則視作前后兩幀變化不大,舍棄前一幀并將后一幀與下一幀繼續(xù)進行局部幀差分計算,直到計算至最后一幀得到最終關鍵幀集合。具體流程如圖5所示。
圖5 局部幀差分流程
綜上,本文提出的關鍵幀抽取模塊的流程如下:
圖像幀抽取算法
輸入:個視頻幀的幀集合
輸出:關鍵幀集合
1:對輸入的視頻流進行初始化,將其轉化為包含個視頻幀的集合O
2:=0
3: Set S
4:While<do:
5: Update Oby(1)
6: i+=1
7: j=0
8:end While
9:While<do:
10: calculate Max(O)in O
11: S add m
12: j+=25
13:end While
14:for Sin S:
15: if S-S>Thresholding
16: remove S
17: else:
18: continue
19:return S
為了驗證本文提出的關鍵幀抽取方法的性能,選取了100個短視頻流作為測試數據,并且為了保證測試的準確性,將這些短視頻流剪輯為3 分鐘每段,最后從關鍵幀與視頻總幀數比(KS),關鍵幀抽取效率以及場景平均關鍵幀數量三個方面進行驗證與評估。本文的實驗環(huán)境為CPU:I5-9300h,顯卡:GTX1660。
從表1可以看出,幀差分方法耗時較短但是冗余幀較多,而基于音頻和基于運動光流的方法雖然冗余幀較少,但耗時遠遠高于幀差分方法,而本文提出的方法不僅耗時最少,并且冗余幀也最少,在保證了不丟失關鍵信息的同時,保留了最少的關鍵幀。
表1 不同方法的性能比較
針對目前互聯網中短視頻和直播數量的增加,為了節(jié)省人力,幫助審核人員快速發(fā)現違規(guī)內容以及保護視頻版權,本文提出了一種基于圖像熵極值和局部幀差分的關鍵幀抽取方法,在保證不丟失關鍵信息的同時,提高了關鍵幀抽取速率,減小了冗余幀的數量,為后續(xù)視頻內容處理提供了極大的便利。