deeplabv3架构_语义分割之deeplabv3+

deeplabv3+采用Encoder-Decoder结构,结合Atrous Separable卷积进行语义图像分割。Encoder使用改进的Xception模块,Decoder通过融合高低层信息进行上采样。Atrous Separable卷积降低了计算复杂度,同时保持性能。 Deeplabv3+的输出stride为16,适合语义分割任务。
摘要由CSDN通过智能技术生成

嘿嘿嘿,终于到介里辣。

deeplabv3+:Encoder-Decoder with Atrous Separable Convolution for Semantic Image Segmentation

一.网络架构图1.deeplabv3+的网络架构

从上图的网络架构可以看出v3+分为了编码和解码两个模块,因为encoder-decoder架构能够进一步保护物体的边缘信息。

1.Encoder模块

在编码模块,使用的是v3的结构,其中,前面几个block中使用空洞卷积,然后再输出的特征图上使用不同atrous rate并行空洞金字塔池化去提取特征,用concat融合之后,再使用1x1卷积减少通道数。注意encoder的输出特征图的通道数是256。

亮点1:与v3不同的是,这里将空洞卷积和深度分离卷积结合,得到一个atrous separale convolution(也就是把空洞卷积应用在深度分离卷积上)。这种做法的优点在于:在维持相同性能的情况下,深度分离卷积可以大大减小计算复杂度。具体如何减少参数,加快计算可以看该链接:https://mp.weixin.qq.com/s?src=11&timestamp=1564366796&ver=1757&signature=lED4eF9vusZRzG78TWD3EL1VvRtHEcT04pqVP*FuzdDtYy9*f9O9ZBrG-SVvsxkegU8T-Q7vKakX2GUAywjtBgrgtmTaa720O9iDK0vaWVeBNlPlbIxDlayhREw2OMQF&new=1​mp.weixin.qq.com

2.Deconder模块

如图1所示,解码部分结合了high-level和low-level(初始通道是256或512)的信息,对于high-level信息,1x1卷积减少通道数后要进行4倍上采样;而low-level的信息也是通过1x1的卷积去减少其通道数,这两部分都是用了1x1卷积减少通道数,但是通道数更多的还是high-level的信息,因为low-level的信息只是为了解码提供更细节的上下文信息,重点还是在于解码编码的输出。二者结合之后,在用3x3的卷积去提取特征,最后上采样之后输出prediction。值得注意的是,在解码过程中,一共进行2次4倍上采样,说明outputstride=16。(对于图像识别任务,output_stride=32,而在语义分割中,outputstride=16)要将output_stride从32变成16,可以加入空洞卷积和去掉最后一个block中stride的方法(代码中将最后一个block的stride变为1)。

3.Xception

在v3+中以Xception作为主干构架,且对Xception架构进行了改变,以下是改变后的架构:图2.modified Xception架构

在Entry flow是和原来的Xception一样的,但是在middle flow中重复了16次;再者将所有的最大池化层变成带striding的深度分离卷积;最后在3x3的卷积后面都加入了BN层和Relu激励函数。

以下是原始Xception的网络架构,以作参考:图3.Xception的原始结构

到如今,倒也大致了解了它的框架及优点,若要再细致,我该去研究研究一下源码了。我走辣,看完源码再记录,我会回来滴。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值