ENet 笔记

关键点

一、背景

许多移动应用需要实时语义分割模型。深度神经网络需要大量的浮点运算,导致运行时间长,从而降低了时效性。ENet,相比于 SegNet,在速度块,浮点计算量少,参数少,且有相似的精度。

二、网络结构

整体架构

初始化模块

将两边结果 concat 一起,合并成 16 通道,这样可以上来显著减少存储空间。

bottleneck 模块

bottleneck 模块,基于 ResNet 思想。

  1. 基本的 bottleneck

    • 第一个 1x1 卷积实现降维;
    • 第二个 1x1 卷积实现升维;
    • 使用 PReLU 激活函数,ReLU 降低了模型精度(网络层数较少);
    • drop 防止过拟合;
    • 元素级加法融合;
  2. 下采样的 bottleneck

    • 2x2 conv 利于信息的保留
    • 2x2 pool 降采样提取上下文信息,保存 pooling indices;
    • 1x1 卷积升维
  3. 上采样的 bottleneck

    • upsample 采用的是 SegNet 的方法进行上采样,结合下采样中的 pooling indices;

网络细节

三、训练策略

Table of Contents