图像当中的棋盘现象
引自:https://blog.csdn.net/qq_16949707/article/details/82558852
现象
通过神经网络生成的图片,放大了看会有棋盘格的现象混叠现象造成的,反卷积时,到stride和ksize 不能整除时,就会有这种现象,二维图像的时候更显著。
神经网络虽然能学习,可以抵消一部分现象,但是会造成这个模型不鲁棒。
常见的有三种方法上采样,反卷积,nn插值,双线性插值。
替换GAN网络里面的deconv,用resize方法代替,artifacts消失。
max pooling也会造成这种现象。GAN的生成器和判别器都会受这种情况的影响。
类似的,卷积操作也可能出现这种情况。声音等高频信号在利用nn的过程中可能也会受到这个的干扰
没有什么是上采样+卷积不能解决的,除非网络占用空间实在太大,考虑用反卷积减少一点占用
卷积: 多维立方->一维
反卷积: 一维-> 多维立方 ->重叠融合
上采样+卷积: 一维->多维 ->一维。
区别在融合上。
那既然他们共同的作用都是可以增大 feature map 同时改变 channel 数,那么在实际任务中该如何选择呢。反卷积有个比较大的问题就是,如果参数配置不当,很容易出现输出feature map带有明显棋盘状的现象,为什么呢,就是在col2im,然后回填这一步。
所以在实际应用中对于一些像素级别的预测任务,比如分割,风格化,gan这类的任务,对于视觉效果有要求的,在使用反卷积的时候需要注意参数的配置,或者直接换成上采样+卷积。