语义分割的小trick

特征图解析度
对图像进行连续的下采样会造成图像解析度的下降,会导致两个缺点:
1.造成空间信息的损失,造成无法分割细节信息
2.与下采样对应,我们需要做连续的上采样,将会增大模型尺寸与计算成本
虽然有上面两个缺点,但是语义分割任务下采样是不得不做的,如果不进行下采样,则每次卷积都在原图大小上进行,这将是非常非常大的计算量,这也是为什么deeplab系列只有部分下采样替换为空洞卷积的原因.既然下采样非做不可,那么我们应该如何减小上面两个缺点的影响呢?
  FCN网络提出了跳跃结构,即不同卷积层次的特征图都用于最后的上采样,结合了深层语义信息和浅层边缘细节信息.SegNet提出了池化索引方法,即每次池化时记录池化结果的位置,在上采样时根据池化结果和池化索引进行上池化操作.在这里对于上采样操作,ENet使用了SegNet的池化索引方法,因为它不需要保存整个池化前特征图,而只需要保存池化索引,可以极大减少计算量.

提前下采样
ENet网络在网络的一开始就采用了两次下采样,这样使得图像的解析度直接下降了4倍,这样极大地减少了计算量,这虽然听起来可能会降低分割准确率,但是我们发现,输入的图像本身就是解析度过高,而分割标签并没有精细到如此高的解析度,所以实际上就算我们保留原图进行分割,根据这个并不精细的标签进行训练,得到的结果也不会好到哪里去,倒不如在刚开始的时候就直接对图像进行下采样,只要下采样后图像的解析度仍然大于等于标签的解析度,理论上就不会产生什么影响.而这里的下采样显然也不能作为低层次特征送给解码网络.

解码尺寸
SegNet的编码与解码结构非常对称,但在ENet中,使用了更大的编码结构和一个更小的解码结构.作者认为编码结构用于提取深度特征,并且用于操作更小的解析度,而解码结构仅仅用于上采样编码的输出,仅用于微调边缘细节,所以并不需要特别深.

非线性操作
在这篇文章中使用PReLU替代ReLU激活函数.PReLU中添加了一个额外的变量,在每一个特征图中使用额外的变量,即负方向梯度变量a.

维数变化信息保留
在网络的前段,作者使用了两层下采样,图像解析度直接下降了4倍,这是非常有必要的,但是这样做也损失了很多信息.在这里,作者并行的使用了2X2的步长为2的卷积和2X2的池化,通过下采样卷积来将大解析度的图像变换为小解析度但是深层的特征图.除此之外,在中间的下采样阶段,作者在卷积分支中也将第一个1X1的卷积替换为2X2的步长为2的卷积.

非对称卷积
每一个nXn的卷积核都可以被分解为nX1和1Xn的两层卷积核,在本文中,作者使用了n=5的非对称卷积,在参数量上,5X5的非对称卷积仅仅比3X3的常规卷积多了一个参数,但是它们的感受野扩大了一倍,并且在网络中增加了函数的多样性,减小过拟合.

空洞卷积
在中间的bottleneck中,作者使用了几层空洞卷积,用于减少下采样次数的同时扩大感受野,所以使用空洞卷积.

正则化
在本文中使用了空间droupout,这种方法不同于普通dropout,普通dropout在于随机地将任意位置的权重置为0,而空间droupout不同,它在于随机地将某一个维度的元素全部置为0,例如将某一个通道上的"高"维度的权值全部置为0,或者将某一个元素对应的所有通道权值都置为0.下图左边为普通dropout,右边为空间dropout.

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值