摘要
作者提出了一个新型的带有非对称卷积的高效密集模型(EDANet),采用非对称卷积结构,并结合了空洞卷积和密集的连接性,从而以较低的计算成本和较小的模型实现了高效率。
EDANet的一个重要的特点就是非对称的卷积,它将一个标准的二维卷积分解成为两个一维的卷积,也即将nxn的卷积核分解成为nx1和1xn的卷积核.它可以在很小的精度损失的前提下大大的减少参数.作者采用密集连接结构的本质[13],并对其进行修改以进行实时语义分割。尽管DenseNet最初是用来分类的,但是作者实验证明DenseNet从不同网络层收集特征并融合不同尺度信息的能力,从本质上对分割任务有极大的帮助.
EDANet同样使用了空洞卷积来维持特征图分辨率的同时,扩大感受野,为了使得效率和精度达到平衡,作者没有添加任何额外的解码结构,上下文模块和后处理模块.
模型介绍
EDA模块
EDA模块的结构是建立在非对称卷积模块的基础上,如图1.它包含了一个点卷积和两个成对的非对称卷积,EDA模块的输出是其输入和输出的concatenation.点卷积层:每个EDA模块的开头都是点卷积,点卷积是一个1x1卷积层,用来减少输入特征的通道,这个可以极大的减少参数量和计算的复杂度.非对称卷积:非对称卷积是标准卷积的分解,换句话说,n×1卷积后跟1×n卷积可以替代n×n卷积[23, 29].空洞卷积:空洞卷积是沿着每个维度,在两个连续的卷积核值之间插入0[3,33]这种卷积可以在扩大有效感受野的同时没有增加参数量.EDA block1中的最后两个EDA模块和EDA block2中的所有EDA模块都是空洞卷积,其卷积率为2,2,2,2,4,4,8,8,16,16.为了能够更多的聚合上下文信息来提高准确率,作者在EDA模块中的第二个非对称卷积对中使用空洞卷积,这杯成为"空洞非对称卷积".密集连接是DenseNet提出来的,其中每一层都将所有先前的特征图作为其输入,EDANet也采用这种策略.这种紧密连接的结构可以大大提高处理效率,因为每个模块仅负责获取一些新功能。 此外,众所周知,较深的层具有较大的接收场[27]。 例如,两个3×3卷积层的堆叠具有与单个5×5卷积层相同的有效接收场,并且三个这样的层具有7×7的有效接收场。 因此,密集的连接将从每个具有不同接收场的模块中学习到的功能进行串联,从而使EDANet可以自然地将多尺度信息收集在一起。确保了EDANet能够以较低的计算成本获得良好的语义分割结果。
Fig.1 EDA模块结构网络结构
Fig.2 EDA网络模型下采样:EDANet的网络模型如图2所示,其下采样模块采用的是ENet中的初始化模块,如图3所示。ENet只是在第一个下采样中使用了初始化模块,但是作者将该模块应用到了所有的下采样层,并扩展成了两种模式.当输出通道数Wout少于输入的通道数Win,这个模块就是一个简单的步长为2的3x3卷积,Wconv=Wout.EDANet的第三个下采样层就是这样的设计.如果Wout<Win.那么就会添加上一个步长为2的2x2最大池化层,接着将卷积和池化后的特征图进行concatenate,形成最后的输出,这里,Wout=Wout-Win.前两个下采样层就是采取这种模式.作者这里仍旧提到了特征图尺寸对于细节保留的重要性,因此作者采用了八倍的下采样,而不是像SegNet那样采取32倍下采样.
Fig.3 下采样模块解码器:由于解码器会带来较大的计算量,因此EDANet放弃了解码器,在EDA block2之后,作者添加了一个1x1的卷积层作为一个投影层来产生C(classes)个特征的卷积层,然后使用双线性插值将特征图八倍上采样到输入图像的尺寸,这种策略会稍微的降低精度,但是也减少了大量的计算量.
在网络中,为了加快实际推理速度,作者选择了后激活复合功能的传统智慧,而不是前激活.更具体地说,三个连续操作的顺序是卷积,然后是BN[14]和ReLU.作者将这种操作应用到除了最后投影层外的所有卷积层.这样做的好处是每个BN层可以在推理过程中与其之前的卷积层合并,这可以减少推理时间。 同样,在训练阶段,我们在最后一个ReLU和每个模块的concatenate之间放置一个Dropout[28]作为正则化手段(请参见图3)。 我们在网络中将Dropout率设置为0.02。
实验结果
非对称卷积结构和密集连接概念是EDANet的两个关键元素.为了实验这两个元素的有效性,作者设计了两个对比实验.首先事将非对称卷积替换为两个正常的3x3卷积,另一个是"非密集"的连接,也即采用卷积残差连接[11]替换密集连接,并去除了点卷积层,这样的变体就跟ERFNet相同,为了在相同的计算量下进行对比,作者在对比网络中,将block1的W(特征图的数量)设为40,block2中的W设为80(在ERFNet中分别为64,128).作者使用与EDANet相同的层放置来构建分别由两个模块变体组成的两个网络,它们分别称为EDA-non-asym 和 EDA-non-dense.实验结果如图4所示。
额外的上下文模块:作者对比了EDA block和ASPP模块的效果,作者首先创造了一个浅层的EDANet作为baseline,浅层EDANet中的EDA block2中只有4个EDA模块。作者将最后的四个EDA模块替换为ASPP模块,被称为EDA-ASPP。实验结果显示EDANet比浅层的EDANet精度提升7.01%,而EDA-ASPP只能提升2.55%。另外,EDA-ASPP由于其五支路的结构。比EDANet多出了5倍的参数量。因此,作者观察到只有四个连接的EDA模块的块能够胜过繁重的ASPP上下文模块,因为它的结构更深,并且具有汇总多尺度信息的出色能力。
Fig.4 Ablation结果解码器:作者设计了EDA-ERFdec模型,将ERFNet中的解码器拿过来作为对比。解码器是由步长为2的反卷积层的两个块组成。实验结果如图4(c)所示,实验结果显示EDA-ERFdec精度上获得了0.46%的提升,但是多消耗了44%的计算量(相比于EDANet)。
下采样模块:为了比较EDANet和DenseNet提出的下采样方法,作者通过分别用DenseNet中的早期下采样层和过渡层分别替换前两个下采样块和第三个下采样块来构造EDA-DenseDown,实验结果如图4d所示。EDA在介绍损耗增加的基础上精度提高了3.47%。
cityscapes对比结果
最后,作者分两个阶段来训练EDANet。 在第一阶段,作者通过将标注降采样为输入图像尺寸的1/8来对其进行训练。 在第二阶段,作者通过与输入大小相同的注释再次对其进行训练。 在评估中,作者没有采用任何测试技巧,例如多作物和多尺度测试。 图5显示的是EDANet在Cityscapes测试集上的mIoU和推理效率方面与其他最新网络的比较。 EDANet实现了67.3%的mIoU,这比大多数以30 FPS或更高的速度运行的现有方法(例如ENet [21]和ESPNet [19])要好,甚至比许多速度较低的方法(例如Dilation10 [32])要好。 和FCN [18]。 EDANet在单个GTX 1080Ti和Titan X GPU上分别达到108.7 FPS和81.3 FPS,因此它是当今最快的网络之一。
Fig.5 cityscapes测试集结果
网友评论