Advertisement

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

阅读量:

天下武功无一不讲究"快"字为先,在移动终端或嵌入式系统中应用,则小巧高效是必要条件。ENet在兼顾精度的同时追求着极致的效率,在输入端首先施加压缩以达到加速效果。论文论述清晰且易于理解,并且论述坦率诚恳!

对于移动设备而言,在语义分割算法的实时性在移动设备应用中尤为关键

CNN在分类任务中的表现非常出色。然而,在像素级分割方面的表现较为粗放。基于VGG16架构设计的SegNet和FCN模型在实验结果上表现出色,然而,在实际应用中需要消耗大量参数资源并伴随较长的时间消耗,这也是我们所提出的EfficientNet(ENet)体系的优势所在。

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

这里写图片描述

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

这里写图片描述

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

卷积神经网络在实际应用中会遇到下采样(downsampling)的问题,在这种情况下会带来部分边缘信息的丢失,并且上采样的过程也会消耗大量计算资源。该方法(SegNet)有效解决了前者的挑战,在后者的方面不可避免地会产生精度损失,但仍然有一些优化手段可以平衡效率与精度之间的关系。
当输入的帧较大时会消耗大量计算资源进行处理。因此本文采用了先压缩输入的方法,并仅将小尺寸特征图传递给网络结构来减少视觉冗余信息的处理负担。

创新点:Initial network layer should not directly participate in classification. Rather, they should instead function as effective feature extractors, solely preparing the input data for subsequent network components.

SegNet中的encoder和decoder是相互对称的;然而,在ENet的设计中,默认情况下 decoder 只会对 encoder 的输出进行上采样操作以实现细节恢复;因此为了实现更大的编码器与更小的解码器之间的平衡关系而导致了'大规模编码器'与'小型解码器'的设计方案。

值得注意的是,在非线性激活函数中使用ReLU会导致精度下降。这种现象的原因在于我们的网络深度不足,在处理复杂模式时表现较弱。此外,在训练过程中无法迅速筛选我们提供的信息

此外,在采样过程中维度的变化会导致数据信息的损失,在借鉴VGG结构中采用的方法:池化后进行卷积运算的过程中会增加特征图的深度并提升计算复杂度的问题上存在不足

分解器:由于卷积核中存在冗余信息,在实际应用中通常会将较大的卷积操作分解为多个更小且更为高效的简单操作,并将其命名为低阶近似(low-rank approximation, 从而带来计算效率上的显著提升)。

Dilated convolutions(膨胀/带孔卷积):扩展了感受野的范围,并详细内容参考文献中的"Multi-scale context aggregation by dilated convolutions,",精度得到了显著提升。

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

只言片语 随手摘录
以上。

全部评论 (0)

还没有任何评论哟~