zoukankan      html  css  js  c++  java
  • Image Inpainting for Irregular Holes Using Partial Convolutions

    来源

         NVIDIA Corporation。

    优势

          a. 对缺失的图像做恢复。目前效果最好,针对规则形状的污染和非规则形状的污染都有好的效果。

          b. 端到端,不需要后处理。

          c. 提供超级大的数据库啊,做这个方面会有需求的。数据量是:训练55116,测试24866在这个基础上我们还可以进行扩充的哇。

    论文在实际操作的时候,一些亮点工作如下:

           基础网络:U-net,改进点以及可以取得的效果如下:

    a. 卷积的改变,网络输入包括被污染的图像以及mask。

        污染图像的卷积为:采用Partial Conv代替原来的规则conv,通俗点讲就是不是针对整个卷积区域做的卷积,如果卷积的区域是空洞区域,卷积结果直接定义为0 的。Mask的卷积:卷积和权重初始化为1,偏置初始化为0。(注:其实就是在卷积的过程中,尽量避免污染区域对输出造成影响。)

    b. BN操作:

        BN要用到均值和方差,为进行修复的mask区域是不贡献均值和方差的,随着图像一点一点的被修复,mask区域已经被修复的位置我们需要考虑它对均值和方差的贡献。

    解决这个问题,具体的做法就是:

        最开始的时候,学习率为0.0002,正常训练,在微调的过程中,学习率调低到0.00005,编码阶段的BN参数固定,不再改变,解码阶段的BN参数仍然让它学习。(注:这里的开始训练和微调我觉得应该指的是,网络训练一定时间之后学习率不再改变,我们需要调低学习率再训练的时候,称为微调)

    损失函数:

    损失函数部分,针对空洞区域和非空洞区域分别做的损失函数。因为空洞区域是需要我们新生成的,而非空洞区域是要保持不变的。

    总的损失函数:

    MSE:

     

    语义损失:

     

    风格损失:避免输出图像平滑,就是原来图像的突变点消失了。

     

    下面这个损失是保证空洞区域边缘在空洞区域被填充之后,与非空洞区域的填充比较自然。

     

     实验:

     效果:

    a. 空洞不靠近边界的图像远远比空洞靠近边界的图像修复效果要好。

    b. 对于非空洞区域图像的保留效果比较好,可以用于超分辨率重建工作。

  • 相关阅读:
    spring给容器中注入组件的几种方式
    Linux多进程
    Linux多进程的应用
    Linux进程通信
    Linux信号
    Linux共享内存
    Linux信号量
    Linux多线程
    Linux线程同步
    Linux调用可执行程序
  • 原文地址:https://www.cnblogs.com/wjjcjj/p/12336655.html
Copyright © 2011-2022 走看看