ESPNet: Efficient Spatial Pyramid of Dilated Convolutions for Semantic Segmentation(自动驾驶领域轻量级模型)

主要思想

基于传统卷积模块设计,提出一种高效空间金字塔卷积模块(ESP Module),有助于减小模型运算量和内存、功率消耗,以提高在终端设备上的适用性。这款模型和MobileNet系列、ShuffNet系列相似,都是轻量级模型,可以部署到移动端。

模型具体结构

如下图所示,模型主要有两个模块构成,一个是Efficient spatial pyramid模块,一个是HFF模块。
ESPNet: Efficient Spatial Pyramid of Dilated Convolutions for Semantic Segmentation(自动驾驶领域轻量级模型)_第1张图片

Efficient spatial pyramid

这个部分由两个子部分构成,前面部分是逐点卷积,就是采用K个1x1xM的小卷积核对原图进行卷积操作,1x1卷积的作用其实就是为了降低维度,这样就可以减少参数,这也是轻量级模型的思路。后面的部分是空洞卷积,即在没有进行下采样(pooling)的操作下,扩大感受野。使用不同膨胀率的卷积核,可以得到不同感受野下的feature,这一点有点类似金字塔池化,所以这个模块也叫ESP。

参数计算

下面来计算下一共包含的参数,其实在效果上,以这种轻量级的网络作为backbone效果肯定不如那些重量级的,比如Resnet,但是在运行速度上有很大优势。

如上图所示,对Efficient spatial pyramid第一部分来说,d个1x1xM的卷积核,将M维的输入feature map降至d维。此时参数为: M ∗ N / K M*{N/K} MN/K,第二部分参数量为 K ∗ n 2 ∗ ( N / K ) 2 K*{n^2}*{(N/K)}^2 Kn2(N/K)2,和标准卷积结构相比,参数数量降低很多。

HFF模块


如上图所示,因为使用了大感受野的膨胀卷积,导致了gridding artifacts现象,如下图所示。本文提出了使用HFF方法来解决该问题,具体做法就是从最小的膨胀卷积核输出的那张feature map开始,逐级叠加。这样的做法并没有引入任何新的参数,同时计算量上也没有增加太多,但却有效地改善了网格效应。

ESPNet: Efficient Spatial Pyramid of Dilated Convolutions for Semantic Segmentation(自动驾驶领域轻量级模型)_第2张图片
这里其实就是对空洞卷积的结果进行逐层点加向下传递,然后在通道方向上进行concat,concat之后,再对之前的特征做一个点加,这一点采用了残差的思想。

和其它模型的对比

这里,文章对其它模型和该模型做了一个对比,包括参数的数量以及核心网络结构,如下图所示。在这里,不再一一阐述。
ESPNet: Efficient Spatial Pyramid of Dilated Convolutions for Semantic Segmentation(自动驾驶领域轻量级模型)_第3张图片

ESPNet模型

作者提出了四种模型,分别如下图所示。
ESPNet: Efficient Spatial Pyramid of Dilated Convolutions for Semantic Segmentation(自动驾驶领域轻量级模型)_第4张图片
下面是以不同网络模型作为backbone的语义分割网络再VOC数据上的表现效果。
ESPNet: Efficient Spatial Pyramid of Dilated Convolutions for Semantic Segmentation(自动驾驶领域轻量级模型)_第5张图片
发现,ESPNet在较少的参数下,取得了很好的效果。

源代码

作者开源了基于ESPNet的语义分割网络源代码,ESPNet,支持测试和训练。下面展示几幅在kitti数据集上的测试效果。

原图像:


结果图像:
ESPNet: Efficient Spatial Pyramid of Dilated Convolutions for Semantic Segmentation(自动驾驶领域轻量级模型)_第6张图片
ESPNet: Efficient Spatial Pyramid of Dilated Convolutions for Semantic Segmentation(自动驾驶领域轻量级模型)_第7张图片

你可能感兴趣的:(计算机视觉,深度学习)