DeepLabV1学习笔记

DeepLabV1创新点

DeepLabV1在文中提到了目前使用全卷积神经网络的两个问题

  1. 因为使用了大量的卷积和池化导致图像的分辨率下降,损失很多边缘的细节,使得图像难以定位边界。
  2. 卷积神经网络的流行是为了解决以图象物体为中心的分类问题,这样就会学习到物体的high-level特征,对物体的空间变化不够敏感,或者说是能够学习到物体的不变特性invariance,这样也会导致定位不准确。(这里我觉得和UNet中提到的要网络学习到细胞变形的特征(不变特性)

This allows the network to learn invariance to such deformations, without the need to see these transformations in the annotated image corpus.

还是有区别的,因为UNet网络的结构简单,深度不深,而且专注于解决细胞分割这种单一,特征少的问题,所以这里指的不变性应该是变形规则这种特点,而不是DeepLab中指的物体抽象特征)

  1. 针对分辨率因为池化下降的问题,论文提出了一种新颖的方法,直接引用一种新的卷积 ‘atrous’ (with holes) 空洞卷积来代替池化层,在提高特征像素的视野的同时保留更多的边缘细节。当时考虑过为什么不直接删掉池化层,这样不就不会造成分辨率下降了吗,但是经过查询资料发现池化层的作用是提高特征点的视野,如果特征点的视野过小就无法得到附近像素的语义信息,这样最后得到分割结果也不会很好。
  2. 第二点对空间不敏感,论文中提出可以用CRF条件随机场的方法,使得边缘处的像素分类更最准,但是我看不懂CRF是怎么作用的,,,猜测应该是在最后的特征图处用CRF计算,具体的公式和理念也似懂非懂,听说李航老师的统计方法中有详细介绍,后面可以学习一下。然后作者也提出一种multi-scale prediction method的方法,从前面浅层得到精细的特征和最后的特征图融合,在进行上采样获取最后的特征图。有点类似FCN和UNet的方法,但是明显DeepLabV1更加粗暴一些,直接把所有的特征在一起相加。

DeepLabV1 关键点

1. 空洞卷积

空洞卷积也是一种卷积,根据自己设定的dilation rate往卷积核中的每个元素之间填充0,然后剩下的还是进行正常的卷积操作。
空洞卷积
这里空洞卷积也是会造成分辨率下降,但是我们可以通过原图进行padding来维持分辨率。换句话来说空洞卷积的功能是维持它所替换的MaxPooling层所提高的视野,padding来防止分辨率下降。(这时可能有uu要问了,哎呀我为啥不能先正常卷积增加padding,然后再池化呢?但是你要padding多少才能抵消n倍的下采样呢,按照公式来算的,如果原分辨率100*100,3*3的卷积核,2倍的下采样MaxPooling,需要再卷积时padding 51,这显然不对)。
既然可以通过使用空洞卷积增大视野,那么是不是可以让卷积核减小,增大膨胀系数来维持视野不变,参数变少增加训练速度呢?论文作者已经给出了尝试

  • 第一行DeepLab-CRF-7x7就是直接将FC1按照FCN论文中的方法转换成7x7大小的卷积层,并且膨胀因子r=4(receptive field=224)。
  • 第二行DeepLab-CRF是将7x7下采样到4x4大小的卷积层,同样膨胀因子r=4(receptive field=128),可以看到参数减半,训练速度翻倍,但mean IOU下降了约4个点。
  • 第三行DeepLab-CRF-4x4,是在DeepLab-CRF的基础上把膨胀因子r改成了8(receptive field=224),mean IOU又提升了回去了。
  • 第四行DeepLab-CRF-LargeFOV,是将7x7下采样到3x3大小的卷积层,膨胀因子r=12(receptive field=224),相比DeepLab-CRF-7x7,参数减少了6倍,训练速度提升了3倍多,mean IOU不变

可以看出来对于语义分割问题,特征图上像素的视野大小还是很重要的甚至高于视野的详细程度。

2.CRF条件随机场和MSc(Multi-Scale)

CRF不太会,但是看了一个比较好的解释,可惜和这篇文章的应用不太相干。
MSc(Multi-Scale)多尺度网络,这里借用 太阳花的小绿豆 的图
在这里插入图片描述
即除了使用之前主分支上输出外,还融合了来自原图尺度以及前四个Maxpool层的输出,更详细的结构参考下图。论文中说使用MSc大概能提升1.5个点,使用fully-connected CRF大概能提升4个点。但在源码中作者建议使用的是不带MSc的版本,以及看github上的一些开源实现都没有使用MSc。我个人猜测是因为这里的MSc不仅费时而且很吃显存。

总结

DeepLabV1引入空洞卷积的概念,在提高视野的同时能够保持特征图的分辨率,这样就能够获得更多的边缘细节。然后又通过使用CRF对特征图中的信息进行计算,使能够获得更加准确的定位效果。这里单单使用CRF不用结合浅层卷积的特征图,就能够提高很多,证明了空洞卷积确实保留了更多的边缘细节信息。我从中感受到视野真的很重要,万一没看到的地方对自己的定位有很大的影响呢?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值