Coverless Image Steganography Based on Generative Adversarial Network

2023-11-10

基于生成对抗网络的无载体图像隐写技术

摘要
  • 传统图像隐写技术:修改/嵌入到载体图像来传输秘密信息—>隐写工具很容易检测到载体图像的失真—>秘密信息的泄露
  • 无载体图像隐写技术:不修改载体图像就可以隐藏秘密信息。但存在容量低,质量差等问题

本文提出了一种基于生成对抗网络的无载体图像隐写技术,通过将秘密信息编码到载体图像中,用对抗来优化隐写图像的质量,同时很好的避开隐写分析工具的检测。

介绍

传统的隐写技术容易被隐写分析工具检测出来,因此,2015年研究人员提出了无载体图像隐写术,它通过秘密信息的映射来实现,而不再对载体图像进行修改,因此称之为“无载体”。即便图像被截获,不知道映射规则,也很难检测出秘密信息。

目前,无载体图像隐写技术主要分为两类:基于映射规则的方法基于合成的方法

基于实例的纹理合成算法是当前纹理合成算法的一个热点,它通过对原始图像进行重采样来合成新的纹理图像。新图像大小可以是任意的,且局部外观与原始图像相似

随着深度学习的出现,基于深度学习的无载体技术逐渐发展起来,但是CNN需要空见相关性很强的图像,因此不能应用于任意数据。GANs的出现为图像隐写提供了新的途径。

我们提出了一种基于CNN和GAN的实现无载体隐写的方案:

  • 提出了基于GAN的隐写方法,相对有效负载为2.36位/像素
  • 提出了一种基于深度学习的隐写算法的图像质量评估方法
方法

一般而言,隐写术只需要两个操作:编码和解码,由三个模块组成:

  1. 编码器网络:接收无载体图像和二进制秘密信息串,生成隐写图像。
  2. 解码器网络:获得隐写图像通过解码器网络尝试恢复秘密信息。
  3. 鉴别器网络:用来评估矢量和隐写图像的质量。

结构图

编码器网络

首先将大小为3WH的载体图像和秘密信息M(DepthWH)输入到编码器网络中。M是DepthWH的数据张量。Depth是我们试图在载体图像的每个像素中隐藏的位数。W×H代表封面图像的大小。编码后的图像在视觉上应该与封面图像相似。我们对编码器网络进行两个操作:

  • 用卷积块Conv对封面图像C进行处理,得到尺寸为(32×W×H)的张量a
    在这里插入图片描述
  • 将消息M与a连接,然后用卷积块Conv处理张量b,b的大小为(32×W×H)
    在这里插入图片描述
    然后我们建立了两个编码器网络:
  • 基本模型:我们将两个卷积块Conv应用于张量b,生成隐写图像S。形式上:
    在这里插入图片描述
  • 密集模型:我们使用跳跃连接[24]将前一个密集块生成的特征 f 映射到后一个密集块生成的特征 l ,如图1所示。我们假设使用跳转连接可以提高嵌入率。正式地:
    在这里插入图片描述
解码器网络

解码器网络G使用由编码器网络ε生成的隐写图像S。解码网络生成M0=G(S),并根据Reed-Solomon算法恢复秘密信息张量M。
在这里插入图片描述

鉴别器网络

为了对编码器ε的性能提供反馈并生成更真实的图像,我们引入了一个鉴别器网络D,它可以区分隐写图像S和载体图像C。
在这里插入图片描述
XuNet是一种基于CNN的图像隐写分析软件。为了改进统计建模:

  • 在第一个卷积层中嵌入绝对激活(ABS)
  • 在网络浅层应用TanH激活函数以防止过度拟合
  • 在每个非线性激活层前添加批处理归一化(BN)

这种设计良好的CNN在隐写分析中具有良好的检测性能。据我们所知,它是性能最好的基于JPEG的数据驱动CNN隐写分析器。因此,我们设计了基于XuNet的隐写分析器,并对其进行了调整以适应我们的模型

鉴别器网络D由五个卷积块和SPP块以及两个完全连接的标量输出层组成。为了生成标量分数,我们在卷积层的输出上使用了自适应均值池。此外,我们使用空间金字塔池(SPP)模块来代替全局平均池层。空间金字塔池(SPP)模块[22]及其变体在目标检测和语义分割模型中发挥着巨大的作用。它突破了全连通层的限制,使得任何尺寸的图像都可以输入到下一个完全连通的层。同时,SPP模块可以从不同的接受域中提取更多的特征,从而提高性能。我们的隐写分析器的详细架构如表1所示。
在这里插入图片描述

目标函数

c被称为载体图像C中的一个,可以用概率分布函数P来表示,我们让载体图像c跟随P,并嵌入秘密消息M,统计散度(KL)也可由公式(7)中的概率散度(KL)来量化,
在这里插入图片描述
KL散度和JS散度是非常基本的量,它们建立了最佳的概率隐写分析。最初GAN的目标是最小化JS散度或KL散度[31]。带噪声z的编码器网络ε尝试生成与覆盖图像C相似的图像,鉴别器网络D接收生成的图像并判断它们是真样本还是假样本。鉴别器网络D和编码器140网络ε使用代价函数(9)来玩minimax博弈。它训练D使训练样本和ε样本的正确标签分配概率最大化。因此,GAN可以用来解决隐写问题:
在这里插入图片描述

编码器解码器损失:

为了优化编解码网络,本部分联合优化了三个损耗函数

  1. 采用交叉熵损失函数来评价译码器网络的译码精度,即:
    在这里插入图片描述
  2. 利用均方误差来分析隐写图像与封面图像的相似性,其中W是图像的宽度,H是图像的长度,也就是说:
    在这里插入图片描述
  3. 以及使用鉴别器的隐写图像的真实性,即
    在这里插入图片描述

综上:所以,训练的目标是:
在这里插入图片描述

结构相似性指数

Baluja[14]使用封面图像像素和生成的图像像素之间的均方误差(MSE)作为损失函数。然而,MSE只对两幅图像对应像素的较大误差进行惩罚,而忽略了图像的底层结构。人类视觉系统(HVS)对无文本区域的亮度和颜色的变化更为敏感,因此在损失函数中引入了结构相似性指数SSIM及其变体MS-SSIM[29]。

SSIM指标从亮度δ、对比度e和结构ρ三个方面对相似性度量任务进行比较。两幅图像的相似度分别用公式(14)、(15)和(16)来衡量,其中µx和µy是图像x和图像y的像素平均值,θx和θy是图像x和图像y的像素偏差,θxy是图像x和y的标准方差。此外,c1、c2和c3是防止分母移动的三个常数使公式变得毫无意义。SSIM的一般计算方法如(17)所示,其中l>0,m>0,n>0,它们是用来调整三个分量相对重要性的参数。SSIM索引的值范围为[0,1]。索引越高,两幅图像越相似。因此,隐写GAN使用1-SSIM(x,y)作为损失函数来度量两幅图像之间的差异。MS-SSIM[29]是SSIM索引的增强变体,因此它还引入了隐写术GAN的损耗函数。
在这里插入图片描述
考虑到像素值和结构的差异,我们将MSE、SSIM和MS-SSIM结合起来。因此,其混合损耗函数LD为:
在这里插入图片描述
其中c代表封面图像,c0代表隐写图像。M是秘密信息,m0是从隐写图像中提取出来的。α和β是衡量隐写图像和覆盖图像质量的超级参数。我们将损失函数的α和β分别设为0.5、0.3

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Coverless Image Steganography Based on Generative Adversarial Network 的相关文章

  • python编写用户登录程序_python初学之用户登录的实现过程(实例讲解)

    要求编写登录接口 1 输入用户名和密码 2 认证成功后显示欢迎信息 3 用户名输错 提示用户不存在 重新输入 5次错误 提示尝试次数过多 退出程序 4 用户名正确 密码错误 提示密码错误 重新输入 密码错误3次 锁定用户名并提示 退出程序
  • python 字符串替换

    在Python中 字符串是一种非常重要的数据类型 它可以用来表示文本 数字 符号等信息 在实际开发中 我们经常需要对字符串进行替换操作 这时就需要用到字符串替换函数 Python中的字符串替换函数主要有replace translate r
  • 30岁后程序员的出路[转]

    那程序员到了30岁 怎样提高自己的不可替代性呢 我们打算做一辈子程序员吗 敢问路在何方 作为一个过来人 一个资深程序员 我觉得有几个方向可以选择 1 成为技术大拿 其实 做一辈子程序员并没有什么问题 重要的是 你必须成为一个不可替代的程序员
  • 在字节跳动做了6年软件测试,4月无情被辞,想给划水的兄弟提个醒

    先简单交代一下背景吧 某不知名 985 的本硕 17 年毕业加入字节 以 人员优化 的名义无情被裁员 之后跳槽到了有赞 一直从事软件测试的工作 之前没有实习经历 算是6年的工作经验吧 这6年之间完成了一次晋升 换了一家公司 有过开心满足的时
  • [JavaScript] async/await面试题 及其解析

    题目 async function async1 console log 1 await async2 console log 2 async function async2 console log 3 console log 4 setT
  • iframe简单使用 、获取iframe 、获取iframe 元素值 、iframe获取父页面的信息

    文章目录 1 iframe简单使用 2 获取iframe 3 获取iframe 元素值 4 iframe获取父页面的信息 1 iframe简单使用 标签规定一个内联框架 一个内联框架被用来在当前 HTML 文档中嵌入另一个文档 width插
  • 图像分类、目标检测、语义分割、实例分割和全景分割的区别

    1 Image Classification 图像分类 图像分类 下图左 就是对图像判断出所属的分类 比如在学习分类中数据集有人 person 羊 sheep 狗 dog 和猫 cat 四种 图像分类要求给定一个图片输出图片里含有哪些分类
  • ISTQB认证工程师学习笔记(4)——测试技术

    测试技术一般可分为黑盒测试 白盒测试 基于经验的测试技术 黑盒测试 黑盒测试技术 也称为行为的或基于行为的技术 基于对适当测试依据的分析 例如 正式需求文档 规格说明 用例 用户故事或业务流程 这些技术适用于功能和非功能测试 黑盒测试技术关
  • verilog 中的 log2

    对数的作用 log2是指2的对数 对于二进制的计算机系统来说非常有用 比如 10bits的地址线 可寻址的地址空间为2 10 那么反过来对于1024深的地址空间 需要多少bits的地址线 需要用log2 depth 来计算 如何求对数 sy
  • 爬取中国移动用户问答

    最近一个好朋友在搞爬虫 问了很多问题 所以干脆直接写了一个范例 这个程序整体要两次解析网页 第一层是分析网页中的json数据来获取qtid 第二层是用qtid来解析获得问答所在的网页 因为在问答网页里的数据存储是引用的数据库中的数据 所以不
  • Mac系统下algs4学习环境搭建

    InterliJ下的搭建 1 官网下载algs4 rar文件 拷贝到在新建项目的libs文件夹下 然后在File gt project Structure 需要用到啦gs4的模块中导入jar包 这样在程序中引用静态类就不会报错类 termi
  • 深入Java(二):Java中的强引用、软引用、弱引用、幻像引用( 虚引用)

    在Java语言中 除了基本数据类型外 其他的都是指向各类对象的对象引用 Java中根据其生命周期的长短 将引用分为4类 1 强引用 特点 我们平常典型编码Object obj new Object 中的obj就是强引用 通过关键字new创建
  • 【python】20行代码实现有道翻译api接口调用

    文章目录 1 目标站点 2 完整代码 3 测试样例 3 1 测试样例 汉译英 3 2 测试样例 英译汉 4 调用文档 4 1 接口地址 4 2 请求方法 4 3 请求参数 4 4 请求示例 4 5 成功响应 5 接口分析 6 相关推荐 1
  • GDB下查看内存命令(x命令)

    GDB下查看内存命令 x命令 你可以使用examine命令 简写是x 来查看内存地址中的值 x命令的语法如下所示 x
  • 计算机软件摊销会计分录,财务软件摊销会计分录怎么写?

    摘要 这是一篇关于财务软件摊销会计分录怎么写 的文章 在财务软件摊销会计分录怎么写 文章中给各位财务人员讲解的是有关财务软件摊销会计分录怎么写 的会计实务处理 财务软件摊销会计分录怎么写 外帐按规定财务软件应该按无形资产处理10年摊销 或跟
  • vcruntime140.dll无法继续执行代码?vcruntime140.dll如何修复?只需要3步即可

    vcruntime140 dll是用于Microsoft Visual C Redistributable 可再发行组件 的一部分 它是一个动态链接库文件 包含了该软件包提供的运行库 在许多应用程序和游戏中 vcruntime140 dll
  • 深入理解Java中的BigInteger和 BigDecimal,再也不怕面试了

    Integer类作为int的包装类 能存储的最大整型值为2 31 1 Long类最大为2 63 1 虽然比Integer类大了很多 但是也是有限的 如果想要表示更大的整数 不管是基本数据类型还是它们对应的包装类都无法实现 Java中提供了两
  • 20221102模型调用 报错invalid load key, ‘\x00‘.invalid load key, ‘\x10‘.

    一 模型保存和调用 保存方法不一样 调用方法也不一样 joblib import joblib 保存 joblib dump model model1 pkl 加载 model joblib load open model1 pkl rb
  • 深拷贝构造函数和浅拷贝构造函数

    深拷贝构造函数和浅拷贝构造函数 拷贝构造函数有深拷贝构造函数和浅拷贝构造函数 分类 拷贝构造函数分为深拷贝构造函数和浅拷贝构造函数 区别 浅拷贝 即只复制对象空间 不复制对象资源 深拷贝 既复制对象空间又复制资源 由C 语言提供的默认拷贝构

随机推荐

  • leetcode 3. 无重复字符的最长子串

    题目描述 初始化 ans for 初始化慢指针 0 快指针 0 in 可迭代集合 更新窗口内信息 while 窗口内不符合维护的条件 扩展或者收缩窗口 慢指针移动 if 是合法的答案 更新答案 返回 ans 给定一个字符串 s 请你找出其中
  • Spring Boot2配置Swagger2生成API接口文档

    一 Swagger2介绍 前后端分离开发模式中 api文档是最好的沟通方式 Swagger 是一个规范和完整的框架 用于生成 描述 调用和可视化 RESTful 风格的 Web 服务 及时性 接口变更后 能够及时准确地通知相关前后端开发人员
  • 数据库备份工具有哪些

    本文主要介绍下数据库备份工具 数据库备份工具有很多种 以下是一些常见的数据库备份工具 mysqldump MySQL官方提供的命令行备份工具 适用于MySQL和MariaDB数据库 它可以将数据库导出为SQL文件 方便进行备份和恢复 属于逻
  • 测试用例(进阶篇)(测试的分类)

    目录 一 测试金字塔 二 按照开发阶段划分 1 单元测试 2 集成测试 3 系统测试 4 验收测试 三 按照测试的实施组织划分 1 测试 2 测试 3 第三方 四 按照是否运行划分 1 静态测试 2 动态测试 五 按照是否手工划分 1 手工
  • Jetson Orin NX install Pytorch

    steJInstalling PyTorch for Jetson Platform NVIDIA Docshttps docs nvidia com deeplearning frameworks install pytorch jets
  • JS 常用插件——下拉刷新、上拉加载,左右滑动,移动端调试,图片预览、放大缩小、旋转

    常用插件大全 非常好用 可以达到事半功倍的效果 下拉刷新 上拉加载 mescroll 上下 左右滑动 better scroll 移动端调试 Vconsole 图片预览 放大缩小 旋转 viewerjs 对象转字符串 并以 拼接成URL q
  • Python 将数据写入csv、xlsx、xls文件中(工厂方法、封装、优雅)

    记录 将数据写入csv xlsx xls文件中 工厂方法 封装 优雅 前言 文件目录存放结构 my file save py wrapper verify param py 封装csv my csv py 工厂方法 savedata fac
  • vite、vue3本地页面正常显示不刷新,外网穿透后页面不停刷新

    明明本地不会刷新 但映射到外网就会不停刷新页面 百度了一篇CSDN文章 vite项目 通过外网域名访问 无限刷新 的解决办法 没有解决我的问题 我使用的是natapp进行外网穿透 报错信息是 WebSocket connection to
  • C++ 生成随机数

    C 库有一个名为 rand 的函数 每次调用该函数都将返回一个非负整数 要使用 rand 函数 必须在程序中包含
  • 软件工程第一次阅读作业

    项目 内容 本作业属于北航软件工程课程 博客园班级链接 作业要求请点击链接查看 作业要求 我在这门课程的目标是 成为一个具有一定经验的软件开发人员 这个作业在哪个具体方面帮助我实现目标 让我对自己目前的状况有一个更加清醒的认识 1 快速阅读
  • 【华为OD统一考试A卷

    华为OD统一考试A卷 B卷 新题库说明 2023年5月份 华为官方已经将的 2022 0223Q 1 2 3 4 统一修改为OD统一考试 A卷 和OD统一考试 B卷 你收到的链接上面会标注A卷还是B卷 请注意 根据反馈 目前大部分收到的都是
  • jQuery如何判断input元素是否获得焦点(点击编辑时)

    问题提出 如果你要判断input元素是否获得焦点 或者是否处在活动编辑状态 使用jQuery的 hasFocus 方法或 is focus 方法貌似都无效 搜索网上给出的办法 几乎净是采用上述处理方法 然并卵 都是扯淡 我的解决办法 监听点
  • Caffe中对MNIST执行train操作执行流程解析

    之前在 http blog csdn net fengbingchun article details 49849225 中简单介绍过使用Caffe train MNIST的文章 当时只是仿照caffe中的example实现了下 下面说一下
  • Windows下VVC参考软件VTM10.0编译和运行

    1 预备工作 VTM软件下载 链接https vcgit hhi fraunhofer de jvet VVCSoftware VTM tree masterhttps vcgit hhi fraunhofer de jvet VVCSof
  • Word中批量更新域的两个小方法

    一处域更新 如果只有一处需要更新 对着域右键选择 更新域 即可 多处域更新 很多需要更新的时候 可以如下操作 两种方法应该都可以 选择 打印预览 可以更新文档中的所有域 MOS认证的老师教的 CTRL A 全选 然后F9 更新 即可 自己觉
  • UE4 虚幻引擎,绑定Mesh到Skeleton骨骼插槽Socket

    1 在Skeleton骨骼中Add socket添加插槽 新建的Slot socket插槽 可以添加Preview Asset预览资产 方便查看 2 将Component组件绑定到骨骼中 新建一个StaticMesh 绑定组件到骨骼插槽 3
  • 如何学习C++

    转自 http blog csdn net yong2016 article details 9321837 看了这篇文章才知道自己最近太浮躁了 学做技术也是学做人 读者定位是两类人群 a 初学者 即将入手 C 语言 不知道如何开始 b 已
  • Tomcat 与 Nginx,Apache的区别

    Apache指的应该是Apache软件基金会下的一个项目 Apache HTTP Server Project Nginx同样也是一款开源的HTTP服务器软件 当然它也可以作为邮件代理服务器 通用的TCP代理服务器 Tomcat是Apach
  • 计算机分析学生表字段,巧用Excel数据透视表统计分析学生成绩

    巧用Excel数据透视表统计分析学生成绩 科技信息 IT论坛 SCIENCE TECHNOLOGYINFORMATION2010年第19期 巧用Excel数据透视表统计分析学生成绩 魏零 桂林航天工业高等专科学校计算机系 广西 桂林 541
  • Coverless Image Steganography Based on Generative Adversarial Network

    基于生成对抗网络的无载体图像隐写技术 摘要 传统图像隐写技术 修改 嵌入到载体图像来传输秘密信息 gt 隐写工具很容易检测到载体图像的失真 gt 秘密信息的泄露 无载体图像隐写技术 不修改载体图像就可以隐藏秘密信息 但存在容量低 质量差等问