--- created: 2025-08-03 21:19:11 tags: - "Research" - "复现" - "MDMS" - "MSS" - "切块" --- ### MSS中的切块实现 在MSS中,图像被分割成多个不同大小的补丁(如64x64, 96x96, 128x128),并在每个采样步骤中对这些补丁进行去噪处理。以下是具体过程: 1. **初始化**: - 在每次迭代开始时,首先生成一个随机噪声分布`X_t`,这个噪声分布将逐步通过扩散模型进行去噪处理。 2. **多尺度采样**: - 对于每种预定义的补丁大小(如64x64, 96x96, 128x128),算法会遍历所有可能的补丁位置`d`。 - `Md` 是一个二进制掩码矩阵,用于标记当前补丁的位置。它决定了从原始图像或噪声分布中提取哪些部分作为当前补丁。 3. **切块操作**: - 使用`Cropps(Md ◦ Xt)`从噪声分布`Xt`中裁剪出当前补丁`xtd`,其中`◦`表示逐元素乘法(即应用掩码`Md`来选择特定区域)。 - 同样的方法也应用于低光输入图像`y`和先验图像`yp`,分别得到`yd`和`ypd`。 ### 参数解释 - **`M_d`**: - **含义**:`M_d`是一个二进制掩码矩阵,用于指定当前处理的补丁在原始图像中的位置。它决定了从`Xt`, `y`, 和 `yp`中裁剪出哪些像素。 - **作用**:通过与原始数据进行逐元素乘法(`Md ◦ Xt`),可以准确地提取出对应位置的补丁。这对于实现局部区域的独立处理至关重要。 - **`W`**: - **含义**:`W`是一个累积权重矩阵,用来记录每个位置上的补丁被处理了多少次。 - **作用**:在计算加权平均值时使用。由于同一位置可能会被多个重叠的补丁覆盖,因此需要累加权重以确保最终结果是合理的加权平均值。例如,在第10行`W = W + Md`中,每当一个补丁被处理时,其对应的掩码`Md`就被加到`W`上。 ### 算法步骤详解 ``` for ps in [64x64, 96x96, 128x128]: for d in range(1, D+1): xtd = Cropps(Md ◦ Xt) yd = Cropps(Md ◦ y) ypd = Cropps(Md ◦ yp) Φps += Md * εθ(xtd, yd, ypd, t) W += Md Φps = Φps / W # Element-wise division Φt += Φps Φt /= 3 # Average over all scales ``` - **`Φps`**: 对应每个补丁大小的特征累积值。 - **`εθ`**: 预测噪声的神经网络函数,基于当前补丁`xtd`, `yd`, `ypd`及时间步`t`预测噪声。 - **`Φps = Φps / W`**: 对每个补丁位置的特征进行元素级别的除法运算,得到加权平均值。 - **`Φt += Φps`**: 将不同尺度的特征累加并取平均值,最终更新`Φt`。