【论文阅读】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
主要贡献:
- 提出了一种具有两个增强模块的鲁棒可逆神经网络,用于多种攻击下的图像隐写。
- 我们在训练过程中引入了三步训练策略,以获得更好的鲁棒性。
- 考虑舍入误差,提出了一种梯度近似函数来解决舍入运算引起的不可导问题。
- 实验结果表明,本文提出的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} 10−4.5和10−5.5
消融实验
增强模块、三步训练策略和领域选择的有效性

添加了的模块分别和第一行对比,确实是有提升,但是数值上的提升并不是很大
空间域还是频域
频域隐藏图像比在空间域隐藏图像更有效。然而,频域仍然是增强模块的更好选择,因此我们进行了不同域的消融研究
计算舍入误差的不同方法
误差参数的影响

将舍入函数的梯度设置为0的视觉结果,通过忽略提取任务实现了较高的PSNR-C,本质上是在尝试学习一个相同的映射函数
与其他方法比较
总之,我们的PRIS在一系列攻击中表现出卓越的性能,与其他方法相比,它是最健壮的方法。值得注意的是,当受到高斯噪声或不可避免的舍入攻击等微妙攻击时,与之竞争的SOTA方法的性能会急剧下降,而PRIS在这些条件下保持了明显更好的恢复能力。
实践实验
给出了网站,可以自己上传进行测试
跨域实验
-
ImageNet:此数据集包含1,000张图像,从ImageNet 2012数据集的验证分割的每个类中随机选择一张。
-
COCO:该数据集包含来自COCO 2017验证分割的5000张图像。
-
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桌面系统普及化的过程中,可以考虑以下几个方案和策略: 用户友好性改进: 界面设计:提升用户界面的美观性和易用性,使其更接近或超越主流操作系统的用户体验。软件兼容性:确保常用软件(…...
LLM - 多模态大模型的开源评估工具 VLMEvalKit 部署与测试 教程
欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/144353087 免责声明:本文来源于个人知识与公开资料,仅用于学术交流,欢迎讨论,不支持转载。 VLMEva…...
数据结构(Queue队列)
前言: 在计算机科学中,数据结构是构建高效算法和程序的基础,而队列(Queue)作为一种经典的线性数据结构,具有重要的地位。与栈(Stack)不同,队列遵循“先进先出”…...
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
实现场景,要求客户端定时将本地的日志文件传输到服务器。 工作环境ubuntu,注意不通操作系统的版本不通,依赖的工具的版本也有所不同 实现目标需要客户端满足安装工具: 1、下载安装sshpass ---安装命令:sudo apt-ge…...
【机器学习与数据挖掘实战】案例01:基于支持向量回归的市财政收入分析
【作者主页】Francek Chen 【专栏介绍】 ⌈ ⌈ ⌈机器学习与数据挖掘实战 ⌋ ⌋ ⌋ 机器学习是人工智能的一个分支,专注于让计算机系统通过数据学习和改进。它利用统计和计算方法,使模型能够从数据中自动提取特征并做出预测或决策。数据挖掘则是从大型数…...
Idea实现定时任务
定时任务 什么是定时任务? 可以自动在项目中根据设定的时长定期执行对应的操作 实现方式 Spring 3.0 版本之后自带定时任务,提供了EnableScheduling注解和Scheduled注解来实现定时任务功能。 使用SpringBoot创建定时任务非常简单,目前主要…...
Linux 安装NFS共享文件夹
程序默认使用2049端口,如果被占用需要修改端口104设置为服务端 122设置为客户端 一、在线安装(服务端和客户端执行) yum install nfs-utils rpcbind -y二、配置启动参数(服务端执行) 104服务器/mnt路径下创建shareda…...
bash 判断内存利用率是否高于60%
在 Bash 脚本中,可以通过 free 命令获取内存利用率,然后结合 awk 和条件判断语句实现监控内存利用率是否高于 60%。以下是一个示例脚本: 1. 示例脚本 #!/bin/bash# 获取总内存和已使用内存 total_mem$(free | awk /Mem:/ {print $2}) used_…...
推送(push)项目到gitlab
文章目录 1、git init1.1、在当前目录中显示隐藏文件:1.2、查看已有的远程仓库1.3、确保你的本地机器已经生成了 SSH 密钥:1.4、将生成的公钥文件(通常位于 ~/.ssh/id_rsa.pub)复制到 GitLab 的 SSH 设置中:1.5、测试 …...
centos9升级OpenSSH
需求 Centos9系统升级OpenSSH和OpenSSL OpenSSH升级为openssh-9.8p1 OpenSSL默认为OpenSSL-3.2.2(根据需求进行升级) 将源码包编译为rpm包 查看OpenSSH和OpenSSL版本 ssh -V下载源码包并上传到服务器 openssh最新版本下载地址 wget https://cdn.openb…...
硬件成本5元-USB串口采集电表数据完整方案-ThingsPanel快速入门
ThingsPanel开源物联网平台支持广泛的协议,灵活自由,本文介绍ThingsPanel通过串口来采集电表数据,简单易行,成本低廉,适合入门者学习试验,也适合一些特定的应用场景做数据采集。 适用场景: 降低…...
在AWS EMR上用Hive、Spark、Airflow构建一个高效的ETL程序
在AWS EMR(Elastic MapReduce)上构建一个高效的ETL程序,使用Hive作为数据仓库,Spark作为计算引擎,Airflow作为调度工具时,有几个关键的设计与实施方面需要注意。 在AWS EMR上构建高效的ETL程序,…...
前端(四)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…...
网络编程(Modbus进阶)
思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...
【Linux】shell脚本忽略错误继续执行
在 shell 脚本中,可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行,可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令,并忽略错误 rm somefile…...
51c自动驾驶~合集58
我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留,CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制(CCA-Attention),…...
Leetcode 3577. Count the Number of Computer Unlocking Permutations
Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接:3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯,要想要能够将所有的电脑解锁&#x…...
工程地质软件市场:发展现状、趋势与策略建议
一、引言 在工程建设领域,准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具,正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...
学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1
每日一言 生活的美好,总是藏在那些你咬牙坚持的日子里。 硬件:OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写,"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...
Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决
Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决 问题背景 在一个基于 Spring Cloud Gateway WebFlux 构建的微服务项目中,新增了一个本地验证码接口 /code,使用函数式路由(RouterFunction)和 Hutool 的 Circle…...
安卓基础(aar)
重新设置java21的环境,临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的: MyApp/ ├── app/ …...
SiFli 52把Imagie图片,Font字体资源放在指定位置,编译成指定img.bin和font.bin的问题
分区配置 (ptab.json) img 属性介绍: img 属性指定分区存放的 image 名称,指定的 image 名称必须是当前工程生成的 binary 。 如果 binary 有多个文件,则以 proj_name:binary_name 格式指定文件名, proj_name 为工程 名&…...
BLEU评分:机器翻译质量评估的黄金标准
BLEU评分:机器翻译质量评估的黄金标准 1. 引言 在自然语言处理(NLP)领域,衡量一个机器翻译模型的性能至关重要。BLEU (Bilingual Evaluation Understudy) 作为一种自动化评估指标,自2002年由IBM的Kishore Papineni等人提出以来,…...
