【论文笔记】ITS17 ERFNet: Efficient Residual Factorized ConvNet for Real-Time Semantic Segmentation


Block - Factorized Residual Layers

结构特征

网络结构的关键点:A novel layer that uses residual connections and factorized convolutions

跳跃连接:使用ResNet网络结构,让网络学习残差函数来加速训练

分解卷积:通过将2D卷积操作等效分解为多个1D卷积操作,在获得与2D相似准确率的情况下大幅减少了参数量

ERFNet网络架构就是基于Non-bottlenect block结构的顺序堆叠型网络,不包含多级特征图融合或block间的长距离范围跳跃连接。

关于跳跃连接作者分析了文章[6]中的ResNet block,包含Non-bottleneck和Bottleneck两种;作者提到两种版本实际上具有相似的参数量(作者是基于feature map降低4倍的情况下对比的,很明显bottleneck大幅降低了参数量),并且准确率也差不多;但是bottleneck需要更少的计算资源,并且当网络深度增加时计算量的增长不大。

从[6] [7] [12]作者说非bottleneck结构相对于bottlneck结构可以从深度获得更高的准确率,意思是bottlneck结构仍然存在梯度弥散的问题。

卷积分解理论作者引用了[22],列出了任意2D滤波器可以由若干个1D滤波器组合的数学公式;作者主要对Non-bottleneck进行了改造,ERFNet架构中使用的也是Non-bottlenect-1D block;

宽度扩展

image

作者说从滤波器和特征图的计算量可以得出Non-bottleneck-1D直接增加了网络结构的width,后面也有篇幅提到了这个block带来的是wider layer的效果。

这里没有太理解他说的本意是什么,大概意思可能是这个block降低了计算量;如果从相同计算量角度,那么这个block可以获取更wider的信息?

参数分析

文中提了三种Block结构,实际上对应的应该还有一种:对Bottleneck的1D分解;这个网络在文中有提到且分析了一下参数量,但是没有继续往下做实验(这个结构在ENet中使用了,表示为asymmetric conv);
blocks

四种block在相应feature map下的参数量:
params

上表计算的参数量应该是不带bias的数值,针对单个block参数量分析可以参考:http://cs231n.github.io/convolutional-networks/#conv,根据表中给定的 w 0 = 64 w_0 = 64 w0=64,参数量数值计算如下:

Residual Blockwithout biaswith bias
bottleneck1x1x256x64 + 3x3x64x64 + 1x1x64x256 = 69632(1x1x256+1)x64 + (3x3x64+1)x64 + (1x1x64+1)x256 = 70016
non-bottleneck3x3x64x64x2 = 73728(3x3x64+1)x64x2 = 73856
bottleneck-1D1x1x256x64 + 3x1x64x64x2 + 1x1x64x256 = 57344(1x1x256+1)x64 + (3x1x64+1)x64x2 + (1x1x64+1)x256 = 57792
non-bottleneck-1D3x1x64x64x4 = 49152(3x1x64+1)x64x4 = 49408

平台测试

文中所述的网络准确率在实时分割网络里面基本上是最优的,原文可看到实验结果这里不做对比;此外文中提到的网络前向速度和我在海思NPU平台测试的结果有出入。
inference

问题跟进

关于Bottleneck-1D的实验和wider layer的解释,看作者后续会不会有什么跟进:
https://github.com/Eromera/erfnet_pytorch/issues/45


Miscellaneous

近来的发展趋势是将所有分类问题统一为语义分割任务

相关工作

FCN 作为第一个呈现端到端语义分割的网络;通过将分类网络变为全卷积并上采样输出特征图,网络输出结果比较粗糙;这是由于在分类网络中通常都是利用大的降采样步骤来获取更多的原图信息;为了获得更精细的输出,也通过将浅层的特征图与深层的跳跃链接;这里上采样用的是deconvolution层

SegNet 通过使用max-pooling indices的大decoder来提升unpooling的精度,segnet decoder的up-sampling使用的是带mask的upsample层

DeepLab 利用CRF来作为后端refine粗糙边界

CRFasRNN 将CRF整合入卷积架构 两者利用CRF的结构极大地增加了计算量

DeepLab2 将ResNet-101 SPP CRF整合

RefineNet 提出了一种通过多路优化的网络,通过长范围残差连接来引入降采样通路上的多种分辨率信息

FRRN 提出了一种类ResNet结构的网络,通过两个处理流程来将多尺度信息和像素级准确率组合;一个是在原图分辨率的处理流程,另外一个实在降采样操作过程中的流程

LRR 提出了一种通过拉普拉斯金字塔构造不同尺度特征的复杂结构

ENet 也将ResNet结构引入了分割任务,但是为了计算效率在精度上做了较大的牺牲

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值