ENet: A Deep Neural Network Architecture for Real-Time Semantic segmentation.
LinkNet: Exploiting Encoder Representations for Efficient Semantic Segmentation.
其中E-Net是2016年论文,LinkNet是2017年的论文(VCIP,Visual Communication and Image Processing Conference)。都是为速度而生的网络。
E-Net
概述
- 解决的问题
- ENet–>Efficient neural network
- 采用的方法
- 精简网络结构,减少训练的参数
- 结果如何
- 数据集:CamVid, Cityscapes, SUN
- 18x faster, 75x less Flops, 79x less parameters【这个在abstract上啊,跟什么模型比,到后面结果看吧】, 在速度和精度上有比较好的平衡。且精度可以与当时的state-of-the-art媲美。
- Contributions
- 平衡速度和精度,速度是真的挺快的。
细节
结构
![](https://i-blog.csdnimg.cn/blog_migrate/64411dab3f455a776b54557194da255d.png)
这里是两个其中的结构:
![](https://i-blog.csdnimg.cn/blog_migrate/26864b77c051bb7d814cfd5ef57d189c.png)
- figure2 (a)是结构表中的输入部分,即initial部分。表中的结构是以输入为512x512为前提。这部分会有一个2x下采样。两个branch,最后concat,concat后还会接上bn和PReLU才会进入到bottlenect1.0。
- figure2 (b)是表中的bottleneck结构,但表中根据bottleneck type的不同,这个结构会有一定的变化。
- downsampling 1: 左右两个支路都是存在的,但是在都是downsampling类型的1.0,2.0中,第一个1x1处的卷积会改成2x2,s=2,用来下采样两倍。另一支路上的Maxpooling也是下采样两次,此处会有一个连接传递index到对应的upsampling上的unpooling支路上,用来对应上采样。
- downsampling 2:bottleneck 1.x的支路第一个conv仍然是1x1。
- dilate x:表示在figure2(b)中的conv使用的空洞卷积,rate=x。且,maxpool这条支路上只是单纯的一个残差连接,没有任何操作的一条支路。
- asymmetric x:这里使用的是非对称conv,也就是将XX的conv拆分成X1和1*X的级联结构,此处X=5。
- upsampling:conv更改为deconv,maxpooling处也更改为对应的unpooling。
- fullconv:deconv上采样2x。
整体结构以及细节就是上面的各个部分组成。
Design
- feature map resolution:遵循SegNet的做法来上采样,可以减少内存需要,大量的下采样会让分割的精度损失【适当下采样可以增加感受野,获取上下文信息,从而得到更多的语义信息】,采用空洞卷积也是这种目的,保证分辨率,get大感受野。
- Early downsampling【下采样都都放在网络结构的靠前部分】:ENet的开头两个blocks就极大的减少了input size,这样做的道理是:视觉信息在空间上被极大的减少,图片可以被压缩成一个高效的表达。在早期就很快的将input size降下来,不会影响分类,仅仅将前面的几层作为预处理部分。
- Information-preserving dimensionality changes:一般会使用conv后接pool层,会增加feature map的深度(channels),这样会需要很大的计算量,因此,在文中尝试使用pool与conv并行的方式。【This technique allowed us to speed up inference time of the initial block 10 tiime】
- Factorizing filter:n1和1n级联来代替n*n,可以节省很多参数。上面的pool和conv并联的方式和这个Factorizing filter方式都是ENet借鉴InceptionV3里的方式。
- Dilated convolutions