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