一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于NICE模型的新型图像隐写方法及系统与流程

2022-03-05 04:49:44 来源:中国专利 TAG:

一种基于nice模型的新型图像隐写方法及系统
技术领域
1.本发明属于图像隐写算法领域,尤其涉及一种基于nice模型的新型图像隐写方法及系统。


背景技术:

2.图像隐写(image steganography)是研究如何将秘密消息隐藏于数字图像中而不被第三方察觉的一门艺术。根据对秘密消息载体的不同处理策略可将隐写技术概括为了三种类型:载体修改式隐写(steganography by cover modification),载体选择式隐写(steganography by cover selection)和载体合成式隐写(steganography by cover synthesis)。载体修改式图像隐写通过修改原始载体图像的方式将秘密消息嵌入图像且不能被敌方发现,同时还要能够保证消息在接收方的提取。这种隐写方式具有理论完善、嵌入量大、可操作性强等特点,是传统图像隐写技术研究中最主流的方法。目前主流的修改式隐写方法主要遵循“设定隐写失真指标”,而后再利用“编码方法方法最小化失真指标”的固定技术框架,鲜有突破性成果。载体选择式隐写是通过从自然图像库中选择可以对应秘密消息的自然图像来传递信息,相当于通过在自然图像和秘密消息之间建立对应关系来隐藏数据。但这种方法嵌入量很低,限制了其实用价值。而载体合成式隐写的目的是通过计算机直接合成出含有秘密消息的图像。由于载体合成式隐写可以自由合成图像,所以秘密消息的隐藏方式也更为灵活。从原理上来讲,如果能直接合成出足够真实、自然的含密图像(stego image),基于统计的隐写分析器是无法检测的,所以这种方法理论上比载体修改式图像隐写更为安全。
3.传统的载体合成式图像隐写多采用启发式方法,主要思路是将秘密消息通过简单的设计方法映射为基本图元,再采用图元覆盖、拼接或者变形的方法来生成大幅的人造图像,然而这些方法合成的图像只能是简单的纹理图像、变形图像或马赛克图像,无法做到图像效果的自然逼真,很容易让敌方在视觉上产生怀疑,这也成为传统载体合成式隐写方法的一大弊端。
4.近年来,伴随着计算机硬件水平的不断提高,深度学习技术异军突起,特别是深度生成模型的研究,满足了很多应用领域对生成式建模的需求。当前,利用深度生成模型进行载体合成式图像隐写的技术条件已经具备。国内外学者已经开始着手探寻深度生成模型在载体合成隐写中的应用,然而目前此类研究还处于起步阶段,所提的模型、算法比较少,且普遍存在隐写容量小和提取准确率低的弊端。


技术实现要素:

5.本发明要解决的技术问题是,利用了nice模型的可逆特性,模型经过一次训练可以直接用于秘密消息的隐藏和提取,避免了基于gan的隐写方案中需要专门训练消息提取器的步骤,巧妙地设计了模型隐变量同秘密消息双向映射的方法,能够做到合成含密图像中秘密消息的完全恢复,克服了当前该类方法消息无法完全恢复的显著弊端,且隐写容量
远大于现有的技术方法。
6.一方面为实现上述目的,本发明提供了一种基于nice模型的新型图像隐写方法,包括以下步骤:
7.构建nice模型,获取图像数据集对所述nice模型进行训练;
8.训练结束后将所述nice模型中的生成器反向搭建,获取提取器;
9.基于所述生成器将秘密消息和图像生成含密图像;
10.基于所述提取器将含密图像中的秘密消息分离出来,进行秘密消息的获取。
11.可选的,构建nice模型,获取图像数据集对所述nice模型进行训练的过程中包括:
12.基于所述图像数据对所述nice模型进行训练,获取真实图像数据和隐变量空间数据分布之间的映射关系。
13.可选的,训练结束后将所述nice模型中的生成器反向搭建,获取提取器的过程中包括:
14.训练好的模型的参数保持不变,将生成器进行方向搭建,获取提取器,并获取秘密消息和隐变量之间的可逆映射方法。
15.可选的,基于所述生成器将秘密消息生成含密图像的过程中包括:
16.基于所述秘密消息和所述隐变量的映射关系,将需要隐藏的秘密消息映射为浮点数组;
17.基于真实图像的数据分布和隐变量空间的基准分布之间的映射关系,将所述浮点数组输入所述生成器,获得含密图像。
18.可选的,基于所述提取器将含密图像中的秘密消息分离出来,进行秘密消息的获取的过程中包括:
19.基于所述提取器将所述含密图像中的浮点数组提取出来;
20.基于所述秘密消息和所述隐变量的映射关系,将获得的浮点数组反向映射,恢复出原始信息。
21.另一方面为实现上述目的,本发明提供了一种基于nice模型的新型图像隐写系统,包括:
22.生成器,用于生成含密图像;
23.提取器,用于提取含密图像中的原始信息。
24.可选的,所述生成器基于nice模型构建完成,包括六个正向交叉线性叠加的耦合层和第一神经网络模块。
25.可选的,所述提取器基于nice模型构建完成,包括六个逆向交叉线性叠加的耦合层和第二神经网络模块。
26.可选的,所述第一神经网络模块和所述第二神经网络模块均采用了6个全连接网络,激活函数采用了relu函数。
27.本发明的技术效果为:
28.本发明一种基于nice模型的新型图像隐写方法及系统的优点在于:
29.(1)基于nice模型的载体合成式图像隐写根据秘密消息由nice模型直接生成含密图像。从原理上讲,生成图像充分拟合了真实图像的数据分布,机器和人均难以确认真假,所以模型生成的含密图像无法被基于概率统计的隐写分析工具检测到,理论上更为安全。
30.(2)将生成图像反向经过nice模型,而后再按照公式,从含密图像中提取秘密消息,可以做到秘密消息的完全可逆恢复,使该方法达到100%的消息提取率。
31.(3)根据nice模型的特点,模型原始的输入数据z的维度必须和输出数据x的维度一致。对于多通道图像,图像尺寸为w
×h×
c(w
×
h为图像尺寸,c为图像的通道数),模型输入数据z的维度应该等于生成图像的尺寸,即w
×h×
c维的向量。而z的维度又决定了可隐藏秘密消息的比特数。理论上,一张w
×h×
c的图像对应于w
×h×
c个浮点数,而每一个浮点数对应n位的秘密消息位数。按照我们所提的方法(设置n=13,a=4444,c=5555),一个像素对应一个浮点数,而一个浮点数对应了13bit的二进制秘密消息。也就是说,该方法的隐写容量为13bpp(采用了numpy中的float32数据格式进行运算,图像存储格式为*.tiff格式的单通道图像)。
32.可见,基于nice的载体合成式图像隐写具有可观的隐写容量,而传统的基于改写的隐写方法不可能做到在不改变图像视觉效果的情况下,将像素中的多个比特位都用来隐藏消息。
附图说明
33.构成本技术的一部分的附图用来提供对本技术的进一步理解,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
34.图1为本发明实施例一的基于流模型的图像隐写框架示意图;
35.图2为本发明实施例二的基于nice模型的图像隐写方法流程示意图;
36.图3为本发明实施例三改进的nice模型结构示意图;
37.图4为本发明实施例四m的网络结构示意图;
38.图5为本发明实施例五秘密消息段与浮点数的映射方法示意图。
具体实施方式
39.需要说明的是,在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本技术。
40.需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
41.实施例一
42.如图1所示,本实施例中提供一种基于nice模型的新型图像隐写方法及系统,包括基于nice模型的图像隐写框架。不同于gan模型,流模型的生成器g具有可逆性,将g的结构进行反向搭建并保持网络参数不变,就可以获得其逆模型g-1
,g-1
可以将复杂分布的数据样本映射为满足基准分布的隐空间变量。这个特点非常适用于载体合成式隐写系统的构建,其基本框架如图1所示。
43.首先设计并搭建一个nice模型,而后在选定的图像数据集上对模型进行训练。这样,就可以让模型学到真实图像数据分布p
data
和隐变量空间的基准分布qz之间的映射关系。此时,模型的生成器g的输出数据pg(z)≈pdata,z为隐空间变量,z~qz。又由于基于生成模型的载体合成式图像隐写是由生成器直接将隐变量生成为含密图像s,所以pg(z)=
pstego。而后,通过建立秘密消息m与隐变量z之间的映射关系,将需要隐藏的秘密消息m映射为相应的隐变量z,输入模型的生成器g即可生成为相应的含密图像s。由于模型可逆,消息的提取只需将含密图像输入逆模型g,得到生成此图像的初始隐变量z,再通过映射关系将z反向映射,即可得到原始消息m。基于流模型的载体合成式图像隐写过程可以公式化为:
[0044][0045]
g(z)=s(2)
[0046]
g-1
(s)=z(3)
[0047]
其中,公式(1)中f表示秘密消息m到隐变量z的一一映射。发送方用公式(1)将秘密消息m映射为隐变量z,再将z输入训练好的流模型生成器g,即可得到含密图像s,如公式(2)。接收方用含密图像s输入逆模型g-1即可获取隐变量z,如公式(3)所示,最后再利用公式(1)即可恢复秘密消息m。
[0048]
实施例二
[0049]
如图2所示,本实施例中提供一种基于nice模型的新型图像隐写方法及系统,包括基于nice模型的图像隐写方法流程。
[0050]
流程分为两个阶段:
[0051]
第一阶段:在给定的图像数据集上搭建并训练nice模型,这样可以让模型学会真实图像数据分布和隐变量空间数据分布之间的映射关系。训练完成后,可以得到模型的逆向生成器g-1
,将g-1
反向进行搭建(保持训练好的模型参数不变)就可以获得模型的正向生成器g。而后,设计秘密消息m和隐变量z之间的可逆映射方法。并将生成器g和映射方法通过秘密渠道分发给发送方用于含密图像的生成;将g-1
和映射方法通过秘密渠道分发给接收方用于秘密消息的恢复。
[0052]
第二阶段:发送方按照消息与隐变量的映射方法将秘密消息m映射为一个浮点数组z,再将z输入g生成含密图像s。接收方收到s后,用g-1
计算出含密图像s中的浮点数组再将浮点数组按照消息与隐变量的映射方法进行反向映射恢复出原始消息
[0053]
实施例三
[0054]
如图3所示,本实施例中提供一种基于nice模型的新型图像隐写方法及系统,包括nice模型。
[0055]
1)模型设计
[0056]
nice模型核心是其巧妙设计的耦合层(coupling layer)可逆映射结构,下面首先介绍模型结构的设计及改进细节,而后介绍模型的损失函数及训练方法。
[0057]

模型结构
[0058]
nice模型是本算法的核心,其基本结构主要参照了nice原文,如图3所示。
[0059]
其中,cl表示coupling layer(耦合层),m为一个神经网络。x1,x2是真实图像x数据的平均划分,x1=x
1:2/d
,x2=x
(2/d 1):d
,d为x的数据维度。事实上,耦合层借助于神经网络定义出了一个可逆映射能够完成x到z的转换。图3中的每个耦合层采用了减法运算规则,单个耦合层定义为:
[0060][0061]
其逆映射gi采用了加法运算,每个耦合层的定义为:
[0062][0063]
为了能让模型表示更为复杂的数据分布,获得更高的图像质量,本文增加了原文中耦合层的层数(由4层增加到6层),采用了6个耦合层(coupling layer)的交叉线性叠加。最终,6个的叠加,即构成了nice模型的逆向生成器。其正向生成器为6个gi的叠加,即
[0064]
实施例四
[0065]
如图4所示,本实施例中提供一种基于nice模型的新型图像隐写方法及系统,包括m的网络结构。
[0066]
其中fc代表全连接层,激活函数为relu。
[0067]
为了促使信息充分的混合,每个cl层之间需要交换y1与y2作为下一个cl层的输入(相当于对cl层的输出数据平分并进行互换操作)。为了优化生成结果,在模型的最后一层加入了缩放层(scaling layer)s,s为一个和输入向量同维度的向量s=(s1,s2,...,sd),d为输入向量的维度,其参数需要同m参数同时进行训练,缩放层的主要功能为识别不同维度信息的重要程度,缩放层操作可以定义为:
[0068][0069]
其中,y代表最后一个cl的输出,代表kronecker积。
[0070]

损失函数及训练方法
[0071]
nice模型希望能将符合某种基础分布(易于采样和评估密度函数)的z空间样本通过可逆映射g映射为复杂的x空间(如自然图像集)样本。自然,x空间样本可以通过g-1
映射为z空间样本,即:
[0072]
g:rn→rn
,x=g(z),z=g-1
(x)
[0073]
通常用神经网络g来代替映射g,则有:
[0074]
x=g(z)
ꢀꢀꢀꢀꢀꢀꢀꢀ
(7)
[0075]
z=g-1
(x)
ꢀꢀꢀꢀ
(8)
[0076]
其中,z∈z,且z~qz(z),qz(z)表示z空间的数据分布;x∈x,x~p
x
(x),p
x
(x)表示x空间的数据分布。
[0077]
以下变量的变化公式描述了如何评估随机样本x的概率分布,即:
[0078][0079]
其中,p
x
(x)为真实样本的数据分布,z为基础分布qz(z)中的采样,为映射g-1
的雅可比行列式,
[0080][0081]
此时,p
x
(x)的对数似然函数可通过以下公式进行计算:
[0082][0083]
通过最大化此对数似然函数,g-1
可以被优化训练,得到的g-1
后很容易就能得到g,g即为最终需要获取的生成器。
[0084]
由于本文采用的基准分布qz(z)为标准正态分布,因为:
[0085][0086]
根据耦合层的设计原理,此时:
[0087][0088]
将公式(11)和公式(12)带入公式(9),所以,最终模型的目标函数为:
[0089][0090]
其中,si为最后的缩放层s中一同参与训练的参数。根据此目标函数,从真实图像数据中迭代采样,通过最大化此目标函数即可逐步优化训练模型,训练完成后首先得到模型的逆向生成器g-1
,将其反向搭建(保持训练网络参数不变)即可得到其正向生成器g,g和g-1
将分别作为隐写算法中的含密图像生成器和秘密消息提取器。
[0091]
实施例五
[0092]
如图5所示,本实施例中提供一种基于nice模型的新型图像隐写方法及系统,包括秘密消息段与浮点数的映射方法。
[0093]
实际上,在计算机上不同的数据类型表示的数据精度存在不同,当实际数据超出了相应数据类型的表示范围,会存在误差现象。为了使模型能够将一幅图像数据精确地逆向还原回浮点数z。我们必须限制映射后浮点数的有效计算范围,以便下一步能够精确地恢复秘密消息。
[0094]
基本思路是:给定秘密消息m,将其二进制数据进行合理的划分,假设每nbit数据划分为一段,可将此段数据直接映射为一个十进制数值,而后作为(-1,1)浮点数的高位部分,低位部分根据模型的运算精度进行手工的数据填充。这样操作的目的是,即使模型运算过程中产生了数值计算的误差,也在浮点数据的低位部分,如果能够根据模型的运算精度控制好低位部分的数值,使其运算过程中的误差不影响到高位浮点数,则高位浮点数的数值能够确保精确地反向映射回二进制消息分段。
[0095]
具体运算规则如下:
[0096]
首先需要计算出秘密消息比特段mi对应的十进制数值:
[0097][0098]
公式(14)中,n为秘密消息段对应比特位的长度,bj是秘密消息段中的第j个比特的数值,|mi|即为mi的十进制数值。
[0099]
而后设定的参数a和c,使用以下公式来获取一个随机正整数,作为浮点数的低位部分:
[0100]
r=randint[a,c]
ꢀꢀ
(15)
[0101]
公式(15)中randint[.]意为取随机整数,0<a<c。
[0102]
再根据公式(16),来计算两个参数p,q的值,这两个值实际控制着高位浮点数和低位浮点数的划分。
[0103][0104]
公式中[.]意为取整数。
[0105]
最后根据公式(17)计算出映射后的浮点数zi:
[0106][0107]
公式(17)中z
i_real
为二进制数据映射后的浮点数高位数值,z
i_fake
为手工添加的浮点数低位数值,为浮点数提供了随机正负号的作用,zi为最终映射后的浮点数值。此映射方法相当于将n个二进制位映射为一个(-1,1)的浮点数,由于nice模型的基础分布为标准正态分布,(-1,1)区间范围为标准正态分布数据最集中的区域,所以映射后的数据总体上符合模型隐空间变量的数值分布要求,不会影响生成图像的质量。
[0108]
反向映射时,接收方收到zi根据公式(14)-(17)计算并提取出z
i_real
,而后将z
i_real
按照公式(18)计算后,即可得到秘密消息比特段
[0109][0110]
其中,(.)b表示取二进制数值。使用以上映射方法可以去除含密图像反向计算隐变量时的计算误差,确保了模型提取秘密消息的准确率。需要说明的是,实际使用中,n、a、c参数的设置是关键,这需要根据模型测试的结果进行设置。
[0111]
以上所述,仅为本技术较佳的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应该以权利要求的保护范围
为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献