如何使用 Total Variation 框架来解决去模糊问题?
特别是使用 ADMM 作为求解器。
可以假设模糊算子是已知的、线性的和移位不变的。
电视方法的优点是什么?有什么缺点?
这是How to Solve Image Denoising with Total Variation Prior Using ADMM的续篇。
如何使用 Total Variation 框架来解决去模糊问题?
特别是使用 ADMM 作为求解器。
可以假设模糊算子是已知的、线性的和移位不变的。
电视方法的优点是什么?有什么缺点?
这是How to Solve Image Denoising with Total Variation Prior Using ADMM的续篇。
我在以下假设下解决问题:
所以模型是:
其中是模糊核的矩阵形式,是AWGN噪声,是要估计的参考图像。
在模型中,我们假设(参见指数分布)。
因此优化问题(MAP Estimator的等价物)由下式给出:
请注意,此模型仅在添加噪声时才有意义,否则 TV 项只会使输出平滑。因此,TV 的正则化允许在反转模糊算子和平滑噪声之间进行控制。
ADMM 问题将被表述为:
ADMM 将有 3 个步骤:
vX = mC \ (vY + (paramRho * mD.' * (vZ - vU)));
.vZ = ProxL1(mD * vX + vU, paramLambda / paramRho);
.vU = vU + mD * vX - vZ;
.在哪里mC = decomposition(mH.' * mH + paramRho * (mD.' * mD), 'chol');
(这与How to Solve Image Denoising with Total Variation Prior Using ADMM的区别?)。
该参数paramRho
是ADMM求解器的参数。
我在 MATLAB 函数中编写了这个解决方案 - SolveLsTvAdmm()
.
我将它与 CVX 的参考文献进行了比较:
在上面的噪声水平是3 / 255
(图像被缩放到范围[0, 1]
),模糊算子是半径为 的 Box Blur 2
。
我没有优化paramLambda
到它的最佳值。所以可以得到更好的结果。请注意,对于这种低水平paramLambda
和小尺寸的图像,ADMM 求解器比 CVX 的直接求解器要慢。
完整代码可在我的StackExchange Signal Processing Q75471 GitHub 存储库中找到(查看SignalProcessing\Q75471
文件夹)。