基于冗余性的图像重采样检测

2014-07-25 04:28曹洪建倪蓉蓉
数据采集与处理 2014年1期
关键词:周期性插值峰值

曹洪建 赵 耀 倪蓉蓉

(北京交通大学信息科学研究所,北京,100044)

引 言

伪造图像已经越来越威胁到社会的信任体系。为了加强信息安全,数字图像取证技术应运而生。数字图像取证可以分为主动取证和被动取证。被动盲取证不需要往图像中预先置入信息,更具实用性,所以逐渐成为了研究热点。其中重采样检测是一个非常重要的工具。伪造图像时为了掩盖篡改痕迹,不引起人们视觉上的怀疑,经常需要对图像进行旋转、缩放等操作,对这些重采样操作进行检测可以给最终判定图像是否经过篡改提供重要信息。重采样包括一个插值步骤。插值就是用已有的像素,通过某种算法产生新的像素的过程。这个过程不可避免地在重采样后的图像中引入某种周期性,而这种周期性在未经过重采样操作的图像中一般是不存在的。所以这种周期性就可以作为一种鉴别特征,用来对重采样进行取证。

现有的重采样取证算法都是通过在图像中挖掘这种周期性来判定的。文献[1]中,Popescu和Farid使用 EM(Expectation/Maximization)迭代算法估计出线性模型的系数,然后计算出预测误差来检测周期性。文献[2]中,Kirchner深入分析了Popescu的算法的周期性,用固定的线性系数代替了计算复杂的EM迭代算法,大大提高了运算速度,并且提供了相似的实验结果。在文献[3]中,Gallagher发现重采样图像的二阶导数的方差信号存在周期性,并且周期等于采样率,以此来判定图像是否经过插值,并且可以计算出重采样因子,但是算法不能检测旋转。在文献[4,5]中,Mahdian和Saic扩展了文献[3]中的理论,提出高阶导数的协方差信号中都存在周期性,并且引入了radon变换实现了对旋转操作的检测。在文献[6]中,Prasad和Ramakrishnan同样利用二阶导数的方差信号的周期性,以此建立一个二值序列来判定周期性。在文献[7]中,针对重采样图像中的相关关系的多样性,Kirchner提出了多预测器的算法实现了更精准的预测,得到了更好的实验效果。在文献[8]中,WEI Weimin, WANG Shuozhong 和TANG Zhenjun使用Gallagher的算法并将其稍作改进,对重采样因子进行了确定并将其应用到图像拼接的检测。

现有的重采样取证算法在确定重采样因子时,都使用频域的幅度谱中峰值的位置来计算。峰值的位置对应着频率和周期,而由周期即可以计算重采样因子的大小。但是在重采样过程中,重采样因子大于等于2.0时满足奈奎斯特原理,小于2.0时不满足。不满足时就会出现频率混叠的问题,这会导致重采样因子的不确定性。实际上峰值的位置和重采样因子不是一对一的关系,而是一对多的关系。比如重采样率为1.5和3.0时的峰值位置是一样的,算法对此不能做出区分。很多对图像的盲检测都是在频域进行的,包括隐写检测[9]。本文尝试从时域中对重采样因子进行确定。本文的算法是基于像素行(也可以是列,本文使用像素行进行讨论)的冗余性的。实验显示,算法在未压缩的图像中可以检测出全部的重采样因子。

1 基于冗余的检测算法

1.1 冗余量的定义

先从未压缩的采样图像开始分析,后面会扩展到其他情况。图像经过放大后,像素个数增多。但是放大后的图像像素都是由源图像的像素经过某种插值算法计算而来,并没有增加图像的原始内容,图像的“信息量”并没有增加。这里的“信息量”的衡量可以通过把二维图像像素值看作二维矩阵,计算矩阵的秩来获得。比如512*512的图像,假设图像的矩阵秩为500。图像缩放2.0倍后,图像大小变为1024*1024,但是矩阵秩还是500。重采样后的图像中某些像素没有为图像增加新的“信息量”,它们显得比较“冗余”。

本文不考虑单个像素,而是把整行像素看作向量。如果像素行rc是冗余的,那么rc可以被其他像素行线性表示,也就是说rc提供的“信息量”能被其它像素行用线性加权和的形式表示出来。但是一般情况下,重采样后的图像中几乎所有行都可以被相邻行线性表示,必须再加入一个限制条件,如果rc可以被上面的像素行线性表示,rc即为冗余行。这等价从上到下依次扫描待检图像的像素行,假设扫描的当前行为rc,已经扫描过的像素行为(r1,r2,...,rc-1) 。如果 扫 描 行rc能 为 扫 描 过 的像素行 (r1,r2,...,rc-1) 带来新的“信息量”,扫描行就不是冗余行;否则,扫描行就定义为冗余行。

关于如何判断rc是否 为 (r1,r2,...,rc-1) 带来新的“信息量”,简单的方法就是计算rc的加入是否带来向量组 (r1,r2,…,rc-1) 秩的变化。但是这种计算方法只针对未压缩的图像有效,图像经过JPEG压缩后数据产生扰动,再使用矩阵秩计算就失效了。还有一个与向量组的秩等价的概念就是向量组正交化后的维数。将向量组(r1,r2,...,rc-1) 正交化 后 得 到一 个 两 两 垂 直 的坐标系 (r1′,r2′,...rn′) 。然后 向 量rc减 去在 每 个坐标轴ri′上的投影,如果最后剩余的分量为零,也就是说向量rc不能为直角坐标系添加新的维数,那么rc就是冗余行;否则就是非冗余行。在JPEG压缩图像中,考虑到JPEG压缩过程引入的噪声导致了数据的扰动,原本是冗余行的剩余分量一般也不会为零。但是剩余分量和原向量rc的模的比值可以反映出rc相对于 (r1,r2,…,rc-1) 的冗余程度。用这个比值作为像素行rc的冗余量。

1.2 检测算法

(1)首先计算出图像每一行的冗余量。

未压缩图像中可以使用向量组的秩来判断像素行是否为冗余行,冗余行的冗余量标记为0,非冗余行的标记为为1。JPEG压缩图像中冗余量的计算用正交化过程,但是 (r1,r2,...,rc-1) 没有必要计算所有向量。因为rc很可能和相距比较远的像素行比如r1没有相关关系了,也就是说rc和r1的夹角接近于90°。那即使r1参与到运算中来,rc的剩余分量也不会产生大的变化。假设当前行为rc,可以从它的上一行rc-1开始往上依次正交化,每正交化一个向量ri,如果得到新的坐标维ri′,就用向量rc减去和ri′平行的分量。然后判断剩余分量的模是否连续两次的变化幅度小于1.01倍,如果是就可以停止运算,因为此时剩余分量和原向量rc的模的比值也趋于稳定。

(2)对上一步得到的冗余量的序列做DFT变换。查看幅度谱中是否存在峰值。

在幅度谱中寻找峰值时,假设频率范围为[0,L]。因为幅度谱是对称的,故不在整个频率范围内寻找,只需在一半的频率中寻找即可;另外低频处图像内容的干扰较多,必须排除掉。所以将频率搜索范围设定在[L/9,L/2]。搜寻过程首先计算选定范围内的频率幅值的均值fm,然后在选定范围内的频率中逐个比较,如果频率i的幅值f(i)大于T倍的均值fm,就判定频率i处存在峰值。整个频率范围搜寻结束后,如果找到了峰值,就判定图像经过插值操作;否则没有。T一般取5.5。

(3)计算缩放因子。

对未压缩的图像,因为可以完全确定像素行是否为冗余行,缩放因子等于图像行数除以非冗余行数,也就是图像的行数除以冗余量序列中1的个数。因为这种缩放因子计算方法不存在频率混叠问题,所以可以完全确定所有缩放因子。

对JPEG压缩图像,综合考虑不同的插值方法和不同的JPEG压缩因子,已经很难从冗余量的大小上判定压缩前的图像存在多少冗余行和非冗余行,而缩放因子的计算需要知道非冗余行的数量。所以JPEG压缩图像中缩放因子的确定还需要从幅度谱中峰值的位置来计算。将冗余量转换到频域后,幅度谱中峰值的位置对应着冗余量序列的周期。而冗余量的周期和图像的缩放因子是有关系的,这样就可以进一步计算出缩放因子。但是由于存在频率混叠问题,导致冗余量的周期和缩放因子不是一对一的关系,而是一对多的关系。也就是说一般情况下由同一个峰值位置可以计算出两个缩放因子。

缩放因子的计算过程如下。首先选择峰值位置。因为最后找到的峰值可能不止一个,一般选取幅值最大的峰值来计算缩放因子。但是这里有一个例外情况需要处理。某些缩放因子在对应的频率i处产生峰值,但是由于图像内容的干扰和插值算法的影响,会同时在2*i,甚至3*i处产生峰值,并且2*i或3*i处的峰值要大于i处的峰值。这时再选取最大峰值来计算缩放因子就会出现错误。采用如下方式解决:如果i/L>T2,并且幅值f(i/2)或f(i/3)是f(i)的T3倍,就使用i/2或i/3来计算缩放因子,而不是i,并且i/3优先于i/2。实验中设定T2=0.3,T3=0.8。

假设i为最终选取的峰值的频率。由于频率混叠的问题,一般会产生两个缩放因子,一个大于2.0,一个小于2.0,两个缩放因子的计算公式分别为L/i和L/(L-i)。

2 实验结果

实验在Matlab环境中进行。从5000幅bmp格式的灰度图中随机的选取100幅,其中每幅图像都是512×512大小。每张图都用“最近邻法”,“双线性插值”,“双立方插值”进行缩放,缩放因子从1.1开始,按0.1递增,直到7,总共是60个缩放因子。为了便于程序判定,假定每张图的原图,也就是没有经过缩放的图的缩放因子为1.0。

首先看看未压缩图像的检测结果。如果程序检测到的缩放因子和真实的缩放因子误差在0.05以内,就认为检测正确;否则,就是错检。

从表1可以看出,100幅所选图像的所有缩放因子都可以正确地检出,并且不存在不确定性问题。算法分析中的特殊情况,也就是图像重复内容也没有出现,说明其发生的概率确实很小。

表1 不同插值方法的检测结果Table 1 Detection results using different interpolation

本文的算法和Gallagher的算法做了以下对比。所有图像缩放后,再进行JPEG压缩,压缩因子为95。算法由于频率混叠的问题,会估算出两个缩放因子。假定如果有一个缩放因子和真实的缩放因子的误差在0.05以内,就认为本次检测正确;否则是错检。

由图1~3可以看出,缩放因子1.1处检测为0,这是因为排除了低于L/9的频率,也就是采样率低于1.125的缩放因子。另外在频率1.6,2,4处检测也为0,这是因为这些频率的周期性和JPEG压缩过程引入的周期性类似,必须被排除掉。除此之外,其他的重采样因子大部分可以检测正确。并且检测结果较之前的算法更具鲁棒性。

图1 对最近邻插值的检测结果Fig.1 Comparison of two algorithms using nearest neighbor interpolation

图2 对双线性插值的检测结果Fig.2 Comparison of two algorithms using bilinear interpolation

图3 对双立方插值的检测结果Fig.3 Comparison of two algorithms using bicubic inter polation

3 结束语

本文提出了一种基于冗余性的重采样检测算法,可以对重采样操作进行取证,并解决了未压缩图像中的重采样因子的不确定性问题。算法在空域中对重采样因子进行确定,由于JPEG压缩过程在图像中加入了噪声,导致鉴别特征不是很稳定,所以在压缩图片中重采样因子的确定还要依赖于频域。通过实验可以看出,在未压缩的图像中所有的缩放因子可以完美地检测正确。在压缩的图像中如果不考虑不确定性问题,检测效果较之前的算法也有很明显的优势。其原因在于本算法更深地挖掘了相邻像素的相关性,所以更具鲁棒性和稳定性。

在加入某些限制条件下,比如特定的插值算法和JPEG压缩率,目前本文的算法也可以在空域中正确检测压缩图像中的缩放因子。但是要彻底地解决压缩图像中的不确定性问题还需要寻找对各种插值算法,各种JPEG压缩率稳定的并独立于图像内容的鉴别特征,以后的工作中会着力研究。

[1]Popescu A C,Farid H.Exposing digital forgeries by detecting traces of resampling[J].Signal Processing,IEEE Transactions on,2005,53(2):758-767.

[2]Kirchner M.Fast and reliable resampling detection by spectral analysis of fixed linear predictor residue[C]∥ Proceedings of the 10th ACM Workshop on Multimedia and Security.New York:ACM,2008:11-20.

[3]Gallagher A C.Detection of linear and cubic interpolation in JPEG compressed images[C]∥The 2nd Canadian Conference on Computer and Robot Vision.Victoria,BC:IEEE,2005:65-72.

[4]Mahdian B,Saic S.On periodic properties of interpolation and their application to image authentication[C]∥ Third International Symposium on Information Assurance and Security.Machester:IEEE,2007:439-446.

[5]Mahdian B,Saic S.Blind authentication using periodic properties of interpolation[J].Information Forensics and Security,IEEE Transactions on,2008,3(3):529-538.

[6]Prasad S,Ramakrishnan K.On resampling detection and its application to detect image tampering[C]∥IEEE International Conference on Multimedia and Expo.Toronto:IEEE,2006:1325-1328.

[7]Kirchner M.Linear row and column predictors for the analysis of resized images[C]∥ Proceedings of the 12th ACM workshop on Multimedia and security.Rome:ACM,2010:13-18.

[8]Wei Weimin,Wang Shuozhong,Tang Zhenjun.Estimation of rescaling factor and detection of image splicing[C]∥ 11th IEEE International Conference on Communication Technology.Beijing:IEEE,2008:676-679.

[9]陶然.应用五株采样提升算法的抗盲检测图像隐写算法[J].数据采集与处理,2012,27(2):49-58.

Tao Ran.A blind detection resistant steganographic algorithm for images based on quincunx sampling lifting scheme[J].Journal of Data Acquisition and Processing,2012,27(2):49-58.

猜你喜欢
周期性插值峰值
“四单”联动打造适龄儿童队前教育峰值体验
慢速抗阻训练:周期性增肌的新刺激模式
数列中的周期性和模周期性
基于Sinc插值与相关谱的纵横波速度比扫描方法
一类整数递推数列的周期性
宽占空比峰值电流型准PWM/PFM混合控制
基于扩频码周期性的单通道直扩通信半盲分离抗干扰算法
一种改进FFT多谱线插值谐波分析方法
基于四项最低旁瓣Nuttall窗的插值FFT谐波分析
基于峰值反馈的电流型PFM控制方法