基于Tangram算法和2维双尺度矩形映射的图像伪装及重构方法
技术领域
本发明属于信息安全和数字图像信号处理等交叉研究领域,涉及一种数字图像伪装方法,具体涉及一种基于Tangram算法和2维双尺度矩形映射的图像伪装及重构方法。
背景技术
近年来,伴随着计算机和网络技术的发展,越来越多的数字图像在公有信道中传播。对秘密图像不加限制地访问和使用,不仅涉及个人隐私、媒体公信和政府诚信,同时也会导致社会动荡和诱发军事冲突。
如何有效地保护公有信道中传输的秘密图像,成为目前研究的热点。针对此问题,人们已提出了多种图像保护方法,例如将明文图像转换为密文图像的数字图像加密技术以及数字图像伪装技术等。相对于数字图像加密技术,数字图像伪装是将机密图像伪装成有意义的非机密图像,从而在公有信道传输中不易引起拦截者的注意,减少潜在攻击的可能性,进一步保证机密图像的安全性。
Tangram方法,也称七巧板方法或中国拼图算法,是一种典型的图像伪装方法。Tangram方法是选取一幅和秘密图像等大小的公开图像,将秘密图像和公开图像进行网格划分,分割成不重叠的等大小子块。将公开图像子块作为字典块,利用最小2乘法寻找秘密图像的每个子块在公开图像所有分割子块中匹配残差最小的对应子块变换参数。然后利用这些变换参数,将公开图像变换为秘密图像。
经典的Tangram方法为保证最终由公开图像转变为秘密图像的视觉质量,需将秘密图像的每个子块在公开图像中所有子块中全局搜索匹配残差最小的子块,并且为进一步提高图像质量,每个公开图像子块在对秘密图像的所有子块匹配过程中涉及到8个等距变换,依次为原子块,子块旋转90度、180度、270度对应子块以及这些子块的水平翻转子块,由此带来了高昂的计算代价,这一弊端严重制约了Tangram方法的实际应用价值,且由公开图像子块近似逼近秘密图像子块,导致秘密图像的视觉质量下降。
而在实际中,秘密图像的视觉质量相对于公开图像更为重要,因此公有信道中传输的图像可以是一幅严重降质的图像,只要不影响其辨识质量,且能保证最终重构的秘密图像视觉质量。
传统的Tangram方法是将公开图像A和秘密图像B划分为m×n个bm×bm子块,在实际中,bm一般取4。
记公开图像和秘密图像对应子块分别为Ai,j和Bi,j且i=0,1,…,m-1,j=0,1,…,n-1。对图像A的每个子块进行8种等距变换产生等距变换小块,将其依次记为 其中 对应为原子块,依次为原子块旋转90度、180度、270度对应子块,为水平翻转子块。
Tangram方法在进行伪装时,对秘密图像的每个子块Bi,j,i=0,1,…,m-1,j=0,1,…,n-1需和公开图像的所有子块Ax,y,x=0,1,…,m-1,y=0,1,…,n-1的8个等距变换子块 按式(1)进行匹配,寻找残差最小的等距变换和对应的变换参数以及等距变换小块所在的位置且
(1)
且x∈{0,1,…,m-1},y∈{0,1,…,n-1}
式(1)中,I=(1)bm×bm为全为1的bm×bm小块,记对应的残差为 和 分别为bm×bm小块。则式(1)可进一步表示为式(2):
在式(2)中,先求解Ax,y每个等距变换小块拟合Bi,j的最佳匹配因子α,β,然后再从中找出2次距离最小的所对应的和其中拟合Bi,j的最佳匹配因子α,β可按最小2乘法确定,即按对α,β的偏导为0进行确定,如式(3)所示:
式(3)对应的α,β,可按式(4)和式(5)进行求解:
按式(2)找到残差最小的将其对应的参数作为Bi,j的匹配参数,存到一个五元组中,将所有的 构成参数集合T作为恢复密钥,然后利用信息隐藏技术将集合T隐藏在图像A的冗余空间中。
隐藏T之后的图像A传送到对方后,接收方从收到的图像中提取出集合T,根据集合T和接收到的图像利用式(6)近似恢复出秘密图像:
从上述全搜索编码过程可知,在构造五元组表的过程中,秘密图像的每个子块Bi,j,i=0,1,…,m-1,j=0,1,…,n-1都需和公开图像所有子块Ax,y,x=0,1,…,m-1,y=0,1,…,n-1中所有等距变换小块进行最小2乘拟合,找到残差最小的等距变换小块 其平均时间复杂度为(4mn)mn,这样高昂的计算代价严重限制了经典Tangram方法的实际应用价值。从式(6)可看出,所恢复出的秘密图像小块B′i,j和对应的秘密图像小块Bi,j存在一定残差,从而导致恢复出的秘密图像存在一定的视觉质量损失。
为减少搜索时间加快编码速度,吴军、吴秋新等对经典的Tangram方法进行了改进,添加了小块均化操作,在此基础上提出了基于块均化5元组匹配的Tangram方法。
块均化5元组匹配的Tangram方法是建立在矩阵局部均化操作的基础上,记矩阵M=(mi,j)4×4,对其进行局部均化操作如式(7)所示:
式(7)中:
经过式(7)局部均化操作以后,M=(mi,j)4×4可由一个5元组(s0,s1,s2,s3,s4)近似表达。
基于块均化5元组匹配的Tangram方法将公开图像A和秘密图像B划分为4×4的子块Ai,j和Bi,j,然后对每个矩阵小块施加块均化操作,记Ai,j和Bi,j对应的局部均化操作5元组分别为 且i=0,1,...,m-1,j=0,1,...,n-1。
对于每个5元组对其按逆时针旋转,又可产生另外4个5元组:依次为 这样每个公开子块Ai,j总共对应5个5元组每个秘密图像子块Bi,j对应1个5元组
基于块均化5元组匹配的Tangram方法将传统的Tangram方法中秘密图像小块每个小块Bi,j,i=0,1,…,m-1,j=0,1,…,n-1和公开图像小块所有等距变换小块 直接匹配过程转换为秘密图像每个子块对应的5元组和公开图像小块对应的5元组匹配的过程。
基于块均化5元组匹配的Tangram方法利用最小2乘法计算满足式(8)的最佳匹配参数α,β:
然后从中再找到满足式(9)的最佳匹配参数
相对于Tangram方法,基于块均化5元组匹配的Tangram方法不追求全局最小,只找到匹配残差小于指定阈值δ的最佳匹配参数,同时采用5元组取代矩阵块进行匹配,降低了运算代价。
但将图像小块转换为5元组进行匹配,降低了匹配精度,从而进一步降低了秘密图像重构精度。同时由于事先无法估算阈值δ,若δ取值较小,则等价于全局搜索;若δ取值较大,则进一步降低秘密图像的重构精度;同时采用阈值δ降低的计算代价依然十分有限。
发明内容
本发明目的在于克服现有技术缺陷,提供一种基于Tangram算法和2维双尺度矩形映射的图像伪装及重构方法,避免了全局匹配,实际编码时间远低于Tangram方法及其改进方法,且重构密图视觉质量清晰,满足一定的安全要求。
为实现上述目的,本发明采用以下技术方案:
基于Tangram算法和2维双尺度矩形映射的图像伪装方法,包括以下步骤:
第1步:将公开图像A和秘密图像B划分成m×n个bm×bm子块Ai,j,Bi,j,bm≥2;对秘密图像B的每个子块Bi,j进行8种等距变换得
第2步:随机选定符合式(11)的映射参数a,b,c,d,e,f作为映射参数,将式(11)迭代IT次,IT≥0,用于将秘密图像子块Bx,y和公开图像子块Ai,j构成块映射对,其中i,x=0,1,…,m-1且j,y=0,1,…,n-1,式(11)用来确定(i,j)和(x,y)的映射关系;
第3步:对Ai,j和Bx,y的8个等距变换子块利用式(15)和式(16)计算出对应的匹配因子α,β;
第4步:利用式(13)从匹配因子α,β中找出2次距离最小的所对应的和将其对应的参数作为Ai,j的匹配参数存到3元组中,将所有的3元组构成参数集合T;
第5步:根据参数集合T和经过等距变换的秘密图像子块利用式(17)得到伪装图像A′;
其中A′i,j为A′中的对应小块。
与图像伪装方法对应的基于Tangram算法和2维双尺度矩形映射的图像重构方法,其特征在于包括以下步骤:
第1步:提供映射参数(a,b,c,d,e,f)和迭代次数IT按式(11)迭代IT次找到与伪装图像子块A′i,j对应秘密图像的子块Bx,y的映射位置(x,y);
第2步:根据3元组参数集合T和所有伪装图像子块A′i,j利用式(18)恢复出对应的秘密图像等距变换小块
第3步:根据与子块A′i,j对应的ti,j中的确定对应的块经过的等距变换,将所有的 恢复为即可恢复出秘密图像。
本发明同现有技术优点分析
①同经典的Tangram方法不同,本发明将秘密图像划分的子块作为字典,利用2D双尺度矩形映射确定秘密图像子块和公开图像子块的对应关系,将每个秘密图像子块按8个等距变换直接和对应位置的公开图像子块进行最小2乘法匹配,找到残差最小的等距变换和匹配参数,从而将秘密图像伪装成公开图像,将秘密图像伪装成一张与秘密图像无关的有意义掩体图像在公有信道中进行传输,只有拥有合法密钥的授权者才能将其恢复为秘密图像,而其他情况都无法对秘密图像进行解密。
②同现有方法相比,本发明易于实现,本发明的方法只按映射关系进行匹配,实际编码时间远低于现有Tangram方法,公开图像可满足一定的辨识要求,且重构密图视觉质量清晰,若计算中不存在溢出和舍入,则对应小块可完整恢复。
③由于添加了2D双尺度映射,映射位置被打乱,可满足一定的安全要求;
④所设计和实现的方法相对于传统的Tangram及其改进方法,具有一定的实用价值;
⑤同经典Tangram算法相同,本发明可将密钥(a,b,c,d,e,f),迭代次数IT和T隐藏在伪装图像的冗余空间中,从而不需要单独传输,和伪装图像一起恢复出秘密图像。
附图说明
图1为本发明秘密图像伪装流程图
图2为本发明秘密图像重构流程图
图3为本发明实施例秘密图像1(cameraman,分辨率为256×256)
图4为本发明实施例公开图像1(finger,分辨率为256×256)
图5为本发明实施例经过等距变换后的秘密图像(cameramandic,裁剪并缩放显示,原始未剪裁图像分辨率为256×2048)
图6为本发明实施例伪装后的图像1(finger,分辨率为256×256,相对于图4的PSNR值为24.7)
图7为本发明实施例解密出来的图像1(cameraman,分辨率为256×256,相对于图3的PSNR值为47.6)
图8为本发明实施例秘密图像2(finger,分辨率为256×256)
图9为本发明实施例公开图像2(trucks,分辨率为256×256)
图10为本发明实施例经过等距变换后的秘密图像(fingerdic,裁剪并缩放显示,原始未剪裁图像分辨率为256×2048)
图11为本发明实施例伪装后的图像2(trucks,分辨率为256×256,相对于图9的PSNR值为27.5)
图12为本发明实施例解密出来的图像2(finger,分辨率为256×256,相对于图10的PSNR值为39.9)
图13为本发明实施例秘密图像3(zelda,50%缩放显示,分辨率为512×512)
图14为本发明实施例公开图像3(tank2,50%缩放显示,分辨率为512×512)
图15为本发明实施例经过等距变换后的秘密图像(zeldadic,裁剪并缩放显示,原始未剪裁图像分辨率为512×4096)
图16为本发明实施例伪装后的图像3(tank2,,50%缩放显示,分辨率为512×512,相对于图14的PSNR值为30.8)
图17为本发明实施例解密出来的图像3(zelda,50%缩放显示,分辨率为512×512,相对于图13的PSNR值为47.7)。
具体实施方式
下面结合附图和具体实施例对本发明进行详细描述:
2D双尺度矩形映射是邵利平等提出的一种快速矩形元素置乱和恢复方法,是目前最快的矩形数据块元素置乱和恢复方法,2D双尺度矩形映射对m×n规模的矩阵元素置乱和恢复代价仅为O(mn)。
现有Tangram方法编码时间长,搜索代价高;基于块均化5元组匹配的Tangram方法依然不能有效地缓解计算代价,同时也降低了秘密图像的重构精度。
结合2D双尺度矩形映射块置乱的改进Tangram方法,同传统Tangram方法将公开图像子块借助变换参数变换为秘密图像子块的思路不同,将秘密图像和公开图像bm×bm划分子块Ai,j和Bi,j按2D双尺度矩形映射的映射关系构成块映射对Ai,j和Bx,y,然后将秘密图像子块Bx,y的8个等距变换小块作为搜索范围,在其中找到和Ai,j残差最小的等距变换小块然后将其伪装成公开子块Ai,j。
同现有方法相比,本发明减轻了传统Tangram方法因全局搜索而带来的高昂匹配代价,且伪装后的图像依然能保证一定的辨识质量;且所提出的方法是将秘密图像子块直接伪装成公开图像子块,若计算过程中不存在舍入误差和溢出,则对应秘密图像子块可完整恢复;并且由于添加了2D双尺度矩形映射,也增加了所提策略的安全性。
记gcd(m,n)=p,m=z1p,n=z2p,2D双尺度矩形映射定义式如式(10)所示,并且满足gcd(ad-bc,p)=1,gcd(a,z1)=l,gcd(d,z2)=1且(b mod z1)=0和(c mod z2)=0中至少有一个成立。
2D双尺度矩形映射是1个一一映射,对于任意的(i,j),i=0,1,…,m-1,j=0,1,…,n-1都将被唯一地映射为(x,y),x=0,1,…,m-1,y=0,1,…,n-1。由于式(10)给出的映射关系不能改变(0,0)点的映射位置,对式(10)给出的映射关系,可按式(11)进行修正。
在本发明中,将式(11)中的(i,j)作为公开图像子块Ai,j位置,(x,y)作为与之对应的秘密图像子块Bx,y位置,从而构成块映射对,式(11)也可迭代IT次进一步提高安全性。
在进行图像伪装时,对公开图像的每个子块Ai,j,i=0,1,…,m-1,j=0,1,…,n-1只需和对应的秘密图像子块Bx,y,x=0,1,…,m-1,y=0,1,…,n-1的8个等距变换子块 按最小2乘拟合寻找残差最小的等距变换和对应的变换参数
式(12)可进一步表示为式(13):
在式(13)中,先求解与Ai,j对应的小块Bx,y每个等距变换小块拟合Ai,j的最佳匹配因子α,β,然后再从中找出2次距离最小的所对应的和其中求拟合Ai,j的最佳匹配因子α,β同经典Tangram方法一样,可按式(14)求解对应的α,β:
(14)对应的α,β,可按式(15)和式(16)求解:
按式(13)找到残差最小的将其对应的参数作为Ai,j的匹配参数,存到3元组中,将所有的 构成参数集合T作为密钥。
将秘密图像B按式(17)伪装成公开图像A′:
在秘密图像重构的过程中,同加密过程一样,先按式(11)进行2D双尺度矩形映射,式(11)中的参数(a,b,c,d,e,f)同加密时的参数相同,采用相同的迭代次数IT,找到与伪装图像子块A'i,j的位置(i,j)对应的秘密图像子块的映射位置(x,y)。然后根据集合T和伪装图像A′i,j,i=0,1,…,m-1,j=0,1,…,n-1利用式(18)恢复出经过等距变换的秘密图像:
然后根据与子块A′i,j对应的ti,j中的确定对应的块经过的等距变换,将其恢复为从而恢复出秘密图像。
基于改进Tangram方法和2D双尺度矩形映射的数字图像伪装方法:
第1步:将公开图像A和秘密图像B划分成m×n个bm×bm子块Ai,j,Bi,j(bm≥2),对秘密图像B的每个子块Bi,j进行8种等距变换得
第2步:随机选定符合式(11)的映射参数(a,b,c,d,e,f)作为映射参数,将秘密图像和公开图像划分子块按式(11)的映射关系迭代IT(IT≥0)次构成块映射对:Ai,j和Bx,y,其中i,x=0,1,…,m-1且j,y=0,1,…,n-1,式(11)用来确定(i,j)和(x,y)的映射关系;
第3步:对Ai,j和Bx,y的8个等距变换子块利用式(15)(16)计算出对应的匹配因子α,β;
第4步:利用式(13)从匹配因子中找出2次距离最小的所对应的和将其对应的参数作为Ai,j的匹配参数存到3元组中,将所有的3元组构成参数集合T;
第5步:根据集合T和经过等距变换的秘密图像子块利用式(17)得到伪装图像A′。
基于改进Tangram方法和2D双尺度矩形映射的秘密图像重构方法:
第1步:提供映射参数(a,b,c,d,e,f)和迭代次数IT按式(11)找到与伪装图像子块A′i,j对应的秘密图像的子块映射位置(x,y);
第2步:根据集合T和所有的伪装图像子块A′i,j利用式(18)恢复出对应的秘密图像等距变换小块
第3步:将所有的 恢复为即可恢复出秘密图像。
以下结合具体实施例对本发明方法进行说明:
以JAVA jdk1.7.0_09作为案例实施环境,结合附图对本发明实施方式进行详细说明,但不局限于本实施案例,其中图1是伪装流程图,图2是重构流程图。
参考图1加密过程如下:
第1步:选取秘密图像A如图3所示,为256×256的8位标准灰度图像cameraman.bmp,将秘密图像划分为64×64个4×4大小的子块Ai,j,i=0,1,…,63,j=0,1,…,63,即bm取4,双方约定一张与秘密图像无关的有意义图像作为公开图像B,如图4所示,为256×256的灰度图像finger.bmp,将公开图像划分为64×64个4×4大小的子块Bi,j,i=0,1,…,63,j=0,1,…,63;
第2步:将秘密图像中的每一个子块进行8种等距变换得若 则 所有的子块经过等距变换后的结果如图5所示;
第3步:将4×4分块的秘密图像A和公开图像B按式(11)的映射关系构成块映射对:Ai,j和Bx,y,这里随机选取a=41,b=17,c=44,d=71,e=3,f=4,选取迭代次数IT=1,若(i,j)=(0,0),则对应的(x,y)=(3,4);
第4步:按式(15)(16)对公开图像的每个子块Ai,j和秘密图像的对应子块Bx,y的8个等距变换子块进行最小2乘拟合,利用式(15)(16)计算出最佳匹配因子α,β。若 对应的 B3,4的8个等距变换子块的值如第2步所示,则A0,0与对应的α=0.11337357283106683,β=189.73725547232928,A0,0与对应的α=-0.4055705039633481,β=262.74620027634353,A0,0与对应的α=0.49734564758926625,β=135.7171842047851,A0,0与对应的α=-0.07744891280634136,β=216.58359392044215,A0,0与对应的α=-0.6499163697185659,β=297.12260926478075,A0,0与对应的α=0.2553268853174315,β=169.76619882190386,A0,0与对应的α=0.49967275107264925,β=135.38978983346666A0,0与对应的α=0.5671587520907571,β=125.89535306523162;
第5步:根据式(13)从中找出2次距离最小的所对应的和将其对应的参数作为秘密图像Ai,j的匹配参数存到3元组中,将所有的3元组构成参数集合T。例如根据式(13)A0,0与B3,4的所有匹配参数中2次距离最小的为则将4和-0.6499163697185659,297.12260926478075存到3元组t0,0(4,-0.6499163697185659,297.12260926478075)中作为秘密图像块A0,0的匹配参数(在实际中需根据隐藏方法的要求对计算精度进行舍入,而不需要进行高精度计算);
第6步:根据集合T和经过等距变换的秘密图像利用式(17)得到伪装图像,如图6所示。若t0,0(4,-0.6499163697185659,297.12260926478075),对应的 利用式(17)得到对应的 作为伪装图像的小块。
参考图2解密过程如下:
第1步:提供映射参数(a,b,c,d,e,f)和迭代次数按式(11)找到与伪装图像子块的位置(i,j)对应的秘密图像的块映射对的位置(x,y),此案例中a=41,b=17,c=44,d=71,e=3,f=4,迭代次数IT=1,若(i,j)=(0,0),按式(11)则对应的(x,y)=(3,4);
第2步:然后根据集合T和伪装图像利用式(18)恢复出对应的秘密图像等距变换子块 例如 t0,0(4,-0.6499163697185659,297.12260926478075),利用式(18)得到
第3步:根据秘密图像的每一个等距变换小块对应的逆变换将对应的秘密图像小块 恢复到原来的状态从而恢复出秘密图像,如图7所示。若 则可得到 作为恢复的秘密图像的子块B3,4。
为验证所提出的图像伪装方法性能,给出恢复出来的秘密图像相对于原秘密图像的PSNR值,运行时间与经典Tangram算法的对比结果。表1是本发明方法与经典Tangram方法的运行时间与PSNR值对比结果。
表1 本发明方法与经典Tangram算法的对比结果
表1中,图3、图8和图13为秘密图像,分别为分辨率为256×256的finger、256×256的trucks和512×512的tank2测试图像;图4、图9和图14为公开图像,分别为分辨率为256×256的cameraman、256×256的finger和512×512的zelda测试图像;伪装后的对应图像为图6、图11和图16;最终重构的秘密图像如图7、图12和图17所示。测试中对于分辨率为256×256采用的实验参数为a=41,b=17,c=44,d=71,e=3,f=4,对于分辨率为512×512的图像采用的测试参数为a=98,b=71,c=37,d=86,e=3,f=4,测试中,迭代次数都取1。
图5为本发明实施例经过等距变换后的秘密图像(cameramandic,裁剪并缩放显示,原始未剪裁图像分辨率为256×2048);图10为本发明实施例经过等距变换后的秘密图像(fingerdic,裁剪并缩放显示,原始未剪裁图像分辨率为256×2048);图15为本发明实施例经过等距变换后的秘密图像(zeldadic,裁剪并缩放显示,原始未剪裁图像分辨率为512×4096)。
从表1可看出,本发明已有效地解决现有Tangram方法运行时间长问题,相对于传统的方法,编码速率上提高较为明显,提高了700~900多倍;从重构出来的秘密图像的PSNR值的对比中可看出,本发明重构出的秘密图像具有较高的视觉重构质量,视觉重构质量较为清晰,相对于原始图像,PSNR也有了较大地提高。