胡永健 賴(lài)志茂 劉琲貝
(華南理工大學(xué)電子與信息學(xué)院,廣東廣州510640)
近年來(lái),如何確定數(shù)碼照片來(lái)源引起了廣泛的關(guān)注[1-3].確定待測(cè)圖像的數(shù)碼相機(jī)類(lèi)型或個(gè)體,可為保護(hù)數(shù)字作品版權(quán)以及追蹤不良數(shù)字圖像來(lái)源等問(wèn)題提供法律依據(jù).
不同品牌的數(shù)碼相機(jī)通常使用不同的鏡頭和成像傳感器,并采用不同的數(shù)字信號(hào)后處理運(yùn)算,包括去馬賽克、伽馬矯正、色彩矯正、白平衡、壓縮以及存儲(chǔ)等.因此,即使拍攝同一對(duì)象,所生成的數(shù)字圖像不僅在風(fēng)格上有所不同,在圖像質(zhì)量上也存在細(xì)微差異,這為由照片追蹤生成照片的成像設(shè)備提供了基礎(chǔ).Lukas等[4]首次提出利用成像傳感器的模式噪聲作為相機(jī)指紋來(lái)識(shí)別數(shù)碼相機(jī)個(gè)體,其中相機(jī)傳感器的模式噪聲被認(rèn)為主要是由光敏材料的光子響應(yīng)非均勻性(PRNU)引起的.若將模式噪聲看成一個(gè)擴(kuò)頻后的水印信號(hào),則可借助水印處理中經(jīng)典的相關(guān)性檢測(cè)算法來(lái)作判斷.后續(xù)文獻(xiàn)又對(duì)文獻(xiàn)[4]在指紋抽?。?]、指紋在大規(guī)模照片檢測(cè)環(huán)境下的有效性[6-7]以及指紋信息的高效應(yīng)用[8-9]等方面進(jìn)行了改進(jìn).
現(xiàn)有利用相關(guān)性檢測(cè)的源相機(jī)辨識(shí)算法通過(guò)計(jì)算傳感器模式噪聲(或稱(chēng)相機(jī)指紋)和數(shù)字圖像噪聲殘余之間的相關(guān)性值,來(lái)達(dá)到鑒別數(shù)字圖像來(lái)源的目的.利用圖像的噪聲殘余是因?yàn)槠渲邪舜罅康闹讣y信息,可以近似看成是從單幅圖像中提取出來(lái)的相機(jī)指紋.假設(shè)相機(jī)指紋庫(kù)中存有N臺(tái)相機(jī)指紋,每臺(tái)相機(jī)指紋的長(zhǎng)度(即模式噪聲中分量的個(gè)數(shù))為n,如果直接利用相關(guān)性檢測(cè)方法在指紋庫(kù)中查找與給定待測(cè)圖像匹配的相機(jī)指紋,就需要計(jì)算待測(cè)圖像噪聲殘余和指紋庫(kù)中所有相機(jī)指紋的相關(guān)性值,計(jì)算復(fù)雜度是O(nN).在實(shí)際應(yīng)用中,N很容易超過(guò)103,而n通常有106,顯然,這樣的計(jì)算量難以接受.
為了使基于模式噪聲的源相機(jī)辨識(shí)方法更具實(shí)際應(yīng)用價(jià)值,需要減少計(jì)算量.筆者[8]提出了一種利用成像傳感器模式噪聲大分量信息進(jìn)行源設(shè)備辨識(shí)的方法,不僅改善了相關(guān)性檢測(cè)器的性能,提高了數(shù)據(jù)的分辨能力,還大大減少了檢測(cè)的計(jì)算量.Goljan等[6]則利用特殊的指紋摘要和稀疏矩陣結(jié)構(gòu)體對(duì)大量相機(jī)指紋實(shí)現(xiàn)快速源辨識(shí).在此基礎(chǔ)上,文中提出一種新的快速算法,首先利用模式噪聲中的大幅值分量構(gòu)造相機(jī)指紋,降低相機(jī)指紋的長(zhǎng)度,然后借助分離鏈接哈希表結(jié)構(gòu)統(tǒng)計(jì)測(cè)試指紋和參考指紋中具有同符號(hào)分量的個(gè)數(shù),據(jù)此從指紋庫(kù)中快速定位與待測(cè)圖像匹配的相機(jī)指紋,避免直接蠻力搜索帶來(lái)的大量相關(guān)性計(jì)算.
數(shù)碼相機(jī)PRNU模式噪聲的主要有用成分是高頻信號(hào),可通過(guò)對(duì)圖像實(shí)施高通濾波進(jìn)行提取[4-5]:
式中,I為原始圖像的二維矩陣形式,W表示圖像噪聲殘余,f表示去噪濾波器.文中采用文獻(xiàn)[8]的方法提取參考模式噪聲和測(cè)試圖像噪聲殘余,其中去噪濾波器采用文獻(xiàn)[10]的基于上下文的自適應(yīng)小波去噪.所提取的模式噪聲信號(hào)不容易受其它噪聲(包括場(chǎng)景噪聲、顏色插值噪聲、JPEG壓縮噪聲等)的干擾,以便提高相關(guān)性檢測(cè)器的分辨率.具體提取過(guò)程如圖1所示.
圖1 相機(jī)參考模式噪聲和單幅測(cè)試圖像噪聲殘余的提取過(guò)程Fig.1 Extraction procedures for the reference pattern noise of camera and the single test image noise residual
由圖1得到的相機(jī)的參考模式噪聲F和單幅測(cè)試圖像噪聲殘余W與原始圖像有相同的尺寸,可看成是二維矩陣.將F按行展開(kāi)成一維向量的形式,就可看成是一個(gè)由正負(fù)實(shí)數(shù)構(gòu)成的擴(kuò)頻水印.筆者按幅值的大小對(duì)參考模式噪聲F中的元素進(jìn)行排序,選取最大的m個(gè)元素,同時(shí)屏蔽剩余的元素,構(gòu)成新相機(jī)指紋.用一維向量VF來(lái)保存這m個(gè)大幅值分量的幅值信息,同時(shí)用LF記錄這m個(gè)大幅值分量在F中的位置信息.設(shè)一維索引向量l[d],d=1,2,…,m,1≤l[d]≤n,其中 n 是原相機(jī)指紋的長(zhǎng)度,則有同理,利用單幅測(cè)試圖像噪聲殘余W前m個(gè)大幅值分量構(gòu)造新的測(cè)試圖像噪聲殘余,分別用一維向量VW和LW來(lái)保存這m個(gè)大幅值分量的幅值信息和位置信息.通常情況下,選取的大分量數(shù)目為m≤104,與長(zhǎng)度為n≥106的原相機(jī)指紋相比,大大降低了相機(jī)指紋長(zhǎng)度,減少了后續(xù)的相關(guān)性計(jì)算量.有關(guān)m的取值以及它與相關(guān)性計(jì)算量的關(guān)系在文獻(xiàn)[8]中有詳細(xì)討論.
1)采用分離鏈接法[11]創(chuàng)建一個(gè)含有n個(gè)表頭的哈希表HashTable,用來(lái)存放指紋庫(kù)的所有指紋索引 i,i∈{1,2,…,N}.這種哈希表不但可以解決元素沖突的問(wèn)題,還可快速地實(shí)現(xiàn)元素的插入和查找操作.
2)依照下面的規(guī)則把指紋索引i全部插入到哈希表中:
(1)選擇指紋庫(kù)中的第 i個(gè)相機(jī)指紋,如果VFi[d]≥0,d=1,2,…,m,則把指紋索引“+i”插入到哈希表HashTable的第LFi[d]個(gè)表頭的末尾.為了簡(jiǎn)便,實(shí)際操作時(shí)省略了“+”.
(2)如果VFi[d]<0,則把指紋的負(fù)索引“- i”插入到哈希表的第LFi[d]個(gè)表頭的末尾.
(3)每個(gè)相機(jī)指紋都經(jīng)過(guò)m次循環(huán)判斷插入.全部指紋索引插入到哈希表后的結(jié)構(gòu)如圖2所示.白色框部分僅表示在相機(jī)指紋構(gòu)造過(guò)程中被屏蔽的元素,在表中并不真實(shí)存在.
圖2 保存相機(jī)指紋索引的哈希表HashTableFig.2 HashTable for storing camera fingerprint indices
3)輸入待測(cè)圖像噪聲殘余,統(tǒng)計(jì)它與指紋庫(kù)中的每一個(gè)相機(jī)指紋之間的同符號(hào)信息,并構(gòu)建同符號(hào)系數(shù)矩陣R=[r1r2…rN],其中ri代表了待測(cè)圖像噪聲殘余和相機(jī)指紋i的同符號(hào)數(shù)目.
(1)選擇VW的第1個(gè)元素VW[1],搜索Hash-Table第LW[1]個(gè)表頭所在鏈表.如果VW[1]≥0且該鏈表含有相機(jī)指紋的正索引i,則相應(yīng)的同符號(hào)系數(shù)ri增加1;如果VW[1]<0且該鏈表含有相機(jī)指紋的負(fù)索引“-i”,相應(yīng)的同符號(hào)系數(shù)ri同樣增加1.
(2)經(jīng)m次循環(huán)統(tǒng)計(jì),得到同符號(hào)系數(shù)矩陣R.
對(duì)統(tǒng)計(jì)生成的同符號(hào)系數(shù)矩陣R=[r1r2…rN]進(jìn)行降序排序,用一維向量LR保存所有相機(jī)指紋的排序位置,位置越靠前的相機(jī)指紋,待測(cè)圖像噪聲殘余和相機(jī)指紋的同符號(hào)數(shù)目越大,它與待測(cè)圖像噪聲殘余之間的相關(guān)性值通常就會(huì)越大,匹配的可能性也越大.根據(jù)文獻(xiàn)[4]的二元假設(shè)相關(guān)性檢測(cè)方法,依次計(jì)算待測(cè)圖像噪聲殘余和排在前面的候選指紋的前m個(gè)大分量的對(duì)應(yīng)位置的相關(guān)性值,當(dāng)相關(guān)性值大于一個(gè)給定閾值T時(shí),認(rèn)為這幅待測(cè)圖像是由那臺(tái)相機(jī)拍攝的,如果沒(méi)有滿(mǎn)足條件的相機(jī)指紋,則認(rèn)為拍攝這幅圖像的設(shè)備指紋不在指紋庫(kù)中.因此,如果拍攝該圖像的相機(jī)指紋在指紋庫(kù)D中,只需通過(guò)少量的相關(guān)性計(jì)算就可以快速地找到與之相匹配的指紋,從而避免了蠻力搜索帶來(lái)的大量相關(guān)性計(jì)算.相關(guān)性計(jì)算定義如下:
式中,VFi為第i臺(tái)相機(jī)指紋的前m個(gè)大分量的幅值,VW[LFi]為測(cè)試圖像噪聲殘余在對(duì)應(yīng)位置上前m個(gè)元素的幅值.這里而上方帶有“-”的符號(hào)表示是均值.
快速源相機(jī)辨識(shí)算法的偽代碼如下:
Creat HashTable H and initialize;∥利用分量鏈接法創(chuàng)建一個(gè)含有n個(gè)表頭的哈希表
Fori=1 toN
{
Ford=1 tom
{
IfVFi[d]≥0
Insert(LFi[d],i,H);∥把相機(jī)指紋索引i插入到哈希表H第LFi[d]個(gè)表頭的末尾
Else
Insert(LFi[d],( -i),H);∥把相機(jī)指紋負(fù)索引(-i)插入到哈希表H第LFi[d]個(gè)表頭的末尾
End
}
End for
}
End for
InputVWandLW;∥輸入待測(cè)圖像噪聲殘余前m個(gè)大幅值分量的幅值和位置信息
Ford=1 tom
{
IfVW[d]≥0 && there are any indexiin theLW[d]th list
R[i]=R[i]+1;
Else ifVW[d]<0&&there are any index(-i)in theLW[d]th list
R[i]=R[i]+1;
End∥統(tǒng)計(jì)待測(cè)圖像噪聲殘余和每一個(gè)相機(jī)指紋的同符號(hào)信息
}
End for
Sort(R,N,LR);∥對(duì)同符號(hào)系數(shù)矩陣R進(jìn)行降序排序
Fori=LR[1]toLR[N]
{
ρ=corr(VFi,VW[LFi]);∥按順序計(jì)算待測(cè)圖像噪聲殘余和相機(jī)指紋的前m個(gè)大幅值分量的相關(guān)性值ρ
Ifρ>T
Output“The matched camera fingerprint isi”;
break;∥找到匹配相機(jī)指紋則跳出循環(huán)
End
}
End for
為了驗(yàn)證算法的有效性,筆者收集了45種不同品牌或型號(hào)的數(shù)碼相機(jī)所拍攝的照片,建立了一個(gè)實(shí)驗(yàn)圖像數(shù)據(jù)庫(kù).每臺(tái)相機(jī)拍攝180幅圖像,用其中的100幅圖像作為參考圖像集,求取每臺(tái)相機(jī)的參考模式噪聲,以此構(gòu)建一個(gè)含有45個(gè)相機(jī)指紋的指紋庫(kù)D={},i=1,2,…,45,而各自剩下的 80 幅用作測(cè)試圖像集.所有實(shí)驗(yàn)圖像均從照片中心取尺寸為1024×1024的區(qū)域,這使得無(wú)論相機(jī)成像傳感器的實(shí)際尺寸是否相同,檢測(cè)圖像大小都是一樣的.實(shí)驗(yàn)采用Intel Core(TM)2.53 GHz CPU的PC平臺(tái),在Windows操作系統(tǒng)下使用VC 6.0編程.
圖3示出了由常用的相關(guān)性計(jì)算公式(即文中式(2))得到的計(jì)算量和相機(jī)指紋長(zhǎng)度的關(guān)系.文獻(xiàn)[8]指出,從參考相機(jī)指紋選取部分大幅值元素構(gòu)造精簡(jiǎn)的相機(jī)指紋比直接用全部元素能更有效地分離兩類(lèi)相機(jī)的數(shù)據(jù),且能減少相關(guān)性運(yùn)算的計(jì)算量.當(dāng)取圖像總數(shù)1%的元素(即1024×1024×1%≈10000)時(shí),一次相關(guān)性運(yùn)算所需時(shí)間大約為1 ms,而直接用全部元素做相關(guān)性運(yùn)算需要大約46ms.顯然,前者較后者的計(jì)算量大大減少.因此,文中采用文獻(xiàn)[8]的思想和文獻(xiàn)[6]的做法,利用1%的大幅值分量來(lái)構(gòu)建所用的相機(jī)指紋.
圖3 相關(guān)性運(yùn)算時(shí)間和選取的大幅值分量之間的關(guān)系Fig.3 Relationship between the selected large-magnitude components and the time for performing correlation computation
文中用待測(cè)圖像的噪聲殘余與相機(jī)參考指紋之間的同符號(hào)信息作為兩者是否匹配的初步依據(jù).對(duì)多種相機(jī)進(jìn)行了實(shí)驗(yàn),這里僅給出4臺(tái)相機(jī)的結(jié)果.參考相機(jī)為Canon A40,并取此相機(jī)和Canon 450D、Canon A620以及Nikon L3所拍攝的圖像各80幅為測(cè)試圖像.圖4示出了待測(cè)圖像的噪聲殘余與Canon A40相機(jī)參考指紋的同符號(hào)數(shù)目.可以看到,由Canon A40拍攝的圖像與參考指紋之間的同符號(hào)數(shù)目遠(yuǎn)遠(yuǎn)高于其它相機(jī)所拍攝圖像與參考指紋之間的同符號(hào)數(shù)目.據(jù)此,通過(guò)統(tǒng)計(jì)測(cè)試圖像噪聲殘余和相機(jī)指紋庫(kù)中每一個(gè)相機(jī)指紋之間的同符號(hào)信息,可篩選出與之相匹配的候選相機(jī)指紋,為后續(xù)的相關(guān)性計(jì)算做準(zhǔn)備,從而減少相關(guān)性計(jì)算的次數(shù).
圖4 同符號(hào)分量數(shù)目統(tǒng)計(jì)Fig.4 Statistics of the number of components with the same sign
用于測(cè)試的圖像集由45×80=3600幅圖像組成,利用文中提出的快速算法對(duì)這些圖像進(jìn)行源辨識(shí),并統(tǒng)計(jì)每一幅測(cè)試圖像找到與之相匹配的相機(jī)指紋所需的相關(guān)性計(jì)算次數(shù).實(shí)驗(yàn)結(jié)果如圖5所示.
圖5 3600幅測(cè)試圖像的快速源相機(jī)辨識(shí)結(jié)果Fig.5 Result of the fast source camera identification for 3600 test images
圖5顯示,2930幅圖像只進(jìn)行了1次相關(guān)性計(jì)算就找到了與之相匹配的相機(jī)指紋,3次以?xún)?nèi)找到相匹配的相機(jī)指紋的圖像數(shù)目大約占總數(shù)的92%.若采用蠻力搜索,平均每幅圖像匹配相應(yīng)指紋所需要的計(jì)算次數(shù)的期望值是23,且這個(gè)期望值隨著指紋庫(kù)的增大而增加.因此,文中提出的快速篩選算法可極大地減少檢測(cè)所需的相關(guān)性計(jì)算量.
為了模擬更大的圖像庫(kù),文中提出一種新的仿真方法.通過(guò)對(duì)指紋庫(kù)中現(xiàn)有的45臺(tái)相機(jī)指紋觀察,發(fā)現(xiàn)其值大致集中在[-2,2]的區(qū)間,其概率分布可以用廣義高斯模型的概率密度函數(shù)來(lái)近似擬合(見(jiàn)圖6).廣義高斯分布的密度函數(shù)公式可以表述為[12]
式中,參數(shù)α、β、μ分別是尺度參數(shù)、形狀參數(shù)和均值,Γ代表伽馬函數(shù).文中采用文獻(xiàn)[11]提出的方法來(lái)估計(jì)α、β、μ值.
通過(guò)在一個(gè)限定范圍內(nèi)隨機(jī)改變尺度參數(shù)、形狀參數(shù)和均值,隨機(jī)生成了2000個(gè)符合廣義高斯分布的模擬相機(jī)指紋.將這些指紋和現(xiàn)有相機(jī)指紋庫(kù)D中的8臺(tái)相機(jī)的指紋組建成一個(gè)含有2008臺(tái)相機(jī)指紋的庫(kù)~D,重復(fù)2.3節(jié)的實(shí)驗(yàn).首先把這個(gè)指紋庫(kù)的信息全部存放到分離鏈接的哈希表中,然后將上述8臺(tái)相機(jī)所拍攝的8×150=1200幅圖像作為待測(cè)圖像集,對(duì)它們進(jìn)行快速搜索匹配,檢測(cè)結(jié)果如圖7所示.1200幅圖像快速源相機(jī)辨識(shí)所用的相關(guān)性計(jì)算次數(shù)總共為46103,平均每幅圖像所需次數(shù)約為38次,平均每幅圖像所需的搜索匹配時(shí)間為82ms.
圖6 4臺(tái)相機(jī)指紋的概率密度分布和相應(yīng)廣義高斯函數(shù)的擬合曲線Fig.6 Probability density distribution of fingerprints of four cameras and their fitting curves using generalized Gaussian function
圖7 1200幅測(cè)試圖像的快速源相機(jī)辨識(shí)結(jié)果Fig.7 Result of the fast source camera identification for 1200 test images
文獻(xiàn)[6]所用指紋庫(kù)含有3091個(gè)相機(jī)指紋,待測(cè)指紋有667個(gè),平均每幅待測(cè)指紋的相關(guān)性計(jì)算次數(shù)為29,平均每幅待測(cè)指紋所需的搜索匹配時(shí)間為0.227s.可以看到,盡管文中的指紋庫(kù)比文獻(xiàn)[6]的略小(但在同一個(gè)數(shù)量級(jí)),即使當(dāng)測(cè)試圖像的數(shù)目比文獻(xiàn)[6]大近1倍時(shí),平均每幅待測(cè)圖片的搜索匹配速度也比文獻(xiàn)[6]快了近3倍.而如果采用蠻力搜索匹配方法的話,則平均每幅圖像匹配與之相應(yīng)的相機(jī)指紋所需相關(guān)性計(jì)算次數(shù)的期望值為1004次,匹配時(shí)間為46 s.因此,在大庫(kù)容下文中提出的快速算法更有優(yōu)勢(shì).文中算法的另一個(gè)優(yōu)點(diǎn)是,相機(jī)指紋庫(kù)還可以隨時(shí)快速地更新,更符合實(shí)際應(yīng)用的需要.
為提高源相機(jī)辨識(shí)技術(shù)的實(shí)用性,文中提出了一種基于相機(jī)傳感器模式噪聲的快速源相機(jī)辨識(shí)算法,可快速?gòu)闹讣y庫(kù)中找到與待測(cè)圖像相匹配的相機(jī)指紋.不同于傳統(tǒng)的直接搜索檢測(cè)方法,文中提出利用分離鏈接哈希表結(jié)構(gòu)建立參考指紋信息庫(kù),依據(jù)測(cè)試指紋和參考指紋之間具有同符號(hào)的大幅值分量個(gè)數(shù)確定搜索順序,快速確定可能匹配的指紋,避免了搜索過(guò)程中大量的相關(guān)性運(yùn)算,具有一定的理論意義和潛在的商業(yè)價(jià)值.
[1]胡永健,劉琲貝,賀前華.數(shù)字多媒體取證技術(shù)綜述[J].計(jì)算機(jī)應(yīng)用,2010,30(3):657-662.Hu Yong-jian,Liu Bei-bei,He Qian-hua.Survey on techniques of digital multimedia forensics[J].Journal of Computer Applications,2010,30(3):657-662.
[2]吳瓊,李國(guó)輝,涂丹,等.面向真實(shí)性鑒別的數(shù)字圖像盲取證技術(shù)綜述 [J].自動(dòng)化學(xué)報(bào),2008,34(12):1458-1466.Wu Qiong,Li Guo-hui,Tu Dan,et al.A survey of blind digital image forensics technology for authenticity detection[J].Acta Automatic Sincia,2008,34(12):1458-1466.
[3]Sencar T H,Memon N.Overview of state-of-the-art in digital image forensics[M]∥Bhattacharya B B,Sur-Kolay S,Nandy C S,et al.Statistical Science and Interdisciplinary Research.Singapore:World Scientific Press,2008:325-348.
[4]Lukas J,F(xiàn)ridrich J,Goljan M.Digital camera identification from sensor pattern noise[J].IEEE Transactions on Information Forensics and Security,2006,1(2):205-214.
[5]Chen M,F(xiàn)ridrich J,Goljan M,et al.Determining image origin and integrity using sensor noise[J].IEEE Transactions on Information Forensics and Security,2008,3(1):74-90.
[6]Goljan M,F(xiàn)ridrich J,F(xiàn)iller T.Managing a large database of camera fingerprints[C]∥Proceedings of SPIE Conference on Electronic Imaging Security and Forensics of Multimedia Contents XII.Bellingham:SPIE,2010:8-12.
[7]Goljan M,F(xiàn)ridrich J,F(xiàn)iller T.Large scale test of sensor fingerprint camera identification[C]∥Proceedings of SPIE Conference on Electronic Imaging,Security and Forensics of Multimedia Contents XI,SPIE 7254.Bellingham:SPIE,2009:1-12.
[8]胡永健,俞兵華,簡(jiǎn)超.利用模式噪聲主分量信息的源相機(jī)辨識(shí)技術(shù)[J].計(jì)算機(jī)應(yīng)用,2010,30(1):31-35.Hu Yong-jian,Yu Bing-hua,Jian Chao.Source camera identification technique using large components of imaging sensor pattern noise[J].Journal of Computer Applications,2010,30(1):31-35.
[9]Liu Bei-Bei,Hu Yongjian,Lee Heung-Kyu.Source camera identification from significant noise residual regions[C]∥Proceedings of IEEE International Conference on Image Processing.Hong Kong:IEEE,2010:26-29.
[10]Chang S G,Yu B,Vetterli M.Spatially adaptive wavelet thresholding with context modeling for image denoising[J].IEEE Transactions on Imaging Processing,2000,9(9):1522-1531.
[11]Ramakrishna M V.An exact probability model for finite hash tables[C]∥Proceedings of IEEE Conference on Data Engineering.Los Angeles:IEEE,1988:362-368.
[12]Armando Dominguez-Molina J,Gonzalez-Farias G,Rodriguez-Dagnino R.A practical procedure to estimate the shape parameter in the generalized Gaussian distribution[EB/OL].(2001-04-15)[2011-03-10].http:∥www.cimat.mx/reportes/enlinea/I-01-18 - eng.pdf.