概述
deeplab v3+是deeplab系列中最新内容,也是当前最流行的语义分割算法,本篇文章主要记录的是个人在学习deeplab v3+过程中的一些收获以及个人对该算法的理解。
首先我们先简单回顾下deeplap v3 相关的创新点以及不足。在上一讲的时候我们讲到v3相比v2创新点主要有四个方面,首先它提出了更加通用的框架,其次重新设计了空洞卷积,将空洞卷积和级联模块结合起来使用,而不再单独使用。第三点它改进了ASPP,在ASPP的最后一层使用了BN层。最后一点是去掉了CRF。并且我们在最后,也说了deeplab v3的不足点—就是v3获取处理结果的时候直接按照8或者16进行上采样来获取最终结果,这样处理很粗糙。因为,直接按照8或16的采样率进行上采样的操作并不能充分恢复降采样的过程中损失的细节信息,会导致分割不精确的情况发生。因此v3+的创新点之一就是在在v3的基础上加入编码器和解码器结构来恢复原始分辨率的分割结果,使得边缘细节信息能够较好的保留。同时另一个创新点是将v3的基础网络ResNet101换成了Xception网络,使用深度分割卷积进一步提高分割算法的速度和精度。
算法

首先我们看到左边这张图是是我们之前常见的空间金字塔池化结构,也就是我们之前v2和v3中用的结构,它通过在不同分辨率上的池化操作来捕获丰富的上下文信息。而中间这张图片是FCN算法中用的网络结构,我们称为编码器-解码器结构。在这个结构中编码器一般采用图像分类预训练得到的网络,采用不断的池化和跨步卷积(strided convolution)能够获得长范围的语境信息,从而得到更好的分类结果。然而在此过程中特征分辨率不断降低,图像细节信息丢失,这对于分割任务而言影响很大。因此在编码器之后需要利用解码器进行图像分辨率的恢复。值得注意的一点:一般解码器常常具有类似skip的结构将编码器得到的细节信息加入后续解码

最低0.47元/天 解锁文章
8456

被折叠的 条评论
为什么被折叠?



