基于Contourlet变换的彩色图像双水印算法
2018-12-26苗鑫梅朱婷鸽刘卫华
苗鑫梅,朱婷鸽,2,3,4,刘 颖,2,3,4,来 毅,2,3,4,刘卫华,2,3,4
(1.西安邮电大学 通信与信息工程学院, 陕西 西安 710121;2. 西安邮电大学 电子信息现场勘验应用技术公安部重点实验室, 陕西 西安 710121; 3.西安邮电大学 陕西省无线通信与信息处理技术国际合作研究中心, 陕西 西安 710121; 4.西安邮电大学 图像与信息处理研究所, 陕西 西安 710121)
数字水印技术越来越多地被用在版权保护、完整性认证、防止非法复制、篡改定位和恢复等方面。数字图像水印最初很多是基于空域的[1],有最低有效位(least significant bit, LSB)水印算法[2],基于量化索引调制的数字图像水印算法[3],这些算法的复杂度低、容易实现,但鲁棒性差。随后人们将注意力集中到基于频域的数字图像水印算法研究,如基于离散傅里叶变换(discrete Fourier transform, DFT)[4]和基于离散余弦变换(discrete cosine transform, DCT)的数字图像水印算法[5];由于小波变换能够弥补DFT和DCT变换不具有多分辨率分析特性的短板,由此开拓了基于离散小波域变换(discrete wavelet transformation, DWT)水印算法研究领域[6-8]。Contourlet变换的提出,推动了数字水印技术的发展,Contourlet变换克服了上述变换不具有多方向性和各向异性的缺点,由此提出了基于Contourlet变换的图像水印算法[9-12]。为了进一步提高水印的性能,还可以将几种变换方式结合[13-15]。
随着数字水印技术的发展,除了水印性能的提高,水印容量也得到大幅提高。这些主要体现在一些数字图像双水印算法[16-18]上。一个脆弱水印和一个鲁棒水印[19]构成的双水印可以进行版权保护和作者信息认证等,脆弱水印可以进行载体图像内容完整性认证,鲁棒水印可以抵抗攻击。随着双水印功能的多样化、嵌入容量的提高,一些双水印的抗攻击性能,尤其是抗几何攻击的性能表现不好[19]。
为了提高水印抗几何攻击的鲁棒性,本文拟提出一种基于Contourlet变换的彩色图像双水印算法,该算法主要红绿蓝(red green blue, RGB)颜色空间上利用Contourlet变换和QR分解嵌入鲁棒水印,在B分量上嵌入脆弱水印,得到含双水印的彩色图像,采用盲提取水印算法提取脆弱水印和鲁棒水印。最后选取不同刑侦图像进行实验,验证所提算法的不可见性、篡改定位和抵抗攻击的鲁棒性。
1 基于Contourlet变换的双水印算法设计
基于Contourlet变换的彩色图像双水印算法的基本原理是在RGB颜色空间的基础上,选取其中的分量G来嵌入鲁棒水印,选择分量B来嵌入脆弱水印,2个水印依次嵌入。
1.1 水印预处理
设大小为m×n的二值图像W1作为鲁棒水印图像。预处理步骤如下。
步骤1将二值图像W1变换成4列、(m×n)/4行(不足补0)的矩阵A。
1.2 嵌入鲁棒水印
设大小为M×N的彩色图像I作为载体图像,嵌入鲁棒水印的原理,如图1所示。
图1 嵌入鲁棒水印的原理
嵌入鲁棒水印的步骤如下。
步骤1将彩色载体图像I的RGB颜色空间模型中的分量R、G、B进行分离,并对分量G进行2级 Contourlet变换,提取其低频子带。
步骤2将低频子带进行4×4分块,并对每个小块QR分解,得到(M×N)/256个Q矩阵和(M×N)/256个R矩阵。
步骤34×4小块的R矩阵中第一行集中了大部分能量。经实验验证,可选第1行第2列的元素(C12)作为嵌入位置的系数值,在该处嵌入水印。
如果w=0,则R矩阵中第1行第2列的元素(C12)嵌入水印后的系数值
步骤6将嵌入鲁棒水印后的矩阵R′进行QR逆分解,再进行Contourlet逆变换,得到含鲁棒水印的分量G,记为G*。
1.3 嵌入脆弱水印
将1.2部分分离的分量R和分量B,以及含鲁棒水印的分量G,均用于脆弱水印的形成和嵌入。嵌入脆弱水印的原理,如图2所示。
图2 嵌入脆弱水印的原理
嵌入脆弱水印的过程如下。
步骤1先将分量B的灰度值最低位置设为0,记为B′。
步骤2将分量R、G*、B′分成2×2小块并计算3个分量的均值。将均值变成8位二进制数,提取其最高4位并组成2×2的小矩阵,以此类推,形成脆弱水印W2。
步骤5将分量R、含鲁棒水印的G*和含脆弱水印的B*进行组合,最终形成了含双水印的彩色图像I*。
1.4 提取脆弱水印与鲁棒水印
采用盲提取水印算法提取脆弱水印和鲁棒水印。提取脆弱水印和鲁棒水印的原理,如图3所示。
图3 提取脆弱水印和鲁棒水印的原理
提取脆弱水印和鲁棒水印的过程,如下所示。
步骤1将M×N的含双水印彩色图像的三个颜色通道R、G、B相互分离。
步骤2分量B提取脆弱水印并篡改检测定位。
(3) 将三个分量R、G、B均进行2×2分块并计算均值,提取均值最高4 bit并组成2×2的小矩阵,记为Tk(k=1,2,…,M×N/4)。
步骤3分量G提取鲁棒水印
(1) 将M×N的G分量进行2级Contourlet变换,提取其低频子带。
(2) 将低频子带进行4×4分块并进行QR分解,得到(M×N)/256个Q′矩阵和(M×N)/256个R′矩阵。
2 实验结果及分析
算法采用512×512的三幅彩色载体图像,分别为Lena、Baboon和Motocycle,如图4所示。采用24×24的二值图像作为鲁棒水印,如图5所示。
图4 载体图像
图5 鲁棒水印图像
嵌入与提取过程中所用的量化步长L设为50。量化步长L之所以选择50,是因为根据实验,若L选择20、30、40等小于50的值,则会使鲁棒水印的鲁棒性降低;若L选择60、70等大于50的值又会使含水印图像的失真严重。由实验的数据得出,L=50的情况下,本文所提算法的特性表现较好。
2.1 不可见性测试
用峰值信噪比(peak signal-to-noise ratio,PSNR)作为衡量图像水印算法不可见性的评价指标,峰值信噪比[1]
其中,MR、MG、MB分别表示R、G、B各分量相应元素的均方误差值。
量化步长L=50时的彩色载体图像、含双水印图像及其PSNR值,如表1所示。
表1 量化步长 的情况下图像及其PSNR值
2.2 脆弱水印的篡改定位检测
算法提取的第一个水印是脆弱水印,用于检测图像是否被篡改。对含水印图像的不同位置进行篡改并检测,如图6所示。
图6的定位图像中黑色部分表示未篡改的地方,白色部分表示被篡改的地方。由图6可知,本文算法可以定位被篡改的位置。
2.3 鲁棒水印的鲁棒性测试
算法中提取的第二个水印是鲁棒水印,用于证实图像版权。以Lena图像为例,分别对Lena图像采用剪切攻击、旋转攻击、随机打马赛克、噪声攻击和JEPG压缩攻击。用误比特率(bit error ratio, BER)及归一化相关系数(normalized cross-correlation, NC)作为的提取水印与原始水印之间的评价指标。
(1)剪切攻击。不同方式剪切攻击下的Lena图及提取的鲁棒水印,如图7所示。
(2)旋转攻击。不同方式旋转攻击下的Lena图及提取的鲁棒水印,如图8所示。
(3)随机打马赛克。不同部位马赛克攻击下的Lena图及提取的鲁棒水印,如图9所示。
(4)噪声攻击。不同噪声攻击下的Lena图及提取的鲁棒水印,如图10所示。
(5)JEPG压缩攻击。JEPG压缩攻击下的Lena图及提取的鲁棒水印,如图11所示。
图6 含双水印图像及篡改定位图
图7 剪切攻击下的Lena图及提取的鲁棒水印
图8 旋转攻击下的Lena图及提取的鲁棒水印
图9 马赛克攻击下的Lena图及提取的鲁棒水印
图10 噪声攻击下的Lena图及提取的鲁棒水印
图11 JEPG压缩攻击下的Lena图及提取的鲁棒水印
含水印的Lena图像被攻击后的NC值与BER值,如表2所示。
表2 含水印Lena图攻击后NC值与BER值
从图7—图11可以看出,经过攻击后提取的鲁棒水印,视觉上表现良好。从表2可以看出,与文[19]中算法相比,经不同程度的剪切攻击和旋转攻击后,本文算法提取鲁棒水印的NC值相对较高且误码率BER相对较低。在缩放攻击、马赛克攻击和斑点噪声攻击下,本文算法提取水印的NC值较高,BER较低。由于该算法利用了Contourlet变换的低频信息集中了图像的大部分能量的特性,且结合QR分解进一步集中了图像的能量信息,所以使鲁棒水印隐藏性好,视觉不可见性和抵抗几何攻击的鲁棒性表现良好。在椒盐噪声和JEPG压缩攻击下,本文算法的性能不及文[19]的算法,这可能是由于该算法在嵌入部分未能使水印嵌入到图像能量最大的系数值中,致使抗椒盐噪声和JEPG压缩表现不佳。多数情况下,本文所提算法在抗几何攻击方面,鲁棒性较强,算法性能良好。
3 结语
提出了一种基于Contourlet变换的彩色图像双水印算法。该算法首先对G通道分量进行Contourlet变换,再对低频系数进行QR分解之后奇异值上嵌入鲁棒水印;然后在B分量直接嵌入脆弱水印,使得水印算法同时具有标识和检测篡改定位的功能。通过采用不同的图像进行实验,验证了本文算法中嵌入在载体图特征信息的脆弱水印对篡改具有较强的敏感性,能够准确检测到篡改位置;嵌入的鲁棒水印具有一定抵抗几何攻击的鲁棒性。