Deformable Convolutional Networks

一、摘要

由于构造卷积神经网络 (CNN) 所用的模块中几何结构是固定的,其几何变换建模的能力本质上是有限的。在我们的工作中,我们引入了两种新的模块来提高卷积神经网络 (CNN) 对变换的建模能力,即可变形卷积 (deformable convolution) 和可变形兴趣区域池化 (deformable ROI pooling)。它们都是基于在模块中对空间采样的位置信息作进一步位移调整的想法,该位移可在目标任务中学习得到,并不需要额外的监督信号。新的模块可以很方便在现有的卷积神经网络 (CNN) 中取代它们的一般版本,并能很容易进行标准反向传播端到端的训练,从而得到可变形卷积网络 (deformable convolutional network)。大量的实验验证了我们的方法在目标检测和语义分割这些复杂视觉任务上的有效性。

二、分析

这是一种对传统方块卷积的改进核,本质是一种抽样改进。

谈到抽样,人脑好像天生知道如何抽样获得有用特征,而现代机器学习就像婴儿一样蹒跚学步。我们学会用cnn自动提取有用特征,却不知用什么样的卷积才是最有效的。我们习惯于方块卷积核窗口,而Jifeng Dai的work认为方块不是最好的形状。

标准卷积中的规则格点采样是导致网络难以适应几何形变的“罪魁祸首”。为了削弱这个限制,研究员们对卷积核中每个采样点的位置都增加了一个偏移的变量。通过这些变量,卷积核就可以在当前位置附近随意的采样,而不再局限于之前的规则格点。这样扩展后的卷积操作被称为可变形卷积(deformable convolution)。

可变形卷积是指卷积核在每一个元素上额外增加了一个参数方向参数,这样卷积核就能在训练过程中扩展到很大的范围。

三、图示
在这里插入图片描述
上图:展示了卷积核大小为 3x3 的正常卷积和可变形卷积的采样方式,( a ) 所示的正常卷积规律的采样 9 个点(绿点),( b )( c )( d ) 为可变形卷积,在正常的采样座标上加上一个位移量(蓝色箭头),其中( c )( d ) 作为 ( b ) 的特殊情况,展示了可变形卷积可以作为尺度变换,比例变换和旋转变换的特殊情况

事实上,可变形卷积单元中增加的偏移量是网络结构的一部分,通过另外一个平行的标准卷积单元计算得到,进而也可以通过梯度反向传播进行端到端的学习。加上该偏移量的学习之后,可变形卷积核的大小和位置可以根据当前需要识别的图像内容进行动态调整,其直观效果就是不同位置的卷积核采样点位置会根据图像内容发生自适应的变化,从而适应不同物体的形状、大小等几何形变。然而,这样的操作引入了一个问题,即需要对不连续的位置变量求导。 作者在这里借鉴了之前Spatial Transformer Network和若干Optical Flow中warp操作的想法,使用了bilinear插值将任何一个位置的输出,转换成对于feature map的插值操作。同理,类似的想法可以直接用于 (ROI) Pooling中改进。

可形变卷积:
在这里插入图片描述
可变性卷积的流程为:

  1. 原始图片batch(大小为bhwc),记为U,经过一个普通卷积,卷积填充为same,即输出输入大小不变,对应的输出结果为(bhw2c),记为V,输出的结果是指原图片batch中每个像素的偏移量(x偏移与y偏移,因此为2c)。
  2. 将U中图片的像素索引值与V相加,得到偏移后的position(即在原始图片U中的座标值),需要将position值限定为图片大小以内。position的大小为(bhw*2c),但position只是一个座标值,而且还是float类型的,我们需要这些float类型的座标值获取像素。
  3. 例,取一个座标值(a,b),将其转换为四个整数,floor(a), ceil(a), floor(b), ceil(b),将这四个整数进行整合,得到四对座标(floor(a),floor(b)), ((floor(a),ceil(b)), ((ceil(a),floor(b)), ((ceil(a),ceil(b))。这四对座标每个座标都对应U中的一个像素值,而我们需要得到(a,b)的像素值,这里采用双线性差值的方式计算
    (一方面得到的像素准确,另一方面可以进行反向传播)。
  4. 在得到position的所有像素后,即得到了一个新图片M,将这个新图片M作为输入数据输入到别的层中,如普通卷积。

可形变ROI池化:

在这里插入图片描述

四、可变卷积网络的新思路:简明深刻的网络结构变革

可变形卷积单元具有诸多良好的性质。它不需要任何额外的监督信号,可以直接通过目标任务学习得到。它可以方便地取代任何已有视觉识别任务的卷积神经网络中的若干个标准卷积单元,并通过标准的反向传播进行端到端的训练。是对于传统卷积网络简明而又意义深远的结构革新,具有重要的学术和实践意义。它适用于所有待识别目标具有一定几何形变的任务(几乎所有重要的视觉识别任务都有此特点,人脸、行人、车辆、文字、动物等),可以直接由已有网络结构扩充而来,无需重新预训练。它仅增加了很少的模型复杂度和计算量,且显著提高了识别精度。例如,在用于自动驾驶的图像语义分割数据集(CityScapes)上,可变形卷积神经网络将准确率由70%提高到了75%。

此外,通过增加偏移量来学习几何形变的思想还可方便地扩展到其它计算单元中去。例如,目前业界最好的物体检测方法都使用了基于规则块采样的兴趣区域(region of interests, ROI)池化(pooling)。在该操作中,对于每个采样的规则块增加类似的偏移量,从而得到可变形兴趣区域池化 (deformable ROI pooling)。由此所获得的新的物体检测方法也取得了显著的性能提升。

近年来,与神经网络结构相关的研究工作层出不穷,大多是对于各种基本网络单元连接关系的研究。不同于大部分已有的工作,可变形卷积网络首次表明了可以在卷积网络中显式地学习几何形变。它修改了已使用二十余年的基本卷积单元结构,在重要的物体检测和语义分割等计算机视觉任务上获得了重大的性能提升。
可以想象,在不远的未来,在更多的计算机视觉识别任务中(如文字检测、视频物体检测跟踪等)都将看到它的成功应用。

Notes:
可变形卷积很好理解,但如何实现呢?实现方面需要关注两个限制:

  1. 如何将它变成单独的一个层,而不影响别的层;

  2. 在前向传播实现可变性卷积中,如何能有效地进行反向传播。

这两个问题的答案分别是:

  1. 在实际操作时,并不是真正地把卷积核进行扩展,而是对卷积前图片的像素重新整合,变相地实现卷积核的扩张;

  2. 在图片像素整合时,需要对像素进行偏移操作,偏移量的生成会产生浮点数类型,
    而偏移量又必须转换为整形,直接对偏移量取整的话无法进行反向传播,这时采用双线性差值的方式来得到对应的像素。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章