王夢思, 王任華
(中國人民公安大學(xué)信息技術(shù)與網(wǎng)絡(luò)安全學(xué)院, 北京 100038)
隨著數(shù)字時代的到來,數(shù)字照片日益深入人們的生活,圖片處理軟件的廣泛應(yīng)用,使修改照片變得簡單又快速,但人們也會運用科技的手段惡意篡改偽造數(shù)字圖像,小到個人,大到國家,篡改圖像會在不同方面造成惡劣影響,所以通過技術(shù)手段可鑒定圖像的真?zhèn)涡?,從而保證媒體和網(wǎng)絡(luò)發(fā)布圖像的真實性、可靠性。
同圖復(fù)制篡改是數(shù)字圖像篡改較為常見的一種類型,主要操作是將圖像中的一個目標(biāo)體復(fù)制粘貼到同一圖像中的其他位置,再結(jié)合模糊、縮放、壓縮的操作讓篡改圖像顯得更真實。在同圖復(fù)制篡改檢測中,SIFT(Scale Invariant Feature Transform)[1]算法是目前應(yīng)用最廣泛、最基本的算法之一,它具有旋轉(zhuǎn)、平移、光照不變等性質(zhì),但是SIFT算法是基于灰度圖像操作,若篡改對象為灰度圖像,則所有的色彩信息全部消失,這就造成一定的信息浪費,而SIFT算法的自身缺陷也會導(dǎo)致存在一定的誤匹配。如圖1中街景圖像為同圖復(fù)制篡改圖像,SITF檢測出篡改區(qū)域,但易拉罐圖像為真實圖像,SIFT也檢測出了匹配區(qū)域,而該匹配區(qū)域除顏色不同外,其他特征如紋理特征等都很相似,這也印證了SITF算法無法應(yīng)用顏色特征進(jìn)行判斷從而會出現(xiàn)誤匹配。SIFT檢測效果如圖1所示。
圖1 左上:篡改圖;右上:SIFT檢測結(jié)果;左下:非篡改圖;右下:SIFT檢測結(jié)果
針對彩色圖像在此之前已有許多基于各類色彩空間的研究,[2-4]分析了圖像色彩成分和描述子以有效結(jié)合SIFT算法進(jìn)行特征提取;基于HSV色彩空間,[5]提出了顏色直方圖,[6]提出了顏色信息量化以增強(qiáng)魯棒性并減少計算復(fù)雜程度,[7]在該空間內(nèi)使用SIFT算法提取車牌信息;[8]基于YCbCr空間進(jìn)行圖像拼接檢測;[9]基于RGB空間提出了實時圖像檢索的快匹配特征。
本文選擇了RGB色彩空間來提取關(guān)鍵點的顏色特征,因為在日常生活中RGB空間是最頻繁使用也是最易理解的顏色模型之一,以人的肉眼來看,RGB空間非常接近自然顏色,也是最長應(yīng)用的模型之一。在提取圖像中的關(guān)鍵點時,大致分為兩個步驟:(1)使用SIFT算法提取關(guān)鍵點;(2)在以關(guān)鍵點為中心的鄰域內(nèi)分別提取RGB 3個通道的顏色特征。在特征點匹配時,會發(fā)現(xiàn)匹配點減少,這是因為增加的顏色特征會將許多誤匹配過濾掉,在接下來的環(huán)節(jié)中會減少許多工作量。特征點匹配常見的方法是k-d樹或是基于歐氏距離,為了提高檢測效率,本文選擇的是找出最近鄰域的Best-Bin-First (BBF)算法[10]。為了進(jìn)一步消除誤匹配,本文使用Random Sample Consensus(RANSAC)算法[11]并結(jié)合新提出的異常距離算法,即根據(jù)坐標(biāo)判斷關(guān)鍵點到正確匹配點集的位置距離是否在所設(shè)定的閾值內(nèi),從而排出異常值。
本文的方法是通過結(jié)合SIFT算法和RGB特征來實現(xiàn),第一步是用SIFT算法提取圖像中的關(guān)鍵點,然后計算每個關(guān)鍵點鄰域內(nèi)的RGB顏色特征;第二步根據(jù)兩種特征進(jìn)行特征點匹配。為了減少計算的復(fù)雜性,首先用SIFT算法匹配關(guān)鍵點,然后匹配關(guān)鍵點對的RGB特征,若它們的顏色特征不相似,則認(rèn)為是異常點并排除,最后一步是使用RANSAC和異常距離算法將異常匹配點移除,算法流程圖見圖2。
圖2 算法流程圖
SIFT算法是David Lowe在1999提出的用于局部特征描述和提取的算法,它針對旋轉(zhuǎn)、縮放、光照、放射變化有很好的魯棒性,大體步驟為:
(1) 通過構(gòu)造高斯金字塔和高斯差分尺度空間可以檢測到局部極值點;
(2) 通過三維二次函數(shù)以精確確定關(guān)鍵點的尺度和位置,同時去除低對比度的關(guān)鍵點和不穩(wěn)定的邊緣響應(yīng)點,以增強(qiáng)匹配的穩(wěn)定性,提高抗噪聲能力;
(3) 利用關(guān)鍵點鄰域像素的梯度分布方向特性為每個關(guān)鍵點指定方向參數(shù),使算子具有旋轉(zhuǎn)不變性;
(4) 以關(guān)鍵點為中心取一個16×16 的鄰域,一共產(chǎn)生4×4個種子點,這樣對于一個關(guān)鍵點就產(chǎn)生了4×4×8 共128 維的特征向量,再對特征向量進(jìn)行歸一化,則可進(jìn)一步去除光照變化的影響。
顏色特征在圖像檢索中是最常使用的特征之一,它不受圖像方向和尺度的影響,因此具有較強(qiáng)的魯棒性,而SIFT算法應(yīng)用于灰度圖像,這會導(dǎo)致丟失大量顏色信息,所以通過增加關(guān)鍵點的顏色特征從而增強(qiáng)匹配的準(zhǔn)確性。首先選擇合適的色彩空間,考慮到計算復(fù)雜度和適用性,本文選用的是RGB空間,RGB模型由3個通道組成:紅、綠、藍(lán),每個通道各有256級亮度范圍(從0~255),然后我們用顏色直方圖將亮度級進(jìn)行量化,該顏色直方圖可表明圖像像素的顏色分布情況,但無法表明像素的空間坐標(biāo),所以對于旋轉(zhuǎn)和縮放有很強(qiáng)的魯棒性。
在SIFT提取關(guān)鍵點后,在這些點的鄰域內(nèi)進(jìn)行RGB特征提取,大體步驟如下:
提取關(guān)鍵點的N×N鄰域;
分別量化3個顏色通道的亮度級。為了便于構(gòu)建直方圖灰度分布特征向量,將256級亮度分成M個區(qū)間(M取偶數(shù)),即每個區(qū)間大小為256/M,同時為了避免較大誤差,M的值要大于6;
將關(guān)鍵點的N×N鄰域內(nèi)像素的顏色分布分別映射到3個通道的顏色直方圖中;
根據(jù)顏色直方圖,最終將形成3×M維的顏色特征。
如圖3所示,當(dāng)M=16,N=9時的紅色通道的顏色特征提取直方圖,右上的表格所示的是SIFT提取的關(guān)鍵點P1(坐標(biāo)是(469,1 309))及其鄰域,它的紅色通道強(qiáng)度是253,右下直方圖所示的是表格的顏色分布直方圖,左邊所示的是顏色量化區(qū)間,在P1鄰域內(nèi)紅色密度在[144,160]之間,歸一化為6個區(qū)間像素點,所以P1的紅色通道向量為[0,0,0,0,0,0,0,0,0,6,3,0,5,4,1,62]。
圖3 P1點的紅色通道特征提取,原圖像為圖1b
在提取SIFT特征和RGB顏色特征后,再通過歐氏距離匹配特征向量,然而隨著特征維數(shù)的增加,匹配的效率會越來越低,所以一開始不將SIFT特征和RGB特征結(jié)合,而是參照[6]的方法將整幅圖像分成若干不重疊的區(qū)域塊,其大小為16×16;使用BBF算法計算128維SIFT關(guān)鍵點間的最近鄰域,生成第一輪的匹配對,再使用RGB特征進(jìn)行第二輪匹配。設(shè)定匹配對為v1,v2,兩種閾值θ1,θ2,v1_color和v2_color分別代表v1,v2的RGB顏色特征向量。
v1_color=(x1,x2,x3, …,x3×M-1,x3×M)
(1)
v2_color= (y1,y2,y3, …,y3×M-1,y3×M)
(2)
distinct=v1_color-v2_color=
(d1,d2,d3,…,d3×M-1,d3×M)
(3)
如果max(distinct)=di<θ1,i∈(1,3×M) 且 min(distinct)=dj>θ2,j∈(1,3×M),即視兩個特征向量為匹配對。
使用RANSAC算法估算篡改區(qū)域和原始區(qū)域的仿射變換矩陣,進(jìn)而可排除由于噪聲引起的異常值點。
RANSAC算法本質(zhì)上是一種數(shù)學(xué)模型參數(shù)估計算法,可以從包含異常點的數(shù)據(jù)集中通過迭代的方法估計數(shù)學(xué)模型參數(shù),當(dāng)其達(dá)到一定概率才會得到合理結(jié)果,通過提高迭代次數(shù)來提升概率,從而達(dá)到理想結(jié)果。RANSAC算法選擇假設(shè)為“局內(nèi)點”的隨機(jī)子集,本文的輸入點集為特征向量匹配對,通過反復(fù)訓(xùn)練實現(xiàn)目標(biāo)模型,并經(jīng)以下步驟驗證:(1)所有未知參數(shù)適用于根據(jù)“局內(nèi)點”訓(xùn)練出的模型,并能從該模型中獲得;(2)若某個點適用于1中模型,則認(rèn)為該點是局內(nèi)點;(3)若適用該模型的點達(dá)到一定規(guī)模,那么可認(rèn)為該模型合理;(4)用所有被測試過且被認(rèn)為合適該模型的“局內(nèi)點”重新估計模型;(5)用通過測試的“局內(nèi)點”的通過率和錯誤率來評估新估算的模型。RANSAC估計參數(shù)模型具有魯棒性,它能在存在噪聲的數(shù)據(jù)集中高效的估計出參數(shù),但缺點是迭代次數(shù)無法設(shè)置上限,否則會導(dǎo)致效果不是最優(yōu),并且得到的模型是一定概率可信。
考慮到正常值往往集中在特定區(qū)域,而異常值有時會距離該特定區(qū)域較遠(yuǎn),本文提出異常值距離算法(outlier distances algorithm)將這些點排除。算法步驟如下:
(1)匹配點的坐標(biāo)為(x,y),而異常值距離特定區(qū)域較遠(yuǎn),我們選擇匹配點的一種顏色通道。例如在圖1中,所有的點(共W個)在綠色通道中根據(jù)x坐標(biāo)的值按升序排列,如A={x1,x2,x3…xW-1,xW} 。
(2)分別計算d1=x2-x1,d2=x3-x2,d3=x4-x3,…,dW-1=xW-xW-1,由于可能存在幾個復(fù)制區(qū)域,我們需將異常值移除的同時保留正常值。假設(shè)一塊區(qū)域至少有T對匹配點(事先假設(shè)T=3,這會在第三部分說明),將結(jié)果分如下情況討論:
k=M/2; 如果k>5, 則k=5; 分析每個dn;如果dn>T且n≤k,則認(rèn)為xn左邊全部的點是異常的并將它們移除;如果dn>T且n>M-k,則認(rèn)為xn+1右邊的點是異常的并將它們移除;如果dn>T且dn+i>T(i<3),并且M-k>n+1>n>k, 則認(rèn)為從xn+1到xn+i是異常的,并將它們移除。
為了對本文算法進(jìn)行總體評估,從CASIA[14]圖像庫中選擇55張未壓縮偽造圖像和30張真實圖像,從[15]中的基準(zhǔn)數(shù)據(jù)集中選擇大小為600×450,47張高質(zhì)量偽造圖像和25張大小為3 000×2 000的真實圖像。在每張圖像中添加標(biāo)準(zhǔn)差為0.002~0.01之間的高斯噪聲,每次取值間隔為0.002。在每張圖像中添加90到10的JPEG壓縮因子,每次取值間隔為20。
實驗參數(shù)設(shè)定如下:N=9,M=16,θ1=15,θ2=-13。
考慮到高品質(zhì)圖像中有更多的SIFT關(guān)鍵點,本文在處理不同質(zhì)量圖像時,選擇不同的匹配點數(shù)T。對于低質(zhì)量圖像,設(shè)置T=3,對于高質(zhì)量圖像,設(shè)置T=5。實驗結(jié)果將在圖像級和像素級兩個不同層面進(jìn)行討論。在圖像級別,通過計算準(zhǔn)確率(precision)和召回率(recall) 來測評。準(zhǔn)確率和召回率公式如下:
Precision=TP/(TP+FP)
(4)
Recall=TP/(TP+FN)
(5)
其中TP是指被正確地劃分為正例的個數(shù);FP是指被錯誤地劃分為正例的個數(shù);FN是指將正例漏判的個數(shù)[11]。檢測結(jié)果如表1所示。
表1 兩種算法檢測結(jié)果
從表1中的結(jié)構(gòu)分析,當(dāng)檢測的圖像為原圖時,無論是低質(zhì)量的圖像還是高質(zhì)量的圖像,RGB_SIFT的綜合檢測結(jié)果都要略好于SIFT。
圖4顯示了當(dāng)使用無偽造的原始圖像和壓縮圖像時的實驗結(jié)果,在檢測此類圖像的真實性時,RGB_SIFT幾乎檢測不到錯誤點,從而避免了SIFT出現(xiàn)誤檢測的情況。
圖4 左上:真實圖像;右上:SIFT檢測;左中:JPEG壓縮90使用SIFT檢測,右中:JPEG壓縮90使用RGB_SIFT檢測;左下:JPEG壓縮10使用SIFT檢測;右下:JPEG壓縮10使用RGB_SIFT檢測
在像素級別上只檢測篡改圖像,選擇CASIA的55個低質(zhì)量圖像和 [14]基準(zhǔn)數(shù)據(jù)集中的47個高質(zhì)量圖像。測定102張篡改圖像的準(zhǔn)確率,在圖像中添加90~10的JPEG壓縮添加,壓縮間隔為20,添加0.002~0.01的噪聲,噪聲間隔為0.002。記錄了每個圖像的正確匹配對和總匹配對,并計算出總準(zhǔn)確率。表3顯示了基于像素級時,RGB_SIFT檢測結(jié)果具有非常高的準(zhǔn)確率。
表2 在壓縮條件下兩種算法的實驗結(jié)果
表3 在噪聲條件下兩種算法的實驗結(jié)果
表2和表3分別顯示了在壓縮條件下和在噪聲條件下兩種算法的檢測結(jié)果,通過數(shù)據(jù)對比,可見RGB_SIFT算法針對JPEG壓縮和噪聲具有很好的魯棒性,檢測結(jié)果明顯優(yōu)于SIFT算法。
隨著JPEG壓縮質(zhì)量的降低,異常值似乎逐漸增加,但內(nèi)容保持穩(wěn)定,準(zhǔn)確率下降,但RGB_SIFT仍然可以容易地去除異常值。
圖5對比了兩種種法針對同一張圖的檢測結(jié)果,并添加了不同程度的JPEG壓縮。當(dāng)JPEG壓縮為10的時候,此時壓縮程度為實驗選取的最大值,SIFT檢測存在大量的異常匹配點,而RGB_SIFT的異常匹配點明顯較少。
本文提出了一種結(jié)合SIFT特征和RGB特征新算法,該算法提高了檢測的準(zhǔn)確性和有效性。實驗結(jié)果表明在檢測過程中,誤匹配大大減少,檢測的準(zhǔn)確率達(dá)到90%,對真實圖像的誤檢率低。在以后的工作中要深入研究提高JPEG壓縮和多區(qū)域復(fù)制檢測的準(zhǔn)確性和有效性。