空洞卷积与DeeplabV2实现图像语义分割的测试(tensorflow)

来源:互联网 发布:建筑算量软件 编辑:程序博客网 时间:2024/06/06 02:19

图像语义分割是对图像像素级理解的基础,也是图像处理的高阶操作。自从深度学习出来之后,已经有了不少的基于卷积网络的图像语义分割模型,如从全卷积网络到大型卷积核:深度学习的语义分割全指南这篇文章介绍了非常多的模型。


本篇博客只对空洞卷积进行多尺度背景聚合(Multi-Scale Context Aggregation by Dilated Convolutions)和DeepLab2(DeepLab + ResNet)两篇来进行测试。毕竟在介绍DeepLab2的时候需要用到空洞卷积。


(1)空洞卷积

空洞卷积的原理如图所示,仔细看了下原理,才知道在传统的CNN中,正常都会采用pooling池化来达到降维的目的,这种在图像语义分割中会产生一定的副作用,如经典的FCN在第3-5的featuremap(特征层)上进行语义分割,由于经过池化后的特征层上像素尺寸比较低,即使通过上采样,featuremap上的精度也会损失。因此空洞卷积的目的是:不要池化层,毕竟池化之后正常会减少像素的信息而导致信息损失。同时在某个卷积操作后进行如图所示的操作,从而可以扩大感知的视野,再采用这样大视野的新的featuremap操作从而来实现更加精确的语义分割。在Dilated Convolutions文章指出dilated convolution既可以以指数的速度扩大感受野且不会降低特征的分辨率和大小。dilated convolution感受野指数级计算的公式如下:F^(i+1)=(2^(i+2) − 1)×(2^(i+2) − 1)。



  对该模型进行测试,以实时路面某个监控场景来例,其语义分割结果如下所示,可以发现对汽车和行人的监控场景还不错。





上面的图场景比较复杂,分割结果也相对较差,主要里面的三轮面包车可能在Camvid这个训练集里面没有,导致没有识别的缘故。

(2) DeepLab2

DeepLab: Semantic Image Segmentation with Deep Convolutional Nets, Atrous Convolution, and Fully Connected CRFs。其流程图如下所示:


可以看出,DeepLab2使用了带孔/空洞卷积,金字塔型的空洞池化(ASPP)和全连接 CRF等多项技术的结合。

其中空洞卷积见第1部分,而SPP是一种空间金字塔分辨率的方式,从而来实现多个尺度的featuremap,从而可以实现对多种不同尺度图像对象的语义分割。


   DeepLab2的测试结果如下:

(1)论文原图的测试,可以发现分割精度还不错。

   


(2)路上行人的分割。




可以发现,对于远景的超市门口的人的分割还是不够。。。

原创粉丝点击