Atelier Optik

ONLINE OPTICS LAB

TV 正则化:ADMM 与 HQS 图像去噪

minx 1/2 ‖x - b‖22 + λ ‖∇x‖2,1

模型
ROF
求解
ADMM + CG
边界
Neumann
运行
Independent Workers
求解器
0.060
35

IMAGE

图像域

含噪输入
迭代0 / 35
目标函数—
原始残差—
耗时—

SOURCE

ADMM 核心迭代

等待计算
function tvAdmm(noisy, width, height, lambda, iterations) {
  const rho = 1.5;
  let x = noisy.slice();
  let zx = zerosLike(x), zy = zerosLike(x);
  let ux = zerosLike(x), uy = zerosLike(x);

  for (let k = 0; k < iterations; k += 1) {
    // x-update: (I + rho D^T D)x = b + rho D^T(z - u)
    const rhs = add(noisy, scale(adjoint(zx, zy, ux, uy), rho));
    x = conjugateGradient(x, rhs, rho);

    // z-update: isotropic vector soft-thresholding
    const [gx, gy] = gradient(x, width, height);
    [zx, zy] = shrink2D(gx, gy, ux, uy, lambda / rho);

    // scaled dual update
    ux = add(ux, subtract(gx, zx));
    uy = add(uy, subtract(gy, zy));
  }

  return x;
}
各向同性 TV ρ = 1.5 Neumann 边界
逐分量 TV β0 = λ / 2 β ← 2β 周期边界