图像生成水印整理:Stable Signature、Tree-Ring、Gaussian Shade、图像版 PRC

1. 统一背景

扩散模型中常见的两个方向:

  1. 生成:z -> Decoder -> x
  2. 回推:x -> Encoder -> z

其中,x 是图像,z 是潜变量。多数图像水印都在潜空间 z 上注入,再在检测时从 x 编码回 z 进行判定。

潜空间是图像的压缩抽象表示。扩散过程主要在该空间进行,因此水印常布置在这里。

2. 四类方案总览

方案 核心原理 是否可嵌消息 主要优点 主要局限
Stable Signature 微调解码器,写入固定签名 可(固定签名) 检测快、实现直观 需微调,可能影响画质
Tree-Ring 在潜空间频域写圆环模式 基本不可 抗常见编辑较好 多样性受限,信息容量低
Gaussian Shade 约束潜变量落入目标子空间/象限 单图失真小,检测简单 鲁棒性与多样性受影响
图像版 PRC 伪随机码 + 纠错解码 容错强、可恢复消息 设计与实现复杂

3. Stable Signature

3.1 核心思想

在训练或微调阶段,让解码器倾向于在输出图像中携带固定二进制签名。

3.2 生成侧表达(思想式)

x0=Decoder(z)+ε⋅SignatureMask x_0 = \text{Decoder}(z) + \varepsilon \cdot \text{SignatureMask} x0=Decoder(z)+εSignatureMask

常见训练目标可写为:

min⁡θ∥x0−x^0∥2+λ⋅∥Extract(x0)−s∥2 \min_\theta \|x_0 - \hat{x}_0\|^2 + \lambda \cdot \|\text{Extract}(x_0) - s\|^2 θminx0x^02+λExtract(x0)s2

3.3 检测侧表达

s^=Extract(x),dH(s^,s)<τ \hat{s} = \text{Extract}(x), \quad d_H(\hat{s}, s) < \tau s^=Extract(x),dH(s^,s)<τ

即提取签名后,与目标签名做汉明距离判定。

3.4 关键参数

  1. 签名长度 L
  2. 嵌入强度 epsilon
  3. 训练权重 lambda
  4. 检测阈值 tau

3.5 生成算法细节(训练与推理)

训练阶段(简化流程):

  1. 采样潜变量 z,解码得到 x = Decoder(z)
  2. 用提取器网络得到 s_hat = Extract(x)
  3. 计算联合损失:重建损失 + 签名损失。
  4. 反向传播更新解码器参数(或解码器末层参数)。
  5. 重复直到签名提取准确率达到目标。

推理阶段:

  1. 按正常扩散流程得到潜变量 z_t -> z_0
  2. 用已水印化的解码器输出图像。
  3. 生成端不需要额外后处理,水印由解码器隐式写入。

4. Tree-Ring Watermark

4.1 核心思想

在潜空间傅里叶域构造环形掩码,约束环上频率分量。

傅里叶域

图像可在空间域(像素)和频域(变化频率)之间转换。频域更适合做“不可见但可检测”的结构化约束。

数学上,给定二维信号 z(x, y),离散傅里叶变换(DFT)为:

F(u,v)=∑x=0W−1∑y=0H−1z(x,y) e−j2π(ux/W+vy/H) F(u,v) = \sum_{x=0}^{W-1}\sum_{y=0}^{H-1} z(x,y)\,e^{-j2\pi(ux/W + vy/H)} F(u,v)=x=0W1y=0H1z(x,y)ej2π(ux/W+vy/H)

其逆变换为:

z(x,y)=1WH∑u=0W−1∑v=0H−1F(u,v) ej2π(ux/W+vy/H) z(x,y) = \frac{1}{WH}\sum_{u=0}^{W-1}\sum_{v=0}^{H-1} F(u,v)\,e^{j2\pi(ux/W + vy/H)} z(x,y)=WH1u=0W1v=0H1F(u,v)ej2π(ux/W+vy/H)

其中:

  1. |F(u,v)| 是幅度谱,表示该频率成分强弱。
  2. arg(F(u,v)) 是相位谱,决定结构位置与几何细节。

用于水印时常见思路:

  1. 在幅度谱特定区域(如中频环)写入稳定结构。
  2. 尽量少改相位,减少可见失真。
  3. 利用频域局部统计做检测阈值判定。

为什么频域有优势:

  1. 某些全局编辑在频域上表现为可建模扰动。
  2. 人眼对特定频段扰动不敏感,更易实现“不可见”。
  3. 可用掩码定义规则结构,便于批量检测。

4.2 生成侧表达

z′=z⊙(1−RingMask) z' = z \odot (1 - \text{RingMask}) z=z(1RingMask)

\odot 表示逐元素相乘(Hadamard 积)。若 RingMask 在环内为 1,则环内分量会被压制为 0。

4.3 检测侧表达

z=Encode(x),1N∑∣F(z)[RingMask]∣<τ z = \text{Encode}(x), \quad \frac{1}{N} \sum |F(z)[\text{RingMask}]| < \tau z=Encode(x),N1F(z)[RingMask]<τ

这里是把图像编码回潜空间,再看频域环区域是否接近目标模式。

检测要从图像回到潜空间再判定,所以是编码回潜变量,而不是解码。

4.4 关键参数

  1. 圆环半径
  2. 圆环宽度
  3. 环位置与掩码形状
  4. 检测阈值 tau

4.5 生成算法细节(频域注入)

常见实现流程:

  1. 对潜变量 z 做 2D FFT:Z = FFT2(z)
  2. 构造环形掩码 M_ring(由半径、宽度、中心决定)。
  3. 按规则改写环内频率分量(置零或拉向目标模板):
    Z' = Z ⊙ (1 - M_ring)
  4. 逆变换回潜空间:z' = IFFT2(Z')
  5. z' 继续去噪/解码得到图像。

实践里常加两个约束:

  1. 仅改中频环,减少可见失真。
  2. 控制改写强度,避免对采样多样性影响过大。

5. Gaussian Shade

5.1 核心思想

将潜空间划分为多个子区域(常用“象限”做直观说明),生成时把采样约束到某个目标区域。

5.2 生成侧表达

z′=ProjectToQuadrant(z,q) z' = \text{ProjectToQuadrant}(z, q) z=ProjectToQuadrant(z,q)

5.3 检测侧表达

q^=ClassifyQuadrant(Encode(x)),q^=qsecret \hat{q} = \text{ClassifyQuadrant}(\text{Encode}(x)), \quad \hat{q} = q_{\text{secret}} q^=ClassifyQuadrant(Encode(x)),q^=qsecret

5.4 关键参数

  1. 区域/象限数量
  2. 划分策略
  3. 投影强度

5.5 生成算法细节(子空间投影)

可实现为“约束采样”或“投影后采样”:

  1. 基于密钥确定目标区域 q(或目标子空间)。
  2. 在每一步去噪后,对当前潜变量做投影:
    z_t <- Project(z_t, q)
  3. 若投影偏移过大,使用系数 alpha 做软约束:
    z_t <- (1-alpha) * z_t + alpha * Project(z_t, q)
  4. 持续迭代至 z_0,再解码输出。

关键点:

  1. 硬投影鲁棒性更好,但更可能影响画质。
  2. 软投影更自然,但检测边界更模糊。

6. 图像版 PRC 水印

6.1 核心思想

用伪随机码和纠错机制把消息映射到潜空间约束中,检测时通过解码恢复码字。

6.2 生成侧表达

c=PRC(gk,seed),z′=Constrain(z,c) c = \text{PRC}(gk, seed), \quad z' = \text{Constrain}(z, c) c=PRC(gk,seed),z=Constrain(z,c)

6.3 检测侧表达

b1,…,bn=ExtractBits(Encode(x)) b_1, \ldots, b_n = \text{ExtractBits}(\text{Encode}(x)) b1,,bn=ExtractBits(Encode(x))

c^=Decode(b1,…,bn),c^∈C \hat{c} = \text{Decode}(b_1, \ldots, b_n), \quad \hat{c} \in C c^=Decode(b1,,bn),c^C

6.4 关键参数

  1. 码长 n
  2. 最小汉明距离 d
  3. 偏置强度 delta
  4. 码本 C

6.5 生成算法细节(编码-约束-纠错)

典型流程:

  1. 用密钥和随机种子生成消息码字 c
  2. c 映射为潜空间约束模式(分块符号或子空间偏置)。
  3. 在去噪过程中逐步施加偏置 delta,使潜变量靠近该模式。
  4. 生成图像后,检测端反向提取比特并做纠错解码。

算法实现核心:

  1. 码本设计要保证足够汉明距离,以承受压缩和编辑噪声。
  2. 偏置注入应分步进行,避免一步强推导致伪影。
  3. 检测时结合软判决(置信度)通常优于硬判决。
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐