Deformable ConvNets v2 Pytorch版源码讲解_1

Deformable ConvNets v1:

      网上关于这个的讲解很多,总结一句话就是让某一层的输入都学习到一个offset(注意这里每一个通道上的点学到的offset都是一样的,举个例子:通道1上的(0,0)学到的offset和通道2上的(0,0)学到的offset是一模一样的,即都offset至一个固定点,但得出的像素值肯定不一样。比如说都offset至(1,1)这个点,但其来自于不同通道它们的像素值肯定不一样。当然咱们这个例子有点理想,offset学习的都是整数。咱们后面分析源码的时候在来具体讲解,这里提一嘴)。在通过这个offset后的点与卷积核进行卷积操作,那么这样就打破了常规卷积在固定位置采样的问题。

Deformable ConvNets v2:

      我只用了这个改进版的两个创新点,第一个创新点通过引入更多的可变形卷积。第二个创新点给这些offset后的像素值都学习一个权重。(这里我也要说明一下,有很多文章说的模棱两可,给offset加一个权重,这其实是不同版本的实现吧,我这个版本中看到的是给offset后的像素值都学习一个权重,这些权重都经过了sigmoid激活,言外之意这里权重都是0-1的正数,没有负值。)我觉得这个就很厉害了,不仅让采样的点发生了改变,还让采样的点的像素值发生了改变。这不就从两个不同角度来两次改变感受野吗?而且更离谱的是这个感受野是可以通过学习得到的,且不需要添加任何额外的监督。常规卷积还面临着一个有效感受野的问题,这样做会不会一定程度上避免这个问题?

Deformable ConvNets 可以解决哪些问题:

      这位开源代码的作者运用的是Scaled Mnist数据集。这个数据集对Mnist手写数据集进行了随机缩放。也就是可变形卷积对这些形变程度较大的物体有着较好的识别能力,不像常规卷积对这些形变程度较大的物体进行固定采样而造成性能瓶颈。如果你的数据集是那种遥感图像,航拍图像你都可以尝试一下。那么说一下我的数据集,我的数据集是一些食管,这些食管都有一定程度的形变,Deformable ConvNets v2 Pytorch版源码讲解_1_第1张图片所以我引入了可变形卷积代替传统卷积,应用可变形卷积后我的准确率也获得了提升。

 

你可能感兴趣的:(神经网络,pytorch,深度学习)