| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 论文阅读:Rethinking Atrous Convolution for Semantic Image Segmentation -> 正文阅读 |
|
[人工智能]论文阅读:Rethinking Atrous Convolution for Semantic Image Segmentation |
1. Introduction对于语义分割[20,63,14,97,7]的任务,我们考虑了应用深度卷积神经网络(DCNNs)[50]的两个挑战。第一个是由连续的池化操作或卷积跨步导致的特征分辨率降低,这允许dcnn学习越来越抽象的特征表示。然而,这种对局部图像变换的不变性可能会阻碍密集的预测任务,其中需要详细的空间信息。为了克服这一问题,我们提倡使用孔洞卷积[36,26,74,66],这已被证明是有效的语义图像分割[10,90,11]。反向卷积,也被称为扩张卷积,允许我们重新利用ImageNet[72]预训练网络来提取更密集的特征图,通过删除最后几层的降采样操作和上采样相应的滤波器核,相当于在滤波器权值之间插入孔(法语中的“trous”)。通过孔洞卷积,人们可以控制在dcnn中计算特征响应的分辨率,而不需要学习额外的参数。 另一个困难来自于在多种尺度上存在的物体的存在。我们提出了几种方法来处理这个问题,我们在本工作中主要考虑四类,如图2所示。首先,将DCNN应用于一个图像金字塔,以提取每个尺度输入[22,19,69,55,12,11]的特征,其中不同尺度的对象在不同的特征图上变得突出。其次,编码器-解码器结构[3,71,25,54,70,68,39]利用编码器部分的多尺度特征,从解码器部分恢复空间分辨率。第三,在原始网络上,以捕获远程信息。特别是,DenseCRF[45]被用于编码像素级的成对相似性[10,96,55,73],而[59,90]在级联中开发了几个额外的卷积层,以逐步捕获远程上下文。第四,空间金字塔池化[11,95]通过过滤器或以多个速率和多个有效视场的池化操作来探测传入的特征映射,从而在多个尺度上捕获对象。 在这项工作中,我们重新应用了孔洞卷积,它使我们能够有效地在滤波器模块和空间金字塔池的框架下,扩大滤波器的视场,以纳入多尺度上下文。特别地,我们提出的模块由具有各种比例的孔洞卷积和批处理归一化层组成,我们发现这对训练也很重要。我们实验设计了级联或并行的模块(具体来说,空间空间金字塔池(ASPP)方法[11])。我们讨论了使用3×3空洞卷积时的一个极端情况(非常大的孔洞率),由于图像边界有限无法捕获context,孔洞卷积退化为1×1卷积,并提出将图像级特征合并到ASPP模块中。此外,我们还详细介绍了实现细节,并分享了训练所提出的模型的经验,包括一种简单而有效的引导方法,用于处理罕见和精细标注的对象。最后,我们提出的模型“DeepLabv3”比我们之前的工作[10,11]有所改进,在PASC上达到了85.7%的性能 2. Related Work研究表明,全局特征或上下文交互[33,76,43,48,27,89]有助于正确分类像素进行语义分割。在这项工作中,我们讨论了四种类型的全卷积网络(FCNs)[74,60](图2),它们利用上下文信息进行语义分割[30,15,62,9,96,55,65,73,87]。 Image pyramid: 具有共享权重的模型,被应用于多尺度的输入。来自小尺度的输入特征编码了远程上下文,而大尺度输入保留了小对象的细节。典型的例子包括Farabet等人的[22],他们通过拉普拉斯金字塔转换输入图像,将每个比例输入提供给DCNN,并合并所有尺度的特征图。[19,69]按从粗到细的顺序进行多尺度输入,而[55,12,11]则直接调整了多个尺度的输入大小,并融合了所有尺度的特征。这类模型的主要缺点是,由于有限的GPU内存,它不能很好地扩展到更大/更深的dcnn(例如,像[32,91,86]这样的网络),因此它通常应用于推理阶段[16] Encoder-decoder: 这个模型由两部分组成:a)编码器中特征图的空间维数逐渐减少,因此更大范围的信息更容易在更深的编码器捕获;b)对象细节和空间尺度逐渐恢复的解码器。例如,[60,64]采用 deconvolution[92]来学习低分辨率特征实现上采样。SegNet[3]重用来自编码器的池化索引,并学习额外的卷积层来增强特征响应,而U-Net[71]将来自编码器特征的跳过连接添加到相应的解码器,[25]采用了拉普拉斯金字塔重建网络。最近,RefineNet[54]和[70,68,39]已经在几个语义分割基准上证明了基于编码器-解码器结构的模型的有效性。这种类型的模型也在对象检测[56,77]的上下文中被探索。 Context module: 这个模型包含以级联形式排列的额外模块,用于编码大尺度上下文。一种有效的方法是将DenseCRF[45](具有有效的高维滤波算法[2])合并到DCNNs[10,11]中。此外,[96,55,73]建议联合训练CRF和DCNN组件,而[59,90]在DCNNs的信念图上使用几个额外的卷积层(信念图是最终的DCNN特征图的卷积层)来捕获上下文信息。最近,[41]提出学习一种通用的稀疏高维卷积(双边卷积),而[82,8]结合高斯条件随机场和DCNNs进行语义分割。 Spatial pyramid pooling: 该模型使用空间金字塔池[28,49]来捕获多个范围内的上下文。在ParseNet[58]中利用图像级特性来获取全局上下文信息。DeepLabv2[11]提出了孔洞空间金字塔池(ASPP),其中具有不同孔洞率的并行孔洞卷积层捕获多尺度信息。最近,金字塔场景解析网(PSP)[95]在多个网格尺度上执行空间池化,并在多个语义分割基准测试上展示了出色的性能。还有其他基于LSTM[35]的方法来聚合全局上下文[53,6,88],空间金字塔池也被应用于目标检测[31]。 在这项工作中,我们主要探索孔洞卷积[36,26,74,66,10,90,11]作为空间金字塔池的上下文模块和工具。我们提出的框架是通用的,因为它可以应用于任何网络。具体地说,我们在ResNet[32]中复制了原始最后一个块的几个副本,并将它们以级联排列,并重新访问ASPP模块[11],它包含几个并行的卷积。请注意,我们的级联模块(cascaded modules)是直接应用在feature map上,而不是belief map上。对于所提出的模块,我们实验发现用批归一化[38]训练是重要的。为了进一步捕获全局上下文,我们建议使用类似于[58,95]的多尺度图像特征来增强ASPP。 Atrous convolution: 基于孔洞卷积的模型已经被积极地用于语义分割。例如,在[85]实验中,通过修改孔洞率来捕获远程信息,[84]在ResNet的最后两个块内采用混合的孔洞率,而[18]进一步提出学习用学习偏移采样输入特征的可变形卷积,推广孔洞卷积。为了进一步提高分割模型的精度,[83]利用了图像字幕,[40]利用了视频运动,[44]结合了深度信息。此外,孔洞卷积已应用于[66,17,37]的目标检测。 3. Methods在本节中,我们将回顾如何应用滑稽的卷积来提取密集的特征以进行语义分割。然后我们讨论了提出的模块采用级联卷积模块或并行。 3.1. Atrous Convolution for Dense Feature Extraction深度卷积神经网络(DCNNs)[50]以全卷积的方式部署,[74,60]已被证明是有效的语义分割任务。然而,在这些网络的连续层上重复组合最大池化和跳跃连接处理,显著降低了结果特征图的空间分辨率,在最近的DCNNs[47,78,32]中,每个方向通常是32倍。采用反卷积层(或转置卷积)[92,60,64,3,71,68]来恢复空间分辨率。相反,我们提倡使用“孔洞卷积”,最初是为在[36]的“算法三”方案中有效计算抽取小波变换而开发的,之前[26,74,66]在DCNN中使用过。 考虑二维数据,对于输出y上的每个位置i和一个滤波器w,在输入特征映射x上应用孔洞卷积: 3.2. Going Deeper with Atrous Convolution我们首先探索设计在级联架构下的孔洞卷积模块。具体来说,我们复制了最后一个ResNet块的几个副本,在图3中称为block 4,并将它们排列为级联。在这些块中有三个3×3卷积,最后一个卷积的步长为2,除了最后一个block,类似于原始的ResNet。这个模型背后的动机是,引入的大步长使它很容易在更深的块中捕获大范围context。例如,整个图像特征可以总结在最后一个小分辨率特征图中,如图3(a)所示。然而,我们发现连续的跨步对语义分割是有害的(见章节4的表1)。由于细节信息被大量抽取,因此我们用特定孔洞率的孔洞卷积来控制输出步幅,如图3(b)所示,其中输出步幅=为16。 在这个提出的模型中,我们实验了级联ResNet block到block7(即,额外的block5,block6,block7是block4的副本),如果没有应用孔洞卷积,其输出步幅=为256。 3.2.1 Multi-grid Method基于Multi-grid方法,采用[4,81,5,67]和[84,18]的不同大小的网格层次,我们在提出的模型中采用block4和block7的不同的膨胀率。特别地,我们定义了多个(r1,r2,r3)分别应用于从block 4到block 7间的三层。卷积层的最终膨胀速率等于单位速率和相应速率的乘法。例如,当输出步幅=16和MultiGrid=(1,2,4)时,三个卷积在块4中的速率分别为=2·(1,2,4)=(2,4,8)。 3.3. Atrous Spatial Pyramid Pooling我们重新讨论在[11]中提出的空间金字塔池,其中在特征图的顶部应用了四个不同孔洞率的分支卷积。ASPP的灵感来自于空间金字塔池[28,49,31]的成功,这表明在不同尺度上重新采样特征是有效的,可以有效地对任意尺度的区域进行准确、有效的分类。与[11]不同,我们在ASPP中包含了批处理规范化。 不同孔洞率的ASPP可以有效地捕获多尺度信息。然而,我们发现,随着采样率的增大,有效过滤器权值的数量(即应用于有效特征区域的权值,而不是填充零)变小。当对65×65的特征图应用具有不同孔洞率的3×3滤波器时,这种效果如图4所示。在孔洞值接近特征图大小的极端情况下,3×3滤波器不是捕获整个图像上下文,而是退化为一个简单的1×1滤波器,因为只有中心滤波器的权重是有效的。 4. Experimental Evaluation我们将利用空洞卷积法提取密集特征的[72]ResNet[32]应用于语义分割。回想一下,输出步幅被定义为输入图像空间分辨率与最终输出分辨率的比值。例如,当输出步幅=8时,原始ResNet中的最后两个块(我们的符号中的块3和块4)分别包含与速率=2和速率=4的孔洞卷积。我们的实现是建立在张量流[1]之上的。 我们在pascal VOC2012语义分割基准[20]上评估了所提出的模型,该模型包含20个前景对象类和一个背景类。原始数据集分别包含1464(train)、1449(val)和1456(测试)像素级标记图像,用于训练、验证和测试。数据集被[29]提供的额外标注增强,得到10582张(训练)训练图像。性能是通过21个类的(IOU)衡量的。 4.1. Training Protocol在本小节中,我们将讨论我们的训练的细节: Learning rate policy 与[58,11]类似,我们采用了一个“poly”学习率策略,其中初始学习率乘以 ( 1 ? i t e r m a x _ i t e r ) p o w e r , ??? p o w e r = 0.9 (1-\frac{iter}{max\_iter})^{power}, \ \ \ power=0.9 (1?max_iteriter?)power,???power=0.9。 Crop size: 根据早期的工作(deeplabv1与v2),在训练过程中从图像中裁剪出patch, 为了使具有较大速率的孔洞卷积有效,需要较大的作物尺寸;否则,具有较大孔洞率的滤波器权重主要应用于填充的零区域。因此,在对pascal VOC2012数据集的训练和测试中,我们使用crop size为513。 Batch normalization: 我们在ResNet之上添加的模块都包括批处理归一化参数[38],我们发现这对训练也很重要。由于需要较大的批大小来训练批归一化参数,因此我们使用输出步幅=16,并计算批大小为16的批归一化统计量。用衰减=0.9997训练批处理归一化参数。在30K迭代和初始学习率=0.007训练后,我们冻结批归一化参数,采用输出步幅=8,在Pascal VOC2012训练集上训练,进行30K迭代和更小的基础学习率=0.001。注意,孔洞卷积允许我们控制在不同训练阶段的输出步幅值,而不需要学习额外的模型参数。还需要注意的是,使用输出步幅=16的训练比输出步幅=8快几倍,因为中间特征图在空间上要小四倍,但由于输出步幅=16提供了更粗的特征图,因此牺牲了精度。 Upsampling logits: 在我们之前的工作[10,11]中,当输出步幅=8时,训练期间label也被降采样8。我们发现重要的是要保持原始尺度,并对最终的结果进行上采样,因为对label进行降采样会删除精细的标注,会影响细节的反向传播。 Data augmentation: 我们通过在训练过程中随机缩放输入图像(从0.5到2.0)和随机左右翻转来应用数据增强。 4.2. Going Deeper with Atrous Convolution我们首先实验在级联中用孔洞卷积构建更多的块。 ResNet-50 vs. ResNet-101: 我们用更深层次的网络ResNet-101取代ResNet-50,并改变级联块的数量。如表2所示,随着block的增加,性能越好,但改进的幅度越小。值得注意的是,使用block7到ResNet-50略微降低了性能,但它仍然提高了ResNet-101的性能。 Multi-grid: 我们将 multi-grid方法应用于ResNet-101,在表3中有几个级联添加的块。MultiGrid=(r1、r2、r3)应用于block4和所有其他添加的block。如表所示,(a)我们观察到应用multi-grid一般比普通版本要好一些,即便参数为(r1,r2,r3)=(1,1,1);(b)简单地加倍单位速率(即(r1,r2,r3)=(2,2,2)效果不行,?更深层使用multi-grid更有效。我们最好的模型是使用block7和(r1,r2,r3)=(1,2,1)的情况。 Inference strategy on val set: 利用输出步幅=16对该模型进行训练,然后在推理过程中应用输出步幅=8得到更详细的特征图。如表4所示,有趣的是,当用输出步幅=8评估我们的最佳级联模型时,性能比评估输出步幅=16提高了1.39%。通过对多尺度输入(尺度={0.5、0.75、1.0、1.25、1.5、1.75})和左右翻转图像进行推理,进一步提高了性能。特别地,我们计算每个尺度和翻转图像的平均概率作为最终结果。 4.3. Atrous Spatial Pyramid Pooling然后,我们实验了大量空间金字塔池(ASPP)模块,与[11]的主要区别在于,对批处理归一化参数[38]进行了微调,并包含了图像级特征。 ASPP: 在表5中,我们实验在block4中加入Multi-grid和图像级特征到改进的ASPP模块的效果。我们首先固定ASPP=(6,12,18)(即,对三个平行的3×3卷积分支使用速率=(6,12,18)),并改变多重网格值。采用Multi-grid=(1,2,1)优于Multi-grid=(1,1,1),而在ASPP=(6,12,18)的上下文中采用Multi-grid=(1,2,4)可以进一步改进(参见表3的“block4”列。 3).如果我们在更长范围的上下文中额外使用另一个速率为=为24的并行分支,那么性能会略微下降0.12%。另一方面,利用图像级特征增强ASPP模块是有效的,最终性能达到77.21%。 Inference strategy on val set: 类似地,一旦模型被训练好,我们就会在推理过程中应用输出步幅=8。如表6所示,采用输出步幅=8比使用输出步幅=16提高了1.3%,采用多尺度输入和添加左右翻转图像,性能分别进一步提高了0.94%和0.32%。ASPP的最佳模型达到79.77%的性能,优于级联孔洞卷积模块的最佳模型(79.35%),因此选择我们作为最终的模型进行测试集评估。 Comparison with DeepLabv2: 这两个模型都是我们最好的级联模型(在表4)和ASPP模型(在表6)(在没有DenseCRF后处理或MS-COCO预训练的两种情况下)已经优于DeepLabv2(77.69%,使用了DenseCRF,并在表4中进行了MS-COCO预训练。4的[11])在帕斯卡VOC2012val设置。改进主要来自于在所提出的模型中包含和微调批处理参数[38]的归一化参数,以及有一种更好的编码多尺度上下文的方法。 Appendix: 我们在附录中展示了更多的实验结果,如超参数的影响和Cityscapes[14]的结果。 Qualitative results: 我们在图6中提供了我们的最佳ASPP模型的定性可视化结果。如图所示,我们的模型能够很好地分割对象,而无需进行任何DenseCRF后处理。 Failure mode: 如图6的下面一行所示,我们的模型在分割(a)沙发与椅子、(b)餐桌和椅子以及?罕见的物体视图方面存在困难 Pretrained on COCO: 为了与其他最先进的模型进行比较,我们进一步在MS-COCO数据集[57]上对最佳ASPP模型进行了预训练。从MS-COCO train-val_minus_minival_set, 我们只选择标注区域大于1000像素并包含pascal VOC2012中定义的类的图像,得到大约60K的图像进行训练。此外,pascal VOC2012中未定义的MS-COCO类均被视为背景类。在MS-COCO数据集上进行预训练后,我们提出的模型在使用输出步幅=8、多尺度输入和添加左右翻转图像时,在val集上获得了82.7%的性能。当对pascalVOC2012数据集进行微调时,我们采用较小的初始学习率为0.0001,其他训练参数与章节4.1相同。 Test set result and an effective bootstrapping method: 我们注意到,pascal VOC2012数据集比增强的数据集[29]提供了更高质量的标注,特别是对于自行车类。因此,在评估测试集之前,我们在官方的Pascal VOC2012训练集上进一步微调了我们的模型。具体来说,我们的模型是用输出步幅=8进行训练的(以便保留标注细节),并且批处理归一化参数被冻结(见章节4.1的细节)。此外,我们没有像[85,70]那样执行hard像素样本挖掘,而是对hard图像样本进行bootstrapping。特别是,我们在训练集中复制了包含hard class(即自行车、椅子、桌子、盆栽和沙发)的图像。如图7所示,简单的自举方法对自行车类的分割是有效的。最后,我们的“DeepLabv3”在没有任何DenseCRF后处理的测试集上实现了85.7%的性能,如表7所示。 Model pretrained on JFT-300M: 受最近工作[79]的启发,我们进一步采用了ResNet-101模型,该模型已在ImageNet和JFT-300M数据集[34,13,79]上进行了预训练,结果在pascal-VOC2012测试集上的性能为86.9% 5. Conclusion我们提出的模型“DeepLabv3”使用了包含上采样filters的孔洞卷积来提取密集的特征图并捕获较大范围的context。具体来说,为了编码多尺度信息,我们提出的级联模块逐渐将膨胀率加倍,而我们提出的膨胀空间金字塔池模块增强了图像级特征,在多采样率和有效视场下使用滤波器探测特征。我们的实验结果表明,与之前的DeepLab版本相比,该模型取得了显著的改进,并且在pascal VOC2012语义图像分割基准上,取得了与其他先进模型相当的性能。 A. Effect of hyper-parameters在本节中,我们遵循与主论文相同的训练方案,并对一些超参数的影响进行了实验。 Varying batch size: 由于训练DeepLabv3与微调批规范化是很重要,我们进一步实验了不同批大小的影响。如表9所示,采用小批量对模型的训练效率低下,而使用大批量可以获得更好的性能。 Output stride: 输出步幅的值决定了输出特征图的分辨率,进而影响了我们在训练过程中可以使用的最大批处理大小。在表10,我们定量地测量了在训练和评估过程中使用不同的输出步幅值对PASCAL VOC2012 val的影响。我们首先固定评估时输出步幅=16,改变训练输出步幅,并为所有设置可能最大的批大小(我们能够设置batchsize分别等于8、6、16和32,训练输出步幅为6、16和24)。如表10的顶部各行所示,使用训练输出步幅=8只能获得74.45%的性能,因为我们不能在这个设置中设置较大的批处理大小,从而在微调batch normalization参数的同时降低了性能。当使用训练输出步幅=32时,我们可以设置较大的batchsize,但我们失去了特征图的细节。另一方面,使用训练输出步幅=16达到最佳权衡,产生了最佳性能。在表10的底部几行中,我们增加了评估输出步幅=8。除了训练输出步幅=32外,所有设置都提高了性能。 我们猜测在训练过程中丢失了太多的特征图细节,因此即使在评估过程中使用输出步幅=8,模型也无法恢复这些细节。 B. Asynchronous training在本节中,我们用张量流异步训练[1]来实验DeepLabv3。我们测量了使用多个副本训练模型对pascal VOC2012语义分割数据集的影响。我们的基线只使用一个副本,需要使用K80 GPU训练3.65天。如表11所示,我们发现使用多个副本的性能与基线相比并没有下降。然而,有32个副本的训练时间显著减少到2.74小时。 C. DeepLabv3 on Cityscapes datasetCityscapes[14]是一个大规模数据集,包含5000张高质量像素级标注图像(分别为2975、500和1525个测试集)和约20000张粗标注图像。根据评估协议[14],使用19个语义标签进行评估,而不考虑空白标签。 当仅使用2975张图像(即训练精细集)进行训练时,我们首先在验证集上评估所提出的DeepLabv3模型。我们采用了与之前相同的训练协议,除了我们使用了90K的训练迭代,crop size等于769,并对整个图像进行运行推理,而不是像[11]中那样对重叠区域进行推理。如表12所示,DeepLabv3在输出步幅=16时达到77.23%的性能。在输出步幅=8下评估模型,将性能提高到77.82%。当我们使用多尺度输入(我们可以在K40GPU上拟合尺度={0.75,1,1.25})并添加左右翻转输入时,模型达到79.30%。 为了与其他最先进的模型竞争,我们在训练的粗糙集(即3473个精细标注图像和额外的20000粗标注图像)上进一步训练DeepLabv3。我们在推理过程中采用了更多的尺度和更精细的输出步幅。特别是,我们使用尺度={0.75、1、1.25、1.5、1.75、2}和评估输出步幅=4进行推断,与仅使用三个尺度和输出步幅=8相比,它在验证集上分别贡献了额外的0.8%和0.1%。最后,如表13所示,我们提出的DeepLabv3在测试集上达到了81.3%的性能。在val集上的一些结果如图8所示。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 1:47:15- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |