结合空间上下文算法的道路场景法线区域分割
Normal region segmentation of road scene based on spatial context algorithm
通讯作者:
收稿日期: 2021-03-25
基金资助: |
|
Received: 2021-03-25
Fund supported: | 国家自然科学基金资助项目(62061002) |
作者简介 About authors
陈雪云(1969—),男,副教授,从事机器学习与模式识别研究.orcid.org/0000-0001-5276-1707.E-mail:
针对道路场景检测忽略法线属性的问题,为了加强对空间上下文和边缘信息的利用,提出结合空间上下文算法的道路场景法线区域分割方法,将道路场景识别为路面和障碍物分别对应的水平区域和竖直区域. 在交叉熵损失函数的基础上添加障碍物增强损失,改善训练过程不同分类的权重分配,提高小区域障碍物识别率. 提出上下文改进算法优化位置关联图的矩阵计算方式,减少空间复杂度提高运算效率. 嵌入边缘上下文模块削减噪声并强化主要边缘,加强边缘信息的利用. 在自建数据集和Cityscapes数据集的实验结果表明,与主流的语义分割方法相比,本研究方法加强网络特征提取能力,能有效提高对道路法线区域的分割准确度,相较Deeplab, 交并比提高了2.1%,能简单有效地实现避障任务.
关键词:
Aiming at the problem of ignoring normal attributes in road scene detection, in order to strengthen the use of spatial context and edge information, a road scene normal region segmentation method combined with spatial context algorithm was proposed, and the road scene was identified as the horizontal and the vertical regions corresponding to the road and the obstacles, respectively. On the basis of the cross-entropy loss function, the obstacle enhancement loss was added to improve the weight distribution of different categories in the training process, and improve the recognition rate of obstacles in small areas. The context improvement algorithm was proposed to optimize the matrix calculation method of the position association graph, reduce the space complexity and improve the calculation efficiency. The edge context module was embedded to reduce noise and strengthen the main edge, enhancing the use of edge information. Experimental results on the self-built dataset and the Cityscapes dataset show that compared with mainstream semantic segmentation methods, the proposed method strengthens the ability of network feature extraction, effectively improves the segmentation accuracy of the road normal region, of which the intersection is 2.1% higher than that of Deeplab, easily and effectively achieving obstacle avoidance tasks.
Keywords:
本文引用格式
陈雪云, 姚渠, 丁启辰, 贝学宇, 黄小巧, 金鑫.
CHEN Xue-yun, YAO Qu, DING Qi-chen, BEI Xue-yu, HUANG Xiao-qiao, JIN Xin.
道路场景的区域分割,为自动驾驶任务提供了可靠的标识信息,目前已经取得了较多的研究成果. 法线是物体外表形状信息的一种,根据法线可以方便判断目标是否为障碍物. 通过对道路场景的各类目标分析可以发现,道路可行驶区域的法线一般为竖直向上的,而车辆、行人和树干等障碍物的法线方向大多与路面平面平行,与路面法线正交,故将道路场景划分为可行驶路面的水平区域、障碍物的竖直区域和不适宜划分为前2个分类的其他区域(天空、树叶和人行道等)就能对目标场景进行有效分类,在实现将障碍物与道路区分的同时提供障碍物位置信息. 当前的语义分割网络任务往往是根据图像中目标属性进行分类,忽略了物体的表面法线信息. 而法线信息能直接关联自动驾驶任务避障的核心目标,研究基于场景表面法线的区域分割,有助于精确识别前方路面障碍物法线的突然变化,对于车辆的安全驾驶具有重要意义. 现有的法线检测方法可以分为2类:一类是基于场景几何和纹理信息的传统方法,另一类是基于深度学习的方法.
基于深度学习的法线检测方法包括2类. 一类是基于多目图像:Kusupat等[4]使用多视角立体视觉的方式实现了法线检测,通过多幅不同视角的图像计算视差信息获取法线,摆脱了对场景先验知识的依赖. Zhang等[5]通过最小二乘法求解连续视差图,得到曲面的法线信息. 另一类是基于单目图像:Eigen等[6-7]使用AlexNet模型构造深度神经网络,使用多任务训练方式进行室内场景的法线检测. Bansal等[8-9]提出的MarrNet使用VGG网络用局部法线信息优化整体法线提取,实现了室内场景的家具法线检测. 冼楚华等[10]搭建DenseNet结合全卷积的网络以单目法线数据集作为参考,实现室内法向量预测. Han等[11]引入基于自动编码器的条件随机场(conditional random fields, CRF)模块从超像素分割得到法线预测. 上述基于多目图像的方法对摄像设备的数目有更高的要求,单目图像的法线检测方法依赖于先验的深度信息,其采用的网络结构也较简单,检测精度还有提升的余地.
应用于自动驾驶避障需求的法线检测,并不需要过于精细的法线分类. 采用基于深度学习的语义分割方法,在无场景深度信息的前提下,可以实现对单目道路图像的水平、竖直和其他类别的法线区域分割,获取行驶区域和障碍物信息.
主流的语义分割方法包括:全卷积网络(fully convolutional networks, FCN)、UNet和金字塔场景解析网络(pyramid scene parsing network, PSPNet)等. Shelhamer等[12]提出的FCN将全连接层替换为卷积层,改善了只能接受特定大小图像的问题. He等[13]将网络的卷积层修改为残差块,使用跨层连接提高对深层特征的提取,达到了优化梯度传播方式的目标. UNet在FCN网络结构基础上引入跳跃连接,将编码层的低阶特征与解码层融合,对特征融合进行优化[14]. Zhao等[15]提出的PSPNet使用不同尺寸的池化层提取特征信息,并将这些特征信息拼接再进行特征提取,增强了局部上下文特征信息的提取. Chen等[16]使用空洞金字塔池化构建Deeplab网络进行空间上下文的特征提取,改善了传统池化带来的信息损失. Wang等[17]首次提出非局部(Non-local)算法,使用矩阵乘法操作建立像素间的映射关系,从全局性联系上下文信息. Fu等[18]在Non-local算法的基础上增加通道注意力机制,使用双路上下文提取模块,在通道与和空间与分别实现全局特征信息的提取,拓展了上下文算法的提取途径. Cao等[19-20]结合SENet和Non-local算法优化了通道加权方式.
上述的全局上下文算法提高了网络的特征提取能力,但受限于须消耗大量计算资源. 而且这些算法的信息提取方式是在空间域和通道域实现,没有对边缘信息进行有效的利用. 另外,分割网络常使用交叉熵作为损失函数,对各分类梯度传播平均权重,不同类别分割误差以相等的梯度优化速率进行网络参数更新,不利于难分类区域的识别.
针对以上问题,提出结合空间和边缘上下文改进算法的道路场景法线区域分割方法,该方法的创新点如下:1)提出通道空间上下文算法,在Non-local网络上下文算法基础上,从通道层面进行上下文信息提取,在保持特征提取性能的同时减少了计算资源的消耗. 该算法对主干残差网络提取特征后的高阶特征信息再处理,重新分配特征图权值,加强相同分类特征信息间的关联性,提高区域分割精度. 2)在网络中嵌入上下文边缘模块,把sobel算子提取的含有大量噪点的边缘信息通过上下文提取算法强化主要边缘和削减冗余信息,将其拼接到特征图中,为网络引入更可靠的边缘信息以优化边缘分割. 3)在各分类输出通道加入障碍物增强损失,加大竖直区域误识别为水平区域的惩罚,优化网络训练梯度回传,提高对障碍物的识别准确度.
1. 网络损失函数和结构设计
提出结合空间和边缘上下文改进算法的道路场景法线区域分割方法,将道路场景图像输入深度卷积神经网络进行识别,输出路面和障碍物对应的水平竖直区域分割图,由此得到车辆道路行驶区域和障碍物信息. 分割网络使用残差网络作为主干进行特征提取,嵌入优化计算效率的空间上下文模块和边缘上下文模块,在编码层加强全局信息关联性,同时优化对边缘信息的利用,提高网络特征提取能力;同时在交叉熵损失函数的基础上添加障碍物增强损失约束,在误差传播层面为网络的梯度传播做优化,增加障碍物的分割准确度.
1.1. 损失函数
法线区域检测将水平区域、竖直区域和其他区域(天空和树叶)进行区分,属于多分类分割任务. 为了等价计算不同分类的距离,本研究采用交叉熵损失函数作为网络训练的目标函数. 交叉熵损失对每个像素进行分类判断,得到该像素在各个分类的概率以判断所属分类. 交叉熵使用最大似然估计约束网络输出结果与标定图像的相似性;交叉熵损失函数的值表征网络输出与训练目标所属概率分布的距离,取值越小,网络性能越符合训练目标任务的要求. 交叉熵损失公式如下:
式中:
交叉熵损失对各类分割目标使用平均权重计算损失,不利于难分类区域的识别. 法线区域分割的核心目标是将水平面和竖直面区域进行分割,其中水平路面区域检测精度较高,竖直平面由于纹理颜色的差异,检测难度较大,精度较低. 在分割任务中,障碍物鉴别的重要性远比路面大,相较于将路面区域识别为障碍物,将障碍物识别为路面会带来更严重的后果. 考虑自动驾驶的避障需求,在各分类通道加入障碍物增强损失,加大竖直区域误识别为水平区域的惩罚,提高对障碍物的识别准确度,以优化交叉熵对不同类别的权重分配. 该损失通过在输出通道调节假阳性和假阴性的权重,加强训练过程对竖直面的分类偏好. 障碍物增强损失公式如下:
式中:
网络损失函数由交叉熵损失函数和障碍物增强损失2部分构成,其中交叉熵损失函数承担分类鉴别任务,负责返回梯度更新编解码网络的权重. 障碍物增强损失辅助优化交叉熵损失不同分类的比重. 综上,网络损失函数如下:
1.2. 网络结构
法线区域分割网络由编码器网络和解码器网络2部分组成,编码器部分由残差卷积块、空间上下文模块(spatial context module, SCM)和边缘上下文模块(edge context module, ECM)组成,实现高阶特征编码的功能;解码器由反卷积块构成,将特征信息转化为输出图片. 网络的输入为道路场景图像,经过特征提取建立与标定图像的映射,得到法线区域分割. 法线区域分割网络结构如图1所示.
图 1
输入编码器的道路图像经过2层普通卷积缩小特征图尺寸及扩展通道,接着用残差卷积对特征图进一步特征提取得到高阶特征信息;将其送入空间上下文模块捕捉像素间的关系并对特征图重新加权,优化分类信息;同时使用sobel算子提取边缘信息后用边缘上下文模块强化其主要边缘和削减冗余信息,沿通道轴拼接在特征图中,提供优化后的边缘信息. 解码网络通过反卷积操作从高阶特征图得到法线区域分割.
1.3. 上下文算法
所提出的上下文信息提取算法把特征图沿通道轴进行拆分,在各通道分别进行上下文信息提取操作,以缩减位置关联特征图尺寸(relation map)优化计算效率,从空间层面缩减计算量. 上下文算法如图2所示.
图 2
该算法具体实现如下:特征图输入尺寸为
1.4. 空间上下文模块
空间上下文模块把残差卷积提取得到的高阶特征通过上下文算法提取特征信息. 上下文算法通过转置相乘得到行相关映射图:
式中:
经过softmax激活函数归一化后,行关联图与原特征图矩阵相乘得到权重特征图
经过2次矩阵乘法后,权重特征图建立了全局关联性,实现了上下文特征信息的精炼. 权重特征图中参数为重分配加强相关分类像素的权重,提高了相同类别特征的相关性,使不同通道的高阶特征呈现更合理的分布. 空间上下文模块结构图如图3所示.
图 3
Non-local算法结构如图4所示,输入尺寸为
图 4
由于
1.5. 边缘上下文模块
空间上下文信息提取算法联系了不同位置的像素关联性,未能对场景边缘分割提供有力的帮助. 本研究在网络中嵌入边缘上下文提取模块,将提取的边缘优化后与特征图融合,加强边缘信息的利用. 边缘上下文模块采用sobel算子进行梯度计算,以提取边缘特征. sobel算子分为水平边缘算子和竖直边缘算子,分别获取不同方向的边缘分量相加得到整体边缘图. 边缘提取公式如下:
式中:
Sobel算子提取到的特征较粗糙,往往有大量噪点,将其直接添加到网络中会带来许多冗余信息,使用上下文算法强化主要边缘和削减冗余噪声信息,再将其与网络融合是效率更高的方法. 边缘特征图在各通道使用上下文算法进行全局信息整合,得到特征强化的边缘特征图;将其沿通道轴拼接到网络编码层中,为法线区域分割提供更优的边缘信息. 上下文模块结构如图5所示.
边缘上下文模块与空间上下文模块在算法上有2点不同:1)边缘上下文的特征筛选不使用softmax函数进行归一化,而是使用ReLU函数;ReLU函数的性质有利于在抑制噪点的同时保持主要边缘信息. 2)边缘信息采用沿通道轴与特征图拼接的方式进行融合. 使用ReLU函数作为激活函数的边缘特征提取通过通道轴拼接的方式融合到特征图中,能引入边缘信息且不改变原特征图的特征分布;若将边缘特征图像素级相加融合到特征图中会大幅改变原特征图参数分布,抑制分类信息提取. 边缘上下文提取计算公式如下:
式中:
图 5
1.6. 法线区域分割算法流程
道路场景法线区域分割方法通过深度卷积神经网络实现从道路场景到法线分割的映射,以下给出总体算法流程,包含数据集输入、网络特征提取步骤和优化过程.
法线区域分割算法输入如下:道路数据集
1)从数据集
2)把
3)把
4)把
5)把
6)更新参数
重复步骤1)~6)直到迭代达到最大迭代次数
法线区域分割算法结合空间上下文算法(步骤3))和边缘上下文算法(步骤4)),提高全局特征提取能力和对边缘信息的利用,并通过障碍物增强损失约束增加障碍物的识别准确率. 该算法输入道路场景图像得到法线区域分割,实现对行驶路面和障碍物的识别.
2. 实验设计
2.1. 数据集介绍
2.1.1. 自建数据集预处理
自建数据集建立于校园场景图像,在阴天和晴天2种天气条件下对道路场景进行采集,获得847张图片,基本包含校园主干道路场景. 道路场景主要为校园公路主干道,车道狭窄,中间没有隔离栏;路旁多见教学楼、运动场和道旁树,路上多见行人、电动车和汽车等障碍物,相较阴天,晴天场景下的道路会有斑驳的树影和高亮度路面此类光强分布不均的不利因素. 根据道路避障需求,将场景目标分为3类进行标注,水平区域表示道路可行驶区域标注为第0类;树干、车辆、行人等障碍物标注为第1类;天空和树叶无法划分竖直或水平区域、人行道划分为水平区域会提高行驶危险性,故将这些区域标注为第2类. 网络在输入图片时按照其分类取值为整数0、1、2,在输出时将图片可视化,为不同分类赋予相应的颜色.
该数据集为小规模样本集,其中训练集的图片数量受限于测试集,在保证测试集场景的全面性、多样性的情况下,尽可能增加训练集图片数量以提高网络性能. 在训练过程中,读取训练集图片后经数据增强扩充样本数量再送入网络. 具体操作如下:同时读取道路场景图像和法线区域标定图像,在相同位置随机裁剪四分之一面积得到裁切后的小图像,通过标定图像判断路面区域面积与全图面积占比,保留面积占比小于0.8且大于0.2的裁切图像并随机镜像. 对每张图片重复20次裁切读取数据方法,最后将原图尺寸缩减后与裁切图像一起送入网络训练,在每次完整读取训练后将训练图片随机打乱. 在通过数据增强方式读取图片后,训练集和测试集的样本数分别设定为600、247张.
2.1.2. Cityscapes数据集预处理
该数据集采集欧洲不同城市的道路场景,包含不同背景和不同季节的街景,适用于评估自动驾驶的图像分割任务. 数据集的标注以不同物体目标属性进行区分,包括行人、车辆、道路、人行道和天空等,在分割任务中目标属性一般被分为19类. 为了适配法线区域分割方法,将19类映射为3类. 其中道路区域划分为第0类,人行道、天空和背景映射为第2类,其余的映射为第1类. 选取2000张作为训练集,976张作为测试集.
2.2. 训练细节
实验采用tensorflow深度学习框架,处理器为Intel XeonE5,内存64 GB,显卡配置为NVIDIA GeForce GTX 2080Ti. 网络训练学习率采用指数衰减学习率,初始学习率为0.002,每3000步衰减为原来的0.90倍. 梯度传播计算采用Adam优化器,一次估计指数衰减率为0.90,二次估计指数衰减率0.95. 损失函数超参数设置
2.3. 评价指标
2.3.1. 交并比和像素准确度
交并比(intersection-over-union,IoU)和平均像素准确度(mean pixel accuracy,MPA)是网络分割性能的重要指标. 在分割任务中,交并比是指真实值和预测值的交集与并集之比,表达式如下:
平均像素精确度是指正确分类的像素占全部像素的比值:
式中:
2.3.2. 余弦距离
在机器视觉任务中可以使用余弦距离衡量2个特征向量的相似程度,余弦距离取值范围为[–1.0,1.0],越趋近于1.0表示向量越相似,趋近于–1.0表示方向相反,0表示正交. 当2个特征向量的方向在特征空间中相同时,其夹角为0,余弦值为1.0,此时2个特征向量完全相似. 余弦距离表达式如下:
式中:
3. 实验结果与分析
3.1. 法线网络对比实验
法线网络对比实验在自建数据集实现,将247张测试集数据作为测试输入样本,送进不同的法线检测网络对比输出结果. 如图6(a)、(b)所示分别为道路场景原图和法线区域标定图片,如图6(c)~(e)所示分别为对应网络区域检测结果. 图中,绿色表示道路的水平区域,紫色表示树干、车辆和建筑等竖直区域,红色表示第3类区域,黑框标记分割出现较大差异的区域. 由于网络层数较浅,MarrNet的法线区域分割相对粗糙,存在将车道线误识别为其他区域、障碍物识别不够准确和交界区域分割较零碎等问题. 文献[10]的网络把车辆障碍物的区域分割得较为准确,不过有少量车道线分割错误问题,而且人行道和路缘石区域的分割准确率不高. 本研究方法在特征提取方面进行优化,在人行道和路缘石的分割上的表现较优异,车辆区域分割完整且边缘较光滑,不过对于路旁的竖直区域仍存在部分错误分割.
图 6
图 6 法线检测网络实验对比图
Fig.6 Comparison diagram of normal detection network experiment
法线评价标准参考文献[2],使用以下几个评价指标进行度量,余弦距离的平均角(mean)、中位角(median)、均方误差(root mean square error, RMSE)和余弦角度阈值误差P1、P2、P3,其中P1、P2、P3分别为小于阈值11.25°、20.50°、30.00°的余弦角度占全部余弦角度的百分比。这些评价指标是使用余弦距离的角度取值进行评估,得到弧度制余弦值后还须使用反余弦函数得到对应角度. 其中,阈值百分比计算步骤如下:先计算法线检测图与标定图对应各列向量的余弦距离,再将其转化为角度,统计阈值内角度占所有角度取值的百分比. 这些指标中平均角、中位角和均方误差从不同方面表现检测结果与标定这2个分布的差异程度,取值越小表明网络性能越好;余弦角度阈值评估输出结果与标定不同阈值条件下的全图占比情况,取值越大,输出与标定相似程度越高.
表 1 法线检测网络对比
Tab.1
3.2. 分割网络对比实验
分割网络对比实验在Cityscape数据集上进行,将测试集图片输入不同分割网络得到的输出结果进行对比. 着重选取人行道与路面分割错误以及车辆分割错误的例子展示,这些区域的识别错误将带来极大的安全隐患. 不同分割网络部分实验结果对比如图7所示. 图中,黑框标记分割出现较大差异的区域,(a)列为输入的测试原图像,(b)列为对应的标定图片,(c)~(e)列分别为对应网络的输出结果.由PSPNet输出结果可以看出,多尺度池化导致棋盘效应较严重,部分人行道区域被识别为路面,且远处的车辆没有被正确识别,而是被划分为路面区域. 与PSPNet相比,Deeplab分割结果较好,其采用的空洞卷积避免了池化操作的特征信息丢失,减少了孔洞的产生,可以看到,人行道识别错误区域面积有所减小,远处车辆识别率有所提高. 本研究所提方法加强了上下文信息的提取,减少了纹理信息对分割的干扰,在特征提取过程中引入边缘信息,人行道与路面的分割表现较出色,与标定图片区域基本吻合,且正确将远处车辆识别为障碍物区域,网络在小目标的分割准确度有所提高.
图 7
图 7 分割网络实验对比图
Fig.7 Fig.7 Comparison diagram of segmentation network experiments
分割网络的性能可以通过IoU和MPA评价指标进行评估,不同分割网络实验结果如表2所示.输入测试集图片得到对应IoU和MPA指标的2组精度数据,对其分别求平均值可以得到IoU和MPA精度。网络添加上下文和边缘信息提取后在2个指标的表现均高于对比的分割网络,其中IoU和MPA指标较Deeplab网络分别提高了2.10%和2.74%,数据表明本研究方法与主流分割网络相比有一定优越性.
表 2 分割网络结果对比
Tab.2
以上实验结果验证了本研究方法的有效性,网络结合上下文和边缘信息进行特征提取增强了网络在位置间关联性的敏感程度,使检测区域边缘更为完整,对纹理相似的区域有更强的分辨能力,提高了分割准确度.
3.3. 消融实验
网络的主干网络(Backbone)使用残差网络,如表3所示,分别对比添加空间上下文模块SCM、边缘上下文模块ECM和障碍物增强损失Lo的结果,同时对比本研究提出的改进上下文算法和Non-local算法.可以看出,与主干网络对比,添加空间上下文模块,IoU和MPA提升较大;添加边缘和障碍物增强损失,IoU有所提高. 本研究提出的空间上下文算法与Non-local算法在计算量效率提升的同时,性能依然保持优越. 障碍物增强损失的添加提高了IoU,同时MPA精度有少许下降.
表 3 各模块提升效果对比实验
Tab.3
网络 | IoU/% | MPA/% |
Backbone | 70.58 | 82.17 |
Backbone+SCM | 72.74 | 84.66 |
Backbone+Non-local | 72.69 | 84.40 |
Backbone+SCM+ECM | 73.31 | 85.57 |
Backbone+SCM+ECM+Lo | 73.76 | 85.33 |
4. 结 语
为了实现从道路场景到法线方向的区域分割,提出结合空间和边缘上下文改进算法的道路场景法线区域分割方法. 与单目法线检测网络相比,该方法的法线区域检测不依赖深度信息,而是使用分割方法对输入道路场景图像进行法线区域分类,以此区分并提取道路及障碍物所属的水平竖直法线区域,从而更简单有效地实现避障任务. 为了提高对障碍物的识别准确度,针对损失函数,在交叉熵的基础上加入障碍物增强损失,提高竖直区域被误识别为水平区域的惩罚,优化网络训练梯度传播. 针对上下文信息利用不充分的问题,提出优化运算效率的空间上下文算法,从通道层面进行空间上下文信息提取,强化网络特征间的关联性. 同时,本研究还提出上下文边缘算法优化边缘分割,对于由sobel算子提取的含有大量噪点的边缘信息,通过上下文提取算法削减冗余噪点信息和强化主要边缘,再将其拼接到特征图中. 在自建数据库基础上,通过对比实验验证了本研究方法能有效提高法线区域检测精度.
在未来的工作中还须从2个方面进行改善:基于分割标签的数据集标定费时费力,下一步拟采用生成对抗网络扩大数据集;增加夜间道路、雨天道路和雾天道路等特征提取相对困难的场景,提高网络适用性.
参考文献
Recovering surface layout from an image
[J].DOI:10.1007/s11263-006-0031-y [本文引用: 1]
基于多尺度卷积网络的单幅图像的点法向估计
[J].
Normal estimation from single monocular images based on multi-scale convolution network
[J].
Monocular depth estimation with guidance of surface normal map
[J].DOI:10.1016/j.neucom.2017.08.074 [本文引用: 1]
Fully convolutional networks for semantic segmentation
[J].DOI:10.1109/TPAMI.2016.2572683 [本文引用: 2]
DeepLab: semantic image segmentation with deep convolutional nets, atrous convolution, and fully connected CRFs
[J].DOI:10.1109/TPAMI.2017.2699184 [本文引用: 1]
/
〈 |
|
〉 |
