当前位置: 首页 > news >正文

【论文阅读】PRIS: Practical robust invertible network for image steganography

内容简介

论文标题:PRIS: Practical robust invertible network for image steganography

作者:Hang Yang, Yitian Xu∗, Xuhua Liu∗, Xiaodong Ma∗

发表时间:2024年4月11日 Engineering Applications of Artificial Intelligence

关键字:图像隐写、稳健、深度学习、可逆神经网络

阅读目的

阅读方式:泛读

摘要

主要工作:为了提高图像隐写的鲁棒性,本文提出了一种实用的图像隐写鲁棒性可逆网络(PRIS),它基于可逆神经网络,在提取过程前后分别放置两个增强模块,采用三步训练策略。

代码 : 代码可在https://github.com/yanghangAI/PRIS上获得,我们的模型在http://yanghang.site/hide/上的实际演示。

引言

提出当前图像隐写一个显著的问题是图像隐写的鲁棒性

显著限制是对舍入误差的忽略,这个问题的出现是由于深度学习框架中使用的数值精度(通常是32位)和图像的标准位深度(通常是8位)之间的差异。

基准模型:HiNet

主要贡献

  1. 提出了一种具有两个增强模块的鲁棒可逆神经网络,用于多种攻击下的图像隐写。
  2. 我们在训练过程中引入了三步训练策略,以获得更好的鲁棒性。
  3. 考虑舍入误差,提出了一种梯度近似函数来解决舍入运算引起的不可导问题。
  4. 实验结果表明,本文提出的PRIS在鲁棒性和实用性方面都优于现有的先进方法,特别是在容器图像存在细微扭曲和不可避免的舍入误差时。

相关工作

基于传统的图像隐写

传统的图像隐写是在空间域和频域,空间域的方法为最小有效位(LSB)、像素值查分(PVD);频域的方法为离散余弦变换(DCT)、离散傅里叶变换(DFT)、离散小波变换(DWT)等

基于深度学习的图像隐写

HiDDeN:一个创新的端到端基于深度学习的图像隐写框架。它使用一个包含两个卷积神经网络(cnn)和一个对抗网络的编码器-解码器架构,以改进编码器损失,通过在训练期间调整参数,在容量、保密性和噪声鲁棒性之间实现灵活的权衡。

Ssgan:将深度学习与传统的 LSB 结合,通过生成对抗网络(Gans)生成封面图像,LSB 嵌入和提取信息。

潜在向量优化的生成图像隐写

基于去噪扩散模型的新型隐写方法

可逆神经网络

学习数据分布和潜在分布中的映射,INN 在同一网络中执行前向和后向传播,同时充当特征编码器和图像生成器。

CycleGan:使用两个生成器和一个周期损失实现双向映射

其他的 GLow、i-ResNet 是做出了改进

将 INN 引入图像隐写,获取到了最先进的 SOTA 效果

但是面对的一个问题是没有解决舍入误差,本文为解决这些问题,在提取前后分别加入了预增强和后增强模块,提出一个梯度近似函数解决舍入误差的不可微问题。

方法

整体结构

图一:PRIS的框架包括可逆块和增强模块两大部分,其中DWT和IWT分别表示离散小波变换和逆小波变换。左边块是嵌入过程,右边块是提取过程。z 是服从正态分布的随机噪声。

这个是整个模型的结构图, x h , x s x_h,x_s xh,xs 先通过离散小波变换变换到频域,通过可逆块输出两幅图像,对于 x h x_h xh 将会进一步经过 IWT 转换为空间域,输出为 x c x_c xc x c x_c xc会收到不同的攻击,然后变为 x d x_d xd,然后经过预增强模块、DWT、可逆块,同时,得到高斯分布图像 z 也被输入到可逆块中,最终得到两幅图像,在频域上显示并提取秘密图像,z 经过 IWT 得到 解密后的 x e x_e xe.

可逆块

增强模块

预增强模块以变形后的容器图像为输入,输出增强后的容器图像,便于通过可逆块进行提取。后增强模块将提取的图像作为输入,输出与原始秘密图像更相似的增强提取图像。

损失函数

PSNR:封面和容器、秘密和揭示图象之间,目的是最大化 PSNR

引入了两个损失

总损失为两种损失的加权和

作者提到,如果过于关注容器的损失而不关注揭示秘密图像的损失,则会出现无限大的 PSNR-C,极低的 PSNR-S,这个和我上次自己训练的结果,容器很模糊,但是秘密图像可以看出来有些类似,可能是上次我的损失函数设置的有问题。

未来解决这种问题,所以使用损失的加权和来作为总损失

3 步训练策略

将训练过程分为三个不同的阶段,目的是找到可逆和不可逆的平衡点

步骤1:预训练可逆模块。在这一步中,只启用可逆块,增强模块不进行前向和后向计算。这将保证整个网络的可逆性。

步骤2:预训练增强模块。在此步骤中,PRIS的所有组件都被激活,但可逆块的参数保持固定。这种方法旨在适度降低可逆性,确保它不会损害整体性能。

步骤3:微调可逆模块和增强模块。

在此步骤中,所有参数都被启用,并将在反向传播期间更新。进一步提高了系统的鲁棒性。

舍入误差为什么重要

实验

实验细节

数据集:DIV2K

输入的图像被裁剪为 224*224

对于训练数据,使用随机裁剪来更好的泛化;对于测试数据集,使用中心裁剪避免评估中的随机性,每个阶段用 1600 个 epoch,使用 Adam 优化器,初始学习率分别为 1 0 − 4.5 和 1 0 − 5.5 10^{-4.5}和10^{-5.5} 104.5105.5

消融实验

增强模块、三步训练策略和领域选择的有效性

添加了的模块分别和第一行对比,确实是有提升,但是数值上的提升并不是很大

空间域还是频域

频域隐藏图像比在空间域隐藏图像更有效。然而,频域仍然是增强模块的更好选择,因此我们进行了不同域的消融研究

计算舍入误差的不同方法

误差参数的影响

将舍入函数的梯度设置为0的视觉结果,通过忽略提取任务实现了较高的PSNR-C,本质上是在尝试学习一个相同的映射函数

与其他方法比较

总之,我们的PRIS在一系列攻击中表现出卓越的性能,与其他方法相比,它是最健壮的方法。值得注意的是,当受到高斯噪声或不可避免的舍入攻击等微妙攻击时,与之竞争的SOTA方法的性能会急剧下降,而PRIS在这些条件下保持了明显更好的恢复能力。

实践实验

给出了网站,可以自己上传进行测试

跨域实验

  1. ImageNet:此数据集包含1,000张图像,从ImageNet 2012数据集的验证分割的每个类中随机选择一张。

  2. COCO:该数据集包含来自COCO 2017验证分割的5000张图像。

  3. VOC:该数据集包含来自VOC-2007验证分割的2,510张图像。

结论

本文提出了一种实用的鲁棒可逆图像隐写网络——PRIS。它将两个增强模块和一个三步训练策略集成到可逆神经网络中。而且,以往的研究忽略了舍入失真;然而,在实际操作中不可避免,其不可微性给训练带来了挑战。因此,本文提出GAF来解决这个问题,并在其他失真之前应用舍入失真,这更现实。此外,尽管在224 × 224像素的分辨率上进行训练,PRIS在实践中可以适应任何分辨率。这些特征赋予PRIS在鲁棒性和实用性方面优于现有SOTA方法的能力,特别是在面对微妙的攻击和不可避免的舍入误差时

我的理解

基准模型是在 hinet 上,然后加了几个模块用来增强这个稳健性,论文的网络结构并没有很详细的给出,但是给出了代码,

相关文章:

【论文阅读】PRIS: Practical robust invertible network for image steganography

内容简介 论文标题:PRIS: Practical robust invertible network for image steganography 作者:Hang Yang, Yitian Xu∗, Xuhua Liu∗, Xiaodong Ma∗ 发表时间:2024年4月11日 Engineering Applications of Artificial Intelligence 关键…...

在Linux桌面系统普及化方面的一些建议

在推动Linux桌面系统普及化的过程中,可以考虑以下几个方案和策略: 用户友好性改进: 界面设计:提升用户界面的美观性和易用性,使其更接近或超越主流操作系统的用户体验。软件兼容性:确保常用软件&#xff08…...

LLM - 多模态大模型的开源评估工具 VLMEvalKit 部署与测试 教程

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/144353087 免责声明:本文来源于个人知识与公开资料,仅用于学术交流,欢迎讨论,不支持转载。 VLMEva…...

数据结构(Queue队列)

前言: 在计算机科学中,数据结构是构建高效算法和程序的基础,而队列(Queue)作为一种经典的线性数据结构,具有重要的地位。与栈(Stack)不同,队列遵循“先进先出”&#xf…...

Qt 图形框架下图形拖动后位置跳动问题

在使用Qt 的图形框架QGraphicsScene,QGraphicsView实现图形显示时。遇到一个很棘手的BUG。 使用的图形是自定义的QGraphicsObject的子类。 现象是将图形添加到画布上之后,用鼠标拖动图形,图形能正常改变位置,当再次用鼠标点击图…...

【Linux篇】走进Linux — 开启开源操作系统之旅

文章目录 初识Linux一.Linux的起源与发展二.Linux的特点三.Linux的应用四.Linux的发行版本 Linux环境搭建一.Linux环境的搭建方式二.购买云服务器三.使用XShell远程登陆到Linux 初识Linux 一.Linux的起源与发展 1.初始动机: Linux是一个功能强大的开源操作系统&am…...

如何利用DBeaver配置连接MongoDB和人大金仓数据库

最近根据国产化要求,需要使用国产数据库,但习惯使用DBeaver连接各种成熟的商业或开源数据库。因此,就想着如何继续基于该工具,连接MongoDB和人大金仓数据库,查了半天很多地方说法不统一,所以自己就简单整理…...

Android 车载虚拟化底层技术-Kernel 5.10 -Android12(multi-cards)技术实现

详细代码实现见 Android Display Graphics系列文章-汇总​​​​​​Android Display Graphics系列文章-汇总 Android Display Graphics系列文章-汇总 Android Display Graphics系列文章-汇总 本文主要包括部分: 一、Android12的Kernel 5.10版本 1.1 Kernel 5…...

Qt之点击鼠标右键创建菜单栏使用(六)

Qt开发 系列文章 - menu(六) 目录 前言 一、示例演示 二、菜单栏 1.MenuBar 2.Menu 总结 前言 QMainWindow是一个为用户提供主窗口程序的类,包含一个菜单栏(menubar)、多个工具栏(toolbars)、一个状态栏(status…...

开发一套SDK 第一弹

自动安装依赖包 添加条件使能 #ex: filetypesh bash_ls 识别 达到预期,多个硬件环境 等待文件文件系统挂在完成 或者创建 /sys/class/ 属性文件灌入配置操作 AI 提供的 netlink 调试方法,也是目前主流调用方法,socket yyds #include <linux/module.h> #include <linux…...

sftp+sshpass

实现场景&#xff0c;要求客户端定时将本地的日志文件传输到服务器。 工作环境ubuntu&#xff0c;注意不通操作系统的版本不通&#xff0c;依赖的工具的版本也有所不同 实现目标需要客户端满足安装工具&#xff1a; 1、下载安装sshpass ---安装命令&#xff1a;sudo apt-ge…...

【机器学习与数据挖掘实战】案例01:基于支持向量回归的市财政收入分析

【作者主页】Francek Chen 【专栏介绍】 ⌈ ⌈ ⌈机器学习与数据挖掘实战 ⌋ ⌋ ⌋ 机器学习是人工智能的一个分支&#xff0c;专注于让计算机系统通过数据学习和改进。它利用统计和计算方法&#xff0c;使模型能够从数据中自动提取特征并做出预测或决策。数据挖掘则是从大型数…...

Idea实现定时任务

定时任务 什么是定时任务&#xff1f; 可以自动在项目中根据设定的时长定期执行对应的操作 实现方式 Spring 3.0 版本之后自带定时任务&#xff0c;提供了EnableScheduling注解和Scheduled注解来实现定时任务功能。 使用SpringBoot创建定时任务非常简单&#xff0c;目前主要…...

Linux 安装NFS共享文件夹

程序默认使用2049端口&#xff0c;如果被占用需要修改端口104设置为服务端 122设置为客户端 一、在线安装&#xff08;服务端和客户端执行&#xff09; yum install nfs-utils rpcbind -y二、配置启动参数&#xff08;服务端执行&#xff09; 104服务器/mnt路径下创建shareda…...

bash 判断内存利用率是否高于60%

在 Bash 脚本中&#xff0c;可以通过 free 命令获取内存利用率&#xff0c;然后结合 awk 和条件判断语句实现监控内存利用率是否高于 60%。以下是一个示例脚本&#xff1a; 1. 示例脚本 #!/bin/bash# 获取总内存和已使用内存 total_mem$(free | awk /Mem:/ {print $2}) used_…...

推送(push)项目到gitlab

文章目录 1、git init1.1、在当前目录中显示隐藏文件&#xff1a;1.2、查看已有的远程仓库1.3、确保你的本地机器已经生成了 SSH 密钥&#xff1a;1.4、将生成的公钥文件&#xff08;通常位于 ~/.ssh/id_rsa.pub&#xff09;复制到 GitLab 的 SSH 设置中&#xff1a;1.5、测试 …...

centos9升级OpenSSH

需求 Centos9系统升级OpenSSH和OpenSSL OpenSSH升级为openssh-9.8p1 OpenSSL默认为OpenSSL-3.2.2&#xff08;根据需求进行升级&#xff09; 将源码包编译为rpm包 查看OpenSSH和OpenSSL版本 ssh -V下载源码包并上传到服务器 openssh最新版本下载地址 wget https://cdn.openb…...

硬件成本5元-USB串口采集电表数据完整方案-ThingsPanel快速入门

ThingsPanel开源物联网平台支持广泛的协议&#xff0c;灵活自由&#xff0c;本文介绍ThingsPanel通过串口来采集电表数据&#xff0c;简单易行&#xff0c;成本低廉&#xff0c;适合入门者学习试验&#xff0c;也适合一些特定的应用场景做数据采集。 适用场景&#xff1a; 降低…...

在AWS EMR上用Hive、Spark、Airflow构建一个高效的ETL程序

在AWS EMR&#xff08;Elastic MapReduce&#xff09;上构建一个高效的ETL程序&#xff0c;使用Hive作为数据仓库&#xff0c;Spark作为计算引擎&#xff0c;Airflow作为调度工具时&#xff0c;有几个关键的设计与实施方面需要注意。 在AWS EMR上构建高效的ETL程序&#xff0c;…...

前端(四)css选择器、css的三大特性

css选择器、css的三大特性 文章目录 css选择器、css的三大特性一、css介绍二、css选择器2.1 基本选择器2.2 组合选择器2.3 交集并集选择器2.4序列选择器2.5属性选择器2.6伪类选择器2.7伪元素选择器 三、css三大特性3.1 继承性3.2 层叠性3.3 优先级 一、css介绍 CSS全称为Casca…...

设计模式和设计原则回顾

设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...

UE5 学习系列(三)创建和移动物体

这篇博客是该系列的第三篇&#xff0c;是在之前两篇博客的基础上展开&#xff0c;主要介绍如何在操作界面中创建和拖动物体&#xff0c;这篇博客跟随的视频链接如下&#xff1a; B 站视频&#xff1a;s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...

从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路

进入2025年以来&#xff0c;尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断&#xff0c;但全球市场热度依然高涨&#xff0c;入局者持续增加。 以国内市场为例&#xff0c;天眼查专业版数据显示&#xff0c;截至5月底&#xff0c;我国现存在业、存续状态的机器人相关企…...

CentOS下的分布式内存计算Spark环境部署

一、Spark 核心架构与应用场景 1.1 分布式计算引擎的核心优势 Spark 是基于内存的分布式计算框架&#xff0c;相比 MapReduce 具有以下核心优势&#xff1a; 内存计算&#xff1a;数据可常驻内存&#xff0c;迭代计算性能提升 10-100 倍&#xff08;文档段落&#xff1a;3-79…...

质量体系的重要

质量体系是为确保产品、服务或过程质量满足规定要求&#xff0c;由相互关联的要素构成的有机整体。其核心内容可归纳为以下五个方面&#xff1a; &#x1f3db;️ 一、组织架构与职责 质量体系明确组织内各部门、岗位的职责与权限&#xff0c;形成层级清晰的管理网络&#xf…...

页面渲染流程与性能优化

页面渲染流程与性能优化详解&#xff08;完整版&#xff09; 一、现代浏览器渲染流程&#xff08;详细说明&#xff09; 1. 构建DOM树 浏览器接收到HTML文档后&#xff0c;会逐步解析并构建DOM&#xff08;Document Object Model&#xff09;树。具体过程如下&#xff1a; (…...

【配置 YOLOX 用于按目录分类的图片数据集】

现在的图标点选越来越多&#xff0c;如何一步解决&#xff0c;采用 YOLOX 目标检测模式则可以轻松解决 要在 YOLOX 中使用按目录分类的图片数据集&#xff08;每个目录代表一个类别&#xff0c;目录下是该类别的所有图片&#xff09;&#xff0c;你需要进行以下配置步骤&#x…...

AI编程--插件对比分析:CodeRider、GitHub Copilot及其他

AI编程插件对比分析&#xff1a;CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展&#xff0c;AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者&#xff0c;分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...

优选算法第十二讲:队列 + 宽搜 优先级队列

优选算法第十二讲&#xff1a;队列 宽搜 && 优先级队列 1.N叉树的层序遍历2.二叉树的锯齿型层序遍历3.二叉树最大宽度4.在每个树行中找最大值5.优先级队列 -- 最后一块石头的重量6.数据流中的第K大元素7.前K个高频单词8.数据流的中位数 1.N叉树的层序遍历 2.二叉树的锯…...

Angular微前端架构:Module Federation + ngx-build-plus (Webpack)

以下是一个完整的 Angular 微前端示例&#xff0c;其中使用的是 Module Federation 和 npx-build-plus 实现了主应用&#xff08;Shell&#xff09;与子应用&#xff08;Remote&#xff09;的集成。 &#x1f6e0;️ 项目结构 angular-mf/ ├── shell-app/ # 主应用&…...