基于矩阵Schur分解的可变步长彩色图像盲水印方法
技术领域
本发明属于信息安全技术领域,涉及强鲁棒性、高安全性和大容量的彩色图像数字水印的版权保护。
背景技术
随着多媒体技术的高速发展,越来越多的彩色数字图像在网络上涌现、传播并成为现代信息的主要媒介之一,随之而来的盗版、侵权等非法行为屡见不鲜,彩色数字图像的版权保护问题也受到国内外学者的广泛关注。为此,一方面要求版权保护的标识趋向于美观实用、大容量的彩色图像数字水印,而不再局限于容量较小的伪随机序列、二值图像或灰度图像;另一方面,随着黑客对计算机技术的深入研究,其攻击算法的能力日益强大,而算法较小的密钥空间难以满足高安全性的应用需求,因此需要进一步提高算法的安全性。
彩色数字图像在网络上的广泛传输使其受攻击的可能性大大增加,而频域数字水印算法所具有的较强鲁棒性特点恰好能增强彩色数字图像抵抗攻击的能力。因此,如何充分利用频域数字水印算法的优点设计强鲁棒性、高安全性和大容量的彩色图像数字水印算法成为亟待解决的问题之一。
发明内容
本发明的目的是提供一种基于矩阵Schur分解的可变步长彩色图像盲水印方法,包含彩色图像数字水印的嵌入过程和提取过程,其水印嵌入的具体过程描述如下:
Step1:彩色宿主图像的预处理:将大小为M×M的24位彩色宿主图像H作降维处理,得到红、绿、蓝三层颜色通道H p ,并将各颜色通道中的像素划分为m×m的非重叠像素块,p=1,2,3,分别表示红、绿、蓝三层颜色通道;
Step2:彩色水印图像的预处理:对大小为N×N的24位彩色水印图像W作降维处理,得到红、绿、蓝三层颜色通道,随之将每层颜色通道进行基于私钥K p 的仿射变换得到置乱后的颜色通道W p ,p=1,2,3,分别表示红、绿、蓝三层颜色通道;然后,将各层颜色通道W p 中的每个十进制像素值转换为一个8位的二进制序列;
Step3:嵌入水印的形成:按照红、绿、蓝的先后层序且每层以先行后列的顺序,将每8位二进制序列的高两位拼接为字符串str,复制三倍并保存在水印字符串wbit 1中;按照红、绿、蓝的先后层序且每层以先行后列的顺序,将每8位二进制序列的中三位、低三位分别拼接为水印字符串wbit 2、wbit 3;
Step4:利用选块矩阵position从H p 中选择像素块schurblock,选块矩阵position由系统内置函数randperm伪随机生成,p=1,2,3,分别表示红、绿、蓝三层颜色通道;
Step5:根据公式(1),对像素块schurblock进行Schur分解,得到酉矩阵U和上三角矩阵V,上三角矩阵V的前r个主对角元素V(i,i)分别为像素块schurblock的第i个特征值,i=1,2,…,r,r表示像素块schurblock的秩;
(1)
Step6:按照先后顺序从水印字符串中选取水印位wt,利用公式(2)求得量化值add;
(2)
其中, 为像素块schurblock所有特征值的和,i=1,2,…,r,r表示像素块schurblock的秩,mod(.)为求余函数,T p 为量化步长,p=1,2,3,分别表示红、绿、蓝三层颜色通道;
Step7:利用公式(3)求得特征值,并用其替换原特征值,得到上三角矩阵V * ;
(3)
其中,权值,i=1,2,…,r,r表示像素块schurblock的秩;
Step8:利用公式(4)进行逆Schur分解,得到含水印像素块schurblock * ;
(4)
Step9:重复执行Step4-Step8,直到所有的水印位都被嵌入为止;最后重组三层含水印的颜色通道H p *得到含水印彩色宿主图像H *;
所述水印提取的具体过程描述如下:
Step1:彩色含水印宿主图像的预处理:将含水印彩色宿主图像H *作降维处理,得到红、绿、蓝三层含水印的颜色通道H p *,并将各颜色通道中的像素划分为m×m的非重叠像素块,p=1,2,3,分别表示红、绿、蓝三层颜色通道;
Step2:利用选块矩阵position从颜色通道H p *中选择含水印像素块schurblock * ,选块矩阵position由系统内置函数randperm伪随机生成,p=1,2,3,分别表示红、绿、蓝三层颜色通道;
Step3:根据公式(5),对含水印像素块schurblock * 进行Schur分解,得到酉矩阵U * 和上三角矩阵V * ,上三角矩阵V * 的前r个主对角元素V * (i,i)分别为含水印像素块schurblock * 的第i个特征值,i=1,2,…,r,r表示含水印像素块schurblock * 的秩;
(5)
Step4:利用公式(6)提取含水印像素块schurblock * 中含有的水印位wt * :
(6)
其中,mod(.)为求余函数,为含水印像素块schurblock * 所有特征值的和,T p 为量化步长,p=1,2,3,分别表示红、绿、蓝三层颜色通道;
Step5:重复执行Step2-Step4,直到提取所有的水印位,这样就得到了含水印字符串str *、wbit 2 *、wbit 3 *;
Step6:将str *均分为三个序列,并以大数原则依次计算对应位置的水印信息,得到含水印字符串wbit 1 *;
Step7:依次取wbit 1 *的两位、wbit 2 *及wbit 3 *的三位组成8位二进制序列并转换成十进制的像素值,重复以上操作,直到所有的序列都被转换为十进制,并依次将其拼成一个十进制数列,将该十进制数列均分为三段,分别重塑为N×N的红、绿、蓝三层颜色通道W p * ,p=1,2,3,分别表示红、绿、蓝三层颜色通道;
Step8:将每层颜色通道进行基于私钥K p 的逆仿射变换,并重组为最终提取的彩色水印图像W * 。
附图说明
图1(a)、图1(b)是两幅原始彩色宿主图像。
图2(a)、图2(b)是两幅原始彩色水印图像。
图3(a)、图3(b)是将图2(a)所示的水印依次嵌入到宿主图像图1(a)、图1(b)后所得到的含水印图像,其结构相似度SSIM值依次是0.9214、0.9263,其峰值信噪比PSNR值依次是36.1046dB、35.8287dB。
图4(a)、图4(b)是依次从图3(a)、图3(b)中提取的水印,其归一化互相关系数NC值分别是1.0000、1.0000。
图5(a)、图5(b)、图5(c)、图5(d)、图5(e)是将图3(a)所示的含水印图像依次进行JPEG2000压缩(7:1)、椒盐噪声(3%)、JPEG压缩(60)、剪切(12.5%)、缩放(75%)等攻击后所提取的水印,其归一化互相关系数NC值分别是0.9976、0.9920、0.9866、0.9583、0.9981。
图6(a)、图6(b)是将图2(b)所示的水印依次嵌入到宿主图像图1(a)、图1(b)后所得到的含水印图像,其结构相似度SSIM值依次是0.9294、0.9332,其峰值信噪比PSNR值依次是36.1681dB、35.8875dB。
图7(a)、图7(b)是依次从图6(a)、图6(b)中提取的水印,其归一化互相关系数NC值分别是1.0000、1.0000。
图8(a)、图8(b)、图8(c)、图8(d)、图8(e)是将图6(a)所示的含水印图像依次进行JPEG2000压缩(7:1)、椒盐噪声(3%)、JPEG压缩(60)、剪切(12.5%)、缩放(75%)等攻击后所提取的水印,其归一化互相关系数NC值分别是0.9976、0.9884、0.9831、0.9938、0.9965。
具体实施方式
本发明的目的是提供一种基于矩阵Schur分解的可变步长彩色图像盲水印方法,包含彩色图像数字水印的嵌入过程和提取过程,其水印嵌入的具体过程描述如下:
Step1:彩色宿主图像的预处理:将大小为512×512的24位彩色宿主图像H作降维处理,得到红、绿、蓝三层颜色通道H p ,并将各颜色通道中的像素划分为3×3的非重叠像素块,p=1,2,3,分别表示红、绿、蓝三层颜色通道;
Step2:彩色水印图像的预处理:对大小为32×32的24位彩色水印图像W作降维处理,得到红、绿、蓝三层颜色通道,随之将每层颜色通道进行基于私钥K p 的仿射变换得到置乱后的颜色通道W p ,p=1,2,3,分别表示红、绿、蓝三层颜色通道;然后,将各层颜色通道W p 中的每个十进制像素值转换为一个8位的二进制序列 (例如:十进制的像素值164转换为8位二进制序列为‘10100101’);
Step3:嵌入水印的形成:按照红、绿、蓝的先后层序且每层以先行后列的顺序,将每8位二进制序列的高两位 (例如:8位二进制序列为‘10100101’,高两位为:‘10’) 拼接为字符串str,复制三倍为‘101010’并保存在水印字符串wbit 1中;按照红、绿、蓝的先后层序且每层以先行后列的顺序,将每8位二进制序列的中三位 (例如:8位二进制序列为:‘10100101’,中三位为:‘100’)、低三位 (例如:8位二进制序列为:‘10100101’,低三位为:‘101’) 分别拼接为水印字符串wbit 2、wbit 3;
Step4:利用选块矩阵position从H p 中选择像素块schurblock,选块矩阵position由系统内置函数randperm伪随机生成,p=1,2,3,分别表示红、绿、蓝三层颜色通道;此处,设p=1,从H 1选择的像素块schurblock=;
Step5:根据公式(1),对像素块schurblock进行Schur分解,得到酉矩阵U和上三角矩阵V,上三角矩阵V的前r个主对角元素V(i,i)分别为像素块schurblock的第i个特征值,i=1,2,…,r,r表示像素块schurblock的秩;此处,得到的酉矩阵U=,上三角矩阵V=,像素块schurblock的秩r=3,上三角矩阵V的第1个主对角元素V(1,1)为像素块schurblock的第1个特征值=582.5230;
(1)
Step6:按照先后顺序从水印字符串中选取水印位wt,利用公式(2)求得量化值add;此处选取的水印位wt=‘1’,量化值add=568.4250;
(2)
其中, 为像素块schurblock所有特征值的和,i=1,2,…,r,r表示像素块schurblock的秩,mod(.)为求余函数,T p 为量化步长,p=1,2,3,分别表示红、绿、蓝三层颜色通道;此处,像素块schurblock的秩r=3,=593,p=1,量化步长T 1=42.9;
Step7:利用公式(3)求得特征值,并用其替换原特征值,得到上三角矩阵V * ;此处,=558.3822,=7.8186,=2.2242,上三角矩阵V * =;
(3)
其中,权值,i=1,2,…,r,r表示像素块schurblock的秩;此处,像素块schurblock的秩r=3,weight 1=0.9823,weight 2=0.0138,weight 3=0.0039;
Step8:利用公式(4)进行逆Schur分解,得到含水印像素块schurblock * ;此处,含水印像素块schurblock * =;
(4)
Step9:重复执行Step4-Step8,直到所有的水印位都被嵌入为止;最后重组三层含水印的颜色通道H p *得到含水印彩色宿主图像H *;
所述水印提取的具体过程描述如下:
Step1:彩色含水印宿主图像的预处理:将含水印彩色宿主图像H *作降维处理,得到红、绿、蓝三层含水印的颜色通道H p *,并将各颜色通道中的像素划分为3×3的非重叠像素块,p=1,2,3,分别表示红、绿、蓝三层颜色通道;
Step2:利用选块矩阵position从颜色通道H p *中选择含水印像素块schurblock * ,选块矩阵position由系统内置函数randperm伪随机生成,p=1,2,3,分别表示红、绿、蓝三层颜色通道;此处,选择的含水印像素块schurblock * =
Step3:根据公式(5),对含水印像素块schurblock * 进行Schur分解,得到酉矩阵U * 和上三角矩阵V * ,上三角矩阵V * 的前r个主对角元素V * (i,i)分别为含水印像素块schurblock * 的第i个特征值,i=1,2,…,r,r表示含水印像素块schurblock * 的秩;此处,酉矩阵U * =,上三角矩阵V * =,含水印像素块schurblock * 的秩r=3,上三角矩阵V * 的第一个主对角元素V * (1,1)为像素块schurblock的第1个特征值=559.1226;
(5)
Step4:利用公式(6)提取含水印像素块schurblock * 中含有的水印位wt * ;
(6)
其中,mod(.)为求余函数,为含水印像素块schurblock * 所有特征值的和,T p 为量化步长,p=1,2,3,分别表示红、绿、蓝三层颜色通道;此时,=569,p=1,量化步长T 1=42.9,提取的水印位wt * =‘1’;
Step5:重复执行Step2-Step4,直到提取所有的水印位,这样就得到了含水印字符串str *、wbit 2 *、wbit 3 *;
Step6:将str * 均分为三个序列,并以大数原则依次计算对应位置的水印信息,得到含水印字符串wbit 1 *;
Step7:依次取wbit 1 *的两位、wbit 2 *及wbit 3 *的三位组成8位二进制序列并转换成十进制的像素值,重复以上操作,直到所有的序列都被转换为十进制,并依次将其拼成一个十进制数列,将该十进制数列均分为三段,分别重塑为32×32的红、绿、蓝三层颜色通道W p * ,p=1,2,3,分别表示红、绿、蓝三层颜色通道;
Step8:将每层颜色通道进行基于私钥K p 的逆仿射变换,并重组为最终提取的彩色水印图像W * 。
该方法具有较强的鲁棒性、较高的安全性、较大的水印容量和较好的水印隐蔽性,适用于高安全性的大容量彩色图像的版权保护。
本发明有效性验证
为了证明本发明的有效性,选择如图1(a)、图1(b)所示的两幅大小为512×512的24位标准彩色图像作为宿主图像,并用如图2(a)、图2(b)所示的大小为32×32的24位彩色水印图像进行验证。
图3(a)、图3(b)是将图2(a)所示的水印依次嵌入到宿主图像图1(a)、图1(b)后所得到的含水印图像,其结构相似度SSIM值依次是0.9214、0.9263,其峰值信噪比PSNR值依次是36.1046dB、35.8287dB。
图4(a)、图4(b)是依次从图3(a)、图3(b)中提取的水印,其归一化互相关系数NC值分别是1.0000、1.0000。
图5(a)、图5(b)、图5(c)、图5(d)、图5(e)是将图3(a)所示的含水印图像依次进行JPEG2000压缩(7:1)、椒盐噪声(3%)、JPEG压缩(60)、剪切(12.5%)、缩放(75%)等攻击后所提取的水印,其归一化互相关系数NC值分别是0.9976、0.9920、0.9866、0.9583、0.9981。
图6(a)、图6(b)是将图2(b)所示的水印依次嵌入到宿主图像图1(a)、图1(b)后所得到的含水印图像,其结构相似度SSIM值依次是0.9294、0.9332,其峰值信噪比PSNR值依次是36.1681dB、35.8875dB。
图7(a)、图7(b)是依次从图6(a)、图6(b)中提取的水印,其归一化互相关系数NC值分别是1.0000、1.0000。
图8(a)、图8(b)、图8(c)、图8(d)、图8(e)是将图6(a)所示的含水印图像依次进行JPEG2000压缩(7:1)、椒盐噪声(3%)、JPEG压缩(60)、剪切(12.5%)、缩放(75%)等攻击后所提取的水印,其归一化互相关系数NC值分别是0.9976、0.9884、0.9831、0.9938、0.9965。
综上所述,从各种受攻击图像中所提取的彩色图像数字水印具有较高的可识别性和较高的NC值,说明该方法具有较强的鲁棒性;同时,该算法所使用仿射变换置乱方法的密钥空间为228以上,具有较高的安全性;另外,嵌入彩色数字图像中的二进制信息为9×212位,具有较大的水印容量;最后,所嵌入的彩色图像数字水印具有较好的不可见性,满足了强鲁棒性、高安全性、大容量的彩色图像数字水印版权保护的需要。