郭繼昌,王秋子,趙 潔,祁 清
(1.天津大學電氣自動化與信息工程學院 天津 南開區(qū) 300072;2.天津城建大學計算機與信息工程學院 天津 西青區(qū) 300384)
數(shù)字圖像取證分為主動取證和被動取證兩類。主動取證需要事先利用數(shù)字圖像中的冗余特征將所需信息嵌入其中,而后鑒定人員通過提取這些信息進行版權認證或者判斷圖像是否經過篡改。被動取證的研究主要集中于數(shù)字圖像來源鑒定和偽造檢測兩方面,其并不需要事先將先驗信息嵌入圖像,對于給定的數(shù)字圖像,利用數(shù)字信息處理技術對圖像的來源或真實性進行判別。本文則是利用被動取證方法對圖像的真實性進行判別。
近年來各種移動設備快速發(fā)展,同一幅圖像可能會在不同的設備上進行顯示,為了適應移動設備大小的多樣化,基于內容感知的圖像縮放技術隨之興起,如文獻[1]的細縫裁剪(seam carving)算法,該算法基于圖像內容進行重定向而盡量避免圖像細節(jié)的扭曲變形,但也可被用于圖像的惡意篡改,例如移除圖像中的某個目標,篡改原圖像的語義內容,因此有必要對此類篡改進行檢測。
細縫裁剪只發(fā)生在圖像的局部區(qū)域,圖像縮小后只去除了原圖像中被選定最優(yōu)細縫中的像素,圖像中其他像素值并未發(fā)生改變,且早期檢測復制粘貼篡改、重采樣等數(shù)字圖像取證算法[1,3-7]已不再適用于檢測細縫裁剪[8],因此需要尋求其他方法來檢測此類篡改。文獻[8]認為細縫裁剪操作改變了圖像的內容和維度,最早將該操作定義為篡改并在量化DCT域內提取一階馬爾科夫特征進行檢測,但檢測準確率不高;文獻[9]采用哈希預測進行檢測,因其是一種主動取證的方法,應用受到局限;文獻[10]提出了一種多種特征融合的方法來探測細縫裁剪,但是該算法只對縮放比例較大的細縫裁剪圖像有良好的識別效果;文獻[11]將圖像分為2×2小塊,通過在各個小塊內回溯細縫裁剪的過程提取特征,但操作較為繁瑣;隨后文獻[12]利用細縫裁剪篡改過程前后圖像的能量偏移提取三組特征進行檢測,取得了良好的實驗效果;文獻[13]對文獻[12]進行改進,在LBP域提取特征,并加入半縫特征,檢測率明顯提升;文獻[14]基于自然圖像量化DCT系數(shù)符合本福特法則提取特征進行檢測,但是當圖像紋理趨于平滑時檢測效果略差。
考慮到細縫裁剪篡改前后圖像相鄰像素間相關性及局部紋理的變化,本文提出了基于局部二值模式(LBP)和馬爾科夫特征的被動取證方法,該方法克服了文獻[8]中使用傳統(tǒng)馬爾特夫特征在檢測細縫裁剪縮小比例較小時不敏感的情況,從而在整體上提升了檢測率。算法采用UCID[15]數(shù)據(jù)庫,將該數(shù)據(jù)庫中不同類型的圖像轉換到LBP域后進行JPEG壓縮,對其二維JPEG矩陣[16]計算在水平、垂直、主對角線、次對角線4個方向上的差分矩陣,提取324維馬爾科夫特征,通過支持向量機(SVM)進行分類訓練,從而達到檢測篡改圖像的目的,實驗結果表明本文算法性能優(yōu)越,特別是針對小比例細縫裁剪篡改的檢測率明顯提升。
細縫裁剪[1]以細縫(seam)的形式通過刪除圖像中“不重要”的像素實現(xiàn)重定向而保留了圖像中重要內容良好的視覺效果。圖像中像素的重要性由式(1)的能量函數(shù)定義:
細縫是一條從上到下(或從左到右)貫穿整幅圖像的8連通路徑,細縫裁剪以刪除細縫的方式進行篡改,以垂直細縫為例,對于一幅n×m大小的圖像,垂直細縫定義為:
式中,S代表一條細縫所包含的像素集合;x代表從[1,2,…,n]到[1,2,…,m]的映射。該公式表示垂直細縫是從上到下貫穿整幅圖像的8連通路徑,并且細縫中每行有且只有一個像素。按照式(1),細縫I所包含的像素集合可表示為:
為了達到視覺滿意的縮放效果,細縫所包含的像素集能量應盡可能低,因此定義最優(yōu)細縫為:
最優(yōu)細縫的查找由動態(tài)程序實現(xiàn),以垂直細縫為例,從圖像第二行到最后一行遍歷圖像,對其中的每個像素點(i,j)計算矩陣M(i,j):
矩陣M(i,j)的最后一行即為各種垂直細縫包含的能量值,鎖定其中最小值的元素,從該元素出發(fā)從下往上回溯這條細縫其他元素的位置,即可得到最優(yōu)細縫。
LBP是文獻[17]提出的用于提取圖像紋理特征的算子,它描述的是圖像的局部紋理,因其操作簡單、識別度高而被廣泛使用。細縫裁剪操作中當一條垂直細縫被刪除,剩余圖像中在這條細縫右側的所有像素向左平移來填補空缺,對于與這條垂直細縫相鄰的這些像素來說,篡改后與其相鄰的像素點將發(fā)生改變,即圖像的局部紋理發(fā)生改變,而LBP域比空域對圖像局部紋理的變化更為敏感[13],即使刪除一條細縫,篡改前后與這條細縫相鄰元素的LBP值將發(fā)生顯著改變,因此本文選擇在LBP域提取特征。
細縫裁剪沒有引入新的像素值,只是以“細縫”的形式刪除圖像中不重要的像素,但仍會引起相鄰像素間相關性發(fā)生變化,這種變化可體現(xiàn)在空域和頻域(量化的DCT域)內,文獻[8]通過實驗表明頻域比空域更適用于細縫裁剪的分類。即使細縫裁剪刪除的是垂直細縫,圖像在水平方向、垂直方向、主對角線方向、次對角線方向上像素間相關性都會發(fā)生變化,當細縫裁剪縮小的比例足夠大時相關性的變化將更加明顯。由于文獻[16]定義了二維JPEG矩陣,即經過了DCT變換和量化但沒有進行之字形掃描和熵編碼的矩陣,文獻[8]在二維JPEG矩陣的差分矩陣中提取馬爾科夫特征,但當縮小比例較小時,因其像素間相關性變化不明顯使得檢測率偏低。
本文提出了一種基于LBP和馬爾科夫特征的方法,通過計算在LBP域中4個方向上差分二維JPEG矩陣的馬爾科夫轉移概率矩陣,提取324維特征,用SVM加以訓練,以此來檢測圖像是否經過細縫裁剪篡改。算法整體框架如圖1所示。
圖1 細縫裁剪檢測算法框架
1)將圖像從空域變換到LBP域:對源圖像的每個像素進行LBP運算,LBP算子在3×3的窗口中進行,二值化及編碼操作后將會得到中心像素的LBP值,對圖像的每個像素進行上述操作,得到每個像素的LBP值,這樣圖像將從空域轉換到LBP域;
2)計算JPEG壓縮后的二維JPEG矩陣:因本文算法特征是在量化DCT域內提取的,而所用UCID數(shù)據(jù)庫是未經壓縮的TIFF圖像,所以對此LBP矩陣以質量因子QF為100進行JPEG壓縮,得到二維JPEG矩陣F(u,v)(以8×8分塊的量化DCT矩陣);
3)計算一階差分矩陣:對矩陣F(u,v)取絕對值后計算在水平、垂直、主對角線、次對角線共4個方向上的一階差分矩陣:
式中,u∈[0,Su-1];v∈[0,Sv-1];Su,Sv為矩陣F(u,v)的行數(shù)和列數(shù)。
因為經過一次壓縮的JPEG圖像量化DCT系數(shù)符合拉普拉斯分布或柯西分布,上述4個差分矩陣的值因都在“0”值左右,本文設定一個閾值T,差分矩陣元素值都在[-T,T]這個范圍內,差分矩陣元素大于T的置為T,小于-T的置為-T。
4)計算轉移概率矩陣:分別計算上述4個方向上的馬爾科夫轉移概率矩陣,以此來表征馬爾科夫過程,如:
式中m,n∈{-T,…,0,…,T};u∈[0,Su-2];v∈[0,Sv-2];δ函數(shù)定義為:
5)提取特征:將閾值T設定為4效果最佳[8],因此上述4個方向上的轉移概率矩陣都有(2T+1)×(2T+1)=9×9=81個轉移概率值,將所有轉移概率矩陣的值作為特征送入SVM進行細縫裁剪篡改檢測,其特征維數(shù)為:81×4=324維。
實驗使用該檢測領域廣泛使用的UCID(uncompressed color image database)數(shù)據(jù)庫[18],該圖像集內容豐富,包括人物、風景、建筑、動物等,總共1 338張未經壓縮的自然彩色圖像,大小為512×384,這些圖像作為原始圖像集。要驗證本文算法的有效性,還需要篡改圖像集,本文對UCID中1 338張原始圖像分別使用文獻[1]中細縫裁剪算法縮小3%、5%、10%、20%、30%,得到相應篡改圖像集。這樣,篡改圖像集總共有1 338×5=6 690幅圖像,加上原始的1 338張圖像,實驗總共8 028幅圖像。圖2是幾個篡改圖像示例。
實驗在處理器為Inter(R)2.50 GHz的個人電腦上進行,軟件平臺為matlab2015a,并采用支持向量機(SVM)進行分類訓練,測試具體使用的是臺灣大學林智仁等人開發(fā)的LIBSVM[18],核函數(shù)使用徑向基函數(shù)(RBF),最優(yōu)參數(shù)c和g的選取由網(wǎng)格搜索和3倍交叉驗證的方法得到,分類時采用2值分類,標記正常圖像為“1”,篡改圖像為“-1”。分類所用特征向量即為第3小節(jié)所述的324維特征。
圖2 細縫裁剪示例
實驗從原始圖像集中隨機抽取1 000幅圖像作為正常圖像的訓練集,再從細縫裁剪縮小3%、5%、10%、20、30%的5大類圖像集中分別隨機抽取200幅圖像(總共200×5=1 000幅圖像)作為篡改圖像的訓練集,然后對含有正常圖像和篡改圖像各1 000幅圖像的訓練集進行訓練。測試階段實驗先逐一對5大類篡改圖像進行檢測,再對5大類篡改圖像的混合進行檢測,根據(jù)文獻[13],訓練集與測試集的比例為3:1時檢測效果最佳,因此每次檢測實驗逐一在原始圖像集和篡改圖像集內隨隨機抽取335幅圖像分別進行測試。測試結果如表1所示。
表1 本文算法對細縫裁剪篡改的檢測結果
表中真陽性率(true positive rate,TPR)表示成功檢測出的正常樣本占整個待檢測正常樣本的比例;真陰性率(true negative rate,TNR)表示成功檢出的篡改樣本占整個待檢測篡改樣本的比例;準確率表示成功檢出的樣本占整個待檢測樣本的比例;Mix表示測試集為335幅正常圖像和分別在細縫裁剪3%、5%、10%、20%、30%中隨機抽取的67幅篡改圖像的組合。
為了驗證本文算法的有效性,將本文算法與文獻[8]、文獻[10]和文獻[13]的算法進行比較,為了便于分析,對比實驗的環(huán)境與設置和上述實驗一致,測試結果的比較如表2所示。實驗結果的ROC(receiver operating characteristic curve)曲線如圖3所示。
表2 本文算法與現(xiàn)有算法的比較結果/(準確率)
上述實驗結果均是針對原始細縫裁剪算法[1]進行檢測,為了體現(xiàn)本文算法的普適性,下述實驗將針對文獻[19](文獻[1]的改進算法)中細縫裁剪算法進行檢測,其他實驗環(huán)境與設置與上述一致,檢測結果如表3所示。
圖3 實驗結果ROC曲線對比示例(細縫裁剪比例5%)
表3 本文算法與現(xiàn)有算法的比較結果/(準確率)
通過表2和表3可以看出本文算法在整體檢測細縫裁剪篡改上的優(yōu)越性,雖然因提取特征專注于8×8塊塊內元素相關性,導致表2中檢測篡改幅度較大的30%細縫裁剪操作的檢測率略低于文獻[13],但能看出本文算法具有普適性且整體上還是優(yōu)于現(xiàn)有算法,特別是針對小比例篡改的檢測效果較其他算法有明顯提高,這是因為文獻[10]中提出的特征融合的方法對細縫裁剪篡改的本質考慮不足,因此檢測率較低;文獻[8]中基于馬爾科夫特征的方法雖然考慮到了細縫篡改前后相鄰元素間相關性的變化,但是當篡改比例較小時相關性的變化并不明顯,檢測效果隨之降低;文獻[13]考慮了篡改前后局部紋理的變化,但針對小比例篡改的檢測率有待提高;本文算法在文獻[8]的基礎上加入LBP算子,在沒有增加特征維數(shù)的前提下(總共324維特征),考慮了細縫裁剪前后局部紋理的變化,因為LBP放大了局部紋理的變化,因此即使在篡改比例較小時也能得到很好的檢測效果。
本文提出了一種基于LBP和馬爾科夫特征的細縫裁剪篡改檢測方法,該方法通過LBP算子放大了篡改前后局部紋理的變化,結合文獻[8]中體現(xiàn)相鄰像素間相關性變化的馬爾科夫特征,從中提取324維特征進行檢測,有效地揭示了細縫裁剪的本質特征,提高了細縫裁剪篡改的檢測效果,特別是針對小比例的篡改檢測率較現(xiàn)有相關算法有明顯提升。但因LBP算子對細縫裁剪中的放大操作不敏感,且放大操作僅僅改變圖像維度而無法篡改圖像語義內容,本文未針對該類篡改進行檢測,下一步將尋求更優(yōu)的方法提升細縫裁剪縮放操作的檢測率。