空洞卷积与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)路上行人的分割。
可以发现,对于远景的超市门口的人的分割还是不够。。。
- 空洞卷积与DeeplabV2实现图像语义分割的测试(tensorflow)
- 基于卷积神经网络的图像语义分割
- 深度卷积网络CNN与图像语义分割
- 深度卷积网络CNN与图像语义分割
- 深度卷积网络CNN与图像语义分割
- 深度卷积网络CCN与图像语义分割
- 深度卷积网络CNN与图像语义分割
- 深度卷积网络CNN与图像语义分割
- 深度卷积网络CNN与图像语义分割
- 深度卷积网络CNN与图像语义分割
- 深度卷积网络CNN与图像语义分割
- 深度卷积网络CNN与图像语义分割
- 深度卷积网络CNN与图像语义分割
- 深度卷积网络CNN与图像语义分割
- 深度卷积网络CNN与图像语义分割
- 深度卷积网络CNN与图像语义分割
- 深度卷积网络CNN与图像语义分割
- 深度卷积网络CNN与图像语义分割
- 大致题解
- Android Studio 提示PSI and index do not match错误
- 【A ByteOf Python2.7】第6章 控制流
- 全栈开发工程师,需要哪些知识技能?
- 51Nod 1082 与7无关的数
- 空洞卷积与DeeplabV2实现图像语义分割的测试(tensorflow)
- Java NIO系列教程(十) Java NIO DatagramChannel
- IDEA不支持jsx语法解决办法
- 【A ByteOf Python2.7】第7章 函数
- 输出1900至2000年(包含1900年和2000年)间的所有闰年
- JDK动态代理源码学习
- phpstorm浏览器浏览502错误
- SSH框架--顾客信息管理之账号挂失和解除挂失
- 【A ByteOf Python2.7】第8章 模块