本文记录了博主阅读论文《ENet: A Deep Neural Network Architecture for Real-Time Semantic Segmentation》的笔记,代码。更新于2019.04.17。
文章目录
Abstract
在移动应用中,像素级语义分割的实时性是最重要的。本文中提出了一个名为ENet(Efficient neural network)的深度神经网络结构,专为低延时(low latency)任务设计。ENet比现存方法最高快18倍,少用了75倍的浮点运算(FLOPs,Floating point operations),少了79倍的参数,精度又与现存方法相差无几。ENet在CamVid、Cityscapes和SUN数据库上都测试过。文中还给出了在嵌入式系统(embedded systems)中的结构表现,并提供了让ENet更快的软件提升。
Introduction
可穿戴增强现实、家用自动化设备、自动驾驶这些应用都对能够在移动设备上实时运作的低功耗语义分割(或视觉场景理解)产生了大量的需求。
像SegNet和FCN(详见博主笔记SegNet和FCN)这些网络虽然能够实现端到端的稠密像素分割,但是它们都是基于庞大的网络结构VGG16设计的,无法在大多数电池供电的移动设备上运作(要求达到10fps以上)。
本文中提出了一个专为快速、高准确率推理设计的神经网络结构。下图给出了ENet在图像分割上的示例。

本文工作中,选择不应用任何后处理步骤。尽管可以融合后处理,但是对于端到端网络来说,这样做会破坏最后的结果。
Related work
语义分割对于理解图像内容和查找目标物体非常重要,这项技术在诸如辅助驾驶、现实增强等应用领域中是最重要的。
目前主流的神经网络结构都由两部分组成:编码器和解码器。但是这些方法由于网络结构复杂、参数众多,推理过程比较慢。
尽管SegNet与FCN不同,丢弃了VGG16,从而使其成为这些网络中最小的结构,但这仍然无法满足实时的要求。
其他现存结构使用更简单的分类器,然后用CRF作为后处理。如SegNet论文中提到的,这些方法需要繁重的后处理,且经常对那些在一帧中占据更少像素点个数的类别分类失败。尽管这可以通过结合CNN来实现精度的提升(比如CRFasRNN,博主笔记看这里),但是这样做会导致速度的下降。另外,值得注意的是,RNN是可以作为后处理结合进任何一种方法的,包括本文提出的方法。
Network architecture
下表是网络结构。网络结构可以分成几个阶段,如表中强调的。输出尺寸是以输入图像分辨率为512x512给出的。

这里采用了ResNets的概念,从一个主干里面分出了一支卷积滤波器,再以元素相加(element-wise addition)的形式融合回主干,如下图(b)所示。每个模块包括三层卷积层:一个1x1映射用于降维,一个主卷积层(图中的conv),和一个1x1的扩张。在所有卷积后面都应用了Batch Normalization和PReLU。与原文一致,这里也称这些为bottleneck模块。如果bottleneck是下采样,那么主干上会加一个max pooling层。同时,第一个1x1的映射用各维度步长均为2的2x2卷积替代。应用了zero pad。conv可以是普通卷积、空洞卷积或全卷积(也称为反卷积)中的任何一种,滤波器尺寸为3x3。有时候也会用对称卷积替代,即连续的5x1和1x5卷积。归一化(regularizer)用Spatial Dropout,在bottleneck2.0以前 p = 0.01 p=0.01 p=0.01,以后 p = 0.1 p=0.1 p=

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



