基于深度学习的场景分割算法研究综述
来自《计算机研究与发展》 ,作者张 蕊等
摘 要 场景分割的目标是判断场景图像中每个像素的类别.场景分割是计算机视觉领域重要的基本问题之一,对场景图像的分析和理解具有重要意义,同时在自动驾驶、视频监控、增强现实等诸多领域具有广泛的应用价值.近年来,基于深度学习的场景分割技术取得了突破性进展,与传统场景分割算法相比获得分割精度的大幅度提升.首先分析和描述场景分割问题面临的3个主要难点:分割粒度细、尺度变化多样、空间相关性强;其次着重介绍了目前大部分基于深度学习的场景分割算法采用的“卷积-反卷积”结构;在此基础上,对近年来出现的基于深度学习的场景分割算法进行梳理,介绍针对场景分割问题的3个主要难点,分别提出基于高分辨率语义特征图、基于多尺度信息和基于空间上下文等场景分割算法;简要介绍常用的场景分割公开数据集;最后对基于深度学习的场景分割算法的研究前景进行总结和展望.
关键词 场景分割;图像分割;深度学习;神经网络;全卷积网络
场景分割[1]是计算机视觉领域一个基本而重要的问题.相比一般的图像分割,场景分割针对场景图像.场景图像[2]是指面向某个空间的图像,通常具有一定的透视形变,且其中包含的视觉要素数量较多.场景分割算法的目标是对于场景图像中的每个像素判断其所属类别,如图1所示:
Fig. 1 Illustration of scene parsing
图1 场景分割问题
场景分割算法对于图像分析和场景理解具有极大的帮助.场景分割算法可以综合完成场景图像中视觉要素的识别、检测和分割,提高图像理解的效率和准确率.同时由于场景分割结果精确到像素级,相比图像分类和目标检测[3],场景分割结果可以提供更加丰富的关于图像局部和细节的信息.此外,场景分割算法具有广泛的应用价值和长远的发展前景.例如在自动驾驶技术中,场景分割算法可以通过对道路、车辆和行人的分割辅助自动驾驶系统判断道路情况;在视频监控技术中,场景分割算法可以通过对监控目标的分割协助进行目标的分析和跟踪;在增强现实技术中,场景分割算法可以通过分割场景中的前景和背景辅助实现多种增强现实效果.
作为计算机视觉领域的一个经典任务,场景分割极具挑战性.如图2所示,场景分割的难点可概括为3个方面:1)分割粒度细.场景分割结果需要精确到像素级别,且需要预测精确的分割边界.2)尺度变化多样.由于场景图像中通常包含多种类别的视觉要素,不同类别的视觉要素往往存在尺度差异,同时由于场景图像存在透视形变,相同类别的视觉要素也会呈现出不同尺度.3)空间相关性强.场景图像中的视觉要素存在复杂而紧密的空间相关关系,这些空间相关关系对视觉要素的识别和分割具有极大帮助.
Fig. 2 Difficulties in scene parsing
图2 场景分割的难点
场景分割问题是传统图像分割问题的子问题,近年来受到越来越多国内外研究人员的关注.在研究初期,研究人员使用传统的图像分割算法解决场景分割问题,包括基于阈值[4]、基于区域提取[5-6]、基于边缘检测[7]、基于概率图模型[8-10]和基于像素或超像素分类[11]的分割算法.这些传统分割算法通常使用人工设计的图像特征[12],与语义概念之间存在着语义鸿沟,因此制约了传统图像分割算法的性能.
近年来,深度学习的快速发展为场景分割带来了新的解决思路.深度学习算法通过构建多层神经网络,利用多层变换模仿人脑的机制来分析和理解图像.深度学习算法可以从大规模数据中学习逐渐抽象的层次化特征,从而建立场景图像到语义类别的映射.深度学习是近年来机器学习领域最令人瞩目的方向之一,在语音识别、计算机视觉、自然语言处理等多个领域均获得了突破性进展[13].基于深度学习的场景分割算法同样取得了巨大突破.这些算法主要基于“卷积-反卷积”结构,包括全卷积网络[14]和反卷积网络[15-16]两大类.“卷积-反卷积”结构可以建立从原始图像到分割结果的映射,并且可以进行端到端的训练.相比传统图像分割算法,基于深度学习的场景分割算法实现了分割精度的大幅度提升.在此基础上,研究人员针对场景分割问题的难点和挑战,提出了多种基于深度学习的场景分割算法并不断提高算法性能.其中,针对分割粒度细的问题,研究人员提出了基于高分辨率语义特征图的场景分割算法,通过提高特征图的分辨率获得更高精度的分割结果;针对尺度变化多样的问题,研究人员提出了基于多尺度信息的场景分割算法,通过捕捉场景图像中的多尺度信息提升算法的分割精度;针对空间相关性强的问题,研究人员提出了基于空间上下文信息的场景分割算法,通过捕捉场景图像中的空间上下文和相关关系提升算法的分割精度.
在国内外的研究成果中有许多对图像分割进行综述的文献,可以分为两大类:1)概述传统图像分割算法的综述[17-23],介绍了基于阈值、区域提取、边缘检测等利用图像特征的传统图像分割算法.2)侧重介绍基于深度学习的图像分割算法的综述[24-27].例如文献[24]侧重介绍不同图像分割算法使用的深度神经网络结构;文献[25]将上百种基于深度学习的图像分割算法分为10个大类进行概述;文献[26-27]以图像标注的粒度作为分类标准,分别介绍了全监督和弱监督的图像分割算法.但这些文献都是对通用的图像分割算法进行综述,目前并没有针对场景分割的算法综述.与这些综述不同,本文介绍的算法针对图像分割中的场景分割子问题,且主要介绍基于深度学习的算法.本文以算法针对的场景分割问题的3个难点作为分类依据,梳理近年来出现的基于深度学习的场景分割算法.
1 深度学习发展概述
深度学习算法近年来在机器学习领域取得了巨大的进展,其中,基于深度卷积神经网络的算法在计算机视觉领域取得了令人瞩目的成就.深度卷积神经网络是以传统的神经网络为基础,不断发展演变而来.早在1998年“LeNet”网络[28]就已具备现在深度卷积神经网络的完整结构,包括卷积层、非线性变换层、池化层、全连接层等深度卷积神经网络的基本单元.因此,“LeNet”网络可以被视为当前深度卷积神经网络的雏形.然而,计算能力和数据集规模的限制阻碍了深度卷积神经网络的发展.
近年来,随着硬件设备的不断发展和计算能力的不断提高,计算机的运算速度和效率得到了极大提升.尤其是图像并行处理单元(graphics processing unit, GPU)的广泛使用提高了大规模并行计算的能力.此外,随着互联网的兴起和大数据技术的发展,多种大规模图像数据集相继出现,为训练深度卷积神经网络提供数据支持.得益于并行计算能力和大规模数据集,深度卷积神经网络在以图像识别为代表的计算机视觉领域相关任务中取得了惊人的突破.在2012年的“ImageNet大规模视觉识别挑战赛”[29]中,卷积神经网络模型AlexNet[30]将ImageNet分类数据集[31]的Top-5识别错误率从传统算法的26%降低到16.4%,取得了令人振奋的进步.这一工作也掀起了深度卷积神经网络的研究热潮.
此后,越来越多的研究人员投身到对深度卷积神经网络的研究中.以图像识别任务为切入点,研究人员不断提出更深更精巧的网络结构和非线性激活函数提高神经网络的特征表达能力,先后提出了VGG[32],GoogLeNet[33],ResNet[34],ResNeXt[35],DenseNet[36]等网络和Maxout[37],PReLU[38],ELU[39]等非线性激活函数.同时,研究人员还通过设计合理的网络初始化方法[38,40]和特征归一化方法[41-44]促进神经网络的优化过程.深度卷积神经网络可以从大规模数据中自动学习到逐渐抽象的层次化特征,从底层图像特征到高层语义概念的映射.因此,利用在大规模图像识别数据集上预训练的深度卷积神经网络可以学习到合适的图像特征表达,并通过迁移学习的方法被应用于计算机视觉领域的诸多任务中,均取得了极大的成功.例如目标检测算法[45-47]利用深度卷积神经网络同时预测图像中目标的类别和位置;图像语义分割算法[14,48]利用深度卷积神经网络预测图像中每个像素的类别;实例分割算法[49]利用深度卷积神经网络同时预测图像中每个目标的类别、位置和包含像素;图像描述算法[50]利用深度卷积神经网络学习图像特征,并输入到循环神经网络中生成图像的描述.