Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

旷视科技提出双向网络BiSeNet:实现实时语义分割

全球计算机视觉三大顶会之一 ECCV 2018 (European Conference on Computer Vision)即将于9月8 -14日在德国慕尼黑拉开帷幕。届时,旷视首席科学家孙剑博士将带领团队远赴盛会,助力计算机视觉技术的交流与落地。而在此之前,旷视科技将陆续推出 ECCV 2018 接收论文系列解读。本文是第 6 篇,一个可实现实时语义分割的双向网络 BiSeNet。

论文名称:BiSeNet: Bilateral Segmentation Network for Real-time Semantic Segmentation 

论文链接:https://arxiv.org/abs/1808.00897

导语

机器看懂世界,目前一个主要的途径是通过图像,而要理解一张图像,就要对其组成的每一个基本元素——像素有准确了解。从像素层面为一张图像打上语义标签,这就是语义分割,它是计算机视觉的主要任务之一,但在实际落地之时,往往还有实时处理的场景需求。本文中,基于三种主流的实时语义分割模型加速方法,旷视科技创新性地提出双向网络 BiSeNet,不仅实现了实时语义分割,还在特征融合模块和注意力优化模块的帮助之下,把语义分割的性能推进到一个新高度,从而为该技术的相关落地进一步铺平了道路。

背景

语义分割是计算机视觉领域的一项基本任务,旨在为一张图像之中的每个像素打上语义标签,可应用于增强现实自动驾驶、安防监控等领域,并在使用过程中能够实时响应快速执行。最近,实时语义分割模型的加速取得一定进展,主要有以下三种方法:

1.通过剪裁或 resize 来限定输入大小,以降低计算复杂度。尽管这种方法简单而有效,空间细节的损失还是让预测打了折扣,尤其是边界部分,导致度量和可视化的精度下降;

2.通过减少网络通道数量加快处理速度,尤其是在骨干模型的早期阶段,但是这会弱化空间信息。

3.为追求极其紧凑的框架而丢弃模型的最后阶段(比如ENet)。该方法的缺点也很明显:由于 ENet 抛弃了最后阶段的下采样,模型的感受野不足以涵盖大物体,导致判别能力较差。

总之,上述三个方法都是折中精度以求速度,难以付诸实践。图 1(a) 是其图示。为解决上述空间信息缺失问题,研究者普遍采用 U 形结构。通过融合 backbone 网络不同层级的特征,U 形结构逐渐增加了空间分辨率,并填补了一些遗失的细节。

但是,这一技术有两个弱点:1)由于高分辨率特征图上额外计算量的引入,完整的 U 形结构拖慢了模型的速度。2)更重要的是,如图 1(b) 所示,绝大多数由于裁剪输入或者减少网络通道而丢失的空间信息无法通过引入浅层而轻易复原。换言之,U 形结构顶多是一个备选方法,而不是最终的解决方案。

设计思想

基于上述观察,本文提出了双向分割网络(Bilateral Segmentation Network/BiseNet),它包含两个部分:Spatial Path (SP)  和 Context Path (CP)。顾名思义,这两个组件分别用来解决空间信息缺失和感受野缩小的问题,其设计理念也非常清晰。

对于 Spatial Path,本文只叠加三个卷积层以获得 1/8 特征图,其保留着丰富的空间细节。对于 Context Path,本文在 Xception 尾部附加一个全局平均池化层,其中感受野是 backbone 网络的最大值。图 1(c) 展示了这两个组件的结构。

图 1:不同模型加速方法的图示

在追求更快、更好模型的过程中,本文也研究了两个组件的融合,以及最后预测的优化,并分别提出特征融合模块(Feature Fusion Module/FFM)和注意力优化模块(Attention Refinement Module/ARM)。在 Cityscapes,CamVid 和 COCO-Stuff 数据集上的实验表明,这两个模块进一步从整体上提升了语义分割的精度。

BiSeNet

在本节中,首先详细介绍 BiSeNet 网络及其两路网络 Spatial Path 和 Context Path;接着,分别证明其有效性;最后,展示如何利用特征融合模块整合这两路网络的特征以及 BiSeNet 的整体架构。

Spatial Path

在语义分割任务中,空间分辨率和感受野很难两全,尤其是在实时语义分割的情况下,现有方法通常是利用小的输入图像或者轻量主干模型实现加速。但是小图像相较于原图像缺失了很多空间信息,而轻量级模型则由于裁剪通道而损害了空间信息。

基于这一观察,本文提出 Spatial Path 以保留原输入图像的空间尺度,并编码丰富的空间信息。Spatial Path 包含三层,每层包含一个步幅(stride)为 2 的卷积,随后是批归一化和 ReLU。因此,该路网络提取相当于原图像 1/8 的输出特征图。由于它利用了较大尺度的特征图,所以可以编码比较丰富的空间信息。图 2(a) 给出了这一结构的细节。

图 2:BiSeNet 概览

Context Path

在语义分割任务中,感受野对于性能表现至关重要。为增大感受野,一些方法利用金字塔池化模块,金字塔型空洞池化(ASPP)或者 “large kernel”,但是这些操作比较耗费计算和内存,导致速度慢。出于较大感受野和较高计算效率兼得的考量,本文提出 Context Path,它充分利用轻量级模型与全局平均池化以提供大感受野。

在本工作中,轻量级模型,比如 Xception,可以快速下采样特征图以获得大感受野,编码高层语义语境信息。接着,本文在轻量级模型末端添加一个全局平均池化,通过全局语境信息提供一个最大感受野。在轻量级模型中,本文借助 U 形结构融合最后两个阶段的特征,但这不是一个完整的 U 形结构。图 2(c) 全面展示了 Context Path。

注意力优化模块(ARM):在 Context Path 中,本文提出一个独特的注意力优化模块,以优化每一阶段的特征。如图 2(b) 所示,ARM 借助全局平均池化捕获全局语境并计算注意力向量以指导特征学习。这一设计可以优化 Context Path 中每一阶段的输出特征,无需任何上采样操作即可轻易整合全局语境信息,因此,其计算成本几乎可忽略。

网络架构

在 Spatial Path 和 Context Path 的基础上,本文提出 BiSeNet,以实现实时语义分割,如图 2(a) 所示。本文把预训练的 Xception 作为 Context Path 的 backbone,把带有步幅的三个卷积层作为 Spatial Path;接着本文融合这两个组件的输出特征以做出最后预测,它可以同时实现实时性能与高精度。

首先,本文聚焦于实际的计算方面。尽管 Spatial Path 有大感受野,但只有三个卷积层。因此,它并非计算密集的。对于 Context Path,本文借助一个轻量级模型快速下采样。进而,这两个组件并行计算,极大地提升了效率。第二,本文还讨论了网络的精度方面。Spatial Path 编码丰富的空间信息,Context Path 提供大感受野,两者相辅相成,从而实现更高性能。

特征融合模块:在特征表示的层面上,两路网络的特征并不相同。因此不能简单地加权这些特征。由 Spatial Path 捕获的空间信息编码了绝大多数的丰富细节信息。而 Context Path 的输出特征主要编码语境信息。换言之,Spatial Path 的输出特征是低层级的,Context Path 的输出特征是高层级的。因此,本文提出一个独特的特征融合模块以融合这些特征。

在特征的不同层级给定的情况下,本文首先连接 Spatial Path 和 Context Path 的输出特征;接着,通过批归一化平衡特征的尺度。下一步,像 SENet 一样,把相连接的特征池化为一个特征向量,并计算一个权重向量。这一权重向量可以重新加权特征,起到特征选择和结合的作用。图 2(c) 展示了这一设计的细节。

损失函数:本文通过辅助损失函数监督模型的训练,通过主损失函数监督整个 BiSeNet 的输出。另外,还通过添加两个特殊的辅助损失函数监督 Context Path 的输出,就像多层监督一样。上述所有损失函数都是 Softmax。最后借助参数 α 以平衡主损失函数与辅助损失函数权重

实验

本文采用修改版的 Xception39 处理实时语义分割任务,并在 Cityscapes,CamVid 和 COCO-Stuff 三个数据集上对 BiSeNet 进行了评估,对比其他同类方法,给出了自己的结果。

本节还对算法的速度与精度进行了着重分析。

速度分析

本文实验在不同设置下做了完整的对比。首先给出的是 FLOPS 和参数的状态(见表 4)。

表 4:基础模型 Xception39 和 Res18 在 Cityscapes 验证集上的精度与参数分析


FLOPS 和参数表明在给定分辨率下处理图像所需要的操作数量。出于公平对比的考虑,本文选择 640×360 作为输入图像的分辨率。同时,表 5 给出了不同输入图像分辨率和不同硬件基准下本方法与其他方法的速度对比。

表 5:本文方法与其他方法的速度结果对比。1和2分别代表backbone是Xception39和Res18网络

最后,本文给出了该方法在 Cityscapes 测试数据集上的速度及相应的精度结果。从表 6 可以看出,该方法相较于其他方法在速度和精度方面的巨大进展。

表 6:Cityscapes 测试集上本文方法与其他方法的精度与速度对比

在评估过程中,本文首先把输入图像的分辨率从 2048×1024 缩至 1536×768,以测试速度和精度;同时,通过 online bootstrap 的策略计算损失函数。整个过程中本文不采用任何测试技巧,比如多尺度或多次裁剪测试。

精度分析

事实上,BiSeNet 也可以取得更高的精度结果,甚至于可以与其他非实时语义分割算法相比较。这里将展示 Cityscapes,CamVid 和 COCO-Stuff 上的精度结果。同时,为验证该方法的有效性,本文还将其用在了不同的骨干模型上,比如标准的 ResNet18 和 ResNet101。

结果

Cityscapes:如表 7 所示,该方法在不同模型上都取得了出色的结果。为提升精度,本方法首先随机裁切 1024x1024 大小的图作为输入。图 4 给出了一些可视化结果实例。

图 4:Cityscapes 数据集上基于 Xception39,Res18 和 Res101 的结果实例

表 7:Cityscapes 测试集上本方法与其他方法的精度结果对比

CamVid:表 8 给出了 CamVid 数据集上统计的精度结果。对于测试,本文通过训练数据集和测试数据集训练模型。这里训练和评估使用的分辨率是 960×720。

表 8:CamVid 测试集上的精度结果

COCO-Stuff:表 9 给出了 COCO-Stuff 验证集上的精度结果。在训练和验证过程中,本文把输入分辨率裁剪为 640×640。出于公平对比,本文不采用多尺度测试。

表 9:COCO-Stuff 验证集上的精度结果。注:这里的COCO-Stuff是官方新公布的16万张图片的数据集

结论

BiSeNet 旨在同时提升实时语义分割的速度与精度,它包含两路网络:Spatial Path 和 Context Path。Spatial Path 被设计用来保留原图像的空间信息,Context Path 则利用轻量级模型和全局平均池化快速获取大感受野。由此,在 105 fps 的速度下,该方法在 Cityscapes 测试集上取得了 68.4% mIoU 的结果。

参考文献

lChollet, F.: Xception: Deep learning with depthwise separable convolutions. IEEE Conference on Computer Vision and Pattern Recognition (2017) 

lBadrinarayanan, V., Kendall, A., Cipolla, R.: SegNet: A deep convolutional encoder-decoder architecture for image segmentation. IEEE Transactions on Pat- tern Analysis and Machine Intelligence 39(12), 2481–2495 (2017) 

lPaszke, A., Chaurasia, A., Kim, S., Culurciello, E.: Enet: A deep neural network architecture for real-time semantic segmentation. arXiv (2016) 

lWu, Z., Shen, C., Hengel, A.v.d.: Real-time semantic image segmentation via spatial sparsity. arXiv (2017) 

lRonneberger, O., Fischer, P., Brox, T.: U-net: Convolutional networks for biomedical image segmentation. In: International Conference on Medical Image Computing and Computer-Assisted Intervention (2015) 

lYu, C., Wang, J., Peng, C., Gao, C., Yu, G., Sang, N.: Learning a discriminative feature network for semantic segmentation. In: IEEE Conference on Computer Vision and Pattern Recognition (2018) 

旷视科技
旷视科技

Power Human with AI

理论ECCV 2018BiSeNet语义分割旷视科技
2
相关数据
英特尔机构

英特尔(NASDAQ: INTC)是全球半导体行业的引领者,以计算和通信技术奠定全球创新基石,塑造以数据为中心的未来。我们通过精尖制造的专长,帮助保护、驱动和连接数十亿设备以及智能互联世界的基础设施 —— 从云、网络到边缘设备以及它们之间的一切,并帮助解决世界上最艰巨的问题和挑战。

http://www.intel.cn/
相关技术
孙剑人物

孙剑,男,前微软亚研院首席研究员,现任北京旷视科技有限公司(Face++)首席科学家、旷视研究院院长 。自2002年以来在CVPR, ICCV, SIGGRAPH, PAMI等顶级学术会议和期刊上发表学术论文100余篇,两次获得CVPR最佳论文奖(2009, 2016)。孙剑博士带领的团队于2015年获得图像识别国际大赛五项冠军 (ImageNet分类,检测和定位,MS COCO 检测和分割) ,其团队开发出来的“深度残差网络”和“基于区域的快速物体检测”技术已经被广泛应用在学术和工业界。

深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

增强现实技术

增强现实,是指透过摄影机影像的位置及角度精算并加上图像分析技术,让屏幕上的虚拟世界能够与现实世界场景进行结合与互动的技术。这种技术于1990年提出。随着随身电子产品运算能力的提升,增强现实的用途也越来越广。

自动驾驶技术技术

从 20 世纪 80 年代首次成功演示以来(Dickmanns & Mysliwetz (1992); Dickmanns & Graefe (1988); Thorpe et al. (1988)),自动驾驶汽车领域已经取得了巨大进展。尽管有了这些进展,但在任意复杂环境中实现完全自动驾驶导航仍被认为还需要数十年的发展。原因有两个:首先,在复杂的动态环境中运行的自动驾驶系统需要人工智能归纳不可预测的情境,从而进行实时推论。第二,信息性决策需要准确的感知,目前大部分已有的计算机视觉系统有一定的错误率,这是自动驾驶导航所无法接受的。

池化技术

池化(Pooling)是卷积神经网络中的一个重要的概念,它实际上是一种形式的降采样。有多种不同形式的非线性池化函数,而其中“最大池化(Max pooling)”是最为常见的。它是将输入的图像划分为若干个矩形区域,对每个子区域输出最大值。直觉上,这种机制能够有效的原因在于,在发现一个特征之后,它的精确位置远不及它和其他特征的相对位置的关系重要。池化层会不断地减小数据的空间大小,因此参数的数量和计算量也会下降,这在一定程度上也控制了过拟合。通常来说,CNN的卷积层之间都会周期性地插入池化层。

权重技术

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

基准技术

一种简单的模型或启发法,用作比较模型效果时的参考点。基准有助于模型开发者针对特定问题量化最低预期效果。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

模式识别技术

模式识别(英语:Pattern recognition),就是通过计算机用数学技术方法来研究模式的自动处理和判读。 我们把环境与客体统称为“模式”。 随着计算机技术的发展,人类有可能研究复杂的信息处理过程。 信息处理过程的一个重要形式是生命体对环境及客体的识别。其概念与数据挖掘、机器学习类似。

损失函数技术

在数学优化,统计学,计量经济学,决策理论,机器学习和计算神经科学等领域,损失函数或成本函数是将一或多个变量的一个事件或值映射为可以直观地表示某种与之相关“成本”的实数的函数。

验证集技术

验证数据集是用于调整分类器超参数(即模型结构)的一组数据集,它有时也被称为开发集(dev set)。

计算机视觉技术

计算机视觉(CV)是指机器感知环境的能力。这一技术类别中的经典任务有图像形成、图像处理、图像提取和图像的三维推理。目标识别和面部识别也是很重要的研究领域。

特征选择技术

在机器学习和统计学中,特征选择(英语:feature selection)也被称为变量选择、属性选择或变量子集选择。 它是指:为了构建模型而选择相关特征(即属性、指标)子集的过程。

推荐文章
暂无评论
暂无评论~