LinkNet: Exploiting Encoder Representations for Efficient Semantic Segmentation
用于视觉场景理解的像素语义分割不仅需要准确,而且需要高效,以便在实时应用中找到任何用途。现有的算法虽然准确,但没有有效地利用神经网络的参数。因此,就参数和操作数量而言,它们是巨大的;因此也很慢。在本文中,我们提出了一种新的深度神经网络结构,它可以在不显著增加参数数量的情况下进行学习。我们的网络仅使用1150万个参数和21.2 GFLOPs来处理分辨率为3×640×360的图像。它在CamVid上提供了最先进的性能,并在Cityscapes数据集上提供了可比的结果。我们还比较了我们在NVIDIA GPU和embedded系统设备上的网络处理时间,以及不同图像分辨率的现有最先进架构。
最近,能够执行计算密集型任务的机器的发展使研究人员能够更深入地研究神经网络。卷积神经网络(CNN)[1],[2]最近在图像分类[3]、[4]、[5]、[6]、[7]、[8]、定位[9]、[10]、场景理解[11]、[12]等方面取得了成功。由于增强现实和自动驾驶车辆等任务的激增,许多研究人员将注意力转移到场景理解上,其中一个主要步骤是像素级分类/语义分割[13],[14]。
根据自动编码器[3],[15]的要求,大多数现有的语义分割技术都使用encoder-decode对作为其网络架构的核心。在这里,编码器将信息编码到特征空间中,解码器将该信息映射到空间分类中以执行分割。尽管语义分割针对的是需要实时操作的应用程序,但讽刺的是,当前大多数深度网络都需要过大的处理时间。YOLO[16]、Fast RCNN[17]、SSD[18]等网络专注于实时对象检测,但在语义分割的情况下,在这方面几乎没有做过什么工作[19]。
在我们的工作中,我们试图在不影响网络处理时间的情况下获得准确的实例级预测。通常情况下,编码器中的空间信息会由于池化或步幅卷积而丢失,通过使用(pooling indices)池化索引或( full convolution)完全卷积来恢复。我们假设,并在我们的论文中证明,代替上述技术;绕过空间信息,直接从编码器到相应的解码器,可以提高精度,同时显著减少处理时间。通过这种方式,编码器的每一级都会丢失的信息得以保留(浅层信息保留),并且在重新学习丢失的信息时不会浪费额外的参数和操作。在第三节中,我们将详细解释我们的LinkNet架构。提议的网络在流行数据集Cityscapes[20]和CamVid[21]上进行了测试,其处理时间记录在NVIDIA Jetson TX1嵌入式系统模块以及Titan X GPU上。第四节报告了这些结果,随后是结论。
在第三节中,我们将详细解释我们的LinkNet架构。提议的网络在流行数据集Cityscapes[20]和CamVid[21]上进行了测试,其处理时间记录在NVIDIA Jetson TX1嵌入式系统模块以及Titan X GPU上。第四节报告了这些结果,随后是结论。
语义分割涉及标记图像的每个像素,因此,保留空间信息变得至关重要。用于场景解析的神经网络结构可以细分为编码器和解码器网络,它们基本上分别是分类网络和生成网络。最先进的分割网络通常使用分类模型作为其鉴别器,分类模型大多是ImageNet大规模视觉识别挑战赛(ILSCRC)的优胜者。生成器要么使用鉴别器存储的池索引(反池化?),要么使用卷积学习参数以执行上采样。此外,编码器和解码器可以是对称的(编码器和解码器中相同数量的层具有相同数量的池和非池层),也可以是不对称的。
在[22]中,预先训练的VGG被用作鉴别器。保存每个最大池步骤后的池索引,然后用于解码器中的上采样。后来,研究人员提出了深度反卷积网络[23]、[24]、完全卷积网络(FCN)与skip architecture相结合的想法[25],从而消除了保存池索引的需要。用于分类和分类的网络大多使用全连接层作为分类器;在FCN中,它们被卷积层取代。标准的预训练编码器,如:AlexNet[4]、VGG[5]和GoogLeNet[7]已用于分割。为了获得精确的分割边界,研究人员还尝试将深度卷积神经网络(DCNN)和预处理步骤,就像使用条件随机场(CRF)[26],[11]。
而不是使用设计用于执行图像分类的网络,[27]建议使用专门为密集预测设计的网络。这些网络中的大多数无法在现有嵌入式硬件上实时执行分段(无法并行)。除此之外,最近的递归神经网络(RNN)被用于获取上下文信息[28]和优化CRF[29];但是RNN本身的使用使得它在计算上非常昂贵。在设计高效网络[30],[19]方面也做了一些工作,其中DCNN经过优化以获得更快的前向处理时间,但预测精度有所降低。
LinkNet的体系结构如图1所示。这里,conv表示卷积,full conv表示完全卷积[25]。此外,/2表示通过执行步进卷积实现的因子2的下采样,和∗2表示按2的系数进行上采样。我们在每个卷积层之间使用批量标准化,然后是ReLU非线性[31],[32]。图1所示的网络的左半部分是编码器,而右半部分是解码器。编码器从一个初始块开始,该块对输入图像执行卷积,内核大小为7×7,步长为2。该区块还以2的步幅在3×3的区域内执行空间最大池。编码器的后一部分由residual blocks[6]组成,并表示为编码器块(i)。
图2详细显示了这些编码器块中的层。类似地,图3提供了解码器块的层细节。表一包含了关于每个区块中使用的特征图的信息。本文的分割算法使用VGG16(1.38亿个参数)、ResNet101(4500万个参数)等网络作为编码器,这些网络的参数和GFLOP都非常大。LinkNet使用ResNet18作为其编码器,这是一个相当轻的网络,仍然优于他们,从第四节可以明显看出我们在解码器中使用了[25]之前提出的全卷积技术。每个conv(k×k)(im,om)和full conv(k×k)(im,om)操作至少有三个参数。这里,(k×k)表示(内核)− 大小)和(im,om)分别表示(inputmap,outputmap)。
与用于分割的现有神经网络结构不同,我们的新颖之处在于我们将每个编码器与解码器连接起来的方式。通过在编码器中执行多次下采样操作,一些空间信息丢失。仅使用编码器的下采样输出很难恢复丢失的信息。[22]通过合并索引将编码器与解码器链接,这些索引不是可训练的参数。其他方法直接使用编码器的输出,并将其输入解码器以执行分段。在本文中,每个编码器层的输入也被旁路到相应解码器的输出。通过这样做,我们的目标是恢复解码器及其上采样操作可以使用的丢失的空间信息。此外,由于解码器在每一层共享编码器学习的知识,因此解码器可以使用较少的参数。与现有的最先进的分段网络相比,这将产生一个整体效率更高的网络,从而实现实时操作。第四节详细介绍了每个正向通行所需的可train参数和操作次数。
我们将LinkNet与现有架构在两个不同指标上进行比较:
1)速度方面的表现: 执行一次网络前向传递所需的操作数 、进行一次向前传递所需的时间
2)在城市景观[20]和CamVid[21]数据集上执行精确性方面。
我们报告了LinkNet在NVIDIA TX1嵌入式系统模块以及广泛使用的NVIDIA TitanX上的推理速度。表II比较了不同分辨率的单个输入帧的推断时间。从提供的数字可以明显看出,LinkNet可以在GPU上以每秒8.5帧的速度处理非常高分辨率的图像。更重要的是,它甚至可以在NVIDIA TX1上提供实时性能表示网络无法在嵌入式设备上以该分辨率处理图像。
我们选择640×360作为默认图像分辨率,并在表III中报告处理该分辨率图像所需的操作数。操作数决定任何网络的前向传递时间,因此减少它比减少参数数更重要。我们的方法的效率体现在每帧的操作数和总体参数都非常低。
我们使用Torch7[33]机器学习工具进行训练,使用RMSProp作为优化算法。该网络使用四个NVIDIA TitanX进行训练。因为所有数据集中的类都是高度不平衡的;我们使用自定义的类权重方案,定义为wclass=1ln(1.02+pclass)。该类称重方案取自[19],它比平均频率给出了更好的结果。正如城市景观[20]中所建议的,我们使用联合上的交点(IoU)和联合上的实例级交点(iIoU)作为我们的性能指标,而不是使用像素精度。为了证明旁路连接确实有用,每个表都包含带旁路和不带旁路的IoU和iIoU值。我们还将LinkNet的性能与其他标准模型进行了比较,如SegNet[24]、ENet[19]、District8/10[34]和Deep Lab CRF[35]。
a) Cityscapes
该数据集由5000张精细注释图像组成,其中2975张可用于训练,500张可用于验证,其余1525张已被选为测试集[20]。我们在我们的网络上接受了官方评估脚本[20]中提供的19门课程的训练。如表四所示,我们的网络性能优于现有模型
这些性能值是在验证数据集上计算的。使用分辨率为1024×512的输入图像对网络进行训练。批量为10,初始学习率为5e−发现4具有最佳性能。图4显示了两幅城市景观测试图像的预测分割输出。
b) CamVid
这是另一个汽车数据集,包含367个培训、101个验证和233个测试图像[21]。有十一个不同的类,如建筑、树木、天空、汽车、道路等,而第十二个类包含未标记的数据,我们在训练中忽略了这些数据。该数据集的原始帧分辨率为960×720(W,H),但在训练之前,我们将图像的采样率降低了1.25倍。由于硬件限制,使用了8个批量来训练网络。在表V中,我们在测试集上比较了该算法与现有最先进算法的性能。LinkNet在IoU和iIoU指标上都优于所有这些公司。LinkNet的分段输出如图5所示
我们提出了一种全新的神经网络体系结构,专门用于语义分割。与成熟的深度学习工作站相比,我们的主要目标是高效利用嵌入式平台上的稀缺资源。我们的工作在这项任务中提供了巨大的收益,同时匹配并有时超过现有的基线模型,这些模型的计算和内存需求要大一个数量级。在英伟达TX1硬件上应用的网络示例说明了实时便携式嵌入式解决方案。
尽管主要目标是在移动设备上运行网络,但我们发现它在NVIDIA Titan X等高端GPU上也非常有效。这可能在需要处理大量高分辨率图像的数据中心应用中非常有用。我们的网络允许以更快、更高效的方式执行大规模计算,这可能会带来显著的节约。