陳臨強,楊全鑫,袁理鋒,姚曄,張禎,吳國華
(1.杭州電子科技大學網絡空間安全學院,浙江 杭州 310018;2.杭州電子科技大學計算機學院,浙江 杭州 310018)
隨著數字視頻處理技術的飛速發展和圖像編輯軟件的更新換代,篡改視頻[1-3]變得隨處可見。而在眾多視頻篡改類型中,面向視頻對象移除篡改[4-5]的被動取證研究更有應用價值和研究意義。移除篡改即將某個關鍵視頻對象從原始視頻序列中移除,經過修補和填充后,該視頻對象在被篡改視頻序列的每一幀中都不可見,且憑肉眼無法辨別篡改痕跡。如果需要將視頻作為執法依據,則必須證實其真實性和完整性。而數字視頻的被動取證研究仍然處于起步階段[5],尚有較大的探索和完善空間。
近年來,有眾多的科研工作者在圖像和視頻篡改被動取證領域做出了貢獻。在圖像被動取證領域,李巖等[6]提出的翻轉不變加速穩健特征(FI-SURF,flip invariant speeded-up robust feature)算法可以有效檢測出圖像的鏡像復制粘貼篡改。黃維雋等[7]利用塊離散余弦變換(BDCT,block for discrete cosine transform)[8]系數構造馬爾可夫特征[9],再用支持向量機(SVM,support vector machine)分類器可以有效識別圖像的拼接篡改。隨著深度學習在圖像識別和目標檢測領域廣泛應用,Adobe 公司提出的雙流[10]Faster R-CNN(region-convolutional neural network)[11-13]可以很好地檢測出圖像中的拼接、復制和移除篡改區域。相比于圖像篡改,視頻篡改操作可以從相鄰幀中獲得更多的場景信息,從而可以更完美地對移除對象的區域進行修補,使基于單幀視頻圖像的篡改檢測更加困難。
在數字視頻的被動取證領域,劉雨青等[14]針對固定監控攝像頭所拍攝視頻中運動目標的移除,提出一種基于時空域能量可疑度的視頻篡改檢測方法。首先計算視頻各幀能量可疑度,提取時域上的篡改序列;然后通過幀差法計算可疑的運動點圖像,提取空域上的可疑運動圖像塊;最后通過能量可疑度排除干擾圖像塊,確定篡改圖像塊區域。李倩等[15]針對固定背景下運動目標的移除,將視頻幀劃分為網格,并統計每個網格內光流方向的標準差。通過與閾值比較來判斷每個網格是否為篡改區域,進而對整幀篡改區域進行空域定位,最后根據空域定位的結果利用二分查找法進行時域定位。Yao 等[4]針對視頻對象的移除篡改,利用相鄰兩幀幀差構造幀差序列,再用高通濾波器提取幀差高頻信號作為CNN 的輸入,使用CNN 自動提取相鄰幀間的高頻篡改特征,有效提高了篡改幀檢測的準確率。何沛松[16]提出了基于卷積神經網絡的幀級雙壓縮檢測算法,利用中值濾波器提取中值濾波殘差信號作為CNN 的輸入,其鑒別能力明顯優于AlexNet。
現有視頻取證算法可以分為四大類[5]:基于噪聲模式的算法、基于像素相關性的算法、基于視頻內容特征的算法和基于抽象統計特征的算法。大多數算法都是基于視頻對象篡改引起的視頻內容本身的異常和視頻篡改的先驗知識,手動設計特定的特征提取和分析算法,以檢測和識別視頻對象的篡改。這類人工設計的特征提取算法,通常針對特定且有限的篡改視頻庫。視頻篡改檢測的準確率由人工設計的特征提取算法決定。同時,篡改視頻庫的制作方式、內容和編碼參數等都會影響視頻篡改取證算法的檢測性能。目前針對視頻對象移除篡改的深度學習算法中,使用視頻幀差法等方法并不能充分體現篡改特征在視頻時域方向上的連續性和相關性。
為了提升視頻對象篡改被動取證算法的通用性,并充分提取篡改操作在時空域方向上的特征,本文提出了基于三維卷積(C3D,3D convolution)神經網絡[17-19]的視頻對象移除篡改時空域定位技術。針對被篡改的視頻幀,可以判別待測視頻幀是否存在視頻對象被移除篡改,并定位被移除篡改的區域。相比于傳統算法,本文算法具有以下優勢:1) 沒有視頻背景保持不變,監控攝像頭及移除的視頻對象為運動或靜止狀態等硬性要求,增加了算法的可應用場景;2) 對預測結果的判斷不需要人工觀察和挑選閾值等操作,減少了人工操作和人為誤差;3) 在空域定位算法中,將基于深度學習的目標檢測理念運用到時空域三維空間,提高了算法的通用性和靈活性。
本文提出的視頻對象移除篡改區域的時空域定位系統結構如圖1 所示。該系統是基于帶標注的視頻數據集設計的。標注信息包括每一幀是否為篡改幀,以及篡改幀中篡改區域的矩形坐標。文獻[5]中介紹4 種篡改取證算法的數據集:SULFA(surrey university library for forensic analysis)、REWIND、DICGIM 和SYSU-OBJFORG。其中,前2 種數據集分別只有5 段和10 段關于視頻對象移除篡改的視頻,且每段視頻長度只有10 s(幀率為30 frame/s),由于數據集太小不利于使用深度學習框架來進行訓練。DICGIM 數據集篡改類型中不包含視頻對象的移除篡改,不適于本文算法。SYSU-OBJFORG 庫是目前最大的視頻對象篡改庫,包含100 段原始視頻和100 段原始視頻對應的篡改視頻。該數據集篡改類型均為視頻對象移除篡改,且平均每段視頻長度為11 s(幀率為25 frame/s),所有視頻均經過H.264/MPEG-4 編碼格式壓縮。數據集中的篡改視頻是將原始視頻解碼之后,由數據集制作者對視頻圖像逐幀進行空域上的篡改,再編碼壓縮而成的。篡改視頻經歷了解壓縮、篡改、再壓縮的過程,對篡改檢測和定位算法的要求更高。本文首先將數據集中的所有視頻解壓成圖像幀,然后進行裁剪、翻轉等數據增強操作,所得數據集規模可以滿足深度學習訓練的要求。
圖1 時空域定位系統結構
圖1 中左右兩條分支為2 個不同的網絡模型,分別用于視頻被篡改區域的時域和空域定位。2 個模型的輸入都是連續的5 幀視頻圖像,且特征提取器的結構相同。2 個CNN 模型最大的區別在于特征提取器所生成的特征圖是用于分類還是用于RPN(region proposal network)[20]框回歸定位。2 個模型訓練數據增強的處理方式也不同。用于時域定位的網絡需要同時輸入原始幀和篡改幀進行訓練,而用于空域定位的網絡則只需要輸入篡改幀進行訓練。
為了盡量不破壞視頻數據,同時對訓練數據進行比例調整和樣本擴充,在諸多的計算機視覺數據增強策略中,本文只選取了裁剪和翻轉2 種數據增強策略。2 種數據集的處理方法都是基于連續的5 幀視頻圖像進行操作的(即當前幀加上連續的前2 幀和連續的后2 幀),以便提取篡改痕跡在時域上的連續性特征。對于時域定位,由于數據集中原始幀和篡改幀比例約為13:3,為了保證訓練集正負樣本數量相當,本文借鑒文獻[4]提出的非對稱數據增強策略,將2 種視頻幀按幀數的相反比例進行裁剪并打包。對于空域定位,篡改幀內的定位在完整的幀圖像中進行,因此不對輸入圖像幀進行裁剪,而是通過水平翻轉、垂直翻轉和水平垂直翻轉來進行增強。具體增強策略分別介紹如下。
2.2.1 用于時域定位的數據集增強策略
本文視頻數據集尺寸為1 280 像素×720 像素,裁剪尺寸需要滿足以下條件:每個裁剪區域在訓練集的篡改幀中至少要包含大部分的篡改區域;測試集中所有裁剪區域要覆蓋整幀進行測試,不能有遺漏區域。為了方便計算和模型的簡潔性,本文設定裁剪尺寸為720 像素×720 像素。對于訓練集和驗證集采用相同的裁剪方案,只對連續的5 幀原始幀或篡改幀進行裁剪。
對于連續原始幀,統一按均勻步長左中右三次裁剪(可以適當在橫坐標方向進行隨機像素的微小偏移,以防過多學習每一幀的邊緣特點)或隨機裁剪三次,并且連續5 幀的裁剪位置保持嚴格一致。
連續5 幀篡改幀的篡改區域如圖2 所示。假設坐標框(xi1,yi1,xi2,yi2)內為視頻對象移除篡改區域,其中i=1,2,3,4,5。按式(1)求出如圖3 所示的連續5 幀篡改區域最小外接矩形區域(Xmin,Ymin,Xmax,Ymax),以(Xmin,0,Xmax,720)為裁剪邊界,按平均步長平移裁剪出若干份或隨機裁剪出若干份(但要保證裁剪部分包含篡改區域或大部分篡改區域)連續5 幀的圖像數據并打包。對于測試集,將連續5 幀視頻均按統一步長進行左中右三次裁剪,以保證檢測區域覆蓋視頻幀全部區域。以上每裁剪出連續5 幀便打包為一組作為時域定位模型的輸入數據,且label 以中間幀的label 為準。
圖2 連續5 幀篡改幀篡改區域示意
圖3 連續5 幀篡改區域最小外接框示意
2.2.2 用于空域定位的數據集增強策略
對于訓練集,連續5 幀同時采取水平翻轉、垂直翻轉和水平垂直翻轉進行數據增強。而測試集不需要進行翻轉。訓練集翻轉的同時,篡改區域標注框Ground Truth 坐標做相應變換。設視頻幀的寬為W,高為H,篡改區域坐標為(x1,y1,x2,y2),則水平翻轉后為(W–x2,y1,W–x1,y2),垂直翻轉后為(x1,H–y2,x2,H–y1),水平垂直翻轉后為(W–x2,H–y2,W–x1,H–y1) 。同樣每5 幀進行打包并標注,且標注框Ground Truth 以中間幀為準。
模型分為三部分,分別為用于提取三維高頻特征的特征提取器、用于時域定位的分類器和用于空域定位的RPN 框回歸器,其網絡結構分別如圖4~圖6 所示。
圖4 C3D 神經網絡特征提取網絡結構
圖5 時域定位分類模型
圖6 空域定位回歸模型
C3D 神經網絡可以捕捉連續幀在時域方向相關語義的變化特征,因此常用于計算機視覺的視頻內容識別領域,來檢測人物動作及行為。由于篡改操作會留下痕跡[21-22],這種痕跡在高頻區域[23-25]往往更加明顯。通過觀察發現,在篡改視頻中,篡改區域的高頻信號在相鄰幀間具有極大的連續性和相關性[26-27]。這種連續性和相關性可以看作篡改痕跡在連續幀間發生的“動作”,類似使用C3D 神經網絡對人物動作的識別,本文使用C3D 神經網絡來提取篡改區域的“動作”特征。
輸入的連續5 幀圖像首先經過2 個圖像處理層:三維最大池化層和空間富模型(SRM,spatial rich model)[10]過濾器層。其中,最大池化層滑動窗口尺寸為1×c×c[28],在時域定位器中c設置為3,在空域定位器中c設置為2,時域方向池化參數為1,以保證數據在輸入CNN 前時域方向特征不被破壞。最大池化層的作用是在空域方向上對輸入數據進行降維,保留其主要特征,同時減小計算量。SRM 過濾器層使用3 個不同參數的卷積核分別提取視頻幀3 種不同的高頻殘差信號,并將其參數設置為不可訓練。本文中SRM 過濾器所使用的3 個卷積核參數分別為
將三維高頻數據送入C3D 神經網絡特征提取網絡中,同時提取時空域高頻信號特征。網絡結構如圖4 所示,其中,Ci(i=1,2,3,4,5)表示第i層卷積層,Ci下面括號中的數字表示該層卷積核的個數。圖4 中C1~C3分別是第1~3 層三維卷積層,卷積核尺寸均為3×3×3。每個卷積層均進行批標準化(BN,batch normalization)操作,激活函數均為ReLu。Pi(i=1,2,3,4,5)表示第i層池化層,P1、P2分別是第1、2 層三維平均池化層,滑動窗口均為2×5×5,池化層步長均為2。
時域定位分類器由圖4 的特征提取器(其中c=3)后接二分類器組成,用于判別輸入的連續5幀是否為篡改幀。時域定位分類模型如圖5 所示。特征提取器生成的特征圖經過一個三維平均池化層P3(滑動窗口為2×5×5,步長為2),將特征圖時域維度降為1,然后依次經過卷積核為1×1 的2 個二維卷積層C4和C5,卷積核個數分別為64 和128。1×1 的卷積核是為了避免學習過于復雜的特征,同時起到降維的作用。P4為二維平均池化層(滑動窗口大小為5×5,步長為2)。全局平均池化層(GAP,global average pooling)P5將數據由128 維的特征圖變為128 維向量。最后經過全連接層(FC,fully connected layer)將數據維度降為2,并利用Softmax層進行歸一化分類。
空域定位回歸器是由特征提取器(其中c=2)后接RPN 框回歸器組成的,用于預測篡改位置并給出相應的置信度(即預測區域為篡改區域的可能性)。空域定位回歸模型如圖6 所示。由特征提取器生成的特征圖需要經過三維平均池化層P3(滑動窗口為2×5×5,步長為2)將時域維度降為1。將P3和C4的特征圖合并為Concatenate 層[20]作為框回歸的特征圖,C4和C5(有上、下2 個分支)均為卷積核尺寸為1×1 的二維卷積層,其中C4卷積核個數為64;C5(上)卷積核個數為36,C5(下)卷積核個數為18,分別對應特征圖每個位置9 種尺寸的回歸框所對應的框坐標和其置信度。
在測試階段,通過非極大值抑制(NMS,non-maximum suppression)[10]將候選框按置信度排序,本文中只保留置信度最高的一個候選框作為預測的篡改區域。
在SYSU-OBJFORG 數據集上驗證本文算法。SYSU-OBJFORG是Chen等[29]提出的基于視頻對象移除篡改的數據集,由100 段原始視頻和100 段篡改視頻組成。原始視頻來源于靜態視頻監控攝像機拍攝的視頻片段,篡改視頻則是從這些原始視頻中通過逐幀移除目標對象獲得的。其中篡改幀中的篡改區域是用其在幀內左上角和右下角的坐標來標注的。
實驗中,將100 對視頻序列進行隨機排序,按照5:1:4 的比例分為訓練集、驗證集和測試集。2 個模型均使用相同序列的訓練集,數據增強方式如2.1節所述。2 個模型都訓練好后,首先將測試數據輸入時域定位器,得到視頻每一幀的分類結果,即完成篡改時域定位;然后記錄下篡改幀編號,將這些篡改幀作為空域定位器的輸入序列,進行篡改幀空域定位。重復5 次,每次都從不同的隨機序列中分出訓練集、驗證集和測試集,并重新開始訓練。對5 次實驗的測試結果求平均值,作為衡量實驗模型有效性的依據。
本文的神經網絡模型基于Tensorflow 深度學習框架實現,運行于NVIDIA Geforce GTX1080ti GPU上。使用AdamOptimizer 進行優化,將學習率設置為1×10–3,動量設置為0.9,l2正則化參數設置為0.000 5,參數初始化標準差均設置為0.1。
對于時域定位網絡,批大小設置為64,即每次輸入神經網絡的圖像塊維度為64×5×720×720×3。當驗證集損失函數趨于收斂時,挑選出訓練好的模型用于測試。測試時批大小設置為3,即同時輸入同一幀的三次裁剪的圖像數據。如果全部被預測為原始幀,則判斷中間幀為原始幀;否則判斷為篡改幀,進而得到篡改幀時域定位序列。
對于空域定位網絡,批大小設置為1,即每次輸入神經網絡的圖像塊維度為 1×5×720×1 280×3。設置的空域定位損失函數與文獻[11]中定義的損失函數相似,包含前景框(篡改區域)和背景框(原始區域)分類誤差、篡改區域定位框誤差兩部分。當損失函數趨于收斂時,用訓練好的模型進行測試,將篡改幀時域定位產生的篡改幀序列作為空域定位器的輸入。本文中采用的損失函數如式(2)所示。
其中,Ncls是隨機抽取的前景框(與篡改標注框交并比大于0.8)和背景框(與篡改標注框交并比小于0.2)的視頻幀(篡改幀)總數,i是這些框的下標,Lcls是對其中每一個框二分類(前景框與背景框)的損失函數;Nreg是抽取的框中前景框的數量,j是其中前景框的下標,Lreg是預測框與真實篡改區域標注框之間誤差的損失函數。
為了使正負樣本框數量均衡和減少目標區域誤檢率,設定每一幀中參與訓練的前景框與背景框數量之比為1:α,則前景框數量fg_num 和背景框數量bg_num 可由式(3)進行約束。
其中,fg_sum 為前景框的總數;roi_num 為常數,其大小控制著正負樣本的訓練密度。實驗中,設置roi_num=128,α=5,保證在正負樣本數量相差不大的情況下加強對負樣本的訓練,目的是降低單一目標區域檢測的誤檢率。
4.3.1 時域定位測試
在篡改視頻時域定位測試中,本文與文獻[4]方法進行了對比。本文采用Chen 等[29]定義的測試結果衡量標準,如式(4)所示。
其中,PFACC 是原始幀正確率,FFACC 是篡改幀正確率,FACC 是所有幀的正確率,Precision 為精確率,Recall 為召回率,F1Score 為F1分數,Tp為篡改幀被正確預測的數量,Fp為原始幀被錯誤預測為篡改幀的數量,FN為篡改幀被錯誤預測為原始幀的數量。重復5 次實驗,每次都隨機產生不一樣的訓練集、驗證集和測試集,測試結果取平均值,如圖7 所示。
4.3.2 空域定位測試
在目標檢測領域,mAP 是最經典的衡量預測精確度的指標,而交并比是目標檢測算法指標mAP 計算的一個非常重要的函數,可以被直觀地理解為預測框與標注框的重合程度。在文獻[30]中,交并比被認為是定位準確率的最佳標準。視頻篡改檢測與計算機視覺中的目標檢測不同:目標檢測中的語義對象可以肉眼看到,并且和周邊場景有較大差異;視頻篡改檢測中的篡改區域可能遠大于運動目標或語義對象所在的區域,并且篡改之后區域和周邊的場景沒有明顯的差異,肉眼無法區別原有的語義對象和真實的篡改區域。因此,預測區域不能簡單地與被移除的語義對象區域進行比較,而應該與實際的被篡改區域進行比較。由于要預測的只有被篡改區域這一個類別,因此引入了比mAP值更直觀的成功檢測率和平均交并比作為替代指標。成功檢測率表示在篡改幀中,可以較好地預測出篡改區域的幀數與測試總幀數的比例。平均交并比表示這些預測出的較好的篡改區域與其真實篡改區域重合比例的平均值。
對于每個篡改幀,取預測框序列中置信度最高的框作為最終的預測區域。當預測框與真實篡改區域標注框的交并比為0 或置信度小于0.8 時,定義為漏檢幀Fmis,否則為成功檢測幀Fsuc。由此可以計算出成功檢測率Suc_rate 為
定義測試集平均交并比IOU_mean 為
圖7 時域定位測試結果
其中,Nsuc表示成功檢測幀的總數,i表示成功檢測幀的下標。
將時域定位中檢測出的真實篡改幀序列作為空域定位的輸入,空域定位算法流程如圖8 所示。將篡改幀結合連續的前2 幀和后2 幀作為輸入,經過兩層圖像處理層,再經過C3D 神經網絡特征提取器生成如圖6 所示的96 維的特征圖。在特征圖上產生一系列預測框及其對應的置信度,將所有的預測框按置信度從大到小排序,取置信度最高的前3個框的外接框作為最終的預測區域。本文中則僅采用置信度最高的框作為最終的預測區域。圖8 中,ROIi表示預測框序列
對不同的篡改特征處理和提取算法,本文進行了一系列對比實驗。不同算法空域定位檢測結果如表1 所示。從表1 可以看出,本文算法中SRM 層與C3D 神經網絡相結合可以明顯改善空域定位的效果。SRM 層的作用最明顯。相比于VGG16 的16層CNN,C3D 神經網絡特征提取器只需要三層便可以有很好的效果,說明C3D 神經網絡更能勝任對連續幀數據的特征提取任務。
當空域定位器輸入的連續幀數不同時,分別采用1~5 幀連續幀作為空域定位器的輸入。實驗對比結果如表2 所示。實驗結果表明,當輸入幀數越多時,空域定位效果越好;當輸入幀數超過3 幀時,空域定位效果增益減緩。
圖8 空域定位算法流程
表1 不同算法空域定位檢測結果對比
表2 本文算法輸入不同連續幀數的實驗對比結果
當空域定位結果由多個置信度最高的預測框共同決定時,分別采用置信度最高的前1~3 個預測框的外接框作為最終預測區域,如圖9 所示。方案a、方案b、方案c 分別為3 種不同的決策方案。區域內的數字表示區域交疊次數,陰影區域分別為3 種方案的最終預測結果。
圖9 預測框的交疊區域示意
方案a 使用置信度最高的預測框作為預測結果,方案b 和方案c 分別由置信度最高的前2 個和3 個預測框的外接框作為最終的預測結果。采用不同預測方案的實驗結果對比如表3 所示。隨著參與預測的預測框數量的增加,成功檢測率呈上升趨勢,平均交并比呈下降趨勢。因此,為了使定位更加準確,本文采用方案a 作為最終預測方案。
表3 空域定位3 種決策方案測試結果對比
4.3.3 時空域定位測試
隨機從測試集選取10 個篡改視頻來進行完整的時空域定位測試,時空域定位流程如圖10 所示。首先將測試數據打包成時域定位的輸入形式,送入由特征提取器1 和幀鑒別器組成的時域定位器,得到每一幀的判斷結果,并記錄其中的篡改幀;然后將記錄的預測正確的篡改幀序列打包為空域定位器的輸入形式,送入特征提取器2 和空域定位器進行空域定位;最后進行計算評估。
圖10 時空域定位流程
對于實驗結果,需要特別說明的是:1) 在時域定位模型訓練過程中,僅輸入連續5 幀的原始幀和連續5 幀的篡改幀,沒有輸入連續5 幀中既有原始幀也有篡改幀進行訓練;測試集中輸入的連續5 幀視頻幀的label 以中間幀為準。因此,測試中時域定位FACC 的主要精度損失通常會不可避免地存在于對原始幀和篡改幀交界處連續幾幀的判別過程中;2) 在空域定位模型訓練過程中,由于只對連續的篡改幀進行了空域定位模型的訓練,因此只將在時域定位中預測正確的篡改幀序列輸入空域定位器進行篡改區域的預測,這樣就可以用不同的指標來表現模型分別在時域和空域的定位能力。
本文算法在部分測試視頻中完整的篡改區域時空域定位結果如表4 所示。FACC、Suc_rate 和IOU_mean 這3 個指標中,后2 個指標依次在前一個指標測試結果已知的條件下才有意義。
基于SRM 和C3D 神經網絡構建了2 個深度卷積神經網絡模型,分別用于視頻對象移除篡改中篡改區域的時域定位和空域定位。使用SRM 濾波器提取高頻信號,使篡改特征初步顯現出來;使用三維卷積神經網絡C3D 神經網絡作為特征提取器,在高頻信號中提取視頻篡改痕跡在幀間連續性和相關性的特征;利用三維池化在特征圖時空域方向進行降維,當特征圖在時域方向維度降為1 時,結合RPN思想進行篡改區域預測框的訓練。通過多組實驗對比,結果表明本文算法在時域和空域定位上都表現良好。但是,也存在網絡模型計算量龐大、實驗步驟復雜和對視頻序列中篡改幀和原始幀的過渡區域無法精確且有效地判別的缺點。如何在提高精度的同時減少計算量、加快訓練速度是未來的主要工作。
表4 本文算法在部分測試視頻中完整的篡改區域時空域定位結果