图像处理之《鲁棒图像隐写术:隐藏频率系数中的信息》论文精读

本文主要是介绍图像处理之《鲁棒图像隐写术:隐藏频率系数中的信息》论文精读,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、文章摘要

隐写术是一种将秘密信息隐藏到公共多媒体对象中而不会引起第三方怀疑的技术。然而,大多数现有的工作不能提供良好的抗有损JPEG压缩鲁棒性,同时保持相对较大的嵌入容量。提出了一种基于可逆神经网络的端到端鲁棒隐写系统。该方法将秘密信息直接隐藏到封面图像的离散余弦变换(DCT)系数中,而不是隐藏在空间域中,显著提高了鲁棒性和抗隐写安全性。首先提出了互信息损失来约束INN中的信息流。实现了双向融合模块(TWFM),利用空间域和DCT域特征作为辅助信息,便于信息提取。这两种设计有助于从DCT系数中无损地恢复秘密消息。实验结果表明,该方法的误差率明显低于其他现有的隐藏方法。例如,我们的方法在每像素1比特(bpp)的嵌入负载下实现了0错误率的可靠提取;在质量因子QF = 10的JPEG压缩条件下,该方法的错误率比现有的鲁棒图像隐藏方法低22%左右,对JPEG压缩具有较好的鲁棒性。

在这里插入图片描述
二、提出的方法

2.1 框架概述

传统的神经网络利用两个独立的编码器和解码器对秘密消息M、封面图像C和隐写图像S之间的映射进行建模,可以表示为:(M,C)->S和S->(M,C)。这种单独的编码器-解码器结构将导致不准确的双射映射,并可能将一个映射的误差累积到另一个映射中。在我们提出的方法中,我们试图找到一个可以同时隐藏和提取秘密消息的可逆双射网络,表示为:(M,C) <-> s。在图2中,我们的方法框架由几个部分组成:INN、JPEG压缩层、鉴别器和双向融合模块。我们使用仿射耦合层来构造隐藏和显示块。有12个这样的可逆块用于隐藏和显示INN的过程。这两个过程在训练过程中共享参数,这比传统的编码器-解码器架构更有效地驱动模型。JPEG压缩层是一个模拟器,将不可微的JPEG压缩模拟成可微的近似形式,然后将其引入到端到端网络中,以减轻失真影响,有效地提高鲁棒性。利用对抗性鉴别器区分生成的隐写图像与原始封面图像是否相似,利用对抗性学习提高生成的隐写图像的视觉保真度和隐写安全性。TWFM经过精心设计,充分结合了空间和DCT域的特征来恢复信息。

在这里插入图片描述
图2 提出的隐写体系结构概述

2.2 可逆隐藏/揭示过程

我们表示具有c个通道和h × w大小的封面图像为c ={0,…, 255}c×h×w,其中c = 3,h = 256,w = 256。将秘密消息记为m={0,1}l,长度为1。为了保证INN的两个输入大小相同,我们将秘密消息输入作为一个三维体积来管理,如果有效载荷小于1 bpp,我们将每个具有相同值的比特填充到8×8小块中。已成形的秘密消息表示为M={0,1}c’×h×w,其中c’为通道数。在前向隐藏过程中,对封面图像进行DCT变换,形成与空间图像大小相同的三维DCT系数立方体。然后利用隐藏块将秘密信息M嵌入到封面图像的DCT系数Cdct中。考虑图2中的第i个隐藏块,我们输入Cidct和Mi,输出Ci+1dct和Mi+1,可表示为:
在这里插入图片描述

其中⊙表示阿达玛尔积运算,(·),ρ(·)和η(·)表示任意函数,但不要求可逆。在这里,我们使用5层Denseblock (Wang等人2018)来表示这三个函数,以获得令人满意的图像处理性能。需要注意的是,经过一系列的隐藏块后,模型输出隐写图像的DCT系数Sdct和丢失的信息矩阵L。为了得到相应的隐写图像S,IDCT模块接收频率特征Sdct并将其变换回空间域。

在反向揭示过程中,DCT模块接收到被攻击的隐写图像Sa,并将其转换为DCT特征Sdcta。由于在通信信道上只能传输被攻击的隐写图像,因此我们将被攻击的隐写图像Sa保存在揭示过程的开始。因此,为了替换丢失的信息矩阵L,提炼必要的信息进行揭示,TWFM将被攻击的隐写图像Sa及其频率系数Sdcta合并生成辅助变量矩阵z。下面将介绍TWFM的详细结构。我们注意到,除了信息流动方向相反之外,隐藏块和显示块几乎是相同的。对于第i个揭示块,输入为Si+1dct_a和Zi+1,根据下式得到输出为Si dct _a和Zi:
在这里插入图片描述

其中,⊘表示矩阵的除法运算。最后一个显示块输出恢复的封面图像的DCT系数C’dct和恢复的消息M0。最终,C’dct通过IDCT模块转换为恢复的封面图像C’,M’重新塑造并映射回二进制消息m’。

2.3 双向融合模块(TWFM)

在封面图像中隐藏秘密信息时,高容量嵌入不可避免地会对载体造成损害。此外,为了避免生成的隐写图像的视觉失真,很难将秘密信息完全嵌入到载体中。这样,上述两个信息损失就构成了丢失的信息矩阵L。工作 (Jing等人2021)从高斯分布中随机抽取样本组成辅助变量矩阵Z。然后对每个采样的Z进行训练,以确保INN能够恢复秘密消息。然而,这种方法并没有充分考虑到L包含来自输入特征的有效信息,这些信息应该在揭示过程中尽可能地利用。也就是说,丢弃L将导致秘密消息恢复的准确性降低

自注意机制(Vaswani等人2017)将输入映射到几个不同的patch中,以捕获特征的内部相关性,TWFM旨在有效地提取和融合空间域和频率域特征,以提高秘密消息恢复的准确性。TWFM的体系结构如图3所示。输入是攻击后的隐写图像Sa及其频率特征Sdct_a。注意权重映射通过元素积在空间域和频域为相应的特征分配0 ~ 1之间的权重。它从Sa和Sdct_a中选择有意义的特征,同时抑制一些无关的细节。整个过程可以描述如下:
在这里插入图片描述

其中⊗是元素积运算,σ(·)、δ(·)和fc(·)分别表示softmax函数、concat操作和卷积。注意权重映射W表示从输入特征矩阵中获得的区域信息的重要性,其中需要更多地关注高权重元素。请注意,TWFM是即插即用的,也就是说,它可以与INN进行端到端联合训练
在这里插入图片描述
图3 双向融合模块的架构

2.4 JPEG压缩层的设计

JPEG压缩过程包含一个不可微的步骤:舍入函数是截断梯度传播的分段步骤函数。因此,JPEG不适合直接进行端到端训练优化。为了解决这一问题,我们在工作中采用平滑舍入函数R (x) (Shin and Song 2017)来模拟舍入步骤,可以表示为:
在这里插入图片描述

式中[x]为x的舍入运算,R(x)为量化模拟的舍入DCT系数。模拟的舍入函数R(x)近似连续,说明其导数不为零。通过这种方法,可以将不可微的JPEG压缩以可微的形式进行模拟,从而在训练过程中保持梯度传播

2.5 鉴别器的设计

鉴别器评估封面图像和隐写图像之间的差异,并提供关于生成器性能的反馈,这进一步刺激生成的实例更接近原始类的数据。在我们提出的方法中,鉴别器模块由6组组成。从第1组到第5组,每组由一个卷积层(kernel size = 3,stride = 2,padding = 1)、一个BN层和一个LeakyReLU激活函数组成。组6包含一个全局平均池化(GAP)和一个输出分类概率的线性层。得益于对抗学习的基本原理,生成的隐写图像具有更高的视觉保真度和抗统计检测的隐写安全性。

2.6 损失函数

为了生成高保真的隐写图像,恢复低误差的信息,总体优化目标为:
在这里插入图片描述
其中λc,λr,λd和λm是平衡不同损失项的权重因子。

隐藏损失Lc隐藏损失Lc表示封面图像C和隐写图像S的区别。隐藏损失需要控制在一个合适的水平,以获得良好的隐蔽性。我们用均方误差(MSE)来衡量它们之间的差异,其定义为:
在这里插入图片描述

揭示损失Lr揭示损失Lr表示恢复的消息M’与原始秘密消息M之间的差异,希望低的揭示损失能够获得较高的消息恢复精度,可以表示为:
在这里插入图片描述

鉴别损失Ld利用辨别损失来增强生成的隐写图像的视觉保真度和网络的抗隐写能力,其中交叉熵损失函数描述如下:
在这里插入图片描述
其中yi为原始真实标签(cover为0,stego为1)。pi表示鉴别器的分类概率。

互信息损失Lm互信息反映了两个变量之间的相关性:一个变量中包含的关于另一个变量的信息量。在图2中,前向隐藏过程以秘密消息M为输入,丢失信息矩阵L为输出。理想情况下,当它们之间的互信息接近于0时,可以假设L的分布与输入m的分布无关,此时我们可以丢弃L而不呈现信息丢失以供揭。因此,为了在嵌入中保持有效信息,提出了互信息损失Lm来约束信息流的方向。它可以定义为:
在这里插入图片描述

式中H (M)和H (L)表示信息熵,H (M,L)表示M和L的联合熵,信息熵和联合熵的计算公式为:
在这里插入图片描述

其中N为矩阵中不同像素值的个数,Pi为矩阵中出现值为i的像素的概率。PML(i,j)是同一位置的像素在矩阵M中值为i,在矩阵L中值为j的概率。

三、实现细节

数据集和实现细节。用于训练和测试的数据集是MSCOCO (Lin等人2014)。我们随机选择5000张图片作为训练的封面图片,1000张图片作为测试的封面图片。上面用于训练或测试的封面图像不重叠,并且使用MATLAB的中心裁剪策略以256 × 256的分辨率裁剪。采用标准参数的Adam优化器(Kingma and Ba 2014)对我们的网络进行优化。初始学习率设置为0.0001,批量大小设置为2以适应我们的设备。整个训练过程包括120个阶段。整个框架由PyTorch实现,并在NVIDIA GeForce RTX 2080 Ti上执行。在训练结束时,模型已经充分收敛。权重因子λc、λr、λd、λm分别设为1.0、15.0、3.0、5.0

评价指标。我们从以下几个方面对业绩进行评估。采用峰值信噪比(PSNR) (Welstead 1999)和结构相似性指数(SSIM) (Wang等人2004)作为图像质量评估。使用误码率(BER)来衡量鲁棒性,误码率越低,表示恢复的消息m’更接近原始消息m。由于恢复的消息m’是浮点数,因此我们将m0中大于0.5的位映射为1,其余位映射为0。在隐写安全性方面,检测误差表明隐写分析网络无法区分特定隐写方法产生的封面图像/隐写图像。

四、汇报PPT(作者本人)

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

论文地址:Robust Image Steganography: Hiding Messages in Frequency Coefficients

没有公布源码

这篇关于图像处理之《鲁棒图像隐写术:隐藏频率系数中的信息》论文精读的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/697849

相关文章

Python如何实现PDF隐私信息检测

《Python如何实现PDF隐私信息检测》随着越来越多的个人信息以电子形式存储和传输,确保这些信息的安全至关重要,本文将介绍如何使用Python检测PDF文件中的隐私信息,需要的可以参考下... 目录项目背景技术栈代码解析功能说明运行结php果在当今,数据隐私保护变得尤为重要。随着越来越多的个人信息以电子形

C#实现系统信息监控与获取功能

《C#实现系统信息监控与获取功能》在C#开发的众多应用场景中,获取系统信息以及监控用户操作有着广泛的用途,比如在系统性能优化工具中,需要实时读取CPU、GPU资源信息,本文将详细介绍如何使用C#来实现... 目录前言一、C# 监控键盘1. 原理与实现思路2. 代码实现二、读取 CPU、GPU 资源信息1.

在C#中获取端口号与系统信息的高效实践

《在C#中获取端口号与系统信息的高效实践》在现代软件开发中,尤其是系统管理、运维、监控和性能优化等场景中,了解计算机硬件和网络的状态至关重要,C#作为一种广泛应用的编程语言,提供了丰富的API来帮助开... 目录引言1. 获取端口号信息1.1 获取活动的 TCP 和 UDP 连接说明:应用场景:2. 获取硬

SpringBoot使用Apache Tika检测敏感信息

《SpringBoot使用ApacheTika检测敏感信息》ApacheTika是一个功能强大的内容分析工具,它能够从多种文件格式中提取文本、元数据以及其他结构化信息,下面我们来看看如何使用Ap... 目录Tika 主要特性1. 多格式支持2. 自动文件类型检测3. 文本和元数据提取4. 支持 OCR(光学

C#实现获取电脑中的端口号和硬件信息

《C#实现获取电脑中的端口号和硬件信息》这篇文章主要为大家详细介绍了C#实现获取电脑中的端口号和硬件信息的相关方法,文中的示例代码讲解详细,有需要的小伙伴可以参考一下... 我们经常在使用一个串口软件的时候,发现软件中的端口号并不是普通的COM1,而是带有硬件信息的。那么如果我们使用C#编写软件时候,如

基于WinForm+Halcon实现图像缩放与交互功能

《基于WinForm+Halcon实现图像缩放与交互功能》本文主要讲述在WinForm中结合Halcon实现图像缩放、平移及实时显示灰度值等交互功能,包括初始化窗口的不同方式,以及通过特定事件添加相应... 目录前言初始化窗口添加图像缩放功能添加图像平移功能添加实时显示灰度值功能示例代码总结最后前言本文将

通过C#获取PDF中指定文本或所有文本的字体信息

《通过C#获取PDF中指定文本或所有文本的字体信息》在设计和出版行业中,字体的选择和使用对最终作品的质量有着重要影响,然而,有时我们可能会遇到包含未知字体的PDF文件,这使得我们无法准确地复制或修改文... 目录引言C# 获取PDF中指定文本的字体信息C# 获取PDF文档中用到的所有字体信息引言在设计和出

C#读取本地网络配置信息全攻略分享

《C#读取本地网络配置信息全攻略分享》在当今数字化时代,网络已深度融入我们生活与工作的方方面面,对于软件开发而言,掌握本地计算机的网络配置信息显得尤为关键,而在C#编程的世界里,我们又该如何巧妙地读取... 目录一、引言二、C# 读取本地网络配置信息的基础准备2.1 引入关键命名空间2.2 理解核心类与方法

Apache Tomcat服务器版本号隐藏的几种方法

《ApacheTomcat服务器版本号隐藏的几种方法》本文主要介绍了ApacheTomcat服务器版本号隐藏的几种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需... 目录1. 隐藏HTTP响应头中的Server信息编辑 server.XML 文件2. 修China编程改错误

SpringBoot实现基于URL和IP的访问频率限制

《SpringBoot实现基于URL和IP的访问频率限制》在现代Web应用中,接口被恶意刷新或暴力请求是一种常见的攻击手段,为了保护系统资源,需要对接口的访问频率进行限制,下面我们就来看看如何使用... 目录1. 引言2. 项目依赖3. 配置 Redis4. 创建拦截器5. 注册拦截器6. 创建控制器8.