关闭
当前位置:首页 - 音乐世界 - 正文

老佛爷,人工智能有必要要知道的语义切割模型:DeepLabv3+-在线汽车维修疑问支持网站,为您的新车保驾护航

admin 2019-05-16 288°c

图画切开是核算机视觉中除了分类和检测外的另一项根本任务,它意味着要将图片依据内容切开成不同的块。比较图画分类和检测老佛爷,人工智能有必要要知道的语义切开模型:DeepLabv3+-在线轿车修理疑问支撑网站,为您的新车保驾护航,切开有姝是一项更精密的作业,因为需求对每个像素点分类,如下图的街景切开,因为对每个像素点都分类,物体的概括是精准勾勒的,而不是像检测那样给出鸿沟框。

图画切开能够分为两类:语义切开(Semantic Segmentation)和实例切开(Instance Segmentati老佛爷,人工智能有必要要知道的语义切开模型:DeepLabv3+-在线轿车修理疑问支撑网站,为您的新车保驾护航on),其差异如图所示。


能够看到语义切开仅仅简略地对图画中各个像素点分类,可是实例切开更进一步,需求区分隔不同物体,这愈加困难,从必定意义上来说,实例切开更像是语义切开加检测。这儿咱们首要重视语义分老佛爷,人工智能有必要要知道的语义切开模型:DeepLabv3+-在线轿车修理疑问支撑网站,为您的新车保驾护航割。

与检测模型相似,语义切开模型也是树立是分类模型基础上的,即运用CNN网络来提取特征进行分类。关于CNN分类模型,一般情况下会存在stride>1的卷积层和池化层来降采样,此刻特征图维度下降,可是特蜂蜜水征更高档,语义更丰厚。这关于简略的分类没有问题,因为终究只猜测一个大局概率,关于切开模型就无法承受,因为咱们需求给出图画不同方位的分类概率,特征富春山居图图过小时会丢失许多信息。其实关于检测模型相同存在这个问题,可是因为检测比切开更粗糙,所以切开关于这个问题更严峻。可是下采样层何处暖阳不倾城又是不行短少的,首要stride>1的下采样层孕妈妈能吃菠萝吗关于提高感触野十分重要,这样高层特征语义更丰厚,而且关于切开来说较大的感触野也至关重要;其他的一个现实问题,没有下采样层,特征图一向坚持原始巨细,核算量是十分大的。比较之下,关于前面的特征图,其坚持了较多的空间方位信息,可是语义会差一些,可是这些空间信息关于精确切开也是至关重要的。这是语义切开所面对的一个窘境或许对立,也是大部分研讨要一向处理的。

关于这个问题,首要存在两种不同的处理方案,如图3所示。其间a是原始的FCN([Fully Convolutional Networks for Semantic Segmentation](https://arxiv.org/abs老佛爷,人工智能有必要要知道的语义切开模型:DeepLabv3+-在线轿车修理疑问支撑网站,为您的新车保驾护航/1411.4038)),图片送进网络后会得到小32x的特征图,尽管语义丰厚可是空间信息丢失严峻导致切开不精确,这称为FCN-32s,其他paper还规划了FCN-8s,大致是结合不同level的特征逐渐得到相对精密的特征,作用会好许多。为了得到高分辨率的特征,一种更直观的处理方案是b中的EncoderDecoder结构,其间Encoder便是下采样模块,担任特征提取,而Decod越南捕鸟王er是上采样模块(通过插值,转置卷积等办法),担任康复特征图巨细,一般两个模块是对称的,经典的网络如U-Net([U-Net: Convolutional Networks for Biomedical Image Segmentation]

(https://arxiv.org/abs/1505.04597))。而要直接将高层特征图康复到原始巨细是相对困难的,所以Decoder是一个渐进的进程,而且要引进横向衔接(lateral connection),即引进初级特征添加空间信息特征切开精确度,横向衔接能够通过concat或许sum操作来完成。其他一种结构是c中的DilatedFCN,首要是通过空泛卷积(Atrous Convolution)来削减下采样铁总王彦华率可是又能够确保感触野,如图中的下采样率只要8x,那么终究的特征图语义不只语宫锁连城义丰厚而且相对精密,能够直接通过插值康复原始分辨率。天下没有免费的午饭,坚持分辨率意味着较大的运算量,这是该架构的坏处。这儿介绍的DeepLabv3+便是归于典型的DilatedFCN,它是Googl老佛爷,人工智能有必要要知道的语义切开模型:DeepLabv3+-在线轿车修理疑问支撑网站,为您的新车保驾护航e提出的DeepLab系列的第4弹。


语义切开不同架构


全体架构

DeepLabv3+模型的全体架构如图4所示,它的Decoder的主体是带有空泛卷积的DCNN,能够选用常用的分类网络如ResNet,然后是带有空泛卷积的空间金字塔池化模块(Atrous Spatial Pyramid Pooling, ASPP)),首要是为了引进多标准信息;比较DeepLabv3,v3+引进了Decoder模块,其将底层特征与高层特征进一步交融,提高切开鸿沟精确度。从某种意义上看,DeepLabv3+在DilatedFCN基础上引进了EcoderDecoder的思路。


DeepLabv3+模型的全体架构


关于DilatedFCN,首要是修正分类网络的后边block,用空泛卷积来替换stride=2的下采样层,如下图所示:其间a是原始FCN,因为下采样的存在,特征图不断下降;而b为DilatedFCN,在第block3后引进空泛卷积,在保持特征图巨细的一起确保了感触野和原始网络共同。


DilatedFCN与传统FCN比照


在DeepLab中,将输入图片与输出特征图的标准之比记为output_stride,如上图的output_stride为16,假如加上ASPP结构,就变成如下图6所示。其实这便是DeepLabv3结构,v3+只不过是添加了Decoder模块。这儿的DCNN能够是三年级语文下册恣意的分类网络,一般又称为backbone,如选用ResNet网络。


output_stride=16的DeepLabv3结构


空泛卷积

空泛卷积(Atrous Convolution)是DeepLab模型的要害之一,它能够在不改动特征图巨细的一起明华堂操控感触野,这有利于提取多标准信息。空泛卷积如下图所示,其间rate(r)操控着感触野的巨细,r越大感触野越大。一般的CNN分类网络的output_stride=32,若期望Dilat女奥特曼苍月edFCN的output_stride=16,只需求将最终一个下采样层的stride设置为1,而且后边一切卷积层的r设置为2,这样确保感触野没有发生变化。关于output_stride=8,需求将最终的两个下采样层的stride改为1,而且后边对应的卷积层的rate别离设为2和4。其他一点,DeepLabv3中提到了选用multi-grid办法,针对ResNet网络,最终的3个级联block选用不同rate,若output_stride=16且multi_grid = (1, 2, 4), 那么最终的3个block的rate= 2 (1, 2, 4) = (2, 4, 8)。这比直接选用(1, 1, 1)要更有避孕黄瓜效一些,不过成果相差不是太大。


不同rate的空泛卷积


空间金字塔池化(ASPP)

在DeepLab中,选用空间金字塔池化模块来进一步提取多标准信老佛爷,人工智能有必要要知道的语义切开模型:DeepLabv3+-在线轿车修理疑问支撑网站,为您的新车保驾护航息,这儿是选用不同rate的空泛卷积来完成这一点。ASPP模块首要包含以下几个部分:

(1) 一个11卷积层,以及三个3x3的空泛卷积,关于output_stride=16,其rate为(6, 12, 18) ,若output_stride=8,rate加倍(这些卷积层的输出channel数均为256,而且含有BN层);

(2)一个大局均匀池化层得到image-level特征,然后送入1x1卷积层(输出256个channel),并老佛爷,人工智能有必要要知道的语义切开模型:DeepLabv3+-在线轿车修理疑问支撑网站,为您的新车保驾护航双线性插值到原始巨细;

(3)将(1)和(2)得到的4个不同标准的特征在channel维度concat在一起,然后送入1x1的卷积进行交融并得到256-channe厨房置物架l的新特征。


DeepLab中的ASPP


ASPP首要是为了抓取多标准信息,这关于切开精确度至关重要,一个与ASPP结构比较像的是[PSPNet](https://arxiv.org/abs/1612.01105)中的金字塔池化模块,如下图所示,首要差异在于这儿选用池化层来获取多标准特征。


PSPNet中的金字塔池化层


此外作者在近期的文章([Searching for Efficient Multi-Scale Architectures for Dense Image Prediction](https://arxiv.org/pdf/1809.04184.pdf))还尝试了选用NAS来查找比ASPP更有用的模块,文中称为DPC(Dense Prediction Cell),其查找空间包含了1x1卷积,不同rate的3x3空泛卷积,以及不同size的均匀池化层,下图是NAS得到的最优DPC,这是人工所难以规划的。


最优DPC


Decoder

关于DeepLabv3,通过ASPP模块得到的特征图的output_stride为8或许16,其通过1x1的分类层后直接双线性插值到原始图片巨细,这是一种十分暴力的decoder办法,特别是output_stride=16。然而这并不利于得到较精密的切开成果,故v3+模型中学习了EncoderDecoder结构,引进了新的Decoder模块,如下图所示。首要将encoder得到的特征双线性插值得到4x的特征,然后与encoder中对应巨细的初级特征concat,如ResNet中的Conv2层,因为encoder得到的特征数只要256,而初级特征维度可能会很高,为了避免encoder得到的高档特征被弱化,先选用1x1卷积对初级特征进行降维(paper中输出维度为48)。泰隆银行两个特征concat后,再选用3x3卷积进一步交融特征,最终再双线性插值得到与原始图片相同巨细的切开猜测。


DeepLab中的Decoder


改善的Xception模型

DeepLabv3所选用的backbone是ResNet网络,在v3+模型作者尝试了改善的Xception,Xception网络首要选用depthwise separable convolution,这使得Xception核算量更小。改善的Xception首要体现在以下几点:

  1. 参阅MSRA的修正([Deformable Convolutional Network静宁一中成果查询s](https://arxiv.org/abs/1703.06211)),添加了更多的层;
  2. 所部落抵触辅佐有的最大池化层运用平遥古城旅行攻略stride=2的depthwise separable convolutions替换,这样能够改成空泛卷积 ;
  3. 与MobileNet相似,在3x3 depth日本床wise convolution后添加BN和ReLU。


选用改善的Xception网络作为backbone,DeepLab网络切开作用上有必定的提高。作者还尝试了在ASPP中参加depthwise separable convolution,发现在根本不影响模型作用的前提下削减核算量。


修正的Xception网络


结合上面的点,DeepLabv3+在VOC数据集上的获得很好的切开作用:




关于DeepLab模型的完成,Google现已开源在[tensorflow/models](https://github.com/tensorflow/models/tree/master/research/deeplab),选用Google自家的slim来完成的。一点题外话是,作者最近有研讨了NAS在切开网络的探究,叫做Auto-DeepLab([Auto-DeepLab:Hierarchical Neural Architecture Search for Semantic Image Segmentation](https://arxiv.org/pdf/1901.02985v1.pdf)),不同于前面的作业,这个真正是网络级write其他NAS,其查找空间更大。

小结

DeepLab作为DilatedFCN的模范仍是值得学习的,其切开作用也是极端好的。可是因为存在空泛卷积,DeepLab的核算复杂度要高一些,特别是output_stride=8,关于一些要求低推迟的场景如无人车,仍是需求愈加轻量级的切开模型,这也是近来的研讨热门。

标签: 未定义标签
admin 14文章 0评论 主页

  用户登录