发明内容
本发明的目的在于提供一种基于车载激光扫描点云的城区道路标线自动分类方法。
为实现上述目的,本发明采用以下技术方案:
一种基于车载激光扫描点云的城区道路标线自动分类方法,包括以下步骤:
S1、基于行车轨迹数据对原始点云数据进行路面分割,得到路面点云数据;
S2、对所述路面点云数据进行二值化处理,并提取出道路标线点;
S3、对所述道路标线点进行聚类,分离出彼此独立的道路标线目标;
S4、根据所述道路标线目标的尺寸,分类出大尺度道路标线和小尺度道路标线;
S5、对所述大尺度道路标线进行基于行车轨迹和路沿线的分类处理,分类出停止线、中心线和边界线;
S6、对所述小尺度道路标线进行基于深度学习和主成分分析的分类处理,分类出方向指示标记、行人警告标记、斑马线、中心线和边界线。
优选地,所述步骤S1具体包括以下分步骤:
S11、将原始点云数据沿行车轨迹的方向均匀分割成一组点云块;
S12、对于每个点云块,沿垂直于行车轨迹的方向切分出一个点云剖片,并从点云剖片上提取路沿点;
S13、对所有路沿点进行拟合,得到路沿线;
S14、对原始点云数据沿路沿线进行分割,得到路面点云数据。
优选地,所述步骤S2具体包括以下分步骤:
S21、将所述路面点云数据沿行车轨迹向两侧以某一划分间隔划分成一组路面点云分片,采用OTSU二值化方法对每个路面点云分片分别进行二值化处理,并提取出道路标线点。
S22、计算每个道路标线点的空间密度值,若某个道路标线点的空间密度值小于预先设定的噪声临界值时,则将其剔除。
优选地,所述步骤S5具体包括以下分步骤:
S51、对每个大尺度道路标线,若其包含多类道路标线,则执行步骤S52,若其只包含一种类型的道路标线,则将其直接记为道路标线单元;
S52、对包含多类道路标线的大尺度道路标线进行基于体元的归一化分割,得到语义上独立的道路标线单元;
S53、对每个道路标线单元进行采样,并计算采样点的分布特征,判断符合方向校验条件的采样点数量是否大于第一预设阈值,若是,则将该道路标线单元标记为停止线,若否,则执行步骤S54,所述方向校验条件为采样点的分布特征垂直于行车轨迹的方向;
S54、计算道路标线单元上的采样点与路沿线的距离,判断符合位置校验条件的采样点数量是否大于第二预设阈值,若是,则将该道路标线单元标记为边界线,若否,则将该道路标线单元标记为中心线,所述位置校验条件为采样点到路沿线的距离小于1m。
优选地,所述步骤S52具体包括以下子步骤:
S521、将包含多类道路标线的大尺度道路标线进行体元化,并以体元化后的体元点云块构造全连通加权图;
S522、基于全连通加权图对大尺度道路标线进行归一化分割。
优选地,所述步骤S6具体包括以下子步骤:
S61、利用深度学习方法训练一个包含两层隐藏层的深层波尔兹曼机,并将训练后的深层波尔兹曼机构造成一个多层的分类器;
S62、以小尺度道路标线作为多层分类器的输入,多层分类器输出小尺度道路标线的类别信息,所述类别信息包含条状道路标线、方向指示标记、行人警告标记和其他道路标线;
S63、对每一条状道路标线P,沿其宽度方向向两侧搜索宽度为wside=1m的邻域,若其邻域内存在条状道路标线Q,则执行步骤S64,若该邻域内不存在条状道路标线,则执行步骤S65;
S64、判断条状道路标线P与其邻域内的条状道路标线Q是否满足斑马线判定条件,若满足,则将该条状道路标线P标记为斑马线,若不满足,则执行步骤S65,所述斑马线判定条件为:
(vp∥vq)∧(vp⊥vpq)∧(vq⊥vpq)
其中,点p为条状道路标线P在XY平面内的几何中心,vp为点p的分布特征,点q为条状道路标线Q在XY平面内的几何中心,vq为点q的分布特征,vpq为点p到点q的方向向量;
S65、沿条状道路标线P的长度方向向两侧搜索宽度为wend=3m的邻域,若其邻域内存在条状道路标线Q,则判断条状道路标线P与其邻域内的条状道路标线Q是否满足间断线判定条件,若满足,则对条状道路标线P进行基于行车轨迹和路沿线的分类处理,将条状道路标线P标记为边界线或中心线,所述间断线判定条件为:
(vp//vq)^(vp//vpq)^(vq//vpq)
其中,点p为条状道路标线P在XY平面内的几何中心,vp为点p的分布特征,点q为条状道路标线Q在XY平面内的几何中心,vq为点q的分布特征,vpq为点p到点q的方向向量。
采用上述技术方案后,本发明与背景技术相比,具有如下优点:
1、本发明能够快速、准确地提取和分类出城区道路标线,大大降低了数据处理的时间及劳动成本,有效保证了交通的安全性和智能驾驶的可靠性。
2、通过对路面点云数据进行基于行车轨迹的分片二值化处理,解决了激光点云数据强度受激光束的入射角与目标距离影响的问题,有效地提高了道路标线提取的质量。
3、通过对大尺度道路标线进行基于体元的归一化分割处理,有效地将重叠的停止线与边界线分离开,提高了对道路标线分类的准确性。
4、通过对小尺度道路标线进行基于深度学习和主成分分析的分类处理,有效地提高了小尺度道路标线的分类精度。
实施例
请参阅图1,本发明公开了一种基于车载激光扫描点云的城区道路标线自动分类方法,其包括以下步骤:
S1、路面点云数据分割
基于行车轨迹数据对原始点云数据进行路面分割,得到路面点云数据,这里提到的行车轨迹数据是通过集成在车载激光扫描系统上的惯性导航系统进行采集的。该步骤具体通过以下步骤实现:
S11、将原始点云数据沿行车轨迹的方向均匀分割成一组点云块,在本实施例中,点云块的分割间隔为3m。
S12、对于每个点云块,沿垂直于行车轨迹的方向切分出一个点云剖片,并从点云剖片上提取路沿点(参考图2所示)。根据先知经验,道路的路沿通常是垂直于路面设置且高于路面,因此只要找到高度突变的点云即找到了路沿点。本实施例中提取路沿点的方法具体为,自点云剖片与行车轨迹的相交位置向两侧搜索,找到高度突变的点云,将其作为路沿点。
S13、对所有路沿点进行拟合,得到路沿线(参考图3所示)。
S14、对原始点云数据沿路沿线进行分割,得到路面点云数据(参考图4所示)。
需要说明的是,为了更直观的显示路沿点的提取结果和拟合结果,图2和图3中道路两侧地物的点云数据已经略掉,因此,图2和图3只是显示了路沿点和路沿线的分布情况,并不代表步骤S12、S13的处理结果。
S2、提取道路标线点
对路面点云数据进行二值化处理,并提取出道路标线点。该步骤具体通过以下步骤实现:
S21、将路面点云数据沿行车轨迹向两侧以某一划分间隔划分成一组路面点云分片,然后采用OTSU二值化方法对每个路面点云分片分别进行二值化处理,并提取出道路标线点(参考图5所示)。在本实施例中,点云分片的划分间隔为2m。
S22、计算每个道路标线点的空间密度值,若某个道路标线点的空间密度值小于预先设定的噪声临界值时,则将其剔除(参考图6所示)。对于某一道路标线点p(x,y,z),其空间密度值定义为:
其中,N(p)代表点p的局部邻域,dN表示邻域的大小,pi(xi,yi,zi)为点p的局部邻域中的点。
在本实施例中,dN取0.1m,噪声临界值为8。
S3、道路标线点聚类
对道路标线点进行聚类,分离出彼此独立的道路标线目标。在本实施例中,对道路标线点进行聚类具体是以0.05m的聚类距离对道路标线点进行欧氏距离聚类。为了减少后续步骤计算处理的时间和数据存储空间,可根据道路标线的尺寸特性,对聚类后的道路标线进行简单的目标过滤,以剔除一些尺寸小的非道路标线目标(如道路标线施工不当遗漏在路面上的漆料、与道路标线颜色相近的窨井盖等)。
S4、道路标线目标尺寸分类
根据道路标线目标的尺寸,分类出大尺度道路标线和小尺度道路标线。对于每一个道路标线目标,根据其所包含点的三维坐标信息计算其边界框,并计算边界框的对角线长度。将对角线长度大于8m的道路标线目标标记成大尺度道路标线,将对角线长度小于8m的道路标线目标标记成小尺度道路标线。
S5、大尺度道路标线分类
对大尺度道路标线进行基于行车轨迹和路沿线的分类处理,分类出停止线、中心线和边界线。该步骤具体通过以下步骤实现:
S51、对每个大尺度道路标线,若其包含多类道路标线,则执行步骤S52,若其只包含一种类型的道路标线,则将其直接记为道路标线单元。判断大尺度道路标线是否包含多类道路标线,可通过对大尺度道路标线上的不同位置进行采样,并计算各采样点的分布特征。若各采样点的分布特征相同,则判定该大尺度道路标线只包含一种类型的道路标线;若各采样点的分布特征不同,则判定该大尺度道路标线包含多类道路标线。当然,也可采用人工手段去判断大尺度道路标线是否包含多类道路标线。
S52、对包含多类道路标线的大尺度道路标线进行基于体元的归一化分割,得到语义上独立的道路标线单元。该步骤具体通过以下步骤实现:
S521、将包含多类道路标线的大尺度道路标线以一定体元宽度进行体元化,并以体元化后的体元点云块构造全连通加权图G={V,E},本实施例中体元宽度取0.1m。该全连通加权图G上的顶点V由体元化后的每一个体元点云块组成,G上的边E连接着每对体元点云块。对于每个体元点云块,选取其中离体元点云块几何中心最近的点作为该体元点云块的特征点,并将其存储于集合Pvoxel中。然后,对于集合Pvoxel中的任意一点q,利用其k-最近邻点p1,p2,…pk计算其协方差矩阵:
通过对上述协方差矩阵进行特征值分解,解算出三个特征值和对应的三个特征向量。将最大特征值对应的特征向量作为点q的分布特征,即点q所对应的体元点云块的分布特征。记点q的分布特征为vq。则全连通加权图上连接任意两个顶点(i,j)的边上的权重可定义如下:
其中,qi,qj∈Pvoxel;vqi和vqj为其对应的分布特征;σD和σA为标准差;ds为距离约束条件,用于确定两个体元点云块的最大有效距离。
S522、基于全连通加权图对大尺度道路标线进行归一化分割。归一化分割方法旨在通过最大化类内相似度及最小化类间相似度的方法将加权图G划分成两个不相交的体元块集合A与B。归一化分割的代价函数定义为:
其中,cut(A,B)表示A与B之间的边上的权重之和;assoc(A,V)表示终边落在A中的边上的权重之和;assoc(B,V)表示终边落在B中的边上的权重之和。最后通过解算代价函数对应的广义特征值分解问题来实现包含多类道路标线的大尺度道路标线的分割,从而有效地将重叠的多类道路标线(如停止线和边界线)分离开,便于后续步骤对道路标线的分类,提高了道路标线分类的准确性。
S53、对每个道路标线单元进行采样,并计算采样点的分布特征,判断符合方向校验条件的采样点数量是否大于第一预设阈值,若是,则将该道路标线单元标记为停止线,若否,则执行步骤S54,方向校验条件为采样点的分布特征垂直于行车轨迹的方向。在本实施例中,对每个道路标线单元的采样数量为100,第一预设阈值为95。
S54、计算道路标线单元上的采样点与路沿线的距离,判断符合位置校验条件的采样点数量是否大于第二预设阈值,若是,则将该道路标线单元标记为边界线,若否,则将该道路标线单元标记为中心线,位置校验条件为采样点到路沿线的距离小于1m。在本实施例中,第二预设阈值为95。
S6、小尺度道路标线分类
对小尺度道路标线进行基于深度学习和主成分分析的分类处理,分类出方向指示标记、行人警告标记、斑马线、中心线和边界线。该步骤具体通过以下步骤实现:
S61、利用深度学习方法训练一个包含两层隐藏层的深层波尔兹曼机,并将训练后的深层波尔兹曼机构造成一个多层的分类器。参考图7所示,该多层分类器包含一个输入层,两个隐藏层和一个输出层。其中,W1,W2和W3分别代表多层分类器的模型参数;v代表输入数据;h1和h2分别代表第一层和第二层抽象特征;F(h2|v)代表基于输入数据v的后验概率;y为多层分类器的输出。
深层波尔兹曼机的能量函数定义为:
E(v,h1,h2;θ)=-vTW1h1-(h1)TW2h2
其中,θ={W1,W2}代表深层波尔兹曼机的模型参数。该深层波尔兹曼机输入一个数据v的概率定义为:
其中,为该深层波尔兹曼机的配分函数。通过对数最大似然学习方法,便可训练出该深层波尔兹曼机的模型参数。最后,以此深层波尔兹曼机构造如图7所示的多层分类器。
S62、以小尺度道路标线作为多层分类器的输入,多层分类器输出小尺度道路标线的类别信息,类别信息包含条状道路标线、方向指示标记、行人警告标记和其他道路标线。在本实施例中,多层分类器输出[1,0,0,0]T,[0,1,0,0]T,[0,0,1,0]T,[0,0,0,1]T分别代表条状道路标线、方向指示标记、行人警告标记和其他道路标线。
S63、对每一条状道路标线P,沿其宽度方向向两侧搜索宽度为wside=1m的邻域(参考图8a所示),若其邻域内存在条状道路标线Q,则执行步骤S64,若该邻域内不存在条状道路标线,则执行步骤S65。这里提到的“宽度方向”指的是与条状道路标线P的长边垂直的方向。
S64、判断条状道路标线P与其邻域内的条状道路标线Q是否满足斑马线判定条件,若满足,则将该条状道路标线P标记为斑马线,若不满足,则执行步骤S65,斑马线判定条件为:
(vp∥vq)∧(vp⊥vpq)∧(vq⊥vpq)
其中,点p为条状道路标线P在XY平面内的几何中心,vp为点p的分布特征,点q为条状道路标线Q在XY平面内的几何中心,vq为点q的分布特征,vpq为点p到点q的方向向量;
S65、沿条状道路标线P的长度方向向两侧搜索宽度为wend=3m的邻域(参考图8b所示),这里提到的“长度方向”指的是与条状道路标线P的长边平行的方向。若其邻域内存在条状道路标线Q,则判断条状道路标线P与其邻域内的条状道路标线Q是否满足间断线判定条件:
(vp//vq)^(vp//vpq)^(vq//vpq)
其中,点p为条状道路标线P在XY平面内的几何中心,vp为点p的分布特征,点q为条状道路标线Q在XY平面内的几何中心,vq为点q的分布特征,vpq为点p到点q的方向向量。
若满足,则对条状道路标线P进行基于行车轨迹和路沿线的分类处理,其具体处理步骤与步骤S53、S54相同,只需将条状道路标线P作为道路标线单元进行处理即可分类出边界线或中心线。
经过上述步骤后,即可实现对城区道路标线的自动分类。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。