2. 重庆邮电大学 计算机科学与技术学院, 重庆 400065
2. College of Computer Science and Technology, Chongqing University of Posts and Telecommunications, Chongqing 400065, China
随着数字科技的发展, 数字图像的真实性受到了严峻的挑战, 其真实性检测方法的研究主要集中在被动检测技术上。目前, 已提出多种图像盲检测方法, Hsu等[1]教授提出了利用数码相机响应函数(Camera Responding Function, CRF)一致性的图像拼接篡改检测算法。如果利用数码相机的模式噪声来检测拼接区域[2], 需要首先得到某种相机的参考相机模式噪声, 同时要拥有大量的数字图像来作基础, 这便大大增加了图像盲检测的工作量。Farid等[3]利用图像中光影关系估计图像中的光源方向, 根据光源方向的一致性判断图像是否经过篡改。Luo等[4]提出了基于拼接篡改会破坏图像内在的块效应特征矩阵(Block Artifacts Characteristic Matrix, BACM)对称特性的理论来对图像真实性进行盲检测。这些方法都依赖于相机成像系统的固有特性和篡改后期处理痕迹来进行拼接检测。Shi等[5]用相位的一致性、小波域特征函数统计矩, 块离散余弦变换(Block Discrete Cosine Transform, BDCT)系数的马尔可夫转移概率和多尺度小波域特征函数的各阶矩检测图像拼接。He等[6]将图像边缘的统计矩即游程长度作为图像拼接的检测特征, 用此统计量特征判断图像是否经过拼接篡改。王波等[7]通过对图像进行颜色滤波插值并估计原图, 重建其像素邻域一致性, 利用待测图像的边缘点在像素邻域一致性上偏离估计的原始图像的程度, 对图像的拼接进行准确定位。Lu等[8]通过将广度优先搜索邻居(Broad First Search Neighbor, BFSN)的聚类算法与颜色滤波阵列(Color Filter Array, CFA)特征相结合, 利用CFA特征检测篡改区域的边缘, 使用BFSN算法寻找相同的多篡改区域。段新涛等[9]通过图像篡改前后DCT系数发生的变化进而检测出伪造图像的篡改区域。高健等[10]通过CFA处理过程中产生的伪影计算出单个特征点, 然后通过简单阈值对特征点进行分类, 最后得到图像篡改区域。
以上方法大多是利用大量图像建立统计上的模型, 并提取若干特征进行量化描述, 最后使用分类器进行二分类判决。这类方法的局限在于一方面不能对拼接篡改进行局部定位, 另一方面由于图像的统计特征与图像内容、拍摄环境和参数等因素有关, 因此对应的模型往往具有样本依赖性, 鲁棒性不强。还有某些方法是通过检测篡改区域边缘像素点的不一致性进行定位, 由于特征较为单一, 导致检测出的边缘区域不连续, 定位精度不高。本文提出一种根据图像插值像素与邻域像素的相关性提取特征, 进而鉴别图像的真伪, 不仅能够准确判决和定位篡改区域, 而且对经过后处理的篡改图像也有良好效果。本文余下部分安排如下, 第一节介绍了图像CFA插值算法的基本原理及特性; 第二节描述了通过插值效应进行篡改区域的定位; 第三节介绍了实验结果以及和其他方法的对比情况; 最后总结了本方法的不足之处以及未来的研究进展。
1 图像插值原理及特性数字图像采集功能一般用CCD和CMOS传感器来实现, 但这两种传感器在一个像素上只能采集RGB颜色的一个分量。为了降低成本和设计复杂度, 通常使用一个传感器在表面覆盖CFA来采集图像。由于Bayer颜色滤波阵列对颜色信号的敏感度和恢复效果都较好, 因此常用的CFA模型是Bayer型[11]。其中Bayer型CFA的颜色滤波阵列如图 1所示。
当采集到的图像通过CFA模型滤波后在传感器上感光, 得到的数据每个像素点表示RGB中的一种颜色, 然后对数据进行颜色插值可获得待采集的彩色图像。
在整个图像阵列中, 每个像素只有一个颜色的色调值, 另外两个颜色的色调必须利用相邻像素之间的相关性通过计算获得, 这些方法通常被称为色彩插值。现以Bayer阵列为基础, 首先利用双线性插值算法[11]来实现对绿色分量的插值。因为绿色分量占有最多, 采样率高于其他分量, 因此保存的信息也比其他两种分量多。该算法利用相邻像素域中同色分量的平均值作为当前像素的待求颜色分量, 如图 1中R/B像素点处, B22、R33处的绿色分量分别为:
$ {G_{22}} = {G_{21}} + {G_{12}} + {G_{23}} + {G_{32}}/4 $ | (1) |
$ {G_{33}} = {G_{32}} + {G_{23}} + {G_{34}} + {G_{43}}/4 $ | (2) |
对于红色和蓝色分量的插值是基于色差原理和颜色的相关性原理进行的。因为R-G、B-G色差在插值过程中图像的颜色不会出现跳跃和突变, 使得颜色亮度能够平滑自然过渡。色差原理表示如下:
$ {R_{ij}} - {G_{ij}} = {R_{mn}} - {G_{mn}} $ | (3) |
$ {B_{ij}} - {G_{ij}} = {B_{mn}} - {G_{mn}} $ | (4) |
其中:(i, j)和(m, n)都为滤波阵列中像素点坐标。Rij和Gmn是已知值, Gij是对G分量进行双线性插值后计算的值, 则在(m, n)位置上的Rmn可以通过式(5) 得到, 即
$ {R_{mn}} = {G_{mn}} - {G_{ij}} + {R_{ij}} $ | (5) |
根据色差原理以及三个颜色通道的相关性, 对绿色像素点上的红色分量进行插值, 由于绿色像素点所处的位置, 分为以下两种情况:
1) 当该绿色像素在奇行偶列时:
$ {R_{ij}} = {G_{ij}} + \frac{{{R_{i, j - 1}} - {G_{i, j - 1}} + {R_{i, j + 1}} - {G_{i, j + 1}}}}{2} $ | (6) |
2) 当该绿色像素在偶行奇列时:
$ {R_{ij}} = {G_{ij}} + \frac{{{R_{i{\rm{ - }}1, j}} - {G_{i{\rm{ - }}1, j}} + {R_{i + 1, j}} - {G_{i + 1, j}}}}{2} $ | (7) |
如上所述, 对绿色分量上的蓝色分量进行插值类似。通过上述图像CFA插值算法即可恢复出图像所缺失的所有颜色分量, 并将颜色分量叠加起来, 即可得到完整的图像。
1.2 CFA插值特性在检测待测图像的CFA信息的一致性时, 需要先计算图像本身的CFA特征。假设数字图像的原始色彩滤波阵列为Bayer CFA, 然后分别利用不同类型的CFA插值, 计算插值图像与原图之间的均方误差, 则CFA插值模型一定比其他的模型有最小均方误差(Mean Square Error, MSE)[12]。
将图像分成大小相同的子块, 记为Bi(i=1, 2, …, N;N为给定图像的分块的数量)。相应地,使用滤波器k的再插值块为Bi, k, 则Bi, k可以看成为CFA模型与图像子块进行卷积得到的。第k个CFA模型的第i个子块的再次插值误差定义为:
$ {B_{i, k}} = f({B_i}, {M_k});k = 1, 2, 3, 4 $ | (8) |
则整幅图像在非平滑区域的块Bi和Bi, k的MSE计算如式(9) 所示:
$ {\mathit{\boldsymbol{E}}_i}(k, c) = \sum\limits_{x = 1}^D {\sum\limits_{y = 1}^D {{{({B_i}(x, y, c) - {B_{i, k}}(x, y, c))}^2}} } $ | (9) |
其中:c为某一颜色分量;D为图像块的大小。
为了检测通道间的相对误差距离, 通过标准化所有Ei的行引入一个新的误差矩阵Eii如下:
$ {\mathit{\boldsymbol{E}}_{ii}}(k, c) = \frac{{{\mathit{\boldsymbol{E}}_i}(k, c)}}{{\sum\limits_{c = 1}^3 {{\mathit{\boldsymbol{E}}_i}(k, c)} }} \times 100;c = 1, 2, 3 $ | (10) |
通过图CFA模型可以看出, 图像中绿色像素的插值数量少于红色和蓝色像素的插值数量, 因此绿色像素插值的均方误差最小。通过计算标准化误差Eii的绿色分量记为Vi(k)来提取CFA特征, 如式(11):
$ {\mathit{\boldsymbol{V}}_i}(k) = \frac{{{\mathit{\boldsymbol{E}}_{ii}}(k, c)}}{{\sum\limits_{c = 1}^3 {{\mathit{\boldsymbol{E}}_{ii}}(k, c)} }} \times 10 $ | (11) |
其中c=2。利用特征向量Vi(k)来表示最小MSE的CFA模式数, 即p1(i)=arg min Vi(k)。在误差矩阵Eii中取得次小的MSE的模式数用向量p2表示,同时向量Vi(k)的一致性[10]为:
$ {\mathit{\boldsymbol{p}}_3}(i) = \sum\limits_{k = 1}^4 {\left| {{\mathit{\boldsymbol{V}}_i}(k) - 25} \right|} $ | (12) |
如果给定一幅待测图像, 并且用CFA插值, 那么得到的p1(i)、p2(i)、p3(i)的直方图应该会集中到一个特定的值, 这个值就可以被用来检测CFA插值操作。p1和p2的直方图向量分别为H1和H2, 计算公式如下:
$ {H_i}(k) = \frac{{100}}{N}\sum\limits_{l = 1}^N {\delta ({\mathit{\boldsymbol{p}}_i}(l) - k)} ;i = 1, 2 $ | (13) |
由此可得Baye CFA插值检测的4个特征被定义如下:
$ {F_i} = \frac{1}{{10}}\sum\limits_{k = 1}^4 {\left| {{H_i}(k) - 25} \right|} ;i = 1, 2 $ | (14) |
$ {F_3} = {\rm{median}}({\mathit{\boldsymbol{p}}_3}) $ | (15) |
通过CFA插值所产生的特征能够判断待测图像是否具有一致性, 即图像内容来源是否一致。
2 拼接篡改检测算法图像拼接篡改是将原始图像中某一部分或是某几部分区域复制粘贴到目标图像形成新图像, 达到某种目的。其中目标图像可以是原图像, 也可以是异于原图像的其他图像。插值过程在图像像素点间引入了特殊的相关性, 拼接篡改操作破坏了图像中整体或部分彩色滤波阵列信息, 降低了颜色分量之间存在的强相关性和一致性。为了解决拼接篡改的检测定位问题, 本文提出基于CFA的图像颜色分量间相关性的分析模型, 通过提取颜色分量间相关性的特征进而判断图像真伪以及定位图像篡改区域。
2.1 提取特征如图 2为在高斯滤波后得到的图像, 其中方格A和方格I分别表示获得样本的像素和插值样本的像素。如果图像应用CFA插值, 则方格A的预测误差的方差高于方格I的预测误差的方差; 否则两种方格的预测误差的方差近似相等。
假设待测图像为I(x, y), 那么有预测误差为:
$ e(x, y) = I(x, y){\rm{ - }}\sum\limits_{u, v \ne 0} {{h_{u, v}}I(x + u, y + v)} $ | (16) |
其中:u、v分别为像素I(x, y)周围像素的横纵坐标;hu, v为加权系数。假设预测误差具有局部平稳性, 则预测误差的局部加权方差计算公式[13]如下:
$ {\sigma ^2}(x, y) = \frac{1}{q}\left[{(\sum\limits_{i, j =-k}^k {{a_{i, j}}{e^2}(x + i, y + j)} )-{u^2}} \right] $ | (17) |
其中:ai, j为合适的权重;u为预测误差的局域加权均值;q为使估计无偏的比例因子, k为窗口大小, 设置为7。
记JA(k, l)和JI(k, l)分别为获得像素A和插值像素I的预测误差局部方差的几何均值, 而且每个分块由获得像素和插值像素的不相交集组成, 那么提取的预测误差的局部方差相关特征L(k, l)如下:
$ \mathit{\boldsymbol{L}}(k, l) = \log \left[{\frac{{{\mathit{\boldsymbol{J}}_A}(k, l)}}{{{\mathit{\boldsymbol{J}}_I}(k, l)}}} \right] $ | (18) |
由于获得像素的预测误差的局部方差高于插值像素, 因此特征L(k, l)能够评估一幅图像在进行CFA插值时图像预测误差的局部方差的不平衡性, 而且L(k, l)的期望值是一个正值。如果待测图像没有进行CFA插值, 那么预测误差的局部方差没有区别, 其期望值等于0。因此可以通过特征L(k, l)在篡改图像上值的不一致来定位篡改区域。在非篡改区域, 特征值将远远大于0, 而在篡改区域特征值将接近于0。图 3为原始图像和拼接篡改图像的特征值以及对应的特征数量, 用
高斯混合模型[14]是一种有限混合模型, 采用有限个特定概率分布密度函数的加权组合来拟合复杂的概率分布, 通过选择混合分量的类型和个数, 可逼近任何连续的概率分布密度函数。有限混合模型既具有非参数化方法的灵活性, 同时又保持了参数化方法的准确性。本文中的高斯混合模型(Gaussian Mixture Model, GMM)就是指对样本的概率密度分布进行估计, 而估计采用的模型是两个高斯模型的加权和。每个高斯模型就代表一个类, 对样本中的数据分别在几个高斯模型上投影, 就会分别得到各个类上的概率, 然后选取概率最大的类作为判决结果。高斯混合模型的定义为:
$ p(x) = \sum\limits_{k = 1}^K {{w_k}p(x|k)} $ | (19) |
其中:K为模型的个数;wk为第k个高斯模型的权重; p(x|k)为第k个高斯模型概率密度。在作参数估计时, 常采用的是最大似然方法。最大似然法就是使样本点在估计的概率密度函数上的概率值最大。
对于每个块B, 通过以L(k, l)的值为条件, 得到CFA插值特征出现或者不出现的概率, 即存在以下两种情况:
M1类:表示图像块B出现CFA插值特征;
M2类:表示图像块B不出现CFA插值特征。
那么用条件概率密度函数描述特征, 即为
$ p\left\{ {\mathit{\boldsymbol{L}}(k, l)|{M_1}} \right\} = N({\mu _1}, \sigma _1^2);{\mu _1} > 0 $ | (20) |
$ p\{ \mathit{\boldsymbol{L}}(k, l)|{M_2}\} = N({\mu _2}, \sigma _2^2);{\mu _2} = 0 $ | (21) |
其中:先验概率为p(M1)= p(M2)=0.5。
假设条件概率密度函数在整幅待测图像中不变, 可以被整体估计, 如果待测图像中包含篡改区域, 那么篡改区域内的CFA特征发生变化。为了检测图像是否经过篡改, 先建立混合高斯模型, 然后通过期望最大化的方法估计高斯混合模型的参数[14], 即通过最大化关于分布参数的完整对数似然函数来估计组成混合高斯分布的均值μ1和μ2以及方差σ12、σ22。最后得到变换后的特征矩阵T的公式如下:
$ \mathit{\boldsymbol{T}} = \frac{{{{(\mathit{\boldsymbol{L}} - {\mu _1})}^2}}}{{2\sigma _1^2}} - \frac{{{{(\mathit{\boldsymbol{L}} - {\mu _2})}^2}}}{{2\sigma _2^2}} $ | (22) |
由于中值滤波是一种非线性滤波技术, 它能够克服线性滤波器如最小均方滤波、均值滤波等带来的图像细节模糊, 而且能够在滤除图像中噪声的同时保护图像边缘信息。因此在得到图像之后进行中值滤波, 滤除插值中产生的噪声点, 能够得到更为精确的篡改区域。
整体拼接篡改图像的检测步骤如下:
1) 给定一幅待测图像, 并将图像分为8×8大小的子块;
2) 提取图像的颜色分量, 并对其进行预测, 计算预测误差;
3) 求取子块预测误差的局部加权方差, 并提取每个图像子块特征L(k, l);
4) 计GMM参数模型, 并生成Map图, 然后进行滤波去噪, 得到篡改区域。
3 实验与分析为了对所提算法的有效性进行测试和验证, 采用DVMM提供的公开拼接篡改图像库[15]进行实验。该图像库由183幅拼接图像和180幅原始图像组成。所有的原始图像由Canon G3, Nikon D70, Canon 350D和Kodak DCS330这四种相机拍摄, 分辨率从757×568到1 152×768不等。所有的原始图像和拼接图像均为无损TIFF格式, 并且实验环境为Windows 7、Matlab2013a。
本文算法在图像篡改库中进行实验。首先计算篡改图像的特征,接着通过高斯混合参数模型根据每个图像块被篡改的概率对提取特征进行分类,然后在对数似然图像中使用中值滤波器进行去噪,进而得到精确的篡改区域。为了验证方法的有效性,将本文方法与文献[9-10, 16]方法进行对比,实验结果如图 4所示。
从图 4(b)可看出,文献[16]方法的检测结果并不是很精确,并且存在很多误检的小区域,这是因为基于拼接区域和原始区域具有不同的噪声差异,如果两者之间的噪声接近,该方法将难以定位拼接区域,所以此时文献[16]方法不起作用。
从图 4(c)~(e)可看出:1) 当来自不同原始图像的背景和对象的原始压缩因子都相同的情况下,文献[9]方法的检测效果较差,这是由于文献[9]是通过图像DCT系数发生的变化进而检测出伪造图像的篡改区域。2) 文献[10]方法比文献[16]方法检测出的结果更为准确,误检区域也更少。3) 本文方法比文献[10-16]方法检测的结果更精确,显示篡改区域效果更直观。
现实中, 图像中篡改区域通常会经过各种几何变换(如缩放、旋转等)的处理。为了进一步验证本文方法的高效性以及鲁棒性, 本文对图 5(a)所示的篡改图像进行后处理, 包括篡改区域的缩小和对篡改区域的边缘进行平滑处理, 以便肉眼无法直观看出篡改区域的位置。针对经过后处理的图像进行检测, 检测结果如图 5(b)所示。从图 5可看出本文方法检测出的篡改区域具有较好的定位效果。
针对数字图像拼接篡改检测技术, 本文提出一种利用CFA插值引入颜色分量之间的相关性来检测和定位图像拼接篡改区域的方法。首先将待测图像划分成大小相同的子块, 对图像颜色分量进行CFA插值预测并计算插值特性; 然后将计算每个图像块的预测误差的局部加权方差作为特征; 接着通过高斯混合参数模型对特征进行分类, 最后得到图像篡改区域的位置。实验结果表明该方法对经过后处理的拼接篡改图像也有效。但方法对图像中较平滑的篡改区域检测时存在一定的误差, 未来将在这一方面继续开展研究。
[1] | HSU Y F, CHANG S F. Camera response functions for image forensics: an automatic algorithm for splicing detection[J]. IEEE Transactions on Information Forensics and Security, 2010, 5(4): 816-825. DOI:10.1109/TIFS.2010.2077628 |
[2] | 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. DOI:10.1109/TIFS.2007.916285 |
[3] | FARID H, KEE E, BRIEN J. Exposing photo manipulation with inconsistent shadows[J]. ACM Transactions on Graphics, 2013, 32(4): 1-12. |
[4] | LUO W, QU Z, HUANG J, et al. A novel method for detecting cropped and recompressed image block [C]//ICASSP 2007: Proceedings of the 2007 IEEE International Conference on Acoustics, Speech and Signal Processing. Piscataway, NJ: IEEE, 2007, 2: 217-220. |
[5] | SHI Y Q, CHEN C, CHEN W. A natural image model approach to splicing detection [C]//MM&Sec 2007: Proceedings of the 9th Workshop on Multimedia & Security. New York: ACM, 2007: 51-62. |
[6] | HE Z, SUN W, LU W. Digital image splicing detection based on approximate run length[J]. Pattern Recognition Letters, 2011, 32(12): 1591-1597. DOI:10.1016/j.patrec.2011.05.013 |
[7] | 王波, 孔维祥, 尤新刚. 利用颜色滤波矩阵估计原图的拼接定位盲取证[J]. 电子与信息学报, 2012, 34(1): 200-206. (WNAG B, KONG W X, YOU X G. A blind forensics method for image splicing based on original image estimation using color filter array interpolation[J]. Journal of Electronics & Information Technology, 2012, 34(1): 200-206.) |
[8] | LU L, RONGRONG N, YAO Z, et al. Improved SIFT-based copy-move detection using BFSN clustering and CFA features[C]//Proceedings of the 2014 Tenth International Conference on Intelligent Information Hiding and Multimedia Signal Processing. Piscataway, NJ: IEEE, 2014, 2: 626-629. |
[9] | 段新涛, 彭涛, 李飞飞, 等. 基于JPEG双量化效应的图像盲取证[J]. 计算机应用, 2015, 35(11): 3198-3202. (DUAN X T, PENG T, LI F F, et al. Blind image forensics based on JPEG double quantization effect[J]. Journal of Computer Applications, 2015, 35(11): 3198-3202. DOI:10.11772/j.issn.1001-9081.2015.11.3198) |
[10] | 高健, 李喜艳, 任孝锋. 基于CFA去马赛克的图像篡改检测技术研究[J]. 信息通信, 2015, 1(9): 1-3. (GAO J, LI X Y, REN X F. Research on image tamper detection technology based on CFA demosaicing[J]. Information & Communications, 2015, 1(9): 1-3.) |
[11] | ALIN C, POPESCU, HANY F. Exposing digital forgeries in color filter array interpolated images[J]. IEEE Transactions on Signal Processing, 2005, 53(10): 3948-3959. DOI:10.1109/TSP.2005.855406 |
[12] | 李贺新. 图像篡改检测算法研究[D]. 保定: 河北大学, 2014: 1-52. (LI H X. Research on image forgery detection algorithm[D]. Haoding: Hebei University, 2014: 1-52.) |
[13] | FERRARA P, BIANCHI T. Image forgery localization via fine-grained analysis of CFA artifacts[J]. IEEE Transactions on Information Forensics and Security, 2012, 7(5): 1566-1577. DOI:10.1109/TIFS.2012.2202227 |
[14] | TENGFEI L, WEILI J. Automatic line segment registration using Gaussian mixture model and expectation-maximization algorithm[J]. IEEE Journal of Selected Topics in Applied Earth Observations and Remote Sensing, 2014, 7(5): 1688-1699. DOI:10.1109/JSTARS.2013.2273871 |
[15] | DVMM laboratory of columbia university. Columbia uncompressed image splicing detection evaluation dataset[EB/OL]. [2017-01-10]. http://www.ee.columbia.edu/ln/dvmm/downloads/authsplcuncmp/. |
[16] | SIWEI L, XUNYU P, XING Z. Exposing region splicing forgeries with blind local noise estimation[J]. International Journal of Computer Vision, 2014, 110(2): 202-221. DOI:10.1007/s11263-013-0688-y |