基于SLIC和改进区域生长的非结构化道路识别

2022-07-21 09:46谢习华赵喻明
计算机工程与应用 2022年14期
关键词:色差像素点像素

谢习华,王 刚,辛 涛,赵喻明

1.中南大学 高性能复杂制造国家重点实验室,长沙 410083

2.山河智能装备股份有限公司,长沙 410100

3.中国人民解放军 32181部队

4.清华大学 精密仪器系,北京 00084

道路识别作为高级驾驶辅助系统(ADAS)的重要组成部分[1],更是实现自动驾驶技术的先决条件。由于视觉传感器可提供极为丰富的环境信息,并且作为被动式传感器,克服了多传感器协同作业时的干扰问题,常被用作于自主车辆感知导航实践中。室外环境中,道路一般分为结构化道路和非结构化道路。结构化道路一般只存在于高速公路、一级公路以及部分二级公路,大多数道路为非结构化道路。非结构化道路由于缺少人工形态特征,道路属性极易受光照和气候影响,检测识别难度较大,例如大多数乡村道路、山林道路以及戈壁道路等,如图1所示。

图1 非结构化道路示例Fig.1 Examples of unstructured roads

目前针对非结构化道路的识别方法主要分为基于传统方法和基于机器学习方法。传统方法一般是通过基本遍历、卷积滤波、统计分析等手段对图像的空间域或变换域进行处理,提取图像的纹理特征、颜色特征、形状特征等信息,并进行编码表示或向量表示,再与已有的道路模型特征或在线学习特征进行比较,利用聚类、区域生长(seeded region growing,SRG)等算法,对道路进行消失点(vanishing point,VP)检测[2-3]、区域或边界检测[4-5]等。该类方法普遍基于像素级计算,运算量较大并且对异常点较为敏感。机器学习方法具体可分为基于人工神经网络[6]和基于深度学习[7-9]。相比于传统方法,该类方法克服了人工设计的基于数学强逻辑性方法在处理非结构化数据方面的不足,但同时导致可解释性不强。目前基于深度学习的道路识别技术在结构化道路上已经取得了较大的成功,但由于非结构化道路缺少统一的道路属性,导致训练的网络模型普适性较差,并且实际运用中,实时性难以保证。

为了提高道路识别率,同时保证算法实时性并降低复杂性,本文提出一种超像素层级的道路识别方法。首先以超像素分割步长作为其数量约束,获取行列规则有序的分割图,并以此构造低分辨率超像素特征图;在特征图的基础上利用聚类算法与邻域搜索算法自适应获取生长种子点,引入CIEDE2000色差公式作为区域生长法生长准则,初步生成道路区域;最后根据道路连续一致特点,优化超像素级生长图,并结合分割图获取最终道路区域。算法整体流程如图2所示。

图2 算法流程图Fig.2 Algorithm flow chart

1 基于超像素分割的图像特征表达

1.1 SLIC算法

超像素(superpixel)是由Ren等人[10]于2003年提出的概念,是指图像中局部的、具有连续性,能够保持图像局部结构特征的子区域,相较于单一像素点,其具有更好的区域特征表达性质。简单线性迭代聚类(simple linear iterative clustering,SLIC)是由ACHANTA等人[11]于2012年提出的一种基于颜色和空间特征的超像素算法,其具有运算速度快、超像素形状规范等优点[12]。算法原理为:

(1)初始化聚类中心。假设图像像素点个数为N,设定超像素个数为K,预计超像素边长S=N/K,即迭代步长取S。为避免聚类中心处于边缘并减少噪声像素干扰,在S×S矩形区域中心点的n×n(一般取n=3)邻域内搜索梯度值最小的像素点作为初始聚类中心。

(2)利用K-means算法[13]在限定区域内迭代聚类。在每个初始聚类中心2S×2S区域内搜索相似像素点,相似性的判断通过颜色特征和空间特征来度量,具体为:

利用5维特征向量表达像素点属性:

式中,l、a、b表示Lab颜色空间三通道颜色分量,x、y表示像素点坐标值。因此,5维欧式距离D的度量公式为:

式中,k表示第k个聚类中心,i表示第i个像素,dlab表示颜色距离,dxy表示空间距离,m表示空间距离权重系数。

完成第一次迭代后,将区域内像素平均值更新为新的聚类中心,进行后续迭代,迭代次数一般在10次以内即可收敛。

1.2 获取超像素特征图

传统SLIC算法一般以最优分割效果为目标,实际算法处理中存在以下问题:

(1)设定超像素个数不等于生成超像素个数。传统SLIC算法以超像素个数K作为输入参数,但由于初始化聚类中心过程中存在除法、开方以及取整运算,导致实际生成的超像素个数Kr并不等于K。如图3(a)所示,K=100,Kr=88。

(2)超像素分割图形状规则但组合无序。部分改进SLIC算法为保证超像素块形状规则、轮廓紧凑,采用相邻行聚类区域人为错开策略,即每行超像素个数依此取n和n-1,尽量使得超像素块为六边形结构。如图3(b)所示,相邻行超像素个数分别为11和12(见底部两行)。

图3 SLIC存在的问题Fig.3 Problems with SLIC

以上问题导致超像素分割图尺度不可控,且非矩阵式结构不便于后续算法处理。因此本文作出以下改进:

(1)初始化聚类中心点时,以步长S直接划分图像为K个均匀矩形块,且满足式(6);

式中,W、H分别表示图像宽度和高度。

(2)利用上述迭代聚类算法生成具有矩阵式结构的超像素分割图。

(3)基于超像素分割图,取各超像素类簇中所有像素点R,G,B颜色平均值构成新的像素点,即用单个像素点替代超像素块,按照超像素排列构造低分辨率超像素特征图SI:

式中,Sk表示第k个超像素类簇,Nk表示第k个超像素类簇中的像素点个数。生成超像素特征图结果如图4(b)所示。

超像素特征图是基于对原图进行SLIC分割处理后,计算各类簇的颜色均值而生成,其本质上是预先对颜色相似,位置相近的像素点进行了微合并。由于后续区域生长算法仅使用颜色特征与空间特征,因此有效信息依然存在于特征图中。同时由于特征图实现了对原图像的降维表达,提高了后续算法处理速度,且每个特征图像素点可映射至分割图获取像素块的轮廓信息,有利于识别道路边界。

图4 超像素特征图Fig.4 Superpixel feature map

2 基于改进区域生长算法的道路区域分割

2.1 自适应种子点选择

区域生长法是一种经典的图像分割方法。通过选取一个种子像素点作为生长起点,利用生长准则将种子点周围具有相似特征的像素并入种子范围,获得最终联通区域。传统区域生长法一般通过交互式选择种子点或固定式选择种子点。前一种方法不适用于道路识别场景,后一种方法易受异常像素干扰。对此本文采用一种自适应种子点选择策略:

(1)假设“车在路上”,即车前为道路可能区域,且该区域中道路区域占比较大[14]。

(2)环境感知系统的传感器安装方案中,为便于传感器标定以及数据融合,前向视觉传感器一般会居中安装。

(3)取超像素特征图底部中间矩形区域像素集合作为种子点Ps的备选区Rs,利用K-means算法对其进行二分类处理,获得集合R1和R2,则有:

若用card(R)表示集合R中的元素个数,基于道路面积较大原则,有:

(4)判断Rs中心点(xc,yc)是否满足条件。若满足条件,则该点即为种子点,若不满足,以图5所示规则搜索中心点邻域范围,直至满足种子点落在元素较多集合中。

图5 种子点搜索规则Fig.5 Seed point search rules

对于弯曲道路(见图6(a)),种子点备选区易受背景部分干扰,固定式选择方法易将种子点错选在非道路区域,而自适应方法则可通过搜索策略避开背景区域。对于路面中间存在干扰像素时(见图6(d)),自适应种子点选择策略可避免种子点错选在干扰像素处,提高种子点选择的准确性。

图6 种子点选择结果Fig.6 Seed point selection results

2.2 CIEDE2000色差生长准则

生长准则作为区域生长法的关键之一,影响着算法运行效率和处理效果。基于区域灰度差的生长准则原理简单,通过比较像素间灰度差与设定阈值实现归属判断,但对于灰度梯度变化缓慢的图像处理效果一般。针对该问题,本文提出了一种基于CIEDE2000色差理论[15]的生长准则,利用色差公式计算种子像素与邻域像素的差别。

色差是色彩学中表示颜色差异的一种概念。由国际照明委员会(CIE)2001年修订的CIEDE2000色差公式是迄今为止最为先进的工业色差计算公式,其结果表达式如下:

基于CIEDE2000色差公式的生长准则是以种子点作为基色,计算其他像素与其差异,且基于色相、饱和度、明度等多种参数、权重综合计算建立的评价体系更有利于衡量其他点与种子点的差别。图7~9展示了三种场景下利用色差公式计算种子点(seed)和其他像素点(other)的差异结果,同时对比了传统灰度准则、加权通道融合准则[16]及均匀度准则[17]的实际效果区别。

图7 草原场景(天空和道路相互连接)Fig.7 Prairie scene(sky and road are connected)

图8 戈壁场景(天际线灰度差异小,天空灰度阶梯明显)Fig.8 Gobi scene(gray scale difference of skyline is small,and gray scale of sky is obvious)

图9 暗光场景(天空高亮,道路与两侧区域区分较难)Fig.9 Dark scene(sky is bright and it is difficult to distinguish road from area on both sides)

在某些非结构化场景中,道路区域和天空区域时常连接在一起,这种情况在戈壁、草原等自然场景中格外常见,如图7(a)所示。基于传统灰度差的生长准则,天空部分分布较为离散,且右上角出现塌陷,易导致生长过程出现过分割。其他三种方法对于该场景处理效果均较优,其中色差准则在保证天空部分较为平整的同时,对道路左右侧处理效果最优,易于提取道路区域。大多数戈壁场景中,道路区域与天空区域灰度差异较小,尤其天际线部分与道路部分极为相近,如图8(a)所示。采用灰度差计算准则,天际线处出现数值跌落,同时由于天空部分灰度阶梯较为明显,导致灰度差呈明显递增趋势。加权通道融合准则对天空部分处理较好,但难以区分其他背景区域。采用均匀度差计算时,天空部分整体较为平整,但数值趋近于道路区域,不利于后续分割。此时色差准则仍能较好区分出天空与道路部分,并且天际线部位处理较好,与道路区域区分明显。对于环境光照较暗且逆光条件下,天空部分处于高亮,道路与两侧区域均为暗色,如图9(a)所示。此时仅有色差准则可区分出道路区域,其他三种方法仅对天空部分较为敏感,无法处理暗色部分。

3 道路区域后处理

通过改进区域生长法处理超像素特征图后,获取的道路区域存在孔洞、边缘不连续等情况。由于超像素级生长图分辨率极低,形态学方法易导致其过腐蚀或过膨胀,不适用于其后处理。并且个别场景由于天空区域和道路区域极为相似,天际线处存在连接点,使得区域生长过程中存在“突破点”,将天空区域误归为道路区域,导致过分割。图10示意图展示了超像素级生长图可能包含的大部分待优化问题。

图10 待优化问题Fig.10 Problems that need to be optimized

针对以上问题,本文根据道路连续一致的特点,改进文献[18]的区域分块分类方法,利用8邻域属性对像素点进行判别,如图11所示,具体优化策略如下:

图11 8邻域示意图Fig.11 8 neighborhood diagram

(1)首先设定像素点属性Pli=1表示道路点,Pli=0表示背景点。Nr表示8邻域中属于道路点的像素个数。对于特殊位置,用Nrv表示图像顶点的3邻域中属于道路点的像素个数。

(2)图像上半部分一般为天空区域,即情况d:直接修正图像上1/4区域为背景。对于剩余部分,参照闭运算思想,采取先填充后剔除的方法。

(3)填充。针对道路孔洞或边界缺陷,即情况a:满足Nr≥6,则Pl0=1。

特殊位置:对于道路近端孔洞(图像底部边界但不包括左右顶点),即情况b:满足Pl4、Pl5、Pl6中任意两个为1,则Pl0=1。对于底部左右顶点,即情况c:满足Nrv=3,则Pl0=1。

(4)剔除。针对异常孤立道路点,即情况e:满足Nr≤2,则Pl0=0。

特殊位置:经过步骤(2)处理后,此时仍可能存在残留的天空部分,需进一步处理。基于相机感知视角及成像原理,道路远端在图像中一般收缩为点状,因此在超像素级生长图中,天际线处“突破点”一般为单个像素,已在步骤(4)中剔除。因此,残留的天空部分已成为孤立区域,将该区域全部剔除,修正为背景区域。

按照以上方法对超像素级生长图进行优化后,一定程度上解决了道路区域孔洞,边界不连续以及过分割等情况,如图12所示。但对于较大孔洞,本文认为不能将其简单进行填充,此时路面可能存在较大干扰物,需考虑正负障碍物识别等其他手段。

图12 后处理效果示意Fig.12 Post-processing effects

结合超像素分割图,根据特征图像素点和超像素块的映射关系,联合坐标信息与轮廓信息,获得最终道路区域。

4 实验结果与分析

4.1 实验条件与数据

本文所有算法验证均在PC机上完成,PC配置为:处理器Intel®CoreTMi5-7200U,主频2.50 GHz,内存8 GB,操作系统Ubuntu16.04。所有算法均使用C++和OpenCV3.4.0编写,开发环境为VSCode2019。

实验数据包含图像数据和视频数据两部分。其中图像数据共600张,其中110张来源于美国国防高级研究计划局(DARPA)举办的无人车挑战赛实拍图像,100张来源于互联网搜索非结构化道路图像,350张来源于文献[19]提供的未铺设道路图像以及40张实际场景拍摄图像,场景包括乡村、山林、戈壁、草原等多种情况。所有图像统一归一化为320×240像素,并采用手工方法标定道路区域。视频数据来源于实际采集的非结构化道路视频,同样归一化为320×240像素,采集场景如图13(a)所示。实际场景图像与视频均利用无人车搭载单目摄像头完成数据采集,摄像头的传感器型号为PointGrey-BFLY-PGE-23S6,配备6 mm光学镜头,如图13(b)所示。

图13 实际采集场景Fig.13 Actual collection scene

实验中各参数分别为:SLIC算法迭代次数取默认参数10次;根据归一化后的图像尺度,设定空间距离权重系数m为65时,可保证超像素块轮廓清晰;对本文数据集进行反复实验,区域生长阈值T为15时可保证较高的分割准确性。

4.2 评估策略

本文以交并比(IoU)作为道路识别评价指标,IoU越大,表明识别结果与真实结果重合率越高,具体指标计算公式如下:

式中,TP表示正确识别的道路区域像素,FP和FN表示错误识别的道路区域像素和背景区域像素。

分别用n70和n80表示IoU大于等于70%和80%的图片数目,则两者的正确率分别表示为:

式中,N表示图片总数目,此处取600张。

在统计算法平均耗时中,考虑到识别失败时,算法运行时间易出现极小数值,从而影响该指标的准确性和有效性。因此本文仅统计满足正确率C70的识别时间,将该平均耗时定义为:有效平均耗时。

4.3 不同分割步长性能分析

改进后的SLIC算法以分割步长S作为超像素类簇数量约束,为比较不同S对算法性能的影响,以区间长度为1,且S∈[1,30]分别对600幅图像进行处理(当S无法直接满足式(6)时,对归一化图像进行尺度微调),统计满足正确率C80的图像数目,并记录有效平均耗时,如图14所示。

图14 分割步长性能分析Fig.14 Segmentation step size performance analysis

根据平均处理时间曲线可知,随着分割步长逐渐增大,由于需生成的超像素块数目减少,算法耗时逐渐降低,并在S=15后逐渐趋于平稳(红框部分)。由图像数目统计曲线可知,S在13至17之间时,满足C80的图像数目较多(蓝框部分)。当分割步长过小时,由于此时超像素块尺寸较小,由其取类簇均值构成超像素特征图时,干扰像素点的影响较大,使得后续区域生长处理出现异常,影响识别结果。当分割步长过大时,由于生成的超像素块数目较少,超像素分割图中无法准确描述和保留原有图像的轮廓信息,使得识别结果出现较大误差。因此,为满足较高的识别正确率且算法耗时较低,同时可直接满足式(6),S取16。

4.4 定性分析

图15展示了5种方法在数据集上的部分识别结果,场景涵盖笔直道路(1),弯曲道路(2),阴影干扰道路(3),杂草干扰道路(4),水坑干扰道路(5),车辙干扰道路(6),中央干扰道路(7),表面不均道路(8)和背景相似道路(9)。

基于灰度差准则的道路识别算法(SRG)对灰度值区分度要求较高,易出现欠分割和过分割(见图15第2、3、6、8、9行),且由于种子点选择抗干扰能力较差,算法稳定性欠佳(见图15第7行)。基于HSV色彩空间的区域生长算法[16]通过设定权值融合色调H与饱和度S(HS-SRG),提升色彩稳定性,但该方法抗干扰能力有限(见图15第5、6、7、8行),且背景与道路区域相似时易出现过分割(见图15第2、9行)。基于消失点约束的区域生长算法[20]结合两种算法(VP-SRG),先利用快速消失点估计算法初步确定道路区域,再通过基于YUV色彩空间的区域生长算法对道路区域进行再分割。该方法一定程度上克服了消失点算法无法适应弯曲道路的问题,同时限制道路边界避免出现过分割。但由于算法属于串联式,最终结果易受初始道路区域估计精度的影响(见图15第2行),且该方法对道路边界的识别精确度有限(见图15第1、8、9行)。为验证超像素预处理对道路识别结果的影响,采用舍去超像素预处理,直接使用本文改进后的区域生长算法(CSRG)对数据集进行处理,即直接通过CIEDE2000色差公式进行像素级计算。该方法识别效果较好,但抗干扰能力较弱,对受阴影等异常像素干扰的路面处理效果不佳(见图15第3、6、7、8行)。本文方法(S-CSRG)总体效果优于其他算法,由于超像素块对较小的异常区域具有一定的抗干扰能力,使得算法具有较强的鲁棒性,同时基于色差准则的区域生长算法对道路区域具有较强的识别能力。

图15 各算法结果对比Fig.15 Results comparison of each algorithm

图16 噪声抑制能力Fig.16 Ability to suppress noise

超像素块具有较好的局部特征表达属性,由其取类簇均值构成的超像素特征图可以一定程度抑制噪声数据,降低其对后续处理的影响。对图16中原图数据添加均值为0但标准差不同(σ分别取0.04、0.08、0.12)的高斯噪声,在未进行任何降噪预处理的情况下,直接使用本文方法对道路进行识别。从图中可以看出,使用超像素块作为区域生长单位,噪声数据只对道路边界部分产生细微影响,使得部分边界存在模糊,但整体上未对道路识别结果产生较大影响。

4.5 定量分析

分别统计5种方法识别600幅图像的IoU值,构造统计曲线图,如图17所示。将IoU值以0.1间距长度划分为11个统计区间,其中IoU小于0.05归为0区间,大于0.95归为1.0区间。同时记录各方法有效平均耗时,统计结果如表1所示。

图17 IoU分布对比Fig.17 Comparison of Io U distribution

表1 检测结果对比Table 1 Comparison of test results

由图17及表1可知,SRG算法处理速度最快,但由于算法抗干扰较弱,整体识别结果较差,正确率C70及C80仅36.2%和21.5%。HS-SRG算法处理速度次之,但识别结果出现两极化,设定阈值对于某类场景识别效果较好(251幅图IoU大于0.85),但一旦场景发生变化,极易出现完全无法识别的情况(79幅图IoU小于0.05),最终导致两种正确率仅有62.3%和49.7%。VP-SRG算法识别效果较为一般(372幅图IoU小于0.75),由于受消失点位置的约束,弱纹理、窄弯等场景极易出现识别错误,两种正确率仅有49.0%和28.5%,并且该方法在消失点估计过程中存在卷积计算,导致算法运行时间最长。CSRG算法和S-CSRG识别效果较好,高IoU区域图片数目均较多,前者正确率为92.3%和83.3%,后者为93.8%和88.5%,但是由于前者是基于像素级的计算分类,相对于本文超像素级的处理,其算法运行时间较长。综合比较,S-CSRG识别率较高且耗时较少。

为验证超像素预处理对后续算法处理时效性的影响,分别利用S-CSRG和CSRG处理一段视频数据。通过记录处理每帧图像的时间,取较为平稳的500帧时间数据,绘制图18。同时统计两种方法各算法步骤耗时的平均值,如图19所示。

图18 视频帧处理时间对比Fig.18 Comparison of video frame processing time

图19 算法步骤耗时对比Fig.19 Comparison of algorithm time-consuming

由图18可知,S-CSRG的处理时间基本在110 ms上下波动,且波动范围较小。而基于像素级的CSRG由于道路面积始终变化,导致时间波动较大,并出现欠分割现象(异常点A、B),且整体耗时较长。由图19可知,S-CSRG使用SLIC算法进行全像素域计算,由于相似性计算公式较为简单,仅耗时108.3 ms。由此降维生成的超像素特征图,由于像素点极少,即使对其进行复杂的色差运算,并未带来较高的时间消耗,区域生长阶段仅耗时3.63 ms。而CSRG直接对原图进行像素级色差计算,耗时高达174.95 ms。因此,超像素预处理可极大减少后续算法的处理时间,具有明显的实时性优势。

5 结语

提出一种基于SLIC和改进区域生长算法的非结构化道路识别方法。首先基于SLIC算法构造低分辨率超像素特征图,用于提高后续算法处理实时性;然后利用K-means算法和邻域搜索算法自适应获取生长种子点,提高种子点选择的准确性;其次引入CIEDE2000色差公式作为区域生长法生长准则,极大提高分割算法精确度;并且根据道路特性设定优化策略,对超像素级生长图进行后处理,提高了算法的抗干扰能力;最后联合超像素分割图的轮廓信息,获取最终道路识别结果。实验结果表明,该识别方法具有一定的有效性,并且鲁棒性、实时性较好。但该方法对弱色彩、弱对比度场景的道路识别存在一定偏差,有待进一步改进。

猜你喜欢
色差像素点像素
CIEDE2000色差公式在彩涂板色差检测上的应用研究
像素前线之“幻影”2000
图像二值化处理硬件加速引擎的设计
基于局部相似性的特征匹配筛选算法
“像素”仙人掌
基于脑电波信号的色差评价研究
基于像素点筛选的舰船湍流尾迹检测算法
涂装色差控制工艺分析
基于canvas的前端数据加密
色差