您的位置:首页 > 理论基础 > 计算机网络

【那些年我们一起看过的论文】之《ENet: A Deep Neural Network Architecture for Real-Time Semantic Segmentation》

2017-03-28 16:27 881 查看
/*

天下武功,唯快不破。要想在移动终端或者嵌入式系统上应用,小巧高速是很重要的。ENet在追求高效率的同时兼顾了精度,站在巨人的肩膀上,综合了很多特色的网络结构,并在输入端首先加以压缩达到加速的目的。论文很好直观易懂,称述很坦诚,代码也非常清晰,nice!

*/

在移动设备上,语义分割的实时性非常重要,近期的很多深度神经网络都要求大量的浮点操作且非常耗时,因此本文专门设计了一种高效率的神经网络ENet(efficient neural network),做到飞一般的享受。

CNN的分类做的很好,但是像素级别的分割比较粗糙,基于VGG16结构的SegNet和FCN虽然在结果上比较出色,但是需要大量的参数及推理时间,这也是我们ENet的优势所在了。

ENet的网络结构如图1,讲整个网络分成了不同的部分和阶段。



————————–图1—————————

细化到每个小部件,结构中具体的模块构造如图2所示



————————–图2—————————

使用卷积网络就会遇到下采样(downsampling),下采样会导致丢失部分边缘信息,同时上采样也会需要较大计算量。前者通过SegNet的方法解决,后者不可避免精度的损失,但是还是有一些方法来均衡效率与精度。

网络输入的帧若是较大会耗费大量时间去处理。所以本文将输入先压缩,只输入小的特征地图给网络结构,这样也去除了一部分图片的视觉冗余内容。

创新点:Initial network layer should not directly contribute to classification. Instead, they should rather act as good feature extractors and only preprocess the input for later portions of the network.

SegNet的encoder和decoder是对称的,然而ENet中考虑到decoder仅仅是对encoder的输出做上采样,只需要在细节上微调,所以设计了“大Encoder”“小Decoder”的结构。

有趣的是,非线性激活函数ReLU的应用反而降低了精度,分析的原因是我们的网络层数太少了,不够深,所以不能很快过滤我们的信息。

此外,在下采样过程中维度的改变会造成信息的丢失,所以借鉴VGG结构中用的一个方法:performing a pooling followed by a convolution.但是显然这样做会增加特征地图的深度,加大计算量。

策略:We chose to perform pooling operation in parallel with a convolution of stride 2, and concatenate resulting feature maps.

分解滤波器:已知卷积的权重会有冗余,因此把大的卷积分解成更小的更简单的操作,称为低阶近似(low-rank approximation.),会有速度上的提升。

Dilated convolutions(膨胀/带孔卷积):延伸了感受野,详见“Multi-scale context aggregation by dilated convolutions,”,精度蹭蹭蹭上升。

总结:我们的网络结构,参数就是少,卷积就是小,速度就是快,不服憋着。

只言片语 随手摘录

以上。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  神经网络 ENet
相关文章推荐