CN113822218A - 车道线检测方法及计算机可读存储介质 - Google Patents
车道线检测方法及计算机可读存储介质 Download PDFInfo
- Publication number
- CN113822218A CN113822218A CN202111163616.7A CN202111163616A CN113822218A CN 113822218 A CN113822218 A CN 113822218A CN 202111163616 A CN202111163616 A CN 202111163616A CN 113822218 A CN113822218 A CN 113822218A
- Authority
- CN
- China
- Prior art keywords
- lane
- segment
- diagonal
- line
- merged
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 103
- 238000000034 method Methods 0.000 claims abstract description 33
- 238000003062 neural network model Methods 0.000 claims abstract description 16
- 238000001914 filtration Methods 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 5
- 238000012163 sequencing technique Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 8
- 230000014509 gene expression Effects 0.000 description 5
- 238000013528 artificial neural network Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000013135 deep learning Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000004927 fusion Effects 0.000 description 2
- 238000002372 labelling Methods 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2413—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
- G06F18/24133—Distances to prototypes
- G06F18/24137—Distances to cluster centroïds
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/25—Fusion techniques
- G06F18/254—Fusion techniques of classification results, e.g. of results related to same input data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/77—Determining position or orientation of objects or cameras using statistical methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30232—Surveillance
Landscapes
- Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Biology (AREA)
- General Physics & Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- Probability & Statistics with Applications (AREA)
- Image Analysis (AREA)
Abstract
本发明公开了一种车道线检测方法及计算机可读存储介质,方法包括:通过神经网络模型对图片进行识别,得到候选检测区域;根据所述候选检测区域的左对角线或右对角线,得到车道线段;对满足预设的合并条件的车道线段进行合并,得到合并线段;对所述合并线段进行聚类,得到m个分类,所述m为预设的推荐车道线数;分别根据所述m个分类中各合并线段的端点,拟合得到m条推荐车道线。本发明可实现对存在目标占比小、破损程度高、遮挡严重等问题的车道线的检测。
Description
技术领域
本发明涉及图像处理技术领域,尤其涉及一种车道线检测方法及计算机可读存储介质。
背景技术
目前对于车道线的检测,主要针对道路行驶中的车道线,用于安全预警、自动驾驶等目的。在这些方案中,车道线在图像中目标较大且相对完整。
但对于一些特定场景中,例如在物流园场景中,由于监控摄像头一般设置在高处且景深很远,且园区中往往存在较多的车辆,因此存在车道线目标占比小、破损程度高以及遮挡严重等问题,加大了车道线检测的难度。
在公开号为CN111144330A的中国专利中,公开了一种基于深度学习的车道线检测方法,包括:将带车道线标签的正视图图像作为训练集输入至初始车道线检测网络中,提取多个正视图特征信息;将每个正视图特征信息分别与对每个正视图特征信息进行射影变换后得到的俯视图特征信息进行合并,得到融合特征信息;根据融合特征信息获取正视图图像的车道线预测信息,利用损失函数计算车道线预测信息与车道线标签的误差;采用反向传播算法优化网络参数直至误差达到期望值,得到目标车道线检测神经网络;将待检测正视图图像输入至目标车道线检测神经网络,输出车道线信息。但在类似物流园的复杂场景中,若完全依靠深度学习的目标检测,鉴于车道线的破损重、遮挡多的问题,目标的特征各异,网络学习目标的难度很高。另外,物流园中的车道线不仅目标小,且其水平与垂直的跨度很大,标注时矩形区域将包含大量非车道线信息,增大了有效特征的提取难度。
在公开号为CN109034047B的中国专利中,公开了一种车道线检测方法及装置。该方法包括:在待检测图像中确定感兴趣区域;在感兴趣区域中图区各车道线像素特征;将相似的所述车道线像素特征进行合并处理,生成与合并的所述车道线像素特征对应的超像素;对各所述超像素进行聚类拟合处理,获得目标车道线。但该方案中,对于超像素特征点搜索,在车道线存在大量破损的情况下,会出现无法找到相似特征的情况,从而导致漏检情况的发生。
发明内容
本发明所要解决的技术问题是:提供一种车道线检测方法及计算机可读存储介质,可实现对存在目标占比小、破损程度高、遮挡严重等问题的车道线的检测。
为了解决上述技术问题,本发明采用的技术方案为:一种车道线检测方法,包括:
通过神经网络模型对图片进行识别,得到候选检测区域;
根据所述候选检测区域的左对角线或右对角线,得到车道线段;
对满足预设的合并条件的车道线段进行合并,得到合并线段;
对所述合并线段进行聚类,得到m个分类,所述m为预设的推荐车道线数;
分别根据所述m个分类中各合并线段的端点,拟合得到m条推荐车道线。
本发明还提出一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如上所述的方法的步骤。
本发明的有益效果在于:先通过神经网络模型进行识别,可尽量避免漏检,再通过统计左右对角线附近扩充范围的颜色通道值,以判断候选检测区域中车道线的方向,在保持了神经网络模型的鲁棒性的同时实现了车道线方向的判断,且可保证判断准确率;通过在聚类之前先对可以合并的车道线段进行合并,以提高后续聚类准确度;通过进行聚类,以得到对应各条车道线的分类;通过对各分类中的各合并线段的端点坐标进行拟合,即可得到车道线。本发明可实现对存在目标占比小、破损程度高、遮挡严重等问题的车道线的检测,解决了高难度场景的车道线检测问题,且可减少漏检率,保证检测准确率。
附图说明
图1为本发明的一种车道线检测方法的流程图;
图2为本发明实施例一的方法流程图;
图3为本发明实施例一的候选检测区域示意图;
图4为本发明实施例一的候选检测区域中两种对角线的示意图;
图5为本发明实施例一的候选检测区域中(右对角线)的扩充范围示意图;
图6为本发明实施例一的车道线段的示意图;
图7为本发明实施例一的合并线段的示意图;
图8为本发明实施例一的合并线段延长线的示意图;
图9为本发明实施例一的聚类结果示意图;
图10为本发明实施例一的车道线检测结果示意图。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图详予说明。
请参阅图1,一种车道线检测方法,包括:
通过神经网络模型对图片进行识别,得到候选检测区域;
根据所述候选检测区域的左对角线或右对角线,得到车道线段;
对满足预设的合并条件的车道线段进行合并,得到合并线段;
对所述合并线段进行聚类,得到m个分类,所述m为预设的推荐车道线数;
分别根据所述m个分类中各合并线段的端点,拟合得到m条推荐车道线。
从上述描述可知,本发明的有益效果在于:可解决高难度场景的车道线检测问题,且可减少漏检率,保证检测准确率。
进一步地,所述根据所述候选检测区域的左对角线或右对角线,得到车道线段,包括:
获取一候选检测区域的一对角线;
根据所述一候选检测区域的宽度以及预设的比例,计算扩充值;
根据所述一对角线以及所述扩充值,确定扩充范围边界线,并根据所述扩充范围边界线,在所述一候选检测区域中确定所述一对角线的扩充范围;
获取所述扩充范围内与所述扩充范围边界线平行的各线段,得到平行线段;
分别根据各平行线段上各像素点的像素数据,计算各像素点的亮度,并分别根据各平行线段上各像素点的亮度,计算各平行线段的亮度之和;
获取所述各平行线段的亮度之和的最大值,得到所述一对角线对应的第一亮度值;
根据所述扩充范围内各像素点的亮度,计算所述扩充范围的亮度之和,并将所述亮度之和除以所述扩充范围内的平行线段总数,得到所述一对角线对应的第二亮度值;
将所述一候选检测区域的两条对角线对应的第一亮度值和第二亮度值进行比对,若一对角线对应的第一亮度值大于另一对角线对应的第一亮度值且所述一对角线对应的第二亮度值大于所述另一对角线对应的第二亮度值,则将所述一对角线作为车道线段;
若一对角线对应的第一亮度值大于另一对角线对应的第一亮度值且所述一对角线对应的第二亮度值小于或等于所述另一对角线对应的第二亮度值,或一对角线对应的第一亮度值小于或等于另一对角线对应的第一亮度值且所述一对角线对应的第二亮度值大于所述另一对角线对应的第二亮度值,则计算所述一对角线的第一亮度值和第二亮度值之和,同时计算所述另一对角线的第一亮度值和第二亮度值之和;
将第一亮度值和第二亮度值之和较大的对角线作为车道线段。
由上述描述可知,由于车道线多为白色,因此,在候选检测区域中,其中一条对角线的周围区域内偏白色的像素点居多,而当像素点偏白色时,其RGB值较大,因此,基于该特征实现车道线左右朝向的判断。
进一步地,所述根据所述候选检测区域的左对角线或右对角线,得到车道线段,还包括:
分别根据所述一对角线的扩充范围内的各平行线段上各像素点的明度,计算各平行线段的明度之和,并获取所述各平行线段的明度之和的最大值,得到所述一对角线对应的第一明度值;
根据所述一对角线的扩充范围内各像素点的明度,计算所述扩充范围的明度之和,并将所述明度之和除以所述扩充范围内的平行线段总数,得到所述一对角线对应的第二明度值;
若所述一候选检测区域的两条对角线对应的第一亮度值相等且第二亮度值相等,或两条对角线的第一亮度值和第二亮度值之和相等,则将所述一候选检测区域的两条对角线对应的第一明度值和第二明度值进行比对;
若一对角线对应的第一明度值大于另一对角线对应的第一明度值且所述一对角线对应的第二明度值大于所述另一对角线对应的第二明度值,则将所述一对角线作为车道线段;
若一对角线对应的第一明度值大于另一对角线对应的第一明度值且所述一对角线对应的第二明度值小于或等于所述另一对角线对应的第二明度值,或一对角线对应的第一明度值小于或等于另一对角线对应的第一明度值且所述一对角线对应的第二明度值大于所述另一对角线对应的第二明度值,则计算所述一对角线的第一明度值和第二明度值之和,同时计算所述另一对角线的第一明度值和第二明度值之和;
将第一明度值和第二明度值之和较大的对角线作为车道线段。
由上述描述可知,当根据亮度值无法判断出车道线朝向时,则进一步根据明度进行判断,提高方法的可靠性。
进一步地,所述根据所述候选检测区域的左对角线或右对角线,得到车道线段之后,进一步包括:
分别计算各车道线段的长度;
若一车道线段的长度小于或等于预设的长度阈值,则过滤所述一车道线段。
由上述描述可知,通过过滤长度较短的车道线段,可滤除图片中被神经网络模型识别出但实质不是车道线的杂讯线,以提高后续合并以及聚类的准确性,从而提高车道线检测的准确性。
进一步地,所述对满足预设的合并条件的车道线段进行合并,得到合并线段具体为:
分别根据各车道线段的斜率绝对值,计算各车道线段与X轴的夹角,其中,X轴方向为图片的宽度方向,Y轴方向为图片的高度方向;
若一车道线段与X轴的夹角大于或等于45°,则将所述一车道线段加入第一集合,否则将所述一车道线段加入第二集合;
将所述第一集合中满足预设的合并条件的车道线段进行合并,得到第一合并线段,同时将所述第二集合中满足预设的合并条件的车道线段进行合并,得到第二合并线段。
由上述描述可知,先根据各车道线段与X轴的夹角,对各车道线段进行划分,再根据划分后的车道线段进行合并,可提高后续聚类的准确性,从而提高车道线检测的准确性。
进一步地,所述将所述第一集合中满足预设的合并条件的车道线段进行合并,得到第一合并线段具体为:
遍历所述第一集合,依次从所述第一集合中获取一车道线段,作为当前车道线段;
遍历所述第一集合中当前车道线段之后的各车道线段,依次从所述当前车道线段之后的各车道线段中获取一车道线段,作为待判车道线段;
计算当前车道线段与所述待判车道线段的距离差和角度差;
若所述距离差小于预设的距离差阈值且所述角度差小于预设的角度差阈值,则将所述待判车道线段作为当前车道线段的待合并车道线段;
当遍历完所述第一集合中当前车道线段之后的各车道线段后,判断当前车道线段及其待合并车道线段中是否存在已加入一第一分组的车道线段;
若存在,则将当前车道线段及其待合并车道线段中的其他车道线段加入至所述一第一分组中;
若不存在,则创建新的第一分组,并将当前车道线段及其待合并车道线段加入至新的第一分组中;
当遍历完所述第一集合后,分别对各第一分组中各车道线段的端点坐标的y值进行排序,并将y值最小的端点和y值最大的端点进行连线,得到各第一分组的第一合并线段。
进一步地,所述将所述第一集合中满足预设的合并条件的车道线段进行合并,得到第一合并线段具体为:
遍历所述第一集合,依次从所述第一集合中获取一车道线段,作为当前车道线段;
判断所述当前车道线段是否为所述第一集合中的第一条车道线段;
若是,则创建第一分组,并将当前车道线段加入所述第一分组中,继续执行所述遍历所述第一集合,依次从所述第一集合中获取一车道线段,作为当前车道线段的步骤;
若否,则依次从各第一分组中获取一车道线段作为待判车道线段,并计算当前车道线段与所述待判车道线段的距离差和角度差;
判断所述距离差是否小于预设的距离差阈值且所述角度差是否小于预设的角度差阈值;
若是,则将当前车道线段加入所述待判车道线段所在的第一分组;
若否,则创建新的第一分组,并将所述待判车道线段加入所述新的第一分组中;
当遍历完所述第一集合后,若一车道线段同时存在于两个以上的第一分组中,则将所述两个以上的第一分组进行合并;
分别对各第一分组中各车道线段的端点坐标的y值进行排序,并将y值最小的端点和y值最大的端点进行连线,得到各第一分组的第一合并线段。
由上述描述可知,通过在聚类之前先对部分车道线段进行合并,以提高聚类准确度。
进一步地,所述计算当前车道线段与所述待判车道线段的距离差和角度差具体为:
计算当前车道线段的一端点与所述待判车道线段的距离,得到第一距离;
计算当前车道线段的另一端点与所述待判车道线段的距离,得到第二距离;
计算所述待判车道线段的一端点与当前车道线段的距离,得到第三距离;
计算所述待判车道线段的另一端点与当前车道线段的距离,得到第四距离;
获取所述第一距离、第二距离、第三距离和第四距离中的最小值,得到距离差;
根据当前车道线段与X轴的夹角以及所述待判车道线段与X轴的夹角,计算角度差。
进一步地,所述对所述合并线段进行聚类,得到m个分类具体为:
分别获取各第一合并线段的延长线与图片底部边界的交点的x值,得到各第一合并线段对应的交点x值;
根据所述交点x值,将各第一合并线段从小到大进行排序,得到第一合并线段集合;
计算相邻两条第一合并线段的交点x值差值;
根据最大的m1-1个所述交点x值差值对应的第一合并线段,在所述第一合并线段集合中确定m1-1个断点,并根据所述m1-1个断点,对所述第一合并线段集合进行切分,得到m1个分类,所述m1为预设的第一推荐车道线数;
分别获取各第二合并线段的延长线与图片左侧边界的交点的y值,得到各第二合并线段对应的交点y值;
根据所述交点y值,将各第二合并线段从小到大进行排序,得到第二合并线段集合;
计算相邻两条第二合并线段的交点y值差值;
根据最大的m2-1个所述交点y值差值对应的第二合并线段,在所述第二合并线段集合中确定m2-1个断点,并根据所述m2-1个断点,对所述第二合并线段集合进行切分,得到m2个分类,所述m2为预设的第二推荐车道线数;
其中,m1+m2=m。
由上述描述可知,通过进行聚类,以得到对应各条车道线的分类。
进一步地,所述对所述合并线段进行聚类,得到m个分类具体为:
根据各合并线段的斜率以及预设的斜率阈值,对各合并线段进行分类,得到第一分类;
根据各合并线段的偏置以及预设的偏置阈值,分别对各第一分类中的各合并线段进行分类,得到各第一分类对应的第二分类;
根据各合并线段的中心点的x值或y值,分别对各第二分类中的各合并线段进行分类,得到各第二分类对应的第三分类;
分别计算各第三分类中各合并线段的长度之和,得到各第三分类的长度和,并获取长度和最大的前m个第三分类,作为聚类结果。
由上述描述可知,依次根据斜率、偏置和中心点位置,对合并线段进行分类,可以保证分类准确度。当图片中的车道线更多地靠近Y轴或X轴时,该聚类方法可以达到更好的聚类效果。
进一步地,所述根据各合并线段的斜率以及预设的斜率阈值,对各合并线段进行分类,得到第一分类具体为:
根据合并线段的斜率,将各合并线段从小到大进行排序,得到斜率集合,并将各合并线段的第一类标签均设为1;
遍历所述斜率集合,依次获取一合并线段作为当前合并线段;
若当前合并线段与其前一个合并线段的斜率差值大于预设的斜率阈值,则令当前合并线段及其后的合并线段的第一类标签加一;
当遍历完所述斜率集合后,根据第一类标签,对各合并线段进行分类,得到至少一个的第一分类。
进一步地,所述根据各合并线段的偏置以及预设的偏置阈值,分别对各第一分类中的各合并线段进行分类,得到各第一分类对应的第二分类具体为:
根据合并线段的偏置,将一第一分类中的各合并线段从小到大进行排序,得到偏置集合,并将所述一第一分类中的各合并线段的第二类标签均设为1;
遍历所述偏置集合,依次获取一合并线段作为当前合并线段;
若当前合并线段与其前一个合并线段的偏置差值大于预设的偏置阈值,则令当前合并线段及其后的合并线段的第二类标签加一;
当遍历完所述偏置集合后,根据第二类标签,对所述一第一分类中的各合并线段进行归类,得到所述一第一分类对应的至少一个的第二分类。
进一步地,所述根据各合并线段的中心点的x值或y值,分别对各第二分类中的各合并线段进行分类,得到各第二分类对应的第三分类具体为:
根据各合并线段的中心点的x值或y值,将一第二分类中的各合并线段从小到大进行排序,得到位置集合,并将所述一第二分类中的各合并线段的第三类标签均设为1;
遍历所述位置集合,依次获取一合并线段作为当前合并线段;
若当前合并线段与其前一个合并线段的中心点x值差值或中心点y值差值大于预设的位置阈值,则令当前合并线段及其后的合并线段的第三类标签加一;
当遍历完所述位置集合后,根据第三类标签,对所述一第二分类中的各合并线段进行归类,得到所述一第二分类对应的至少一个的第三分类。
本发明还提出一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如上所述的方法的步骤。
实施例一
请参照图2-10,本发明的实施例一为:一种车道线检测方法,可应用于物流园等场景。如图2所示,包括如下步骤:
S1:通过神经网络模型对图片进行识别,得到候选检测区域,如图3所示。
具体地,从应用场景的视频流中,截取代表性的不同车道线,用于制作数据集,并对数据集进行整理、标注与清洗等处理。将数据集与标注得到的标注文件进行格式转换与部署,微调RetinaNet结构与参数,利用Tensorflow Obeject Detection API进行车道线检测模型的生成,再利用模型预测产生候选检测区域。
其中,在获取数据集时或在进行标注时,尽量获取较清晰的车道线,并让车道线位于对角线的位置,以保证通过神经网络识别得到的候选检测区域中,车道线接近于对角,如图4所示,并降低整体识别车道线的难度。
S2:根据所述候选检测区域的左对角线或右对角线,得到车道线段。
即将每个候选检测区域的左对角线或右对角线作为车道线段。由于神经网络识别的目标经过数据增强即旋转、裁剪等增加鲁棒性的处理,以确保其查准率与查全率,若对左右车道线使用不同的标签,将大大降低模型的泛用性。因此,在得到候选检测区域后,再单独判断车道线的左右朝向。
本实施例的应用场景为物流园,而物流园中的车道线为白色,因此,在候选检测区域中,其中一条对角线的周围区域内偏白色的像素点居多,而当像素点偏白色时,其RGB值较大,V值(明度)也较大。本步骤即基于该特征,实现车道线左右朝向的判断。
具体地,本步骤包括如下步骤:
S201:获取一候选检测区域的一对角线;此时,根据该对角线在图片中的坐标,可得到该对角线的表达式,假设为y=kx+b。其中,以图片左上角为坐标原点,向右方向为X轴正方向,向下方向为Y轴正方向。
S202:根据所述一候选检测区域的宽度以及预设的比例,计算扩充值;即根据该候选检测区域在X轴上的最大值和最小值,得到该候选检测区域的宽度,然后将宽度乘以预设的比例,例如0.25,即可得到扩充值margin。
S203:根据所述一对角线以及所述扩充值,确定扩充范围边界线,并根据所述扩充范围边界线,在所述一候选检测区域中确定所述一对角线的扩充范围。
例如,假设该对角线的表达式为y=kx+b,则两条扩充范围边界线的表达式分别为y1=kx+b1=k(x-margin)+b=kx+b-k*margin,y2=kx+b2=k(x+margin)+b=kx+b+k*margin,即b1=b-k*margin、b2=b+k*margin。
获取到两条扩充范围边界线的表达式后,以其为边界线,在候选检测区域中确定扩充范围,如图5所示,图中对角线两侧的线即为两条扩充范围边界线,这两条扩充范围边界线之间的区域即为扩充范围。
S204:获取所述扩充范围内与所述扩充范围边界线平行的各线段,得到平行线段。
具体地,假设平行线段的表达式为y=kx+b0,则依次令b0为[b-k*margin,b+k*margin]中的整数,即可依次获取到各平行线段。
S205:分别根据各平行线段上各像素点的像素数据,计算各像素点的亮度,并分别根据各平行线段上各像素点的亮度,计算各平行线段的亮度之和;
本实施例中,像素点的亮度的计算公式为lu=0.299*R+0.587*G+0.114*B,其中,R、G、B分别为同一像素点的RGB值。
先计算一平行线段上各像素点的亮度,然后进行相加,即可得到所述一平行线段的亮度之和。对每条平行线段都进行上述操作,即可得到各平行线段的亮度之和。
S206:获取所述各平行线段的亮度之和的最大值,得到所述一对角线对应的第一亮度值lu11。
S207:根据所述扩充范围内各像素点的亮度,计算所述扩充范围的亮度之和,并将所述亮度之和除以所述扩充范围内的平行线段总数,得到所述一对角线对应的第二亮度值lu12;即将该扩充范围内的每个像素点的亮度进行相加,得到整个扩充范围的亮度之和。扩充范围内的平行线段总数即b0的取值个数,也即[b-k*margin,b+k*margin]中的整数个数。将整个扩充范围的亮度之和除以该扩充范围内的平行线段的数量,即可得到第二亮度值,该第二亮度值相当于各平行线段的亮度平均值。
对所述一候选检测区域的另一对角线也进行上述步骤S201-207,从而得到另一对角线对应的第一亮度值lu21和第二亮度值lu22。
S208:判断所述一候选检测区域的一对角线对应的第一亮度值是否大于另一对角线对应的第一亮度值且所述一对角线对应的第二亮度值是否大于所述另一对角线对应的第二亮度值,即lu11>lu21且lu12>lu22是否成立,若是,即一对角线对应的第一亮度值和第二亮度值分别大于另一对角线的第一亮度值和第二亮度值,则执行步骤S209,若否,则执行步骤S210。
S209:将所述一对角线作为车道线段。
S210:判断所述一候选检测区域的一对角线对应的第一亮度值是否大于另一对角线对应的第一亮度值且所述一对角线对应的第二亮度值是否小于或等于所述另一对角线对应的第二亮度值,或一对角线对应的第一亮度值是否小于或等于另一对角线对应的第一亮度值且所述一对角线对应的第二亮度值是否大于所述另一对角线对应的第二亮度值,即lu11>lu21且lu12≤lu22是否成立,或lu11≤lu21且lu12>lu22是否成立,也即其中一条对角线对应的两个亮度值是否其中一个亮度值大于另一条对角线中的该亮度值,且另一个亮度值不大于另一条对角线中的另一个亮度值,若是,则执行步骤S211,若否,则表示两条对角线的两个亮度值分别相等,即lu11=lu21且lu12=lu22,则执行步骤S215。
S211:计算所述一对角线的第一亮度值和第二亮度值之和,即lu11+lu12,同时计算所述另一对角线的第一亮度值和第二亮度值之和,即lu21+lu22。
S212:判断所述一对角线的第一亮度值和第二亮度值之和是否大于另一对角线的第一亮度值和第二亮度值之和,即lu11+lu12>lu21+lu22是否成立,若是,则执行步骤S209,若否,则执行步骤S213。
S213:判断所述一对角线的第一亮度值和第二亮度值之和是否小于另一对角线的第一亮度值和第二亮度值之和,即lu11+lu12<lu21+lu22是否成立,若是,则执行步骤S214,若否,则表示两条对角线的两个亮度值之和相等,即lu11+lu12=lu21+lu22,则根据明度V进行判断,即执行步骤S215。
在实际应用场景中,一般极少出现lu11=lu21且lu12=lu22,或lu11+lu12=lu21+lu22的情况,但为了提高可行性,因此进一步引入明度进行判断。
S214:将所述另一对角线作为车道线段。
S215:分别计算所述一候选检测区域的两条对角线对应的第一明度值和第二明度值。计算方法与上述计算亮度值的方法类似。
以计算其中一条对角线的第一明度值和第二明度值为例进行说明。具体地,先根据该对角线的扩充范围内的各平行线段上各像素点的明度,计算各平行线段的明度之和,然后获取各平行线段的明度之和的最大值,得到该对角线对应的第一明度值;接着将该对角线的扩充范围内各像素点的明度进行相加,计算整个扩充范围内各像素点的明度之和,并将所述明度之和除以所述扩充范围内的平行线段总数,得到该对角线对应的第二明度值。
其中,一条对角线对应的第一明度值和第二明度值分别用v11和v12表示,另一对角线对应的第一明度值和第二明度值分别用v21和v22表示。
S216:判断所述一候选检测区域的一对角线对应的第一明度值是否大于另一对角线对应的第一明度值且所述一对角线对应的第二明度值是否大于所述另一对角线对应的第二明度值,即v11>v21且v12>v22是否成立,若是,则执行步骤S209,若否,即v11>v21且v12≤v22,或v11≤v21且v12>v22,则执行步骤S217。
S217:计算所述一对角线的第一明度值和第二明度值之和,即v11+v12,同时计算所述另一对角线的第一明度值和第二明度值之和,即v21+v22。
S218:判断所述一对角线的第一明度值和第二明度值之和是否大于另一对角线的第一明度值和第二明度值之和,即v11+v12>v21+v22是否成立,若是,则执行步骤S209,若否,即v11+v12<v21+v22,则执行步骤S214。
由于一般不可能出现v11=v21且v12=v22,或v11+v12=v21+v22的情况,因此在上述步骤S216和S218中,忽略相等的情况。
进一步地,即使出现了上述亮度值相等,明度值也相等的情况,也可进一步根据其他参数进行判断,例如灰度值、H值(色调)、S值(饱和度)等。
最后获取到的车道线段如图6所示。
通过统计左右对角线附近扩充范围的颜色通道值,以判断候选检测区域中车道线的方向,在保持了神经网络模型的鲁棒性的同时实现了车道线方向的判断,且可保证判断准确率。
S3:根据所述车道线段的长度以及预设的长度阈值,过滤所述车道线段。
具体地,分别计算各车道线段的长度;由于各车道线段分别为各候选检测区域的对角线,因此可根据对角线两个端点的坐标,计算得到长度。若一车道线段的长度小于或等于预设的长度阈值,则过滤所述一车道线段。例如,若一车道线段的长度≤30,则删除该车道线段。
通过过滤长度较短的车道线段,可滤除图片中被神经网络模型识别出但实质不是车道线的杂讯线,以提高后续合并以及聚类的准确性,从而提高车道线检测的准确性。
S4:对满足预设的合并条件的过滤后的车道线段进行合并,得到合并线段,如图7所示。
由于获得的车道线段中,有些车道线段在图片中更靠近Y轴,即与X轴的夹角为45°至90°,有些车道线段在图片中更靠近X轴,即与X轴的夹角为0°至45°,因此,本实施例中,会先对过滤后的车道线段按照与X轴的夹角进行划分。具体地,包括如下步骤:
S401:分别根据各车道线段的斜率绝对值,计算各车道线段与X轴的夹角。
即θ=arctan(|ymax-ymin|/|xmax-xmin|),其中,(xmin,ymin)和(xmax,ymax)分别为一车道线段的两个端点的坐标值。
S402:将与X轴夹角θ处于[45°,90°)的车道线段加入第一集合lines_y中,将与X轴夹角θ处于(0°,45°)的车道线段加入第二集合lines_x中。
S403:将所述第一集合中满足预设的合并条件的车道线段进行合并,得到第一合并线段。步骤S403和S404可同时执行。
其中,预设的合并条件为,若两条车道线段的距离差小于预设的距离差阈值且角度差小于预设的角度差阈值,则认为这两条车道线段可以合并
本实施例中,对于车道线段的合并有两种实现方法,两种实现方法的具体过程如下所述。
第一种合并方法包括如下步骤:
S4001:遍历所述第一集合,依次从所述第一集合中获取一车道线段,作为当前车道线段;即获取第一集合中第i个车道线段,作为当前车道线段,i的初始值为1。
S4002:遍历所述第一集合中当前车道线段之后的各车道线段,依次从所述当前车道线段之后的各车道线段中获取一车道线段,作为待判车道线段;即获取第一集合中第i+j个车道线段,作为待判车道线段,j的初始值为1。
S4003:计算当前车道线段与所述待判车道线段的距离差和角度差。
对于距离差,即分别计算两条车道线段的两个端点与另一条车道线段的距离,此时可以得到四个距离,取这四个距离中的最小值作为距离差。
具体地,计算当前车道线段的一端点与待判车道线段的距离,得到第一距离;计算当前车道线段的另一端点与待判车道线段的距离,得到第二距离;计算待判车道线段的一端点与当前车道线段的距离,得到第三距离;计算待判车道线段的另一端点与当前车道线段的距离,得到第四距离;获取所述第一距离、第二距离、第三距离和第四距离中的最小值,得到距离差。
其中,上述所计算的端点与线段的距离,计算的是线段中距离该端点最近的一点与该端点的距离。
对于角度差,根据当前车道线段与X轴的夹角以及待判车道线段与X轴的夹角,计算得到角度差。例如,当前车道线段与X轴的夹角为θ1,待判车道线段与X轴的夹角为θ2,则角度差Δθ=|θ1-θ2|。
S4004:判断所述距离差是否小于预设的距离差阈值且所述角度差是否小于预设的角度差阈值,若是,则执行步骤S4005,若否,即距离差不小于预设的距离差阈值,或角度差不小于预设的角度差阈值,则执行步骤S4006。
S4005:将所述待判车道线段作为当前车道线段的待合并车道线段。
S4006:判断是否遍历完第一集合中当前车道线段之后的各车道线段,即判断i+j=N1是否成立,N1为第一集合中车道线段的总数量,若是,则执行步骤S4008,若否,则执行步骤S4007。
S4007:继续遍历第一集合中当前车道线段之后的各车道线段,即令j=j+1,然后获取第一集合中第i+j个车道线段,作为待判车道线段,即返回执行步骤S4002。
S4008:判断当前车道线段及其待合并车道线段中是否存在已加入一第一分组的车道线段,若是,则执行步骤S4009,若否,则执行步骤S4010。
S4009:将当前车道线段及其待合并车道线段中的其他车道线段加入至所述一第一分组中;然后执行步骤S4011。
S4010:创建新的第一分组,并将当前车道线段及其待合并车道线段加入至新的第一分组中。
S4011:判断是否遍历完第一集合,即判断i=N1是否成立,若是,则执行步骤S4013,若否,则执行步骤S4012。
S4012:继续遍历第一集合,即令i=i+1,然后获取第一集合中第i个车道线段,作为当前车道线段,即返回执行步骤S4001。
例如,假设当前车道线段为第一集合中的第一条车道线段,遍历第二条车道线段至最后一条车道线段,发现第二条车道线段与当前车道线段满足合并条件,此时,由于当前车道线段和第二条车道线段均未加入到任一第一分组中,因此创建一个第一分组group1,并将当前车道线段和第二条车道线段加入到该第一分组group1中。
然后遍历到第二条车道线段,此时当前车道线段即为第二条车道线段,遍历第三条车道线段至最后一条车道线段,发现第四条车道线段和第九条车道线段分别与当前车道线段满足合并条件,由于当前车道线段已加入到group1中,因此将第四条车道线段和第九条车道线段也加入到group1中。
然后遍历到第三条车道线段,此时当前车道线段即为第三条车道线段,遍历第四条车道线段至最后一条车道线段,发现第四条车道线段和第六条车道线段分别与当前车道线段满足合并条件,由于第四条车道线段已加入到group1中,因此将当前车道线段(第三条车道线段)和第六条车道线段也加入到group1中。
然后遍历到第四条车道线段,此时当前车道线段即为第四条车道线段,遍历第五条车道线段至最后一条车道线段,发现与当前车道线段均不满足合并条件,则进行下一条车道线段的遍历。
然后遍历到第五条车道线段,此时当前车道线段即为第五条车道线段,遍历第六条车道线段至最后一条车道线段,发现第八条车道线段与当前车道线段满足合并条件,此时,由于当前车道线段和第八条车道线段均未加入到任一第一分组中,因此创建一个新的第一分组group2,并将当前车道线段和第八条车道线段加入到该新的第一分组group2中。
以此类推。
S4013:分别对各第一分组中各车道线段的端点坐标的y值进行排序,并将y值最小的端点和y值最大的端点进行连线,得到各第一分组的第一合并线段。
即对于每一个第一分组,取其中各车道线段的所有端点中的y值最小的端点和y值最大的端点,对这两个端点进行连线,即可得到该第一分组的第一合并线段。
第二种合并方法包括如下步骤:
S4101:遍历所述第一集合,依次从所述第一集合中获取一车道线段,作为当前车道线段;即获取第一集合中第i个车道线段,作为当前车道线段,i的初始值为1。
S4102:判断所述当前车道线段是否为所述第一集合中的第一条车道线段,即判断i=1是否成立,若是,则执行步骤S4103,若否,则执行步骤S4104。
S4103:创建一个第一分组,并将当前车道线段加入所述第一分组中,即将第一条车道线段加入到一个第一分组中;然后执行步骤S4111。
S4104:将当前各第一分组中的所有车道线段加入到待判集合。
S4105:依次从当前待判集合中获取一车道线段作为待判车道线段。
S4106:计算当前车道线段与所述待判车道线段的距离差和角度差。该步骤可参照上述步骤S4003。
S4107:判断所述距离差是否小于预设的距离差阈值且所述角度差是否小于预设的角度差阈值,若是,则执行步骤S4108,若否,即距离差不小于预设的距离差阈值,或角度差不小于预设的角度差阈值,则执行步骤S4109。
S4108:将当前车道线段加入所述待判车道线段所在的第一分组。
S4109:创建新的第一分组,并将所述待判车道线段加入所述新的第一分组中。
S4110:判断是否遍历完当前待判集合,若是,则执行步骤S4111,若否,则继续获取待判集合中的下一车道线段作为待判车道线段,即返回执行步骤S4105。
S4111:判断是否遍历完所述第一集合,即判断i=N1是否成立,若是,则执行步骤S4113,若否,则执行步骤S4112。
S4112:令i=i+1,返回执行S4101;即继续遍历第一集合,获取第一集合中下一个车道线段作为当前车道线段。
S4113:再次遍历所述第一集合,依次从所述第一集合中获取一车道线段,作为当前车道线段;即初始化i的值(令i=1),获取第一集合中第i个车道线段,作为当前车道线段。
S4114:判断当前车道线段是否同时存在于两个以上的第一分组中,若是,则执行步骤S4115,若否,则执行步骤S4116。
S4115:将所述两个以上的第一分组进行合并,即将当前车道线段所在的各第一分组进行合并。
S4116:判断是否遍历完所述第一集合,即判断i=N1是否成立,若是,则执行步骤S4118,若否,则执行步骤S4117。
S4117:令i=i+1,获取第一集合中第i个车道线段,作为当前车道线段,然后执行步骤S4114。
S4118:分别对各第一分组中各车道线段的端点坐标的y值进行排序,并将y值最小的端点和y值最大的端点进行连线,得到各第一分组的第一合并线段。该步骤可参照上述步骤S4013。
例如,进行第一次遍历时,假设当前车道线段为第一集合中的第一条车道线段,则将当前车道线段加入第一分组group1中。
然后遍历到第二条车道线段,即当前车道线段即为第二条车道线段,此时,当前仅存在group1,且group1中只包含第一条车道线段,则将第一条车道线段加入到待判集合中。遍历完待判集合后,发现第一条车道线段与当前车道线段满足合并条件,因此将当前车道线段(第二条车道线段)加入到第一分组group1中。
然后遍历到第三条车道线段,即当前车道线段即为第三条车道线段,此时,得到的待判集合中包括第一条车道线段和第二条车道线段。遍历完待判集合后,发现第一条车道线段和第二条车道线段与当前车道线段均不满足合并条件,因此,创建一个新的第一分组group2,并将当前车道线段(第三条车道线段)加入到该新的第一分组group2中。
然后遍历到第四条车道线段,即当前车道线段即为第四条车道线段,此时,存在第一分组group1和group2,将group1和group2中的所有车道线段都加入到待判集合,得到的待判集合中包括第一条车道线段、第二条车道线段和第三条车道线段。遍历完待判集合后,发现第二条车道线段和第三条车道线段分别与当前车道线段满足合并条件,因此,将当前车道线段(第四条车道线段)加入到第二条车道线段所在的第一分组group1中,同时加入到第三条车道线段所在的第一分组group2中。
以此类推,完成第一次遍历。
然后进行第二次遍历,当遍历到第四条车道线段时,发现其同时存在于group1和group2中,因此将group1和group2进行合并,得到新的第一分组。进一步地,对合并后的第一分组进行去重处理。
S404:将所述第二集合中满足预设的合并条件的车道线段进行合并,得到第二合并线段。该步骤的实现方法与步骤S403类似,只需将上述步骤S4001-S4013以及S4101-S4118中的第一集合修改为第二集合,第一分组修改为第二分组,将步骤S4006、S4011、S4111和S4116中的N1修改为N2,N2为第二集合中车道线段的总数量,将步骤S4013和S4118中的y值修改为x值。即第二合并线段是由各第二分组中各车道线段的所有端点中的x值最小的端点和x值最大的端点连线得到。
通过步骤S3的过滤,可以过滤一些明显的错误检测区域。但一些没有过滤的密集的候选检测区域,将对后续的聚类产生严重影响。例如,有些候选检测区域在同一个目标上叠加,会影响后续(实施例二中所述的)聚类方法的长度判断;又例如,有些候选检测区域的对角线与车道线偏差较大,会影响后续聚类方法的交点位置。因此,通过在聚类之前先对部分车道线段进行合并,以提高聚类准确度。
S5:对所述合并线段进行聚类,得到m个分类,所述m为预设的推荐车道线数。
本实施例中,预设第一合并线段对应的推荐车道线数m1和第二合并线段对应的推荐车道线数m2,其中,m1+m2=m。然后对第一合并线段进行聚类,得到m1个分类,对第二合并线段进行聚类,得到m2个分类。
其中,对第一合并线段进行分类,得到m1个分类,具体包括如下步骤:
S501:分别获取各第一合并线段的延长线与图片底部边界的交点的x值,得到各第一合并线段对应的交点x值;即先分别做各第一合并线段的延长线,如图8所示,根据第一合并线段上的点的坐标,即可得到延长线的直线公式,根据该公式以及图片底部边界的直线公式(即y=h,h为图片的高度),即可求得交点,获取该交点的x值。
S502:根据所述交点x值,将各第一合并线段从小到大进行排序,得到第一合并线段集合。
S503:计算相邻两条第一合并线段的交点x值差值;即对于第一合并线段集合中任意一对相邻的两条第一合并线段,将其中排序靠后的第一合并线段的交点x值减去排序靠前的第一合并线段的交点x值,得到这两条第一合并线段的交点x值差值。
S504:根据最大的m1-1个所述交点x值差值对应的第一合并线段,在所述第一合并线段集合中确定m1-1个断点,并根据所述m1-1个断点,对所述第一合并线段集合进行切分,得到m1个分类。
例如,假设第一合并线段集合为{L1,L2,L3,L4},m1=3,Δx1为L1和L2的交点x值差值,Δx2为L2和L3的交点x值差值,Δx3为L3和L4的交点x值差值,Δx1>Δx3>Δx2,此时,获取最大的2个交点x值差值,即Δx1和Δx3,则对应的2个断点分别位于L1和L2之间以及L3和L4之间,最后得到的3个分类分别为{L1}、{L2,L3}和{L4}。
同理,对第二合并线段进行分类,得到m2个分类,具体包括如下步骤:
S511:分别获取各第二合并线段的延长线与图片左侧边界的交点的y值,得到各第二合并线段对应的交点y值;
S512:根据所述交点y值,将各第二合并线段从小到大进行排序,得到第二合并线段集合;
S513:计算相邻两条第二合并线段的交点y值差值;
S514:根据最大的m2-1个所述交点y值差值对应的第二合并线段,在所述第二合并线段集合中确定m2-1个断点,并根据所述m2-1个断点,对所述第二合并线段集合进行切分,得到m2个分类。
最后的聚类结果如图9所示,图中对应同一数字的合并线段属于同一分类。
S6:分别根据所述m个分类中各合并线段的端点,拟合得到m条推荐车道线,如图10所示。其中,m条推荐车道线包括m1条第一推荐车道线和m2条第二推荐车道线。
具体地,对于上述得到第一合并线段对应的m1个分类,获取同一个分类中各第一合并线段的所有端点的坐标,然后通过最小二乘法拟合,得到该分类对应的第一推荐车道线。m1个分类可拟合得到m1条第一推荐车道线。
同理,对于上述得到第二合并线段对应的m2个分类,获取同一个分类中各第二合并线段的所有端点的坐标,然后通过最小二乘法拟合,得到该分类对应的第二推荐车道线。m2个分类可拟合得到m2条第二推荐车道线。
本实施例可不完全依赖深度学习的目标检测,先通过神经网络模型进行识别,再通过统计左右对角线附近扩充范围的颜色通道值,以判断候选检测区域中车道线的方向,在保持了神经网络模型的鲁棒性的同时实现了车道线方向的判断,且可保证判断准确率;通过过滤长度较短的车道线段,可滤除图片中被神经网络模型识别出但实质不是车道线的杂讯线,以提高后续合并以及聚类的准确性,从而提高车道线检测的准确性;通过在聚类之前先对可以合并的车道线段进行合并,以提高后续聚类准确度;通过进行聚类,以得到对应各条车道线的分类;通过对各分类中的各合并线段的端点坐标进行拟合,即可得到车道线。
实施例二
本实施例是实施例一中步骤S5的另一种实现方法,具体地,包括如下步骤:
S521:根据各合并线段的斜率以及预设的斜率阈值,对各合并线段进行分类,得到第一分类;其中,所述合并线段为第一合并线段或第二合并线段。
具体地,本步骤包括如下步骤:
S5211:根据合并线段的斜率,将各合并线段从小到大进行排序,得到斜率集合,并将各合并线段的第一类标签均设为1;
S5212:遍历所述斜率集合,依次获取一合并线段作为当前合并线段;进一步地,可从斜率集合中的第二条合并线段开始遍历。
S5213:判断当前合并线段与其前一个合并线段的斜率差值是否大于预设的斜率阈值,若是,则执行步骤S5214,若否,则继续遍历斜率集合,获取下一合并线段作为当前合并线段,即执行步骤S5212。
S5214:令当前合并线段及其后的合并线段的第一类标签加一;
S5215:当遍历完所述斜率集合后,根据第一类标签,对各合并线段进行分类,得到至少一个的第一分类。
例如,假设斜率集合为{L1,L2,L3,L4,L5},遍历前,这五条合并线段的第一类标签均为1。遍历过程中,发现L2和L3的斜率差值大于预设的斜率阈值,则将L3、L4和L5的第一类标签加一;继续遍历发现L4和L5的斜率差值也大于预设的斜率阈值,则将L5的第一类标签再加一。遍历结束后,L1和L2的第一类标签为1,L3和L4的第一类标签为2,L5的第一类标签为3。将第一类标签相同的合并线段划分为同一类,最后得到3个第一分类,分别为{L1,L2}、{L3,L4}和{L5}。
S522:根据各合并线段的偏置以及预设的偏置阈值,分别对各第一分类中的各合并线段进行分类,得到各第一分类对应的第二分类;其中,偏置即合并线段直线公式y=kx+b中的b值。
本步骤即对每个第一分类再进行分类,得到第二分类。具体地,对于每个第一分类都执行如下步骤:
S5221:根据合并线段的偏置,将一第一分类中的各合并线段从小到大进行排序,得到偏置集合,并将所述一第一分类中的各合并线段的第二类标签均设为1。
S5222:遍历所述偏置集合,依次获取一合并线段作为当前合并线段;进一步地,可从偏置集合中的第二条合并线段开始遍历。
S5223:判断当前合并线段与其前一个合并线段的偏置差值是否大于预设的偏置阈值,若是,则执行步骤S5224,若否,则继续遍历偏置集合,获取下一合并线段作为当前合并线段,即执行步骤S5222。
S5224:令当前合并线段及其后的合并线段的第二类标签加一.
S5225:当遍历完所述偏置集合后,根据第二类标签,对所述一第一分类中的各合并线段进行归类,得到所述一第一分类对应的至少一个的第二分类。该步骤与上述S5215类似。
S523:根据各合并线段的中心点的x值或y值,分别对各第二分类中的各合并线段进行分类,得到各第二分类对应的第三分类。其中,当合并线段为第一合并线段时,则根据中心点的x值进行排序,当合并线段为第二合并线段是,则根据中心点的y值进行排序。
本步骤即对每个第二分类再进行分类,得到第三分类。具体地,对于每个第二分类都执行如下步骤:
S5231:根据各合并线段的中心点的x值或y值,将一第二分类中的各合并线段从小到大进行排序,得到位置集合,并将所述一第二分类中的各合并线段的第三类标签均设为1。
S5232:遍历所述位置集合,依次获取一合并线段作为当前合并线段;进一步地,可从位置集合中的第二条合并线段开始遍历。
S5233:判断当前合并线段与其前一个合并线段的中心点x值差值或中心点y值差值是否大于预设的位置阈值,若是,则执行步骤S5234,若否,则继续遍历位置集合,获取下一合并线段作为当前合并线段,即执行步骤S5232。
S5234:令当前合并线段及其后的合并线段的第三类标签加一。
S5235:当遍历完所述位置集合后,根据第三类标签,对所述一第二分类中的各合并线段进行归类,得到所述一第二分类对应的至少一个的第三分类。该步骤与上述S5215类似。
S524:分别计算各第三分类中各合并线段的长度之和,得到各第三分类的长度和,并获取长度和最大的前m个第三分类,作为聚类结果。
即将同一个第三分类中的各合并线段的长度进行相加,得到该第三分类的长度和,然后比对所有第三分类的长度和,最后获取长度和最大的前m个第三分类。
本实施例依次根据斜率、偏置和中心点位置,对合并线段进行分类,可以保证分类准确度。若先根据偏置进行分类,则可能导致原本属于同一车道线的不同合并线段被分到不同的类中;若先根据中心点位置进行分类,则可能导致图片中远处距离相近的两条车道线的部分线段被分到同一类中。
当图片中的车道线更多地靠近Y轴或X轴时,本实施例的方法可以达到更好的聚类效果。
实施例三
本实施例是对应上述实施例的一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的车道线检测方法实施例中的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
综上所述,本发明提供的一种车道线检测方法及计算机可读存储介质,先通过神经网络模型进行识别,再通过统计左右对角线附近扩充范围的颜色通道值,以判断候选检测区域中车道线的方向,在保持了神经网络模型的鲁棒性的同时实现了车道线方向的判断,且可保证判断准确率;通过过滤长度较短的车道线段,可滤除图片中被神经网络模型识别出但实质不是车道线的杂讯线,以提高后续合并以及聚类的准确性,从而提高车道线检测的准确性;通过在聚类之前先对可以合并的车道线段进行合并,以提高后续聚类准确度;通过进行聚类,以得到对应各条车道线的分类;通过对各分类中的各合并线段的端点坐标进行拟合,即可得到车道线。
本发明可实现对存在目标占比小、破损程度高、遮挡严重等问题的车道线的检测,解决了高难度场景的车道线检测问题,且可减少漏检率,保证检测准确率。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (11)
1.一种车道线检测方法,其特征在于,包括:
通过神经网络模型对图片进行识别,得到候选检测区域;
根据所述候选检测区域的左对角线或右对角线,得到车道线段;
对满足预设的合并条件的车道线段进行合并,得到合并线段;
对所述合并线段进行聚类,得到m个分类,所述m为预设的推荐车道线数;
分别根据所述m个分类中各合并线段的端点,拟合得到m条推荐车道线。
2.根据权利要求1所述的车道线检测方法,其特征在于,所述根据所述候选检测区域的左对角线或右对角线,得到车道线段,包括:
获取一候选检测区域的一对角线;
根据所述一候选检测区域的宽度以及预设的比例,计算扩充值;
根据所述一对角线以及所述扩充值,确定扩充范围边界线,并根据所述扩充范围边界线,在所述一候选检测区域中确定所述一对角线的扩充范围;
获取所述扩充范围内与所述扩充范围边界线平行的各线段,得到平行线段;
分别根据各平行线段上各像素点的像素数据,计算各像素点的亮度,并分别根据各平行线段上各像素点的亮度,计算各平行线段的亮度之和;
获取所述各平行线段的亮度之和的最大值,得到所述一对角线对应的第一亮度值;
根据所述扩充范围内各像素点的亮度,计算所述扩充范围的亮度之和,并将所述亮度之和除以所述扩充范围内的平行线段总数,得到所述一对角线对应的第二亮度值;
将所述一候选检测区域的两条对角线对应的第一亮度值和第二亮度值进行比对,若一对角线对应的第一亮度值大于另一对角线对应的第一亮度值且所述一对角线对应的第二亮度值大于所述另一对角线对应的第二亮度值,则将所述一对角线作为车道线段;
若一对角线对应的第一亮度值大于另一对角线对应的第一亮度值且所述一对角线对应的第二亮度值小于或等于所述另一对角线对应的第二亮度值,或一对角线对应的第一亮度值小于或等于另一对角线对应的第一亮度值且所述一对角线对应的第二亮度值大于所述另一对角线对应的第二亮度值,则计算所述一对角线的第一亮度值和第二亮度值之和,同时计算所述另一对角线的第一亮度值和第二亮度值之和;
将第一亮度值和第二亮度值之和较大的对角线作为车道线段。
3.根据权利要求2所述的车道线检测方法,其特征在于,所述根据所述候选检测区域的左对角线或右对角线,得到车道线段,还包括:
分别根据所述一对角线的扩充范围内的各平行线段上各像素点的明度,计算各平行线段的明度之和,并获取所述各平行线段的明度之和的最大值,得到所述一对角线对应的第一明度值;
根据所述一对角线的扩充范围内各像素点的明度,计算所述扩充范围的明度之和,并将所述明度之和除以所述扩充范围内的平行线段总数,得到所述一对角线对应的第二明度值;
若所述一候选检测区域的两条对角线对应的第一亮度值相等且第二亮度值相等,或两条对角线的第一亮度值和第二亮度值之和相等,则将所述一候选检测区域的两条对角线对应的第一明度值和第二明度值进行比对;
若一对角线对应的第一明度值大于另一对角线对应的第一明度值且所述一对角线对应的第二明度值大于所述另一对角线对应的第二明度值,则将所述一对角线作为车道线段;
若一对角线对应的第一明度值大于另一对角线对应的第一明度值且所述一对角线对应的第二明度值小于或等于所述另一对角线对应的第二明度值,或一对角线对应的第一明度值小于或等于另一对角线对应的第一明度值且所述一对角线对应的第二明度值大于所述另一对角线对应的第二明度值,则计算所述一对角线的第一明度值和第二明度值之和,同时计算所述另一对角线的第一明度值和第二明度值之和;
将第一明度值和第二明度值之和较大的对角线作为车道线段。
4.根据权利要求1所述的车道线检测方法,其特征在于,所述根据所述候选检测区域的左对角线或右对角线,得到车道线段之后,进一步包括:
分别计算各车道线段的长度;
若一车道线段的长度小于或等于预设的长度阈值,则过滤所述一车道线段。
5.根据权利要求1所述的车道线检测方法,其特征在于,所述对满足预设的合并条件的车道线段进行合并,得到合并线段具体为:
分别根据各车道线段的斜率绝对值,计算各车道线段与X轴的夹角,其中,X轴方向为图片的宽度方向,Y轴方向为图片的高度方向;
若一车道线段与X轴的夹角大于或等于45°,则将所述一车道线段加入第一集合,否则将所述一车道线段加入第二集合;
将所述第一集合中满足预设的合并条件的车道线段进行合并,得到第一合并线段,同时将所述第二集合中满足预设的合并条件的车道线段进行合并,得到第二合并线段。
6.根据权利要求5所述的车道线检测方法,其特征在于,所述将所述第一集合中满足预设的合并条件的车道线段进行合并,得到第一合并线段具体为:
遍历所述第一集合,依次从所述第一集合中获取一车道线段,作为当前车道线段;
遍历所述第一集合中当前车道线段之后的各车道线段,依次从所述当前车道线段之后的各车道线段中获取一车道线段,作为待判车道线段;
计算当前车道线段与所述待判车道线段的距离差和角度差;
若所述距离差小于预设的距离差阈值且所述角度差小于预设的角度差阈值,则将所述待判车道线段作为当前车道线段的待合并车道线段;
当遍历完所述第一集合中当前车道线段之后的各车道线段后,判断当前车道线段及其待合并车道线段中是否存在已加入一第一分组的车道线段;
若存在,则将当前车道线段及其待合并车道线段中的其他车道线段加入至所述一第一分组中;
若不存在,则创建新的第一分组,并将当前车道线段及其待合并车道线段加入至新的第一分组中;
当遍历完所述第一集合后,分别对各第一分组中各车道线段的端点坐标的y值进行排序,并将y值最小的端点和y值最大的端点进行连线,得到各第一分组的第一合并线段。
7.根据权利要求5所述的车道线检测方法,其特征在于,所述将所述第一集合中满足预设的合并条件的车道线段进行合并,得到第一合并线段具体为:
遍历所述第一集合,依次从所述第一集合中获取一车道线段,作为当前车道线段;
判断所述当前车道线段是否为所述第一集合中的第一条车道线段;
若是,则创建第一分组,并将当前车道线段加入所述第一分组中,继续执行所述遍历所述第一集合,依次从所述第一集合中获取一车道线段,作为当前车道线段的步骤;
若否,则依次从各第一分组中获取一车道线段作为待判车道线段,并计算当前车道线段与所述待判车道线段的距离差和角度差;
判断所述距离差是否小于预设的距离差阈值且所述角度差是否小于预设的角度差阈值;
若是,则将当前车道线段加入所述待判车道线段所在的第一分组;
若否,则创建新的第一分组,并将所述待判车道线段加入所述新的第一分组中;
当遍历完所述第一集合后,若一车道线段同时存在于两个以上的第一分组中,则将所述两个以上的第一分组进行合并;
分别对各第一分组中各车道线段的端点坐标的y值进行排序,并将y值最小的端点和y值最大的端点进行连线,得到各第一分组的第一合并线段。
8.根据权利要求6或7所述的车道线检测方法,其特征在于,所述计算当前车道线段与所述待判车道线段的距离差和角度差具体为:
计算当前车道线段的一端点与所述待判车道线段的距离,得到第一距离;
计算当前车道线段的另一端点与所述待判车道线段的距离,得到第二距离;
计算所述待判车道线段的一端点与当前车道线段的距离,得到第三距离;
计算所述待判车道线段的另一端点与当前车道线段的距离,得到第四距离;
获取所述第一距离、第二距离、第三距离和第四距离中的最小值,得到距离差;
根据当前车道线段与X轴的夹角以及所述待判车道线段与X轴的夹角,计算角度差。
9.根据权利要求5-7任一项所述的车道线检测方法,其特征在于,所述对所述合并线段进行聚类,得到m个分类具体为:
分别获取各第一合并线段的延长线与图片底部边界的交点的x值,得到各第一合并线段对应的交点x值;
根据所述交点x值,将各第一合并线段从小到大进行排序,得到第一合并线段集合;
计算相邻两条第一合并线段的交点x值差值;
根据最大的m1-1个所述交点x值差值对应的第一合并线段,在所述第一合并线段集合中确定m1-1个断点,并根据所述m1-1个断点,对所述第一合并线段集合进行切分,得到m1个分类,所述m1为预设的第一推荐车道线数;
分别获取各第二合并线段的延长线与图片左侧边界的交点的y值,得到各第二合并线段对应的交点y值;
根据所述交点y值,将各第二合并线段从小到大进行排序,得到第二合并线段集合;
计算相邻两条第二合并线段的交点y值差值;
根据最大的m2-1个所述交点y值差值对应的第二合并线段,在所述第二合并线段集合中确定m2-1个断点,并根据所述m2-1个断点,对所述第二合并线段集合进行切分,得到m2个分类,所述m2为预设的第二推荐车道线数;
其中,m1+m2=m。
10.根据权利要求1所述的车道线检测方法,其特征在于,所述对所述合并线段进行聚类,得到m个分类具体为:
根据各合并线段的斜率以及预设的斜率阈值,对各合并线段进行分类,得到第一分类;
根据各合并线段的偏置以及预设的偏置阈值,分别对各第一分类中的各合并线段进行分类,得到各第一分类对应的第二分类;
根据各合并线段的中心点的x值或y值,分别对各第二分类中的各合并线段进行分类,得到各第二分类对应的第三分类;
分别计算各第三分类中各合并线段的长度之和,得到各第三分类的长度和,并获取长度和最大的前m个第三分类,作为聚类结果。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-10任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111163616.7A CN113822218A (zh) | 2021-09-30 | 2021-09-30 | 车道线检测方法及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111163616.7A CN113822218A (zh) | 2021-09-30 | 2021-09-30 | 车道线检测方法及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113822218A true CN113822218A (zh) | 2021-12-21 |
Family
ID=78919906
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111163616.7A Pending CN113822218A (zh) | 2021-09-30 | 2021-09-30 | 车道线检测方法及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113822218A (zh) |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103177236A (zh) * | 2011-12-22 | 2013-06-26 | 株式会社理光 | 道路区域检测方法和装置、分道线检测方法和装置 |
CN103630122A (zh) * | 2013-10-15 | 2014-03-12 | 北京航天科工世纪卫星科技有限公司 | 一种单目视觉车道线检测方法及其测距方法 |
CN104537342A (zh) * | 2014-12-24 | 2015-04-22 | 福州大学 | 一种结合山脊边界检测及霍夫变换的快速车道线检测方法 |
CN107918763A (zh) * | 2017-11-03 | 2018-04-17 | 深圳星行科技有限公司 | 车道线检测方法和系统 |
CN108009524A (zh) * | 2017-12-25 | 2018-05-08 | 西北工业大学 | 一种基于全卷积网络的车道线检测方法 |
CN108052880A (zh) * | 2017-11-29 | 2018-05-18 | 南京大学 | 交通监控场景虚实车道线检测方法 |
EP3401182A1 (en) * | 2017-05-09 | 2018-11-14 | Veoneer Sweden AB | Apparatus for lane detection |
CN109034047A (zh) * | 2018-07-20 | 2018-12-18 | 京东方科技集团股份有限公司 | 一种车道线检测方法及装置 |
CN109345547A (zh) * | 2018-10-19 | 2019-02-15 | 天津天地伟业投资管理有限公司 | 基于深度学习多任务网络的交通车道线检测方法及装置 |
CN111259796A (zh) * | 2020-01-16 | 2020-06-09 | 东华大学 | 一种基于图像几何特征的车道线检测方法 |
CN111488808A (zh) * | 2020-03-31 | 2020-08-04 | 杭州诚道科技股份有限公司 | 基于交通违法图像数据的车道线检测方法 |
WO2020181870A1 (en) * | 2019-03-12 | 2020-09-17 | Zhejiang Dahua Technology Co., Ltd. | Systems and methods for lane detection |
CN113095164A (zh) * | 2021-03-22 | 2021-07-09 | 西北工业大学 | 基于强化学习和标志点表征的车道线检测定位方法 |
-
2021
- 2021-09-30 CN CN202111163616.7A patent/CN113822218A/zh active Pending
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103177236A (zh) * | 2011-12-22 | 2013-06-26 | 株式会社理光 | 道路区域检测方法和装置、分道线检测方法和装置 |
CN103630122A (zh) * | 2013-10-15 | 2014-03-12 | 北京航天科工世纪卫星科技有限公司 | 一种单目视觉车道线检测方法及其测距方法 |
CN104537342A (zh) * | 2014-12-24 | 2015-04-22 | 福州大学 | 一种结合山脊边界检测及霍夫变换的快速车道线检测方法 |
EP3401182A1 (en) * | 2017-05-09 | 2018-11-14 | Veoneer Sweden AB | Apparatus for lane detection |
CN107918763A (zh) * | 2017-11-03 | 2018-04-17 | 深圳星行科技有限公司 | 车道线检测方法和系统 |
CN108052880A (zh) * | 2017-11-29 | 2018-05-18 | 南京大学 | 交通监控场景虚实车道线检测方法 |
CN108009524A (zh) * | 2017-12-25 | 2018-05-08 | 西北工业大学 | 一种基于全卷积网络的车道线检测方法 |
CN109034047A (zh) * | 2018-07-20 | 2018-12-18 | 京东方科技集团股份有限公司 | 一种车道线检测方法及装置 |
CN109345547A (zh) * | 2018-10-19 | 2019-02-15 | 天津天地伟业投资管理有限公司 | 基于深度学习多任务网络的交通车道线检测方法及装置 |
WO2020181870A1 (en) * | 2019-03-12 | 2020-09-17 | Zhejiang Dahua Technology Co., Ltd. | Systems and methods for lane detection |
CN111259796A (zh) * | 2020-01-16 | 2020-06-09 | 东华大学 | 一种基于图像几何特征的车道线检测方法 |
CN111488808A (zh) * | 2020-03-31 | 2020-08-04 | 杭州诚道科技股份有限公司 | 基于交通违法图像数据的车道线检测方法 |
CN113095164A (zh) * | 2021-03-22 | 2021-07-09 | 西北工业大学 | 基于强化学习和标志点表征的车道线检测定位方法 |
Non-Patent Citations (6)
Title |
---|
ANY GUPTA等: "A Framework for Camera-Based Real-Time Lane and Road Surface Marking Detection and Recognition", 《IEEE TRANSACTIONS ON INTELLIGENT VEHICLES》, vol. 3, no. 4, 4 December 2018 (2018-12-04), pages 476 - 485, XP011698119, DOI: 10.1109/TIV.2018.2873902 * |
ZHIYUAN ZHAO等: "Deep reinforcement learning based lane detection and localization", 《NEUROCOMPUTING》, vol. 413, 6 November 2020 (2020-11-06), pages 328 - 338, XP086291712, DOI: 10.1016/j.neucom.2020.06.094 * |
孙伟等: "Hough变换和最小二乘拟合的车道线协调检测", 《光电工程》, vol. 38, no. 10, 15 October 2011 (2011-10-15), pages 13 - 19 * |
战宇辰: "基于机器视觉的道路及车辆检测技术研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》, no. 2017, 15 March 2017 (2017-03-15), pages 034 - 1206 * |
王哲伟: "基于深度学习的车道线检测算法研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》, no. 2021, 15 January 2021 (2021-01-15), pages 035 - 472 * |
范先星: "高速公路上车辆偏离预警模型的研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》, no. 2017, 15 May 2017 (2017-05-15), pages 138 - 790 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107679520B (zh) | 一种适用于复杂条件下的车道线视觉检测方法 | |
CN110084095B (zh) | 车道线检测方法、车道线检测装置和计算机存储介质 | |
Bilal et al. | Real-time lane detection and tracking for advanced driver assistance systems | |
US8902053B2 (en) | Method and system for lane departure warning | |
CN108280450B (zh) | 一种基于车道线的高速公路路面检测方法 | |
US8660349B2 (en) | Screen area detection method and screen area detection system | |
US8005266B2 (en) | Vehicle surroundings monitoring apparatus | |
Yuan et al. | Robust lane detection for complicated road environment based on normal map | |
JP5719297B2 (ja) | 特徴量算出装置、特徴量算出方法及びプログラム | |
Huang et al. | Lane detection based on inverse perspective transformation and Kalman filter | |
CN108038481A (zh) | 一种结合最大极值稳定区域和笔画宽度变化的文本定位方法 | |
CN108154151B (zh) | 一种快速多方向文本行检测方法 | |
CN107563331B (zh) | 一种基于几何关系的道路标志线检测方法及系统 | |
CN113239733B (zh) | 一种多车道车道线检测方法 | |
CN111241911B (zh) | 一种自适应的车道线检测方法 | |
Vajak et al. | A rethinking of real-time computer vision-based lane detection | |
Hernández et al. | Lane marking detection using image features and line fitting model | |
JP5189556B2 (ja) | 車線検出装置 | |
CN107977608A (zh) | 一种应用于公路视频图像道路区域提取的方法 | |
CN113822218A (zh) | 车道线检测方法及计算机可读存储介质 | |
Lu | A lane detection, tracking and recognition system for smart vehicles | |
Chen et al. | A novel method for license plate localization | |
CN113505793B (zh) | 复杂背景下的矩形目标检测方法 | |
Lu et al. | Unstructured road detection from a single image | |
CN109308468B (zh) | 一种车道线检测方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |