亲子网 网站正在建设中,成都哪家做网站好,江苏最新消息今天实时,公司做网站费用怎么记账这篇是董超老师通讯作者的一篇盲图像修复的论文#xff0c;目前好像没看到发表在哪个会议期刊#xff0c;应该是还在投#xff0c;这个是arxiv版本#xff0c;代码倒是开源了。本文所指的BIR并不是一个single模型对任何未知图像degradation都能处理#xff0c;而是用同一个…
这篇是董超老师通讯作者的一篇盲图像修复的论文目前好像没看到发表在哪个会议期刊应该是还在投这个是arxiv版本代码倒是开源了。本文所指的BIR并不是一个single模型对任何未知图像degradation都能处理而是用同一个framework解决BSR,BID和BFR等blind image restoration任务每个任务对应一个模型参数。文章提出BIR可以分解为两个阶段去除 image-dependent degradation 由一个restoration module来完成和 生成丢失的图像内容由IRControlNet来完成用现有的train好的text-to-image latent diffusion model。现有利用diffusion模型来进行IR的方法基本都是把LQ作为diffusion的condition和xt一起送进denoising network。但是本文提出使用有noise和artifact的图片作为condition会影响生成导致生成结果有artifact。因此本文先用一个restoration模型来去除degradation再把去除了degradation的图片作为condition送进diffusion模型。文章提出一个training-free region-adaptive restoration guidance有点类似classifer-based的方法控制diffusion生成图片类别的做法那样在diffusion的中间加梯度来影响diffusion的方向对图像中低频的部分要求和guidance image即一阶段restore的结果更接近MSE Loss而高频区域则受MSELoss影响小以图取更好的细节生成能力。一二阶段的训练是分开的。一阶段用的是现有的BID BSR BFR网络用MSELoss来train。而且选的是这三个可以从HQ合成LQ的任务用了大范围的参数来合成各种各样的LQ图片来训练。二阶段如图所示首先把restored image用一个pretrained fixed VAE encoder提取特征cRM然后和zt送进stable diffusion模型做reverse预测zt-1。黄色的部分则是刚刚提的guidance。 reverse用的是pretrained fixed stable diffusion model加一个自己的controlnettrain的是control的部分如下图所示 guidance是这样做的其实没什么知识点知道classifier-based 的diffusion model是怎么控制生成图片的类别的就知道了。首先原来的diffusion是从 z t z_t zt预测噪声epsilon减去得出 z 0 z_0 z0然后从 z t z_t zt和 z 0 z_0 z0推 z t − 1 z_{t-1} zt−1这就是一个reverse的step。那么guidance就是在 z 0 z_0 z0的基础上计算一个损失然后计算损失对于对于 z 0 z_0 z0的梯度乘以一个scale加上去相当于对 z 0 z_0 z0做了一步梯度回传加更新得到 z ^ 0 \hat z_0 z^0。然后以更新后的 z ^ 0 \hat z_0 z^0和 z t z_t zt来推 z t − 1 z_{t-1} zt−1作为一个reverse的step。关键就是这个损失怎么算一般guidance就是计算 z 0 z_0 z0和guidance的相似度本文也一样guidance image就是一阶段restored 的image但是我们希望只有平滑区域学restored image有纹理区域不要学让diffusion生成所以就在算loss的时候乘了个平滑度图。 如上所示 D ( z 0 ) D(z_0) D(z0)就是stable diffusion的decoderstable diffusion不是直接对图片进行reverse step而是对特征进行diffusion所以需要先用decoder把特征转成图像域再和restored image算差差还是CHW的还没取平均这时候先element-wise地乘以一个权重图 W W W这个 W W W表示的是区域的平滑度越高则越接近1否则越接近0。从而这个损失对有纹理细节的区域影响相对小而对平滑区域影响相对大所以实现了前面的目的。 W W W怎么来的很简单先用sobel算子对restored image算梯度的模然后切不相交的patch算patch内部的平均然后用1来减。评价guidance的loss的算法其实在很多无监督半监督的restoration方法中有用到很常见。guidance也是标准的diffusion模型的guidance算法。加condition的方式也是现有的controlnet的方式。相比现有diffusion做restoration的方法其实就是多了一步restoration相当于拼起来一个restoration模型加一个diffusion模型感觉有点臃肿。核心动机是两个一个是改善diffusion的条件不要拿LQ作为条件第二个是先restore再接diffusion并且把restore的结果作为guidance来使得整个方法把restore和generation解耦出来diffusion专门做generation要说diffusion的作用应该是对前面restore方法的结果的锦上添花起添加一些细节上去的作用。因此从实验结果可以看到经过两阶段后确实是很多细节精细了很多。