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

论文阅读《Robust Steganography for High Quality Images》高质量因子图片的鲁棒隐写

TCSVT 2023 中国科学技术大学

 Kai Zeng, Kejiang Chen*, Weiming Zhang, Yaofei Wang, Nenghai Yu, "Robust Steganography for High Quality Images," in IEEE Transactions on Circuits and Systems for Video Technology, doi: 10.1109/TCSVT.2023.3250750. 


一、问题背景

随着在线社交网络深入人们生活,大家习惯将手机拍摄的照片分享到社交网络上,因此利用手机拍摄图片通过社交网络进行隐蔽信息传输已经成为一种合理的行为。但是,手机拍摄保存通常是高质量因子JPEG图像,上传到社交网络后会以低质量因子重新压缩,而现有鲁棒隐写方法通常需要使用低质量因子的图片作为载体,缺少高质量因子JPEG图像鲁棒隐写的研究。

二、提出的方法

针对这个问题,提出一种用于高质量图像的鲁棒自适应隐写术方法(PMAS)。PMAS方法包含精细抖动调制和补偿处理两种操作。精细抖动调制可以确保修改系数的鲁棒性,并通过减少修改幅度来提高安全性;补偿处理会修改重新压缩后发生变化的系数,以确保未修改系数的鲁棒性。

1、PMAS算法的流程

所提出的方法,即Postprocessing and precise dither Modulation based robust Adaptive Steganography method (PMAS),其流程大致如下:

  1. 生成鲁棒封面(Robust Cover):使用JPEG压缩后的载体图像(d'c)生成鲁棒载体(x),这是通过将压缩后的DCT(离散余弦变换)系数除以隐写量化步长(∆)来实现的。

  2. 计算失真(Calculate Distortion):利用选定的失真函数(如JUNIWARD或UERD)计算初始失真(ϱ)。通过引入一个调整函数(F),调整修改幅度对失真分配的影响。

  3. 使用STC编码(Distortion Coding with STC):利用综合征-特里利斯编码(Syndrome-Trellis Codes,STC)根据初始失真和调整后的失真来编码信息。

  4. 精确抖动调制(Modify with PDM):应用精确抖动调制(PDM)来修改载体图像的DCT系数,以嵌入信息。PDM旨在减少修改幅度,从而提高安全性。

  5. 补偿处理(Post-process):对经过JPEG压缩的隐写图像进行后处理,以增强未修改系数的鲁棒性。后处理通过识别在压缩过程中发生变化的系数,并对其进行额外的修改来实现。

  6. 迭代过程:后处理可能需要迭代多轮,直到隐写图像在JPEG压缩后能够保持稳定,确保信息可以正确提取。

  7. 消息嵌入与提取:在嵌入过程中,通过上述步骤生成最终的隐写图像(dy),用于传输。在提取过程中,接收方首先生成鲁棒载体,然后利用错误更正编码(ECC)和STC从隐写图像中提取信息。

整个PMAS方法的核心在于通过精确的抖动调制和补偿处理来平衡隐写的鲁棒性和安全性,同时针对高质量图像在社交网络中常见的重新压缩情况(Downward Robust)进行优化。

2、精细抖动调制

精确抖动调制(Precise Dither Modulation, PDM)是文章中提出的一种用于改进隐写术安全性的方法,特别是在处理高QF(Quality Factor)图像时。在传统的抖动调制(Dither Modulation, DM)方法中,隐写修改通常涉及到对DCT(Discrete Cosine Transform)系数进行±1的修改。然而,当处理高QF图像且需要抵抗JPEG压缩时,可能需要更大的修改幅度来确保隐写的鲁棒性,这会牺牲安全性。

PDM的设计目的是在保证隐写鲁棒性的同时,减少修改幅度,从而提高隐写的安全性。以下是PDM的关键步骤和特点:

  1. 选择隐写量化步长(Steganographic Quantization Step):在“Downward Robust”场景中,选择一个大于1的隐写量化步长(∆),以增强对JPEG压缩的鲁棒性。

  2. 生成鲁棒载体(Robust Cover)通过将DCT系数除以隐写量化步长来生成鲁棒载体

  3. 计算系数的鲁棒性(Calculate Coefficient Robustness):根据系数与量化区间边缘的距离来评估其鲁棒性。距离越远,鲁棒性越高。

  4. 精确修改(Precise Modification)只对那些鲁棒性高于某个阈值(t)的系数进行修改。这意味着只有当系数足够鲁棒时,才会进行隐写修改。修改时,选择距离当前系数最近的量化区间内的值,而不是简单地选择区间中点。这减少了修改幅度,从而提高了安全性。

  5. 保持隐写约束(Maintain Steganographic Constraints):确保修改后的系数满足隐写约束,即隐写量化后的值与预期的隐写消息相匹配。

  6. 优化安全性(Optimize Security):通过减少修改幅度,降低隐写算法被检测到的可能性。

PDM通过精确控制修改幅度和选择性地对系数进行修改,实现了在高QF图像中嵌入信息的同时,保持对JPEG压缩的鲁棒性,并提高了隐写安全性。这种方法特别适用于需要在社交网络等环境中分享高质量图片的场景,这些图片往往会被以较低的QF重新压缩。

补充:PDM简单理解版本如下:

  • 选择步长:首先,PDM会根据图片的压缩程度选择一个合适的步长,这个步长决定了我们调整数值的大小。
  • 评估鲁棒性:然后,PDM会评估每个数值调整的安全性和稳定性,确保调整后的数值在图片被压缩后仍然能够保持稳定。
  • 精确修改:接着,PDM只会对那些评估结果良好的数值进行调整,并且调整的幅度尽可能小,这样即使图片被压缩,隐藏的信息也不容易丢失。

3、补偿处理

 补偿处理(Post processing),在文章中提出的方法里,是用来增强隐写算法鲁棒性的一个关键步骤。它主要针对那些在JPEG重新压缩过程中可能发生变化的DCT(离散余弦变换)系数进行额外的修改,以确保这些系数在经过重新压缩后仍然能够保持稳定,从而保证隐写信息的正确提取。下面是补偿处理的详细步骤:

  1. 生成初始隐写图像:首先,通过精确抖动调制(PDM)或其他方法,将秘密信息嵌入到封面图像中,生成初始的隐写图像。

  2. 重新压缩隐写图像:将初始隐写图像通过模拟社交网络的JPEG压缩过程进行重新压缩,得到重新压缩后的隐写图像。

  3. 分析变化:对比重新压缩前后的隐写图像的DCT系数,找出那些在重新压缩过程中发生变化的系数。这些变化可能会导致隐写信息的丢失或错误。

  4. 确定补偿目标:根据分析结果,确定需要进行补偿处理的DCT系数。这些通常是那些在重新压缩后发生变化,且可能影响隐写信息提取的系数。

  5. 执行补偿修改:对于每一个需要补偿的DCT系数,根据其在重新压缩后的位置,进行适当的修改。这个修改的目的是将这些系数调整到一个更稳定的状态,减少它们在未来再次压缩时发生变化的可能性。

  6. 迭代过程:补偿处理可能需要多次迭代,每次迭代都包括重新压缩隐写图像、分析变化、执行补偿修改等步骤。每次迭代后,隐写图像的鲁棒性都会得到一定程度的提升。

  7. 结束条件:当经过一定次数的迭代后,或者当隐写图像在重新压缩后的变化低于某个阈值时,补偿处理可以结束。这时,得到的隐写图像在JPEG重新压缩下具有较好的鲁棒性。

补偿处理的目的是为了弥补在隐写过程中由于JPEG压缩引入的不稳定性,通过额外的修改来提高隐写信息的提取准确性。这种方法虽然可以提高鲁棒性,但同时也可能会对隐写的安全性产生一定的影响,因为它增加了对图像的修改。因此,在设计隐写算法时,需要在鲁棒性和安全性之间找到一个平衡点。

4、基于精确抖动调制的鲁棒隐写术算法

三、实验 (后续补充。。)

1、模拟的失真类型:

  • 文章中使用了JUNIWARD和UERD两种失真函数来模拟和计算隐写过程中的失真。

2、实验对比方法:

  • 将PMAS与不使用后处理、不使用精确抖动调制(使用传统的抖动调制,GDM)以及不进行失真调整的基线方法进行比较。
  • 通过改变后处理轮数和失真调整函数,评估了PMAS在不同条件下的鲁棒性和安全性。
  • 使用DCTR特征和SRNet神经网络作为检测器,评估了隐写算法的安全性

 补充处理

精细化抖动机制

 使用DCTR特征和SRNet神经网络作为检测器,评估了隐写算法的安全性。


四、Code资源

中国科学技术大学鲁棒隐写相关工作开源代码合集:

https://github.com/coriverchen/Robust_Steganography

相关文章:

论文阅读《Robust Steganography for High Quality Images》高质量因子图片的鲁棒隐写

TCSVT 2023 中国科学技术大学 Kai Zeng, Kejiang Chen*, Weiming Zhang, Yaofei Wang, Nenghai Yu, "Robust Steganography for High Quality Images," in IEEE Transactions on Circuits and Systems for Video Technology, doi: 10.1109/TCSVT.2023.3250750. 一、…...

node前端开发基本设置

加快下载源速度 要将 npm 切换到淘宝的源镜像,你可以按照以下步骤操作: 查看当前 npm 源: npm config get registry这个命令会显示当前使用的 npm 源地址,默认情况下它会是 https://registry.npmjs.org/。 切换到淘宝镜像&#…...

深入掌握:如何进入Docker容器并运行命令

感谢浪浪云支持发布 浪浪云活动链接 :https://langlangy.cn/?i8afa52 文章目录 查看正在运行的容器使用 docker exec 命令进入容器进入容器的交互式 shell在容器中运行命令 使用 docker attach 命令附加到容器检查容器日志退出容器从 docker exec 方式退出从 docke…...

把设计模式用起来(3)用不好的原因之时机不对

上一篇:《把设计模式用起来(3)——用不好的原因 之 实践不足》https://blog.csdn.net/nanyu/article/details/141939342 本篇继续讲设计模式用不好的常见原因,这是第二个:使用设计模式的时机不对。 二、时机不对 这里…...

【机器学习随笔】基于kmeans的车牌类型分类注意点

kmeans是无监督的聚类算法,可用于数据的分类。本文尝试用kmeans对车牌类型进行分类,记录使用过程中的注意点。 kmeans使用过程中涉及两个大部分,模型与分析。模型部分包括训练模型和使用模型,分析部分主要为可视化分析。两部分的主…...

matlab处理函数3

1. 直方图均衡化的 Matlab 实现 1.1 imhist 函数 功能:计算和显示数字数字图像的色彩直方图 格式:imhist(I,n) imhist(X,map) 说明:imhist(I,n) 其中,n 为指定的灰度级数目,缺省值为256;imhist(X…...

跨系统环境下LabVIEW程序稳定运行

在LabVIEW开发中,不同电脑的配置和操作系统(如Win11与Win7)可能对程序的稳定运行产生影响。为了确保程序在不同平台上都能正常且稳定运行,需要从兼容性、驱动、以及性能优化等多个方面入手。本文将详细介绍如何在不同系统环境下&a…...

开源项目低代码表单FormCreate中通过接口加载远程数据选项

在开源项目低代码表单 FormCreate 中,fetch 属性提供了强大的功能,允许从远程 API 加载数据并将其应用到表单组件中。通过灵活的配置,fetch 可以在多种场景下发挥作用,从简单的选项加载到复杂的动态数据处理。 源码地址: Github …...

k8s的搭建

一、安装环境 准备三台主机: 192.168.1.66 k8s-master 192.168.1.77 k8s-node01 192.168.1.88 k8s-node02 网段: Pod ⽹段 172.16.0.0/16 Service ⽹段 10.96.0.0/16 注:宿主机⽹段、Pod…...

人工智能与机器学习原理精解【19】

文章目录 马尔科夫链概述定义与性质分类应用领域收敛性马尔科夫链蒙特卡洛方法 马尔科夫链原理详解一、定义二、特性三、数学描述四、类型五、应用六、示例定义性质转移概率矩阵应用举例结论 马尔科夫链在语音识别和语音合成中的应用一、马尔科夫链在语音识别中的应用1. 基本概…...

DingoDB:多模态向量数据库的实践与应用

DingoDB:多模态向量数据库的实践与应用 1. 引言 在当今数据驱动的时代,高效处理和分析大规模、多样化的数据变得至关重要。DingoDB作为一个分布式多模态向量数据库,为我们提供了一个强大的解决方案。本文将深入探讨DingoDB的特性、安装过程…...

03.01、三合一

03.01、[简单] 三合一 1、题目描述 三合一。描述如何只用一个数组来实现三个栈。 你应该实现push(stackNum, value)、pop(stackNum)、isEmpty(stackNum)、peek(stackNum)方法。stackNum表示栈下标,value表示压入的值。 构造函数会传入一个stackSize参数&#xf…...

github上clone代码过程

从 GitHub 上拉取代码的过程非常简单,一般通过 git clone 命令来完成。以下是详细步骤: 下载git工具 要下载并安装 Git,你可以根据你的操作系统来选择相应的步骤。以下是如何在不同操作系统上安装 Git 的详细说明: 1. 在 Windo…...

ChatGLM3模型搭建教程

一、介绍 ChatGLM3 是智谱 AI 和清华大学 KEG 实验室联合发布的对话预训练模型。ChatGLM3-6B 是 ChatGLM3 系列中的开源模型,在保留了前两代模型对话流畅、部署门槛低等众多优秀特性的基础上,ChatGLM3-6B 引入了如下特性: 更强大的基础模型…...

多层建筑能源参数化模型和城市冠层模型的区别

多层建筑能源参数化(Multi-layer Building Energy Parameterization, BEP)模型和城市冠层模型(Urban Canopy Model, UCM)都是用于模拟城市环境中能量交换和微气候的数值模型,但它们的侧重点和应用场景有所不同。以下是…...

27. Redis并发问题

1. 前言 对于一个在线运行的系统,如果需要修改数据库已有数据,需要先读取旧数据,再写入新数据。因为读数据和写数据不是原子操作,所以在高并发的场景下,关注的数据可能会修改失败,需要使用锁控制。 2. 分布式场景 2.1 分布式锁场景 面试官提问: 为什么要使用分布式锁?…...

JVM四种垃圾回收算法以及G1垃圾回收器(面试)

JVM 垃圾回收算法 标记清除算法:标记清除算法将垃圾回收分为两个阶段:标记阶段和清除阶段。 在标记阶段通过根节点,标记所有从根节点开始的对象。然后,在清除阶段,清除所有未被标记的对象 适用场合: 存活对…...

Python 数学建模——Vikor 多标准决策方法

文章目录 前言原理步骤代码实例 前言 Vikor 归根到底其实属于一种综合评价方法。说到综合评价方法,TOPSIS(结合熵权法使用)、灰色关联度分析、秩和比法等方法你应该耳熟能详。Vikor 未必比这些方法更出色,但是可以拓展我们的视野。…...

计算机网络八股总结

这里写目录标题 网络模型划分(五层和七层)及每一层的功能五层网络模型七层网络模型(OSI模型) 三次握手和四次挥手具体过程及原因三次握手四次挥手 TCP/IP协议组成UDP协议与TCP/IP协议的区别Http协议相关知识网络地址,子…...

AMD CMD UMD CommonJs ESM 的历史和区别

这几个东西都是用于定义模块规范的。有些资料会提及到这些概念,不理清楚非常容易困惑。 ESM(ES Module) 这个实际上我们是最熟悉的,就是ES6的模块功能。出的最晚,因为是官方出品,所以大势所趋&#xff0c…...

人工智能数据基础之微积分入门-学习篇

目录 导数概念常见导数和激活导数python代码绘制激活函数微分概念和法则、积分概念微积分切线切面代码生成案例链式求导法则反向传播算法(重要) 一、概念 二、常见导数及激活导数 常见激活函数及其导数公式: 在神经网络中,激活函数用于引入非线性因素&…...

【PSINS】ZUPT代码解析(PSINS_SINS_ZUPT)|MATLAB

这篇文章写关于PSINS_SINS_ZUPT的相关解析。【值得注意的是】:例程里面给的这个m文件的代码,并没有使用ZUPT的相关技术,只是一个速度观测的EKF 简述程序作用 主要作用是进行基于零速更新(ZUPT)的惯性导航系统(INS)仿真和滤波 什么是ZUPT ZUPT是Zero Velocity Update(…...

多态(上)【C++】

文章目录 多态的概念多态的实现多态产生的条件什么是虚函数?虚函数的重写和协变重写协变 析构函数的重写为什么有必要要让析构函数构成重写? 多态的概念 C中的多态是面向对象编程(OOP)的一个核心特性,指的是同一个接口…...

如何驱动一枚30年前的音源芯片,YMF288驱动手记 Part2

一些问题 在上一篇里面虽然策划了想要驱动YMF288所需要做的事情以及目标。但是,在板子打出来后,我在进一步的研究中,发现我犯了个错误,那就是YMF288并不是使用现在很多轻量化的嵌入式,比如ESP32常用的I2S协议的&#x…...

yarn webpack脚手架 react+ts搭建项目

安装 Yarn 首先,确保你已经安装了 Node.js 和 Yarn。如果还没有安装 Yarn,可以通过以下命令安装: npm install -g yarn创建项目 使用 create-react-app 脚手架创建一个带有 TypeScript 的项目,node更新到最新版,并指定…...

防蓝光护眼灯有用吗?五款防蓝光效果好的护眼台灯推荐

现在孩子的很多兴趣班和课后辅导班都是在线上举行,通常对着手机电脑长时间。电子产品有大量蓝光和辐射,会伤害到孩子的眼睛。但为了学习,也是没办法。护眼台灯的出现可以让孩子们的眼睛得到保护,防止蓝光对眼睛的伤害。防蓝光护眼…...

Mac使用Elasticsearch

下载 Past Releases of Elastic Stack Software | Elastic 解压tar -xzvf elasticsearch-8.15.1-darwin-x86_64.tar.gz 修改配置文件config/elasticsearch.yml xpack.security.enabled: false xpack.security.http.ssl: enabled: false 切换目录 cd elasticsearch-8.15.1/…...

DevOps -CI/CD 与自动化部署

DevOps - CI/CD 与自动化部署详解 DevOps 是一种结合开发(Development)与运维(Operations)的方法论,旨在通过工具和文化变革,促进软件开发和运维之间的协作,提升软件交付的效率、质量和稳定性。…...

单体架构系统是不是已经彻底死亡?

单体架构系统并未“彻底死亡”,尽管在复杂和大规模的应用场景中,它可能不再是首选的架构模式。单体架构系统,也称为巨石系统(Monolithic),在软件发展过程中是最广泛的架构风格之一,出现时间最早…...

mathorcup发邮件:参赛必看邮件撰写技巧?

mathorcup发邮件的注意事项?如何使用mathorcup发信? 无论是提交参赛作品、咨询比赛规则,还是与组委会沟通,一封清晰、专业的邮件都能为你赢得更多机会。AokSend将为你详细介绍mathorcup发邮件的撰写技巧,帮助你在比赛…...