语义分割(学习笔记deeplab)

首先要了解语义分割其实是一种像素级的分类,我们输入的图片为h*w*3那么我们输出的结果一定要是h*w*c,其中c表示的是分类数+背景,比如你的分类为2,那么c就等于3,一定要有背景。首先我们需要进行特征提取,获得高级的语义信息,然后我们也需要一些低层特诊与之结合进行还原得到h*w*c,再进行分类,得到的记过我觉得还要与原图进行融合,这个获取到的图片会更加的清晰。至于一些细节大家可以看论文。

为了增大感受野,我们经常会进行卷积池化操作,致使特征图变小,并得到更加高层次的语义信息,但是正是因为池化操作,也导致了一些一部分的信息会被丢失。什么是感受野呢?如下图可以简单的来说:当输入一张图片时,通过卷积等操作得到一张特征图,那么特征图的每个小格子就会对上一层特征图的卷积核大小的格子,又或者对应着原图的响应的大小。如果上面的解释不够清晰可以这么认为,就是一张图片经过卷积等操作(我们可以将这部分当做压缩),然后获得一个很小的正方形,那么我们就可以认为这个正方形就有整个输入图片的感受野,但是由于池化操作,本身会丢弃压缩过程中一部分,那么这个感受野就会有一些损失,所以我们需要降低这样的损失。

感受野直观图

那么为了解决或者说降低这样的信息损失,并且增大感受野,那么有人就想到了空洞卷积,空洞卷积有如下几个优点:①能够很好的被用在图像分割任务中,因为能够提供更大的感受野。②通过设置超参数dilation rate来完成空洞卷积,并没有增加计算量。③可以按照参数扩大任意倍数的感受,没有引入额外参数。④操作简单,只要设置参数就行了。如下图左图为一般卷积,右图为空洞卷积

在pyrotch中实现就是这一部分nn.Conv2d(in_channels = 32,out_channels = 32,kernel_size = 3 , stride = 1,padding=0,dilation=2),

兴许会有人说:如果增大感受野,直接增加卷积核大小不就行了,这个想法没有错,但是我们也需要考虑一下实际情况,也就是硬件情况,我们来进行计算一下,一个7*7的卷积核和3个3*3的卷积核结果相当,当输入是一张h*w*c的图片,使用卷积核大小为3*3*c和7*7*c进行卷积,那么他们的两个卷积核分别所需要的参数是c*3*3*3*c和c*7*7*c两者的比值一下子就能看出来,几乎近两倍关系,所以这会增加参数。并且小的卷积核之后会使用激活函数也会越多,有更高的拟合效果。

对于增大感受野,相信大家会想到spp网络,如下图所示,它是将输入特征图经过1x1,3x3,5x5等池化或卷积后,再在通道上进行拼接,得到的特征图既有细粒度特征也有更高层的语义特征。

 既然空洞卷积和spp网络都能够增加感受野,那么作者就想到将二者进行了结合,如下图所示,由此产生了ASPP,就是将spp的池化层换成空洞卷积的操作。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值