[TOC]

noise layer是鲁棒性水印的基础工作。几乎是不可能绕过去的。

本文主要写noise layer,其他的基本不写了。反正这些家伙的网络结构都差不多

这些家伙怎么写这破烂玩意都能投顶会呀。

Noise Layer本纪

  • 有一点我觉得很奇怪,JPEG可微压缩的论文应该在2017年就有了,这些家伙竟然到2020才用到。
  • (不知道是在哪篇论文里面写的,但是讲的很全,到2020初的noise layer为止,2020年还有很重要的一篇cvpr没有讲)

如何在网络中处理攻击失真才能使得水印算法在实用中更鲁棒,是近年来的研究热点。攻击主要分为两种,已知攻击和未知攻击。针对已知攻击目前主要有两种解决方法,一种是生成真实攻击失真数据[56],缺点是需要大量的实拍数据,并进行矫正,需要很高的成本,并且难以有效模拟实际拍摄中的几何扭曲变换。另一种是模拟攻击数据。很多研究者进行研究,最大的困难是解决不可微压缩问题,如JPEG压缩等。2019年,文献[57]首次提出噪声层的设计并且通过JPEG-Drop对系数采用渐进式滤除。文献[58,59]中,通过设计一系列可微分的函数来模拟JPEG压缩的每一步。文献[60]中,采用了不同于前两种的思想,他们将编码器和解码器分离,是不可微的JPEG压缩损耗仅通过解码器传播,减轻不可微的问题。2020年,文献[61]将JPEG压缩视为一种特殊噪声,在反向传播时不经过JPEG压缩部分。此外,在攻击分配策略上,方法[57,59]在训练时,每批训练一种单一类型的失真,交替训练。方法[62]提出了一种新的分类策略,他们将每批数据再分组,每组包含一种攻击类型,每批包含所有攻击类型。这种新策略使得网络收敛的更快。在解决未知攻击问题上,文献[58]利用对抗的思想解决该问题。此外,文献[63]中提出了一个不变空间的新方法,他们在训练时不引入任何攻击,而是通过一个全连接层,将编码器生成的3通道信息映射到N通道上,解码器基于N通道信息(不变空间)解码。从实验结果显示,他们的算法对于某些攻击达到了较好的效果。

[56] Wengrowski E, Dana K. Light field messaging with deep photographic steganography[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2019: 1515-1524.
[57] Zhu, Jiren, et al. “Hidden: Hiding data with deep networks.” Proceedings of the European conference on computer vision (ECCV). 2018.
[58] Luo X, Zhan R, Chang H, et al. Distortion agnostic deep watermarking[C] //Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2020: 13548-13557.
[59] Ahmadi M, Norouzi A, Karimi N, et al. ReDMark: Framework for residual diffusion watermarking based on deep networks[J]. Expert Systems with Applications, 2020, 146: 113157.
[60] Liu Y, Guo M, Zhang J, et al. A novel two-stage separable deep learning framework for practical blind watermarking[C]//Proceedings of the 27th ACM International Conference on Multimedia. 2019: 1509-1517.
[61] Zhang C, Karjauv A, Benz P, et al. Towards Robust Data Hiding Against (JPEG) Compression: A Pseudo-Differentiable Deep Learning Approach[J]. arXiv preprint arXiv:2101.00973, 2020.
[62] Zhang C, Benz P, Karjauv A, et al. Udh: Universal deep hiding for steganography, watermarking, and light field messaging[J]. Advances in Neural Information Processing Systems, 2020, 33: 10223-10234.
[63] Zhong X, Huang P C, Mastorakis S, et al. An Automated and Robust Image Watermarking Scheme Based on Deep Neural Networks[J]. IEEE Transactions on Multimedia, 2020.
[66] Fang H, Chen D, Wang F, et al. TERA: Screen-to-Camera Image Code with Transparency, Efficiency, Robustness and Adaptability[J]. IEEE Transactions on Multimedia, 2021.

57 Hidden: Hiding data with deep networks.(ECCV 2018)(非拍摄)

首次提出噪声层的设计并且通过JPEG-Drop对系数采用渐进式滤除。里面没有几何扭曲变形。

这篇算是第一篇使用深度网络做盲水印的。

secret类型

二进制字符串

60 A novel two-stage separable deep learning framework for practical blind watermarking(非拍摄 ACM 2019)

就你叫Peking university啊。

TWO STAGE是分离了编码解码网络的意思,

采用了不同于前两种的思想,他们将编码器和解码器分离,使得不可微的JPEG压缩损耗仅通过解码器传播,减轻不可微的问题。

we present a redundant multi-level feature encoding

network (RMFEN) as our encoder framework, which involves the

multi-layer image feat

实际上这篇论文固定了编码网络,或者说是先把编码网络训练到具有一定的攻击鲁棒性,用 __冗余多维度特征编码网络__。训练编码网络的过程没有使用任何隐式或者显式的噪声类型。编码网络里面有有一个残差的强度因子(strength factor),可以通过这个超参数调整水印强度,这个超参数应该是这个方法的关键。

很神奇,冗余多维度特征编码网络真的那么厉害吗,能够一下子编码出足够冗余的抗噪声的水印。这种水印生成方式实际上和基于模板的水印在核心思想上很相似,就是固定了编码网络,让编码网络必然具有抗噪声的水印强度。

本质上,这个方法就是灵活一些 的基于模板的方法。

image-20220805192801233

image-20220805194303108

这篇文章做的noise倒是很恐怖,是风格转换网络里面跑了一边吧。。。

两阶段网络

两阶段网络,在别的任务里面,本人也不是没做过。基本就是那些东西。

  • Stage 1 : noise-Free End-to-end Adversary Training 不加入噪声的对抗训练,对抗就是Gan网络的判别器.
  • Stage 2 : noise-Aware Decoder-Only Training 使用Stage1的权重。固定编码器,加入噪声,只训练解码器。
  • 就是要求编码器生成的图像质量不能变化,不能根据噪声自适应。这只能说是有弊有利的措施。
  • 这个残差的强度因子(strength factor)是可以调的?调整了这个超参数解码真的能解吗。

image-20220805194110580

56 Light field messaging with deep photographic steganography (cvpr 2019)(可拍摄)

这个挺熟的。LFM。1.9TB的拍摄数据集也是没谁了。可以找到数据集和代码一起的,要license,估计申请了还有等一周它才会通过。

image-20220805151555605

image-20220805151720970

就是拿T()网络,风格转换网络做桌面拍摄问题的模仿。也不公开模型权重,生气ing。

58 Distortion agnostic deep watermarking(cvpr 2020)(非拍摄)

利用对抗的思想解决该问题?

image-20220805141910027

主要有两个部分体现:Channel Encode和Attack Network.

secret类型

二进制字符串

Channel Encode.

image-20220805142043935

感觉也就那样,源码没有看过,类似ECC编码,带点纠错码的思想,论文里面说是随机进行二进制的反转。通过香农定理的信息冗余实现消息校验。

Attack Network.

image-20220805142340354

使用一个网络做图像的扰动,有趣的点在于它隐式的加入了噪声层,没有明确加入哪种攻击。就论文展示的效果,还可以。抗干扰的种类还挺多的

image-20220805142319698

image-20220805142853546

image-20220805142632248

通过loss函数约束网络做disturb。公式3通过公式1简化而来。不过不给我看代码我也看不懂呀。

用两个alpha超参数约束扰动的强度。失真强度和消息损失函数。

公式3是什么意思呀?通过L2约束Iadv和Ien接近,就是变化要小;后面那项,提取的F(Iadv)就是reveal secret,X就是in put secret,符号是减号,就是Message的提取要受到干扰的意思,不能被提取网络给提取出秘密信息。

这样说的话,两个α不平衡好要翻车的。

损失函数

image-20220805143144249

Loss函数不复杂,就是多一个LG,估计是偷了一个Gan网络的什么温彻斯特判别器loss,约束图像质量的。

思路就很简单了,对抗就体现在扰动网络的loss函数那里。

按照你这种说法,谁家的网络没有loss函数的对抗(笑).

train

image-20220805145142653

训练网络有些门道的,攻击网络的梯度更新在里面

61 Towards Robust Data Hiding Against (JPEG) Compression: A Pseudo-Differentiable Deep Learning Approach(arxiv 2020;不像是能拍摄的样子,一定要读代码)

Chaoning Zhang这个作者好像发挺多论文的

文献[61]将JPEG压缩视为一种特殊噪声,在反向传播时不经过JPEG压缩部分。

JPEG(真)是不可微分的,量化表的步骤不可微,印象里这一步要做四舍五入。

认为可微的JPEG压缩有危害。毕竟压缩不止JPEG压缩一家。最常用JPEG2000,还有MPEG.压缩方法不少,强度不一样。都是基于DCT变换的。

The existing SOTA approaches replace the non-differentiable parts with differentiable modules that perform similar operations. Multiple limitations exist: (a) large engineering effort; (b) requiring a white-box knowledge of compression attacks; (c) only works for simple compression like JPEG. In this work, we propose a simple yet effective approach to address all the above limitations at once. Beyond JPEG, our approach has been shown to improve robustness against various image and video lossy compression algorithms

链接

这个链接里面好像没有什么东西,作者删库跑路

https://github.com/mikolez/Robust_JPEG

JPEG模拟论文

  • Richard Shin and Dawn Song, “Jpeg-resistant adversarial images,” in *NIPS 2017 Workshop on Machine Learning and Computer Security, 2017.

  • JPEG-Mask and JPEG-Drop in Hidden(ECCV 2018) 斯坦福那篇水印文章

假的可微JPEG和真的JPEG还是有区别的。

把(真)JPEG压缩转可微(有趣)

  • 噪声是可微的,把JPEG压缩看作是依赖于载体的伪噪声

  • 图3所示方法。先减去再加上。就可微了。看似没有意义,但是确实是变得可微了。

  • 原则上,这种方法可以用于任何不可微的操作。

image-20220805201739199

StegaStamp: Invisible Hyperlinks in Physical Photographs(cvpr 2020)(拍摄)

https://github.com/tancik/StegaStamp

有代码有权重,有网站。和某些文章相比高下立判。

解码网络用了STN(空间变换网络),看文章的时候容易漏掉。

image-20220805152900552

image-20220805152926833

很重要的一篇文章,读个4-5遍。主要是通过显性的扰动模拟拍摄,主要是纸媒的拍摄,屏幕拍摄估计也行,就是如果用他的dectection网络,得把屏幕塞到四方的白框里面。像是下面这样。毕竟人家的detection网络就是这样训练的一个物体识别网络。

noise layer

从0开始的强度渐变。要求先几何变换,再图像处理。

可能的不足

这篇是算是到2020年的集大成者了。可惜固定了图像大小是400*400的,因为加入了字符串的secret的全连接网络reshape。

image-20220805153413053

secret类型

还是二进制字符串,实验得出50还是100bit的长度比较好。

62 Udh: Universal deep hiding for steganography, watermarking, and light field messaging(NIPS 2020)(据说是可拍摄的)

给了源码,没有给权重,源码是PyTorch写的

https://github.com/ChaoningZhang/Universal-Deep-Hiding

法[62]提出了一种新的分类策略,他们将每批数据再分组,每组包含一种攻击类型,每批包含所有攻击类型。这种新策略使得网络收敛的更快?

这篇论文没有怎么写训练拍摄的noise layer吧。代码写的也不是很清楚,没有看明白它的noise layer是怎么跑的。

image-20220805155020831

UDH 算是重要的一个深度水印分类,在某些情景下有很大作用

secret类型

二值图像,可以放多张图像。

缺陷

  • 在于无法应对亮度过高的图像,毕竟这是一点cover信息都没有给,生成的res当然不会管大小正负的。
  • JPEG不行。很怀疑JPEG不行是怎么做到拍摄的,这和StegaStamp的理论矛盾了。其实不管JPEG压缩的话,隐藏效果可以做的很好是肯定的,如果网络不是拿脚写的。

59 ReDMark: Framework for residual diffusion watermarking based on deep networks(明显不可能拍摄; Expert Systems with Applications 2020 )

没有细看。

通过设计一系列可微分的函数来模拟JPEG压缩的每一步。在训练时,每批训练一种单一类型的失真,交替训练。

我的惨痛经历告诉我,每个epoch 做一种扰动是绝对不行的。

常规的网络框架

image-20220805163323692

image-20220805163619470

image-20220805163644338

JPEG可微压缩

image-20220805162920686

每个epoch 判定一次扰动,幸运转盘?

image-20220805162950114

63 an Automated and Robust Image Watermarking Scheme Based on Deep Neural Networks(拍照? IEEE Transactions on Multimedia 2020)

文献[63]中提出了一个不变空间的新方法,他们在训练时不引入任何攻击,而是通过一个全连接层,将编码器生成的3通道信息映射到N通道上,解码器基于N通道信息(不变空间)解码。从实验结果显示,他们的算法对于某些攻击达到了较好的效果。

感觉不过是转化了数据域。

image-20220805160418378

image-20220805160933210

image-20220805161137987

这玩意都能拍照吗?

secret类型

二进制图像,把字符编码成横和圈。其他的二进制图像也行。

TERA: Screen-to-Camera Image Code with Transparency, Efficiency, Robustness and Adaptability(拍摄 IEEE Transactions on Multimedia, 2021.)

基于模板的水印,固定了编码器的前提下,可以直接拍摄,不需要考虑可微的问题。

使用直接拍摄代替noise layer。很暴力

image-20220805162345071

secret 类型

算是二值字符,还是二维码。就基于模板的水印而言,应该算是二维码更加贴切。