李思纖, 魏為民, 楚雪玲, 華秀茹, 栗風(fēng)永
(上海電力大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院, 上海 200090)
在當(dāng)今社會(huì),數(shù)字圖像已成為重要的信息來源.報(bào)紙新聞中的圖片、法庭上的監(jiān)控記錄、醫(yī)院里的核磁共振圖像等是數(shù)字圖像在各領(lǐng)域的應(yīng)用.然而,數(shù)字圖像操作的簡(jiǎn)易性使圖像的真實(shí)性存疑,逼真的技術(shù)使圖片難辨真假.因此,數(shù)字圖像取證技術(shù)應(yīng)運(yùn)而生.數(shù)字圖像取證技術(shù)分為主動(dòng)取證技術(shù)和被動(dòng)取證技術(shù)[1-4].相較于被動(dòng)取證技術(shù),主動(dòng)取證技術(shù)必須事先進(jìn)行信息的嵌入,具有一定的局限性[5-9].
拼接篡改是當(dāng)前主流的圖像篡改手段之一[10],在對(duì)拼接篡改圖像進(jìn)行篡改區(qū)域定位時(shí),往往需要根據(jù)圖像原有的許多特征來暴露拼接圖像的局部不一致性.圖像噪聲就是其中非常重要的特征之一.由于不同的圖像具有不同的噪聲水平,局部噪聲的不一致性成為檢測(cè)圖像拼接篡改的有力證據(jù)[10].
目前,圖像噪聲已經(jīng)廣泛應(yīng)用于數(shù)字圖像取證,國(guó)內(nèi)外的學(xué)者在利用噪聲進(jìn)行圖像拼接篡改的檢測(cè)和定位方面開展了相關(guān)研究[11-19].然而,這些研究在噪聲差異較小時(shí)都存在定位不精確和圖像邊緣信息保留較少的問題.基于此,本文提出一種利用改進(jìn)的超像素分割和噪聲估計(jì)的圖像拼接篡改定位方法.
對(duì)于待檢測(cè)圖像,首先,使用改進(jìn)的簡(jiǎn)單線性迭代聚類(SLIC)超像素分割算法進(jìn)行圖像分割;然后,使用基于主成分分析(PCA)方法計(jì)算局部圖像塊的噪聲水平;最后,通過聚類算法將噪聲水平相似的圖像塊進(jìn)行聚類,并確定篡改區(qū)域.算法框架圖,如圖1所示.
圖1 算法框架圖Fig.1 Algorithm framework
為了定位篡改區(qū)域,將測(cè)試圖像分割成I個(gè)圖像塊,用于局部的噪聲水平估計(jì).傳統(tǒng)的圖像篡改區(qū)域定位方案是將圖像分為一個(gè)個(gè)重疊塊或非重疊塊,對(duì)每一小塊進(jìn)行特征統(tǒng)計(jì),然后,根據(jù)特征的差異對(duì)篡改區(qū)域進(jìn)行定位.然而,這種方法即使采用較好的噪聲估計(jì)算法,也難以得到比較準(zhǔn)確的邊緣信息.
文獻(xiàn)[14,17]提出一種兩階段由粗到細(xì)的分塊策略,先將圖像分為64 px×64 px的圖像塊,進(jìn)行第一次噪聲估計(jì)結(jié)果分類;根據(jù)分類結(jié)果,再將圖像分為32 px×32 px的圖像塊;最后,根據(jù)噪聲估計(jì)結(jié)果進(jìn)行最終的定位.這個(gè)策略可在一定程度上改善定位區(qū)域不精確的情況,但仍然無法繪制出篡改區(qū)域的邊緣.因此,使用基于密度聚類(DBSCAN)的SLIC超像素分割算法對(duì)圖像進(jìn)行分塊,相較于SLIC算法,可較好地保留圖像的邊緣信息.
基于DBSCAN的SLIC超像素分割算法有以下7個(gè)步驟.
步驟1設(shè)定初始種子點(diǎn).設(shè)定J個(gè)種子點(diǎn),這些種子點(diǎn)在圖像內(nèi)均勻地分布.
步驟2調(diào)整種子的位置.在種子的z×z鄰域內(nèi),將超像素中心移動(dòng)到梯度最小點(diǎn).
步驟3分配標(biāo)簽.如果每個(gè)超像素中心2z×2z鄰域內(nèi)的點(diǎn)到超像素中心的距離小于它原來屬于的超像素中心的距離,則它屬于這個(gè)超像素中心.
步驟4度量距離.對(duì)搜索到的每個(gè)像素點(diǎn),計(jì)算其與該種子點(diǎn)的顏色距離及空間距離.由于每個(gè)像素點(diǎn)可能會(huì)被多個(gè)種子點(diǎn)搜索到,因此,取顏色距離和空間距離最小值對(duì)應(yīng)的種子點(diǎn)為該像素點(diǎn)的聚類中心.
步驟5迭代優(yōu)化.
步驟6計(jì)算各超像素顏色中心與其鄰域像素中心的距離.
步驟7使用DBSCAN算法,將超像素塊進(jìn)行聚類,完成最終分割.
基于DBSCAN的SLIC超像素分割算法具有以下2個(gè)優(yōu)點(diǎn).
1) 通過DBSCAN算法將圖中關(guān)聯(lián)性較大的塊進(jìn)行合并,使原本較小且被割裂的塊合并在一起,加強(qiáng)圖像塊之間的聯(lián)系,可以更精確地定位篡改區(qū)域.
2) 一般情況下,為得到詳細(xì)的貼合邊緣的圖像塊,分割的塊數(shù)越多越好,從而導(dǎo)致分割出來的圖像塊較小.在噪聲估算時(shí),較小的圖像塊無法提供準(zhǔn)確的噪聲估計(jì)結(jié)果.該算法可以彌補(bǔ)以上缺點(diǎn),既可分割足夠多的圖像塊,也不用擔(dān)心得到的圖像塊較小.
數(shù)字圖像會(huì)引入噪聲,通常噪聲在整個(gè)圖像上是均勻分布的.然而,圖像拼接篡改往往會(huì)引入不同噪聲水平的圖像,根據(jù)噪聲水平的不一致性即可檢測(cè)出圖像是否被篡改.
通過基于PCA的噪聲估計(jì)算法[20]對(duì)分割后的圖像塊進(jìn)行局部噪聲水平估計(jì),該算法是目前比較出色的噪聲估計(jì)算法之一,它幾乎不受圖像紋理的影響,且估算準(zhǔn)確性較高.
目前,使用最為廣泛的噪聲模型是加性高斯白噪聲模型,即
y=x+n.
(1)
式(1)中:y為噪聲圖像;x為原始圖像;n是具有方差為σ2的零均值高斯白噪聲.
首先,假設(shè)x是尺寸為S1×S2的原始無噪聲圖像,其中,S1為列數(shù),S2為行數(shù).y=x+n是由與信號(hào)無關(guān)的加性高斯白噪聲生成的圖像,每個(gè)x,n,y中都包含N=(S1-M1+1)×(S2-M2+1)個(gè)大小為M1×M2的塊,M1,M2皆為像素長(zhǎng)度,圖像塊左上角位置取自集合{1,…,S1-M1+1}×{1,…,S2-M2+1},這些塊可以被重新排列成具有M=M1×M2個(gè)元素的向量,子圖像塊xi,ni,yi(i=1,…,N)被分別視為隨機(jī)向量X,N和Y的實(shí)現(xiàn)[20].由于n是與信號(hào)無關(guān)的零均值高斯白噪聲,故N~NM(0,σ2I)且cov(X,N)=0,I為單位矩陣.
定義一類無噪聲的圖像,并滿足以下假設(shè):m是預(yù)定義的正整數(shù),無噪聲圖像x中的信息是冗余的,因?yàn)樗械膞i都位于子空間VM-m?RM中,其維數(shù)M-m小于M.
(2)
式(2)中:i=M-m+1,…,M;O表示存在一個(gè)數(shù),可使該式成立.
步驟1將y分解為重疊的小塊,其大小為4 px×4 px,5 px×5 px或6 px×6 px.
步驟2計(jì)算σ2ub=C0Q(p0).σ2ub為真實(shí)噪聲方差的上限,真實(shí)的噪聲方差不會(huì)更高,設(shè)C0為3.1,p0為0.000 5,Q為求分位數(shù)的函數(shù)[20].
步驟3通過遞歸丟棄方差最大的塊直到滿足先前的假設(shè),根據(jù)YP={yi|s2(yi)≤Q(p),i=1,…,N}選擇圖像塊的子集,YP為圖像補(bǔ)丁的子集,Q(p)為p分位數(shù).
步驟4估計(jì)當(dāng)前的噪聲水平.迭代步驟3和步驟4,直到收斂.
與現(xiàn)有的噪聲水平估計(jì)方法相比,基于PCA的噪聲水平估計(jì)方法在精度和速度方面都具有良好的表現(xiàn),故以此為圖像特征.
1.4.1 數(shù)據(jù)預(yù)處理 估算每個(gè)圖像塊的噪聲水平后,通過對(duì)噪聲數(shù)據(jù)的聚類可以得到篡改區(qū)域.然而,在實(shí)驗(yàn)過程中,常常有一些異常的數(shù)值干擾聚類結(jié)果.因此,需對(duì)估計(jì)得到的噪聲數(shù)據(jù)進(jìn)行一定的預(yù)處理操作.處理后的數(shù)據(jù)更平滑,后續(xù)聚類操作的結(jié)果更準(zhǔn)確.文中采用對(duì)數(shù)函數(shù)轉(zhuǎn)換的方式,對(duì)數(shù)據(jù)進(jìn)行非線性歸一化處理,即w=log(u,2).其中,w為處理后的噪聲數(shù)據(jù);u為處理前的噪聲數(shù)據(jù).
1.4.2 聚類算法 聚類的目的是將具有相似噪聲水平的圖像塊聚集在一起.在拼接圖像中,被篡改的區(qū)域往往較小,因此,認(rèn)為聚類結(jié)果中數(shù)目較小的類所構(gòu)成的區(qū)域是篡改區(qū)域.運(yùn)用3種聚類算法對(duì)噪聲估計(jì)結(jié)果進(jìn)行聚類,以評(píng)估出效果最好的算法.
1)K-means算法.K-means算法將a個(gè)點(diǎn)劃分到b個(gè)聚類中,其中,每個(gè)點(diǎn)都屬于離它最近的均值(即聚類中心)對(duì)應(yīng)的聚類,這些點(diǎn)可以是樣本的一次觀察或一個(gè)實(shí)例.該算法的缺點(diǎn)在于其最開始是通過隨機(jī)的方法選取數(shù)據(jù)集中的c個(gè)點(diǎn)作為聚類中心.
2)K-means++算法.K-means++算法對(duì)K-means算法進(jìn)行改進(jìn),其假設(shè)已經(jīng)選取d個(gè)初始聚類中心(0 3) DBSCAN算法.DBSCAN給定空間里的一個(gè)點(diǎn)的集合,把附近的點(diǎn)分成一組,并標(biāo)記出處于低密度區(qū)域的局外點(diǎn).DBSCAN能在具有噪聲的空間數(shù)據(jù)庫(kù)中發(fā)現(xiàn)任意形狀的簇,將密度大的相鄰區(qū)域連接,有效地處理異常數(shù)據(jù). 使用哥倫比亞大學(xué)彩色拼接圖像庫(kù)DVMM[21]進(jìn)行測(cè)試實(shí)驗(yàn).數(shù)據(jù)集共有363幅圖像,其中,183幅圖像是真實(shí)圖像,180幅是拼接圖像.圖像來自不同數(shù)碼相機(jī)拍攝的真實(shí)圖像,圖像為TIFF格式,尺寸范圍為757 px×568 px至1 152 px×768 px.這些圖像主要為室內(nèi)場(chǎng)景,如辦公桌、計(jì)算機(jī)、走廊等. 以圖像1~4為例,對(duì)3種聚類算法進(jìn)行測(cè)試.3種聚類算法定位效果的比較,如圖2所示.由圖2可知:K-means++算法的定位效果最好,K-means算法次之,DBSCAN算法定位效果較差. (a) 拼接篡改圖(圖像1) (b) K-means(圖像1) (c) K-means++(圖像1) (d) DBSCAN(圖像1) (e) 拼接篡改圖(圖像2) (f) K-means(圖像2) (g) K-means++(圖像2) (h) DBSCAN(圖像2) (i) 拼接篡改圖(圖像3) (j) K-means(圖像3) (k) K-means++(圖像3) (l) DBSCAN(圖像3) (m) 拼接篡改圖(圖像4) (n) K-means(圖像4) (o) K-means++(圖像4) (p) DBSCAN(圖像4)圖2 3種聚類算法定位效果的比較Fig.2 Comparison of localization effects of three clustering algorithms 表1 3種聚類算法的性能指標(biāo)對(duì)比Tab.1 Comparison of performance indicators of three clustering algorithms % 采用2個(gè)性能指標(biāo)(真陽(yáng)性率RTP和假陽(yáng)性率RFP)評(píng)估這3種聚類算法,RTP=TP/(TP+FN)×100%,RFP=FP/(FP+TN)×100%.上式中:FN為假反例,被判定為負(fù)樣本,但事實(shí)上是正樣本;FP為假正例,被判定為正樣本,但事實(shí)上是負(fù)樣本;TN為真反例,被判定為負(fù)樣本,事實(shí)上也是負(fù)樣本;TP為真正例,被判定為正樣本,事實(shí)上也是正樣本. 3種聚類算法的性能指標(biāo)對(duì)比,如表1所示. 以圖像5~9為例,對(duì)于采用文中方法(K-means++聚類算法)與現(xiàn)有方法(文獻(xiàn)[16]方法、文獻(xiàn)[17]方法)的定位效果進(jìn)行比較,如圖3所示.實(shí)驗(yàn)所用圖像均來自圖像庫(kù)DVMM,或使用Photoshop在Flickr.com網(wǎng)站上拼接得到. (a) 拼接篡改圖(圖像5) (b) 文獻(xiàn)[16]方法(圖像5) (c) 文獻(xiàn)[17]方法(圖像5) (d) 文中方法(圖像5) (e) 拼接篡改圖(圖像6) (f) 文獻(xiàn)[16]方法(圖像6) (g) 文獻(xiàn)[17]方法(圖像6) (h) 文中方法(圖像6) (i) 拼接篡改圖(圖像7) (j) 文獻(xiàn)[16]方法(圖像7) (k) 文獻(xiàn)[17]方法(圖像7) (l) 文中方法(圖像7) (m) 拼接篡改圖(圖像8) (n) 文獻(xiàn)[16]方法(圖像8) (o) 文獻(xiàn)[17]方法(圖像8) (p) 文中方法(圖像8) (q) 拼接篡改圖(圖像9) (r) 文獻(xiàn)[16]方法(圖像9) (s) 文獻(xiàn)[17]方法(圖像9) (t) 文中方法(圖像9)圖3 文中方法與現(xiàn)有方法定位效果的比較Fig.3 Comparison of localization effects of proposed method and existing methods 由圖3可知:文獻(xiàn)[16]方法的定位效果較差,由于圖片的噪聲差異較小,只能定位出很小的區(qū)域;文獻(xiàn)[17]方法的定位效果較好,但其無法給出較為準(zhǔn)確的邊緣信息,且存在一些誤定位的情況. 表2 不同方法的的性能指標(biāo)對(duì)比Tab.2 Comparison of performance indicatorsof different methods % 不同方法的的性能指標(biāo)對(duì)比,如表2所示.由表2可知:文中方法的定位效果表現(xiàn)較好. 為了進(jìn)一步研究文中方法的性能,對(duì)DVMM圖像庫(kù)中的所有圖像進(jìn)行定位實(shí)驗(yàn).實(shí)驗(yàn)得到文獻(xiàn)[16]方法、文獻(xiàn)[17]方法和文中方法的RTP分別為30.8%,88.6%,90.7%;文獻(xiàn)[16]方法、文獻(xiàn)[17]方法和文中方法的RFP分別為21.3%,15.7%,13.2%.由此可知,文中方法的檢測(cè)精度高于文獻(xiàn)[16]方法和文獻(xiàn)[17]方法. 3種方法的接收者操作特征(ROC)曲線,如圖4所示.由圖4可知:文中方法的表現(xiàn)較好. 圖4 3種方法的ROC曲線Fig.4 ROC curves of three methods 綜上所述,文中方法的定位更加準(zhǔn)確,可以減少誤定位.對(duì)于一些噪聲差異較小的圖像,由于文中方法使用了較先進(jìn)的噪聲估計(jì)算法,其表現(xiàn)更為出色.同時(shí),文中方法定位出的篡改區(qū)域的邊緣更加平滑,可得到更為精確的拼接篡改區(qū)域. 使用3.6 GHz的CPU和8 GB RAM的計(jì)算機(jī),通過運(yùn)行時(shí)間評(píng)估文中方法的時(shí)間復(fù)雜度.文中方法、文獻(xiàn)[16]方法、文獻(xiàn)[17]方法每幅圖像的平均運(yùn)行時(shí)間分別為8.2,85.2,4.5 s. 由于文獻(xiàn)[17]使用較為簡(jiǎn)易的圖像分塊算法,故其速度更快.然而,在實(shí)際操作過程中,為了獲得更好的定位效果,幾秒的延遲完全可以接受.因此,文中方法在實(shí)際操作中的性能較優(yōu). 提出一種圖像拼接篡改區(qū)域的定位方法.利用拼接篡改區(qū)域與原始圖像具有不同噪聲水平的特點(diǎn),對(duì)使用改進(jìn)的SLIC超像素分割算法后的圖像塊進(jìn)行局部噪聲水平估計(jì),根據(jù)噪聲水平的不同,定位出拼接篡改區(qū)域.對(duì)于局部噪聲水平估計(jì)中可能出現(xiàn)異常數(shù)據(jù)的情況,采用非線性歸一化的方法對(duì)數(shù)據(jù)進(jìn)行預(yù)處理,使后面的區(qū)域定位工作進(jìn)行得更加順利.在拼接篡改區(qū)域定位時(shí),評(píng)估了較為常見的3種聚類算法(K-means,K-mean++,DBSCAN),其中,K-means++算法表現(xiàn)較好.在對(duì)比實(shí)驗(yàn)中,文中方法的性能明顯優(yōu)于其他方法,且定位精度更高. 綜上所述,文中方法能夠較好地定位拼接篡改區(qū)域,更為精確地保留拼接區(qū)域的邊緣信息.今后的研究將加強(qiáng)算法的魯棒性,以應(yīng)對(duì)更復(fù)雜的圖像篡改情況.2 結(jié)果與分析
2.1 實(shí)驗(yàn)數(shù)據(jù)
2.2 3種聚類算法定位效果的比較
2.3 文中方法與現(xiàn)有方法定位效果的比較
3 時(shí)間復(fù)雜度分析
4 結(jié)論