一种基于语义分割技术的车道线检测方法
文献发布时间:2023-06-19 19:21:53
技术领域
本发明公开一种方法,涉及计算机视觉技术领域,具体地说是一种基于语义分割技术的车道线检测方法。
背景技术
快速的城市化带来了城市人口的增长,带来了重大的流动性和可持续性挑战,在多个智慧场景的建设中,智慧交通场景具有潜力提高效率和决策。其中智能驾驶技术中的感知功能非常重要,而且其需要感知的设备丰富、感知的数据模态多样、感知的数据量大且任务输出复杂。针对需要的感知的数据中,路况数据十分重要,虽然目前存在识别技术进行路况识别,但其可靠性和高效性还有待提高。
发明内容
本发明针对现有技术的问题,提供一种基于语义分割技术的车道线检测方法,可用于辅助构建高精地图或行车过程,切实提升智能驾驶的可靠性与高效性。
本发明提出的具体方案是:
本发明提供一种基于语义分割技术的车道线检测方法,构建语义分割模型,通过语义分割模型将RGB图像逐像素按照背景、可行驶区域、车道线或马路边缘石进行预测分类,
利用DBSCAN聚类方法将预测分类后车道线的区域聚类为独立的簇,初步形成车道线,
利用图像处理方法根据初步形成的车道线提取每一条车道线的中心线,完成车道线检测。
进一步,所述的一种基于语义分割技术的车道线检测方法中预测分类前通过单目相机采集路况图像,并将路况图像转换为RGB图像。
进一步,所述的一种基于语义分割技术的车道线检测方法中所述构建语义分割模型,包括:
构建语义分割模型的卷积层和池化层,并将ReLU函数作为激活函数,通过Softmax函数输出多分类的结果。
进一步,所述的一种基于语义分割技术的车道线检测方法中所述利用DBSCAN聚类方法将预测分类后车道线的区域聚类为独立的簇,包括:
定义密度相连点的最大集合为独立的簇,初步形成车道线。
进一步,所述的一种基于语义分割技术的车道线检测方法中所述利用图像处理方法根据初步形成的车道线提取每一条车道线的中心线,包括:
利用形态学骨架提取方法提取每一条车道线的中心线:对初步形成的车道线图像进行二值化处理,对二值化处理后的车道线图像依次进行腐蚀和膨胀操作,获得骨架图。
本发明还提供一种基于语义分割技术的车道线检测系统,包括预测分类模块、聚类模块和图像处理模块,
预测分类模块构建语义分割模型,通过语义分割模型将RGB图像逐像素按照背景、可行驶区域、车道线或马路边缘石进行预测分类,
聚类模块利用DBSCAN聚类方法将预测分类后车道线的区域聚类为独立的簇,初步形成车道线,
图像处理模块利用图像处理方法根据初步形成的车道线提取每一条车道线的中心线,完成车道线检测。
进一步,所述的一种基于语义分割技术的车道线检测系统中预测分类模块在预测分类前获得单目相机采集的路况图像,并将路况图像转换为RGB图像。
进一步,所述的一种基于语义分割技术的车道线检测系统中所述预测分类模块构建语义分割模型,包括:
构建语义分割模型的卷积层和池化层,并将ReLU函数作为激活函数,通过Softmax函数输出多分类的结果。
进一步,所述的一种基于语义分割技术的车道线检测系统中所述聚类模块利用DBSCAN聚类方法将预测分类后车道线的区域聚类为独立的簇,包括:
定义密度相连点的最大集合为独立的簇,初步形成车道线。
进一步,所述的一种基于语义分割技术的车道线检测系统中所述图像处理模块利用图像处理方法根据初步形成的车道线提取每一条车道线的中心线,包括:
利用形态学骨架提取方法提取每一条车道线的中心线:对初步形成的车道线图像进行二值化处理,对二值化处理后的车道线图像依次进行腐蚀和膨胀操作,获得骨架图。
本发明的有益之处是:
本发明提供一种基于语义分割技术的车道线检测方法,通过语义分割模型对图像有更加细致预测分类,逐像素分为背景、可行驶区域、车道线、马路边缘石四个类别,所产生的结果除划分可行驶区域外,还进一步结合聚类方法和图像处理方法精确提取车道线,可用于辅助构建高精地图或行车过程中的实时检测偏移预警,切实提升智能驾驶的可靠性与高效性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明中语义分割模型预测分类结果示意图。
图2是本发明中图像处理结果示意图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定。
本发明提供一种基于语义分割技术的车道线检测方法,构建语义分割模型,通过语义分割模型将RGB图像逐像素按照背景、可行驶区域、车道线或马路边缘石进行预测分类,
利用DBSCAN聚类方法将预测分类后车道线的区域聚类为独立的簇,初步形成车道线,
利用图像处理方法根据初步形成的车道线提取每一条车道线的中心线,完成车道线检测。
本发明方法中语义分割(Semantic Segmentation)模型可以对使用单目相机采集的RGB图像进行处理,给图像上目标类别中的每一个点打上对应的标签,使得不同种类的物体在图像上被区分开来,可以理解其为图像像素级别的分类任务。本发明方法面向智能驾驶行驶过程中获取的单目相机RGB图像,构建语义分割模型,对行驶过程中的前方可视范围逐像素分为背景、可行驶区域、车道线、马路边缘石四个类别,所产生的结果除划分可行驶区域外,还可进一步提取车道线。本发明方法对前述语义分割模型的结果进行处理,使用DBSCAN方法聚类获取车道线条数,并对每一条车道线处理提取中心线,使车道线识别更为精确。
具体应用中,在本发明方法的一些实施例中,预测分类前通过单目相机采集路况图像,并将路况图像转换为RGB图像。构建语义分割模型,将采集的RGB图像逐像素分为背景、可行驶区域、车道线、马路边缘石四个类别。
进一步,语义分割模型主要包含二维卷积(Convolution)和池化(Pooling),将ReLU函数作为激活函数,通过Softmax函数输出多分类的结果,其中二维卷积操作即对输入矩阵每个channel下的矩阵应用卷积核进行窗口滑动操作并做点积运算,每个channel结果值求和并加上偏置量作为卷积操作结果。池化操作将不仅可以降维、去除冗余信息、对特征进行压缩、简化网络复杂度、减小计算量、减小内存消耗,还可以扩大特征感知野,与此同时实现平移不变性、旋转不变性和尺度不变性。ReLU函数全称为RectifiedLinearUnit,即斜坡函数f(x)=max(0,x)简化了计算过程,并更加高效地进行梯度下降及反向传播。通过Softmax函数输出多分类的结果,可以将多分类的输出值转换为范围在[0,1]且和为1的概率分布,
通过语义分割模型预测分类后,可参考图1中下半部分显示,可用颜色表示各区域,蓝色表示可行驶区域,红色表示车道线,绿色马路边缘石,黑色表示背景。
语义分割模型的预测分类结果对每个像素点进行了分类,同时车道线可能连续分布于视野的多个区域,使用DBSCAN聚类方法可以有效地将每一条车道线区分开来。与划分和层次聚类方法不同,使用DBSCAN聚类方法将簇定义为密度相连的点的最大集合,能够把具有足够高密度的区域划分为簇,并可在噪声的空间数据库中发现任意形状的聚类,其伪代码描述如下:
输入:数据对象集合D,半径Eps,密度阈值MinPts
输出:聚类C
DBSCAN(D,Eps,MinPts)
Begin
init C=0;//初始化簇的个数为0
for each unvisited point p in D
mark p as visited;//将p标记为已访问
N=getNeighbours(p,Eps);
if sizeOf(N) mark p as Noise;//如果满足sizeOf(N) else C=next cluster;//建立新簇C ExpandCluster(p,N,C,Eps,MinPts); end if end for End 其中ExpandCluster算法伪码如下: ExpandCluster(p,N,C,Eps,MinPts) add p to cluster C;//首先将核心点加入C for each unvisited point p’in N mark p'as visited; N’=getNeighbours(p’,Eps);//对N邻域内的所有点在进行半径检查 if sizeOf(N’)>=MinPts then N=N+N’;//如果大于MinPts,就扩展N的数目 end if if p’is not member of any cluster add p’to cluster C;//将p'加入簇C end if end for End ExpandCluster 利用图像处理方法根据初步形成的车道线提取每一条车道线的中心线,完成车道线检测,其中利用形态学骨架提取方法提取每一条车道线的中心线:对初步形成的车道线图像进行二值化处理,对二值化处理后的车道线图像依次进行腐蚀和膨胀操作,并将腐蚀结果从膨胀结果中移除,而后对骨架图和移除结果做按位异或操作,循环上述操作,获得最终提取结果,代码可参考如下: cv::threshold(img,img,127,255,cv::THRESH_BINARY); cv::Matskel(img.size(),CV_8UC1,cv::Scalar(0)); cv::Mat temp; cv::Mat eroded; cv::Mat element= cv::getStructuringElement(cv::MORPH_CROSS,cv::Size(3, 3)); bool done; do { cv::erode(img,eroded,element); cv::dilate(eroded,temp,element);//temp=open(img) cv::subtract(img,temp,temp); cv::bitwise_or(skel,temp,skel); eroded.copyTo(img); done=(cv::countNonZero(img)==0); }while(!done); 参考图2中效果。 本发明还提供一种基于语义分割技术的车道线检测系统,包括预测分类模块、聚类模块和图像处理模块, 预测分类模块构建语义分割模型,通过语义分割模型将RGB图像逐像素按照背景、可行驶区域、车道线或马路边缘石进行预测分类, 聚类模块利用DBSCAN聚类方法将预测分类后车道线的区域聚类为独立的簇,初步形成车道线, 图像处理模块利用图像处理方法根据初步形成的车道线提取每一条车道线的中心线,完成车道线检测。 上述系统内的各模块间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。 同样地本发明系统通过语义分割模型对图像有更加细致预测分类,逐像素分为背景、可行驶区域、车道线、马路边缘石四个类别,所产生的结果除划分可行驶区域外,还进一步结合聚类方法和图像处理方法精确提取车道线,可用于辅助构建高精地图或行车过程中的实时检测偏移预警,切实提升智能驾驶的可靠性与高效性。 需要说明的是,上述各流程和各系统结构中不是所有的步骤和模块都是必须的,可以根据实际的需要忽略某些步骤或模块。各步骤的执行顺序不是固定的,可以根据需要进行调整。上述各实施例中描述的系统结构可以是物理结构,也可以是逻辑结构,即,有些模块可能由同一物理实体实现,或者,有些模块可能分由多个物理实体实现,或者,可以由多个独立设备中的某些部件共同实现。 以上所述实施例仅是为充分说明本发明而所举的较佳的实施例,本发明的保护范围不限于此。本技术领域的技术人员在本发明基础上所作的等同替代或变换,均在本发明的保护范围之内。本发明的保护范围以权利要求书为准。