SteganoGAN
主要参考论文《SteganoGAN: High Capacity Image Steganography with GANs》
一、论文概述
1、图像隐写的定义
图像隐写是一种将信息隐藏在图片中的技术。
2、图像隐写技术的发展历程
2010年前,传统的图像隐写术,只能在每个像素中隐藏0.4bit的信息。超过该阈值,会导致隐写图像能够被自动隐写分析工具检查出伪影,从而无法实现信息隐藏。
结合深度学习的方法能达到较高的信息嵌入率,但相比于传统方法:
- 结合深度学习的方法会对图像的大小进行限制
- 结合深度学习的方法趋向于向图像中嵌入图像而不是任意的信息或者向量
- 在该论文发表时,结合深度学习的方法隐藏信息的极限还未确
3、提出SteganoGAN的论文的主要贡献
SteganoGAN使用密集连接来缓解梯度消失问题,在训练中使用多个损失函数来同时优化我们的编码器、解码器和评估网络。 SteganoGAN成功地将任意数据嵌入到从各种自然场景中提取的图像中,并实现了每个像素4.4bit的SOTA嵌入率,同时隐藏信息可以避开标准检测工具。
- 实现了每像素4.4bit的SOTA信息嵌入率
- 提出了一种用于评估结合深度学习隐写算法的新指标,该指标可用于比较深度学习方法与传统方法
- 发布STEGANOGAN1开源库,包括数据集和预训练模型,将用于评估基于深度学习的隐写算法
4、论文的启发点
在图像嵌入尽可能多的信息,使得嵌入信息不可检测,并且确保接收方可以恢复数据。综上就是更高的信息嵌入率、嵌入信息不可检测性更高、嵌入信息可无损恢复。
二、SteganoGAN
1、会涉及的符号
- 使用 C C C与 S S S作为被隐写图像和隐写图像,两者都是RGB图像,具有相同的分辨率
- M ∈ { 0 , 1 } D × W × H M\in \{0,1\}^{D\times W\times H} M∈{ 0,1}D×W×H是需要隐藏在 C C C中的二进制信息,其中 D D D是有效载荷的上限,实际有效载荷是可以可靠解码的比特数,一般等于 ( 1 − 2 p ) × D (1-2p)\times D (1−2p)×D,其中 p p p是错误率
- 编码器 ε ( C , M ) \varepsilon(C,M) ε(C,M)用于将二进制信息 M M M嵌入被隐写图像 C C C形成隐写图像 S S S,解码器 D ( S ) D(S) D(S)对隐写图像 S S S进行解密得到被隐写的信息 M ^ \hat{M} M^,评估器 C ( C , S ) C(C,S) C(C,S)用于评估 C C C与 S S S的相似度
- c a t ( X , Y ) cat(X,Y) cat(X,Y)将两个张量进行拼接,拼接方向为深度方向,例如 X ∈ R D × W × H , Y ∈ R D ′ × W × H X \in \mathbb{R}^{D\times W\times H},Y \in \mathbb{R}^{D^{\prime}\times W\times H} X∈RD×W×H,Y∈RD′×W×H,则有 c a t ( X , Y ) ∈ R ( D + D ′ ) × W × H cat(X,Y)\in \mathbb{R}^{(D+D^{\prime})\times W\times H} cat(X,Y)∈R(D+D′)×W×H
2、SteganoGAN的网络结构
SteganoGAN分为三个部分:编码器、解码器、评估器
空白区域编码器有三种可选结构:(b)基本编码器(Basic encoder)、©残差编码器(Residual encoder)、(d)密集编码器(Dense encoder)
1)、编码器
编码器主要用于将二进制信息 M M M嵌入被隐写图像 C C C形成隐写图像 S S S,三种变体编码器都具有的操作
- 将维度为 ( 3 , W , H ) (3,W,H) (3,W,H)的被隐写图像通过卷积层处理为维度为 ( 32 , W , H ) (32,W,H) (32,W,H)的张量 a a a
a = C o n v 3 → 32 ( C ) (2.2.1) a=Conv_{3\rightarrow 32}(C) \tag{2.2.1} a=Conv3→32(C)(2.2.1)
- 将张量 c a t ( a , M ) cat(a,M) cat(a,M)通过卷积层处理为维度为 ( 32 , W , H ) (32,W,H) (32,W,H)的张量 b b b
b = C o n v 32 + D → 32 ( c a t ( a , M ) ) (2.2.2) b=Conv_{32+D\rightarrow 32}(cat(a,M)) \tag{2.2.2} b=Conv32+D→32(cat(a,M))(2.2.2)
基本编码器
在得到张量 b b b后再经过两个卷积层,将维度为 ( 32 , W , H ) (32,W,H) (32,W,H)张量 b b b处理为维度为 ( 3 , W , H ) (3,W,H) (3,W,H)的隐写图像 C C C
ε b ( C , M ) = C o n v 32 → 3 ( C o n v 32