基于模式噪声分量符号信息的快速源相机辨识*

2011-08-02 05:51胡永健赖志茂刘琲贝
关键词:库中哈希指纹

胡永健 赖志茂 刘琲贝

(华南理工大学电子与信息学院,广东广州510640)

近年来,如何确定数码照片来源引起了广泛的关注[1-3].确定待测图像的数码相机类型或个体,可为保护数字作品版权以及追踪不良数字图像来源等问题提供法律依据.

不同品牌的数码相机通常使用不同的镜头和成像传感器,并采用不同的数字信号后处理运算,包括去马赛克、伽马矫正、色彩矫正、白平衡、压缩以及存储等.因此,即使拍摄同一对象,所生成的数字图像不仅在风格上有所不同,在图像质量上也存在细微差异,这为由照片追踪生成照片的成像设备提供了基础.Lukas等[4]首次提出利用成像传感器的模式噪声作为相机指纹来识别数码相机个体,其中相机传感器的模式噪声被认为主要是由光敏材料的光子响应非均匀性(PRNU)引起的.若将模式噪声看成一个扩频后的水印信号,则可借助水印处理中经典的相关性检测算法来作判断.后续文献又对文献[4]在指纹抽取[5]、指纹在大规模照片检测环境下的有效性[6-7]以及指纹信息的高效应用[8-9]等方面进行了改进.

现有利用相关性检测的源相机辨识算法通过计算传感器模式噪声(或称相机指纹)和数字图像噪声残余之间的相关性值,来达到鉴别数字图像来源的目的.利用图像的噪声残余是因为其中包含了大量的指纹信息,可以近似看成是从单幅图像中提取出来的相机指纹.假设相机指纹库中存有N台相机指纹,每台相机指纹的长度(即模式噪声中分量的个数)为n,如果直接利用相关性检测方法在指纹库中查找与给定待测图像匹配的相机指纹,就需要计算待测图像噪声残余和指纹库中所有相机指纹的相关性值,计算复杂度是O(nN).在实际应用中,N很容易超过103,而n通常有106,显然,这样的计算量难以接受.

为了使基于模式噪声的源相机辨识方法更具实际应用价值,需要减少计算量.笔者[8]提出了一种利用成像传感器模式噪声大分量信息进行源设备辨识的方法,不仅改善了相关性检测器的性能,提高了数据的分辨能力,还大大减少了检测的计算量.Goljan等[6]则利用特殊的指纹摘要和稀疏矩阵结构体对大量相机指纹实现快速源辨识.在此基础上,文中提出一种新的快速算法,首先利用模式噪声中的大幅值分量构造相机指纹,降低相机指纹的长度,然后借助分离链接哈希表结构统计测试指纹和参考指纹中具有同符号分量的个数,据此从指纹库中快速定位与待测图像匹配的相机指纹,避免直接蛮力搜索带来的大量相关性计算.

1 快速源相机辨识算法

1.1 相机指纹的构造

数码相机PRNU模式噪声的主要有用成分是高频信号,可通过对图像实施高通滤波进行提取[4-5]:

式中,I为原始图像的二维矩阵形式,W表示图像噪声残余,f表示去噪滤波器.文中采用文献[8]的方法提取参考模式噪声和测试图像噪声残余,其中去噪滤波器采用文献[10]的基于上下文的自适应小波去噪.所提取的模式噪声信号不容易受其它噪声(包括场景噪声、颜色插值噪声、JPEG压缩噪声等)的干扰,以便提高相关性检测器的分辨率.具体提取过程如图1所示.

图1 相机参考模式噪声和单幅测试图像噪声残余的提取过程Fig.1 Extraction procedures for the reference pattern noise of camera and the single test image noise residual

由图1得到的相机的参考模式噪声F和单幅测试图像噪声残余W与原始图像有相同的尺寸,可看成是二维矩阵.将F按行展开成一维向量的形式,就可看成是一个由正负实数构成的扩频水印.笔者按幅值的大小对参考模式噪声F中的元素进行排序,选取最大的m个元素,同时屏蔽剩余的元素,构成新相机指纹.用一维向量VF来保存这m个大幅值分量的幅值信息,同时用LF记录这m个大幅值分量在F中的位置信息.设一维索引向量l[d],d=1,2,…,m,1≤l[d]≤n,其中 n 是原相机指纹的长度,则有同理,利用单幅测试图像噪声残余W前m个大幅值分量构造新的测试图像噪声残余,分别用一维向量VW和LW来保存这m个大幅值分量的幅值信息和位置信息.通常情况下,选取的大分量数目为m≤104,与长度为n≥106的原相机指纹相比,大大降低了相机指纹长度,减少了后续的相关性计算量.有关m的取值以及它与相关性计算量的关系在文献[8]中有详细讨论.

1.2 模式噪声同符号信息的统计

1)采用分离链接法[11]创建一个含有n个表头的哈希表HashTable,用来存放指纹库的所有指纹索引 i,i∈{1,2,…,N}.这种哈希表不但可以解决元素冲突的问题,还可快速地实现元素的插入和查找操作.

2)依照下面的规则把指纹索引i全部插入到哈希表中:

(1)选择指纹库中的第 i个相机指纹,如果VFi[d]≥0,d=1,2,…,m,则把指纹索引“+i”插入到哈希表HashTable的第LFi[d]个表头的末尾.为了简便,实际操作时省略了“+”.

(2)如果VFi[d]<0,则把指纹的负索引“- i”插入到哈希表的第LFi[d]个表头的末尾.

(3)每个相机指纹都经过m次循环判断插入.全部指纹索引插入到哈希表后的结构如图2所示.白色框部分仅表示在相机指纹构造过程中被屏蔽的元素,在表中并不真实存在.

图2 保存相机指纹索引的哈希表HashTableFig.2 HashTable for storing camera fingerprint indices

3)输入待测图像噪声残余,统计它与指纹库中的每一个相机指纹之间的同符号信息,并构建同符号系数矩阵R=[r1r2…rN],其中ri代表了待测图像噪声残余和相机指纹i的同符号数目.

(1)选择VW的第1个元素VW[1],搜索Hash-Table第LW[1]个表头所在链表.如果VW[1]≥0且该链表含有相机指纹的正索引i,则相应的同符号系数ri增加1;如果VW[1]<0且该链表含有相机指纹的负索引“-i”,相应的同符号系数ri同样增加1.

(2)经m次循环统计,得到同符号系数矩阵R.

1.3 快速搜索匹配

对统计生成的同符号系数矩阵R=[r1r2…rN]进行降序排序,用一维向量LR保存所有相机指纹的排序位置,位置越靠前的相机指纹,待测图像噪声残余和相机指纹的同符号数目越大,它与待测图像噪声残余之间的相关性值通常就会越大,匹配的可能性也越大.根据文献[4]的二元假设相关性检测方法,依次计算待测图像噪声残余和排在前面的候选指纹的前m个大分量的对应位置的相关性值,当相关性值大于一个给定阈值T时,认为这幅待测图像是由那台相机拍摄的,如果没有满足条件的相机指纹,则认为拍摄这幅图像的设备指纹不在指纹库中.因此,如果拍摄该图像的相机指纹在指纹库D中,只需通过少量的相关性计算就可以快速地找到与之相匹配的指纹,从而避免了蛮力搜索带来的大量相关性计算.相关性计算定义如下:

式中,VFi为第i台相机指纹的前m个大分量的幅值,VW[LFi]为测试图像噪声残余在对应位置上前m个元素的幅值.这里而上方带有“-”的符号表示是均值.

快速源相机辨识算法的伪代码如下:

Creat HashTable H and initialize;∥利用分量链接法创建一个含有n个表头的哈希表

Fori=1 toN

{

Ford=1 tom

{

IfVFi[d]≥0

Insert(LFi[d],i,H);∥把相机指纹索引i插入到哈希表H第LFi[d]个表头的末尾

Else

Insert(LFi[d],( -i),H);∥把相机指纹负索引(-i)插入到哈希表H第LFi[d]个表头的末尾

End

}

End for

}

End for

InputVWandLW;∥输入待测图像噪声残余前m个大幅值分量的幅值和位置信息

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∥统计待测图像噪声残余和每一个相机指纹的同符号信息

}

End for

Sort(R,N,LR);∥对同符号系数矩阵R进行降序排序

Fori=LR[1]toLR[N]

{

ρ=corr(VFi,VW[LFi]);∥按顺序计算待测图像噪声残余和相机指纹的前m个大幅值分量的相关性值ρ

Ifρ>T

Output“The matched camera fingerprint isi”;

break;∥找到匹配相机指纹则跳出循环

End

}

End for

2 实验结果及分析

为了验证算法的有效性,笔者收集了45种不同品牌或型号的数码相机所拍摄的照片,建立了一个实验图像数据库.每台相机拍摄180幅图像,用其中的100幅图像作为参考图像集,求取每台相机的参考模式噪声,以此构建一个含有45个相机指纹的指纹库D={},i=1,2,…,45,而各自剩下的 80 幅用作测试图像集.所有实验图像均从照片中心取尺寸为1024×1024的区域,这使得无论相机成像传感器的实际尺寸是否相同,检测图像大小都是一样的.实验采用Intel Core(TM)2.53 GHz CPU的PC平台,在Windows操作系统下使用VC 6.0编程.

2.1 相关性计算量与相机指纹长度的关系

图3示出了由常用的相关性计算公式(即文中式(2))得到的计算量和相机指纹长度的关系.文献[8]指出,从参考相机指纹选取部分大幅值元素构造精简的相机指纹比直接用全部元素能更有效地分离两类相机的数据,且能减少相关性运算的计算量.当取图像总数1%的元素(即1024×1024×1%≈10000)时,一次相关性运算所需时间大约为1 ms,而直接用全部元素做相关性运算需要大约46ms.显然,前者较后者的计算量大大减少.因此,文中采用文献[8]的思想和文献[6]的做法,利用1%的大幅值分量来构建所用的相机指纹.

图3 相关性运算时间和选取的大幅值分量之间的关系Fig.3 Relationship between the selected large-magnitude components and the time for performing correlation computation

2.2 相机指纹数据分离的依据

文中用待测图像的噪声残余与相机参考指纹之间的同符号信息作为两者是否匹配的初步依据.对多种相机进行了实验,这里仅给出4台相机的结果.参考相机为Canon A40,并取此相机和Canon 450D、Canon A620以及Nikon L3所拍摄的图像各80幅为测试图像.图4示出了待测图像的噪声残余与Canon A40相机参考指纹的同符号数目.可以看到,由Canon A40拍摄的图像与参考指纹之间的同符号数目远远高于其它相机所拍摄图像与参考指纹之间的同符号数目.据此,通过统计测试图像噪声残余和相机指纹库中每一个相机指纹之间的同符号信息,可筛选出与之相匹配的候选相机指纹,为后续的相关性计算做准备,从而减少相关性计算的次数.

图4 同符号分量数目统计Fig.4 Statistics of the number of components with the same sign

2.3 图像的快速源辨识

用于测试的图像集由45×80=3600幅图像组成,利用文中提出的快速算法对这些图像进行源辨识,并统计每一幅测试图像找到与之相匹配的相机指纹所需的相关性计算次数.实验结果如图5所示.

图5 3600幅测试图像的快速源相机辨识结果Fig.5 Result of the fast source camera identification for 3600 test images

图5显示,2930幅图像只进行了1次相关性计算就找到了与之相匹配的相机指纹,3次以内找到相匹配的相机指纹的图像数目大约占总数的92%.若采用蛮力搜索,平均每幅图像匹配相应指纹所需要的计算次数的期望值是23,且这个期望值随着指纹库的增大而增加.因此,文中提出的快速筛选算法可极大地减少检测所需的相关性计算量.

2.4 大图像库的仿真实验

为了模拟更大的图像库,文中提出一种新的仿真方法.通过对指纹库中现有的45台相机指纹观察,发现其值大致集中在[-2,2]的区间,其概率分布可以用广义高斯模型的概率密度函数来近似拟合(见图6).广义高斯分布的密度函数公式可以表述为[12]

式中,参数α、β、μ分别是尺度参数、形状参数和均值,Γ代表伽马函数.文中采用文献[11]提出的方法来估计α、β、μ值.

通过在一个限定范围内随机改变尺度参数、形状参数和均值,随机生成了2000个符合广义高斯分布的模拟相机指纹.将这些指纹和现有相机指纹库D中的8台相机的指纹组建成一个含有2008台相机指纹的库~D,重复2.3节的实验.首先把这个指纹库的信息全部存放到分离链接的哈希表中,然后将上述8台相机所拍摄的8×150=1200幅图像作为待测图像集,对它们进行快速搜索匹配,检测结果如图7所示.1200幅图像快速源相机辨识所用的相关性计算次数总共为46103,平均每幅图像所需次数约为38次,平均每幅图像所需的搜索匹配时间为82ms.

图6 4台相机指纹的概率密度分布和相应广义高斯函数的拟合曲线Fig.6 Probability density distribution of fingerprints of four cameras and their fitting curves using generalized Gaussian function

图7 1200幅测试图像的快速源相机辨识结果Fig.7 Result of the fast source camera identification for 1200 test images

文献[6]所用指纹库含有3091个相机指纹,待测指纹有667个,平均每幅待测指纹的相关性计算次数为29,平均每幅待测指纹所需的搜索匹配时间为0.227s.可以看到,尽管文中的指纹库比文献[6]的略小(但在同一个数量级),即使当测试图像的数目比文献[6]大近1倍时,平均每幅待测图片的搜索匹配速度也比文献[6]快了近3倍.而如果采用蛮力搜索匹配方法的话,则平均每幅图像匹配与之相应的相机指纹所需相关性计算次数的期望值为1004次,匹配时间为46 s.因此,在大库容下文中提出的快速算法更有优势.文中算法的另一个优点是,相机指纹库还可以随时快速地更新,更符合实际应用的需要.

3 结语

为提高源相机辨识技术的实用性,文中提出了一种基于相机传感器模式噪声的快速源相机辨识算法,可快速从指纹库中找到与待测图像相匹配的相机指纹.不同于传统的直接搜索检测方法,文中提出利用分离链接哈希表结构建立参考指纹信息库,依据测试指纹和参考指纹之间具有同符号的大幅值分量个数确定搜索顺序,快速确定可能匹配的指纹,避免了搜索过程中大量的相关性运算,具有一定的理论意义和潜在的商业价值.

[1]胡永健,刘琲贝,贺前华.数字多媒体取证技术综述[J].计算机应用,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]吴琼,李国辉,涂丹,等.面向真实性鉴别的数字图像盲取证技术综述 [J].自动化学报,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,Fridrich 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,Fridrich 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,Fridrich J,Filler 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,Fridrich J,Filler 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]胡永健,俞兵华,简超.利用模式噪声主分量信息的源相机辨识技术[J].计算机应用,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.

猜你喜欢
库中哈希指纹
街头的人
像侦探一样提取指纹
为什么每个人的指纹都不一样
文件哈希值处理一条龙
从今天开始
智能盘库在自动化立体库中的探索和应用
基于自适应稀疏变换的指纹图像压缩
基于OpenCV与均值哈希算法的人脸相似识别系统
巧用哈希数值传递文件
可疑的指纹