图像处理之《隐写网络的隐写术》论文阅读

news2025/1/19 8:07:04

一、文章摘要

隐写术是一种在双方之间进行秘密通信的技术。随着深度神经网络(DNN)的快速发展,近年来越来越多的隐写网络被提出,并显示出良好的性能。与传统的手工隐写工具不同,隐写网络的规模相对较大。如何在公共信道上秘密传输隐写网络引起了人们的关注,这是隐写技术在实际应用中的关键阶段。为了解决这一问题,本文提出了一种新的隐写网络隐写方案。不像现有的隐写方案,其重点是微妙的修改封面数据,以适应秘密。我们建议将隐写网络(称为秘密DNN模型)伪装成执行普通机器学习任务(称为隐写任务)的隐写DNN模型。在模型伪装过程中,我们在秘密DNN模型中选择和调整一个过滤器子集,以保持其在秘密任务上的功能,其中剩余的过滤器根据部分优化策略重新激活,将整个秘密DNN模型伪装成一个隐写DNN模型。秘密DNN模型可以在需要时从隐写DNN模型中恢复。已经进行了各种实验来证明我们提出的方法在隐写网络和一般DNN模型的隐蔽通信方面的优势。
在这里插入图片描述

二、问题公式化

给定要伪装的秘密DNN模型,我们的目标是选择和调整过滤器的子集以保持秘密DNN的功能,其中剩余的过滤器被重新激活,使整个模型在普通机器学习任务(比如一个隐写任务)上工作,以建立一个用于模型伪装的隐写 DNN模型。必要时可以从隐写DNN模型中恢复秘密DNN模型,如图2所示。
在这里插入图片描述
图2 DNN模型伪装与恢复的实例

我们将秘密和隐写 DNN模型分别表示为Θ和~ Θ,其中~Θ是对Θ进行伪装后的优化。我们使用两个数据集,一个秘密数据集和一个隐写数据集对秘密和隐写任务进行模型伪装,表示为Dse = {xe,ye}和Dst = {xt,yt},其中xe,xt为样本,ye,yt为标签。我们进一步将模型伪装过程表示为P,可以表示为
在这里插入图片描述

其中ΘS是为秘密任务选择的子集,K是密钥。有了隐写深度神经网络模型,接收端可以通过以下方法恢复隐深度神经网络模型
在这里插入图片描述

其中Q为模型恢复。
对于隐蔽通信,P和Q的设计应满足以下特性。
1)可恢复性:恢复的秘密DNN模型在秘密任务上的性能应与其原始版本相似。
2)准确度:对于隐写任务,隐写DNN模型的性能要高。
3)容量:隐写DNN模型的大小不应比隐写DNN模型扩展太多,以实现高效传输。
4)不可检测性:攻击者应该很难从隐写DNN模型中识别出秘密DNN模型的存在。

三、提出的方法

我们的模型伪装首先从秘密DNN模型的卷积层中选择一个过滤器子集,这在秘密任务中很重要,但在隐写任务中微不足道。然后,我们提出了一种局部优化策略,从秘密DNN模型中获得隐写DNN模型。上述过程可以逐步执行以获得最佳性能。我们还提出了几种策略来处理现实世界应用程序中其他层中的参数。

3.1 过滤器的选择

假设秘密DNN模型(即Θ)包含L个卷积层,第L个卷积层中的滤波器可以表示为一个4维张量:Wl ϵRdl×cl×s 1×sl2,其中dl是滤波器的数量,每个滤波器包含cl个2维空间核。sl1和sl2分别对应内核的高度和宽度。将Wli,:,:,:表示为第l层中所有滤波器的第i个滤波器,将Wl:,j,:,:表示为第j个通道。忽略全连通层,我们有:Θ={W1,W2,···,WL},其中Wl={Wl1,:,:,:,Wl 2,:,:,:,··,Wldl,:,:,:}滤波器方向或Wl={Wl:,1,:,:,Wl:1,:,:,···,Wl:,cl,:,:}通道方向。

过滤器选择的目的是选择对秘密任务重要但对隐写任务不重要的过滤器。在我们的讨论中,我们把这样的过滤器称为模型伪装中的重要过滤器。对于单个机器学习任务,研究表明,可以根据滤波器权重的梯度来衡量滤波器的重要性(Dai,Yin,和Jha 2019;Yang,Lao,和Li 2021)。然而,在我们的例子中,我们想要识别那些在秘密任务中包含大梯度而在隐写任务中包含小梯度的权重的过滤器。对于秘密DNN模型Θ的第l卷积层的第i个滤波器,我们分别用GoEl i和GoTl i来衡量其对秘密任务和隐写任务的重要性,其中
在这里插入图片描述

其中AVG返回三维张量的均值,Le和Lt分别是秘密任务和隐写任务的损失函数。在这里,我们考虑了两个连续卷积层之间的相关性。这是因为第l层的滤波器Wli,:,:,:生成的特征映射将与第(l+1)层的通道Wl+1i,:,:,:进行卷积。对于某个任务,Wli,:,:,:和Wl+1i,:,:,:的权重之间存在很强的相关性。因此,我们既要考虑当前滤波器中权值的梯度,也要考虑下一层相应通道中的权值梯度。然后计算滤波器对模型伪装的重要性为
在这里插入图片描述

其中λg是用于平衡的重量。根据αli,我们从秘密DNN模型Θ中选择最重要的N个用于模型伪装的过滤器,形成执行秘密任务的子集ΘS

3.2 部分优化

部分优化的目的是使ΘS在秘密任务上工作,Θ在隐写任务上工作。首先,我们对秘密数据集ΘS中的过滤器进行微调
在这里插入图片描述

其中λe为秘密任务的学习率。然后,我们冻结ΘS,重新初始化并重新激活隐写数据集Dst上Θ中剩余的过滤器,用于以下优化问题:
在这里插入图片描述

其中C是常数空间。为此,我们引入M,一个与Θ大小相同的二进制掩码,用于部分优化,以防止ΘS在反向传播期间更新。设λt为隐写任务的学习率,⊙表示逐元素乘积,对秘密DNN模型进行如下优化,形成隐写DNN模型~Θ:
在这里插入图片描述
其中Θ[i]为Θ中的第i个参数。

3.3 渐进式模型伪装

为了从秘密DNN模型中训练出具有良好性能的秘密和隐写任务的隐写DNN模型,我们建议从秘密DNN模型Θ中逐步选择重要滤波器ΘS进行模型伪装。特别是,我们从ΘS中迭代地选择一组重要的过滤器来训练隐写 DNN模型,直到隐写 DNN模型在秘密和隐写任务上取得满意的性能。

为了简单起见,我们在第t次迭代中将重要的过滤器集表示为ΘSt,将伪装的隐写深度神经网络模型表示为~Θt,其中我们设置ΘS0 = Θ和~Θ0 = Θ进行初始化。在第t次迭代中,我们从ΘSt−1中选择最重要的前Pt个过滤器形成ΘSt,用于训练一个隐写DNN模型~Θt,其中
在这里插入图片描述

其中λp < 1为衰减因子,V为Θ中滤波器的个数。我们终止迭代,直到隐写DNN模型在秘密任务上的性能降低值大于τse,或者在秘密任务和隐写任务上分别小于τse和τst。算法1给出了上述过程的伪代码,其中αset和αstt为隐写DNN模型在秘密任务和隐写任务第t次迭代时的性能降低。
在这里插入图片描述

经过渐进式模型伪装后,我们将~Θ中每个过滤器的属性记录为L个二进制流B = {b1,b2,···,bL}。每个卷积层对应一个d1位二进制流bl,d1为该层中滤波器的个数。每个位对应一个过滤器,0表示属于ΘS,否则为1。我们将B作为辅助信息,根据主机B的密钥K,从隐写DNN模型中随机选择一组参数。具体来说,我们将B的每一位嵌入到一个选定的参数中,如下所示。我们将参数转换为整数,并根据要隐藏的位翻转其最低有效位。然后将隐含数据的参数反变换为浮点数,完成嵌入过程

在模型恢复中,接收方使用密钥K从隐写DNN模型中恢复辅助信息B,基于此我们可以识别重要的滤波器ΘS,为秘密任务建立秘密DNN模型

3.4 隐藏其他层

批处理归一化层。归一化层,如批归一化(BN) (Ioffe和Szegedy 2015)、组归一化(GN) (Wu和He 2018)、层归一化(LN) (Ba,Kiros,和Hinton 2016)和实例归一化(IN) (Ulyanov,Vedaldi,和Lempitsky 2016),在加速模型训练的收敛和性能提升方面发挥着至关重要的作用。所有这些归一化层将根据一些特征统计对中间层的特征映射进行归一化。BN在训练过程中利用特征映射的移动平均均值和标准差,这在秘密学习任务和隐写学习任务之间是完全不同的。因此,在使用BN时,我们将秘密DNN模型的相应特征统计信息作为隐藏到隐写DNN模型中的辅助信息存储在B中。其他类型的归一化层,即GN,LN,IN,不会引入额外的开销

完全连接层。完全连接层在深度神经网络模型中非常常见,我们将其视为特殊的卷积层。对于具有f个神经元的完全连接层,我们将其表示为f个过滤器,每个过滤器为c × 1 × 1张量,其中c是完全连接到该层的反向神经元的数量。

输出层自适应。在实际应用中,秘密深度神经网络模型和隐写深度神经网络模型的输出层的维度通常是不同的。为简单起见,我们将秘密和隐写 DNN模型的输出层分别表示为layere和layert。我们进一步将layere和layert中的神经元数量分别表示为Oe和Ot。当Oe < Ot时,我们对层进行上采样,使其与层的维数相同,进行自适应。然而,当Oe > 0时,不适合直接下采样本层,因为这种策略不可避免地会扭曲秘密DNN模型的功能。为了补救,我们建议在层中添加额外的神经元,将其伪装成倒数第二个全连接层。然后,我们新增一个与layert具有相同维数的最后一层进行自适应。图3显示了我们对不同情况的输出层适配。不会将所有新添加的参数都选择到ΘS中执行秘密任务。

在这里插入图片描述
图3 输出层自适应

四、实现细节

我们对我们提出的方法进行了两种类型的实验:1)隐写网络的隐写(SSN),其中秘密DNN模型是一个秘密解码器,以及2)通用网络的隐写(SGN),其中秘密DNN模型是一个通用机器学习任务的DNN模型

在SSN中,我们使用HiDDeN的秘密解码器(Zhu等人2018)作为秘密任务的秘密DNN模型,并从COCO数据集1中随机选择11000张图像组成秘密数据集,该数据集被分成10000/1000张图像进行训练和测试。我们使用原始和解码的秘密信息之间的误码率(BER)作为秘密解码器的性能指标。我们将GTSRB (Stallkamp等人 2012)分类任务作为模型伪装的隐写任务。我们使用GTSRB数据集作为隐写数据集,其中随机选择80%/20%的图像进行训练/测试。我们采用分类精度(ACC)作为评价隐写DNN模型性能的指标。

在SGN中,我们在两个著名的DNN模型上评估了我们的方法:ResNet18 (He等人2016)和U-net (Ronneberger,Fischer,和Brox 2015)。对于ResNet18,我们将Fashion-MNIST (Xiao,Rasul,和Vollgraf 2017)分类任务作为秘密任务,将CIFAR10 (Krizhevsky,Hinton等人2009)分类任务作为模型伪装的隐写任务。对于秘密和隐写数据集,我们使用它们的默认分区进行训练和测试,其中ACC作为性能指标。

对于U-net,我们假设图像去噪任务作为秘密任务,其中U-net在添加高斯噪声后,在从ImageNet (Deng等人2009)随机选择10000/1000张图像的秘密数据集上进行训练/测试。我们计算峰值单噪声比(PSNR)来评估去噪性能。我们将图像分割任务作为模型伪装的隐写任务,其中采用oxford-pet数据集(Parkh等人2012)作为步进数据集。我们随机将Oxford-Pet数据集分成三部分,包括6000张用于训练的图像,1282张用于验证的图像和100张用于测试的图像。我们采用了平均交联(mIOU)作为深度神经网络模型的性能指标。

对于SSN和SGN,我们设置λg=0.01, λe=λt=0.001, λp=0.9, τst=0.01。对于τse,我们分别为HiDDeN、ResNet18和U-net的秘密解码器设置0.0001、0.01和0.5。我们通过Kaimig初始化重新初始化剩余的过滤器(He等人2015)。所有模型都以BN为归一化层,并使用Adam (Kingma和Ba 2014)优化器进行优化。我们所有的实验都是在Ubuntu 18.04系统上进行的,它有四个NVIDIA RTX 1080 Ti gpu。

论文地址:Steganography of Steganographic Networks

没有公布源码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1455462.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Django后端开发——模型层及ORM介绍

文章目录 参考资料Django配置MySQL安装mysqlclient创建数据库进入数据库的操作可能遇到的问题及解决方案Pycharm配置settings.py 模型![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/c83753397bf6481d8defde26537903bf.png)ORM介绍示例终端&#xff1a;settings.py…

JAVA面试框架篇

1. Spring refresh 流程 要求 掌握 refresh 的 12 个步骤 Spring refresh 概述 refresh 是 AbstractApplicationContext 中的一个方法&#xff0c;负责初始化 ApplicationContext 容器&#xff0c;容器必须调用 refresh 才能正常工作。它的内部主要会调用 12 个方法&#x…

Quartz---JobDataMap使用的两种方式

任务调度执行原理图&#xff1a; JobDataMap的使用 JobDataMap是Quartz调度器中的一个重要组件&#xff0c;主要用于存储和传递与作业&#xff08;Job&#xff09;相关的数据。它是一个实现了Java Map接口的对象&#xff0c;可以用来保存一系列的序列化的对象。这些对象在作业执…

基于TensorFlow的LibriSpeech语音识别

一、引言 随着人工智能技术的日益成熟&#xff0c;深度学习在语音识别领域取得了显著的突破。本博客将介绍如何使用TensorFlow框架&#xff0c;结合LibriSpeech数据集&#xff0c;构建一个高效的语音识别系统。 目录 一、引言 二、环境准备 为了运行本示例代码&#xff0c;…

冒泡排序:原理、实现与性能分析

引言 在编程世界中&#xff0c;排序算法是不可或缺的一部分。冒泡排序作为最基本的排序算法之一&#xff0c;虽然其效率并不是最高的&#xff0c;但其实现简单、易于理解的特点使得它成为学习和理解排序算法的入门之选。本文将详细介绍冒泡排序的原理、实现方法以及性能分析&a…

java实现排序算法(上)

排序算法 冒泡排序 时间和空间复杂度 要点 每轮冒泡不断地比较比较相邻的两个元素,如果它们是逆序的,则需要交换它们的位置下一轮冒泡,可以调整未排序的右边界,减少不必要比较 代码 public static int[] test(int[] array) {// 外层循环控制遍历次数for (int i 0; i <…

政安晨:【完全零基础】认知人工智能(二)【超级简单】的【机器学习神经网络】—— 底层算法

如果小伙伴第一次看到这篇文章&#xff0c;可以先浏览一下我这个系列的上一篇文章&#xff1a; 政安晨&#xff1a;【完全零基础】认知人工智能&#xff08;一&#xff09;【超级简单】的【机器学习神经网络】 —— 预测机https://blog.csdn.net/snowdenkeke/article/details/…

mac东西拷不进硬盘怎么回事 mac东西拷不进硬盘怎么办 mac硬盘读不出来怎么解决 mac拷贝不了东西到u盘

有时候我们在使用mac的过程中&#xff0c;可能会遇到一些问题&#xff0c;比如mac东西拷不进硬盘。这是一种很常见的情况&#xff0c;但是会影响我们的工作和生活。那么&#xff0c;mac东西拷不进硬盘是怎么回事呢&#xff1f;mac东西拷不进硬盘又该怎么办呢&#xff1f;本文将…

【设计模式】4、策略模式

文章目录 一、问题二、解决方案2.1 真实世界的类比2.2 策略模式结构2.3 适用场景2.4 实现方式2.5 优缺点2.6 与其他模式的关系 三、示例代码3.1 go3.2 rust 策略模式是一种行为设计模式&#xff0c;它能定义一系列算法&#xff0c;把每种算法分别放入独立的类中&#xff0c;以是…

《隐私计算简易速速上手小册》第4章:技术挑战与解决方案(2024 最新版)

文章目录 4.1 隐私计算中的技术难题4.1.1 基础知识4.1.2 重点案例:同态加密在金融数据分析中的应用4.1.3 拓展案例 1:安全多方计算在医疗数据共享中的应用4.1.4 拓展案例 2:差分隐私在社交媒体分析中的应用4.2 数据加密与解密的挑战4.2.1 基础知识4.2.2 重点案例:加密的在线…

防止被恶意调用API接口

前言 在面试时&#xff0c;经常会被问一个问题&#xff1a;如何防止别人恶意刷接口&#xff1f; 这是一个非常有意思的问题&#xff0c;防范措施挺多的。今天这篇文章专门跟大家一起聊聊&#xff0c;希望对你会有所帮助。 1 防火墙 防火墙是网络安全中最基本的安全设备之一&…

DAP下载程序(在MDK上配置DAP)以及程序调试(Keil uVision5软件的使用)

目录 1. 在MDK上配置DAP 2. 了解不同开发板不同的下载算法 3. DAP调试程序 3.1 JTAG/SWD调试原理概述 3.2 基础执行控制按钮 3.3 查看程序段/函数执行时间 3.4 结束仿真报错解决方法 3.5 工具栏常用窗口按钮介绍 3.5.1 Call Stack窗口&#xff1a;查看函数调…

【激光SLAM】激光的前端配准算法

文章目录 ICP匹配方法&#xff08;Point to Point&#xff09;PL-ICP匹配方法&#xff08;Point to Line&#xff09;基于优化的匹配方法&#xff08;Optimization-based Method&#xff09;优化方法的求解地图双线性插值拉格朗日插值法——一维线性插值 相关方法&#xff08;C…

HCIP-MGRE实验配置、PPP的PAP认证与CHAP认证、MGRE、GRE网络搭建、NAT

实验要求 R5为ISP,只能进行IP地址配素&#xff0c;其所有地址均为公有IP地址R1和R5间使用PPP的PAP认证&#xff0c;R5为主认证方 R2与R5之间使用PPP的chap认证&#xff0c;R5为主认证方 R3与R5之间使用HDLC封装。R1/R2/R3构建一个MGRE环境&#xff0c;R1为中心站点;R1、R4间为…

深入解析Android AIDL:实现跨进程通信的利器

深入解析Android AIDL&#xff1a;实现跨进程通信的利器 1. 介绍Android AIDL Android Interface Definition Language (AIDL) 是一种Android系统中的跨进程通信机制。AIDL允许一个应用程序的组件与另一个应用程序的组件通信&#xff0c;并在两者之间传输数据。 AIDL的主要作…

2024 VNCTF----misc---sqlshark sql盲注+流量分析

流量分析 wireshark 可以看到很多 any/**/Or/**/(iF(((((Ord(sUbstr((sElect(grOup_cOncat(password))frOm(users)) frOm 1 fOr 1))))in(80))),1,0))# P any/**/Or/**/(iF(((((Ord(sUbstr((sElect(grOup_cOncat(password))frOm(users)) frOm 1 fOr 1))))in(104))),1,0))#…

我的NPI项目之Android Camera (二) -- 核心部件之 Camera Sensor

说到Camera模组&#xff0c;我们比较关心的是用的什么样的sensor&#xff1f; sensor的分辨率多少&#xff0c;sensor的像素多大&#xff0c;sensor是哪家生产的等等一些问题。今天&#xff0c;我们就穿越时间&#xff0c;将sensor的历史扒一扒。 Wikipedia先看一下&#xff1…

初识 Rust 语言

目录 前言一、Rust 的背景二、Rust的特性三、部署开发环境&#xff0c;编写一个简单demo1、在ubuntu 20.04部署环境2、编写demo测试 四、如何看待Linux内核引入Rust 前言 自Linux 6.1起&#xff0c;初始的Rust基础设施被添加到Linux内核中。此后为了使内核驱动程序能够用Rust编…

C++--Linux基础使用

文章目录 几个简单命令开机关机重启查看当前目录切换当前目录列出当前目录下的目录和文件列出指定目录下的目录和文件清屏查看/设置时间 目录和文件目录概要目录详细说明相对路径和绝对路径 上古神器vi创建/打开文件vi 的两种模式vi 的常用命令 用户管理组管理用户管理修改用户…

小迪安全25WEB 攻防-通用漏洞SQL 读写注入MYSQLMSSQLPostgreSQL

#知识点&#xff1a; 1、SQL 注入-MYSQL 数据库 2、SQL 注入-MSSQL(SQL server) 数据库 3、SQL 注入-PostgreSQL 数据库 #详细点&#xff1a; Access 无高权限注入点-只能猜解&#xff0c;还是暴力猜解 因为access的数据库是独立存在的&#xff0c;不存在统一管理 …