车道线检测方法、装置、存储介质及电子设备
技术领域
本公开涉及道路网中的目标检测方法,具体地,涉及一种车道线检测方法、装置、存储介质及电子设备。
背景技术
城市三维建模技术以丰富的三维信息在一个虚拟世界中还原出细节丰满的真实城市全景,在导航、城市规划、智能城市建设、安保、设施管理、灾害管理等储多领域为人们带来切实且可观的利益。
城市三维建模技术包括如建筑、道路、车辆、绿地等在内的重建,其中车道线的识别是其中道路、车辆等重建的基础。现有技术中的车道线检测方法通常包括:
1.机器学习的方法:采用机器学习算法将图像中的车道线和背景分离,利用车道线狭长且颜色固定等特征以及霍夫变换算法来检测车道线。然而,上述算法处理的场景过于理想,对图像的噪声敏感、鲁棒性较差。
2.深度学习的方法:目标检测是深度学习的一个应用领域,常用的目标检测模型如RCNN(Region CNN,区域卷积神经网络)、Fast-RCNN和Faster-RCNN等。基于车道线的特点,现有技术中提出了一种基于深度学习的端到端车道线识别方法lanenet(参见Neven D,De Brabandere B,Georgoulis S,et al.Towards End-to-End Lane Detection:anInstance Segmentation Approach[J].2018.)。虽然上述方法可以取得不错的效果,但是,深度学习本身对训练数据较为敏感,在特定场景(例如:街道上过多的车辆遮挡住车道线,光照强度不够,车道线不清晰等场景)下难以达到满意的效果。
发明内容
本公开的目的是提供一种车道线检测方法、装置、存储介质及电子设备,用于实现道路网中车道线的有效检测和识别。
根据本公开的第一方面,提供一种车道线检测方法,包括:
读取街景图像,对所述街景图像进行预处理;
采用神经网络模型计算所述预处理后的街景图像,得到第一车道线识别结果图像;
对所述第一车道线识别结果图像进行连通性分析,删除不合格区域,并对剩余区域进行直线拟合获得第二车道线识别结果图像;以及
对所述第二车道线识别结果图像进行邻近性分析,按邻近性条件对所述第二车道线识别结果图像中的连通域进行聚类,合并同类连通域获得第三车道线识别结果图像。
可选地,还包括:
对所述第三车道线识别结果图像进行连通性分析,删除不合格区域,并对剩余区域进行直线拟合;以及
计算拟合后的连通域的角度,对连通域按照角度聚类,合并同类连通域。
可选地,还包括:
获取当前街景图像中的车辆信息,根据所述车辆信息检测当前街景图像中的车道线数量。
可选地,根据所述车辆信息检测当前街景图像中的车道线数量的步骤包括:
获取街景图像中的所有车辆的位置像素信息;
根据有效区域条件,利用车辆的位置像素信息确定当前街景图像内的有效车辆;
根据车辆位于不同车道的条件,利用车辆的位置像素信息确定有效车辆在当前街景图像中道路上的分布情况;以及
根据所述分布情况确定车道线数量。
可选地,根据有效区域条件,利用车辆的位置像素信息确定当前街景图像内的有效车辆的步骤包括:
计算每一车辆x轴和y轴的像素比;以及
比较所述像素比与第一有效阈值的大小,响应于所述像素比小于所述第一有效阈值,确定所述车辆为无效车辆;响应于所述像素比大于或等于所述第一有效阈值,确定所述车辆为有效车辆。
可选地,根据有效区域条件,利用车辆的位置像素信息确定当前街景图像内的有效车辆的步骤进一步包括:
比较每一车辆y轴像素与第二有效阈值的大小,响应于y轴像素小于所述第二有效阈值,确定所述车辆为无效车辆;响应于所述y轴像素大于或等于所述第二有效阈值,确定所述车辆为有效车辆。
可选地,根据车辆位于不同车道的条件,利用车辆的位置像素信息确定有效车辆在当前街景图像中道路上的分布情况的步骤包括:
获取两个有效车辆的y轴像素公共范围值及每一有效车辆的中心点;
分别计算所述公共范围值与所述两个有效车辆的y轴像素的比值,并取其中的数值小的比值作为对比值;获取所述两个有效车辆的中心点连线在图像坐标系中的角度;
比较所述对比值与第一同道阈值的大小;比较所述角度与第二同道阈值的大小;以及
响应于所述对比值大于或等于所述第一同道阈值,且所述角度位于所述第二同道阈值限定的范围外,确定所述两个有效车辆位于不同的车道。
可选地,还包括:
根据停车位条件判断位于有效车辆区域边缘的车辆是否位于停车位;
响应于所述车辆位于停车位,确定所述车辆两侧的线不是车道线;响应于所述车辆没有位于停车位,确定所述车辆两侧的线是车道线。
可选地,所述停车位条件包括:位于同一车道内的有效车辆的数量大于或等于数量阈值时,所述车辆位于停车位内。
可选地,在获取当前街景图像中的车辆信息,根据所述车辆信息检测当前街景图像中的车道线数量之前还进一步包括:
判断合并同类连通域后是否得到车道线及得到车道线的数量;
在没有车道线或车道线数量少于数量阈值时,获取当前街景图像中的车辆信息,根据所述车辆信息检测当前街景图像中的车道线数量。
可选地,还包括,判断不合格区域的步骤包括:
循环遍历第一车道线识别结果图像中的每个连通域;
计算构成每个连通域的点的数量;
比较所述点的数量与合格数量阈值的大小,响应于构成一个连通域的点的数量大于或等于所述合格数量阈值,确定所述连通域为合格区域;响应于构成一个连通域的点的数量小于所述合格数量阈值,所述连通域为不合格区域。
可选地,判断不合格区域的步骤还进一步包括:
循环遍历第一车道线识别结果图像中的每个点;
比较每个点的y轴像素与合格阈值的大小;以及
确定y轴像素小于所述合格阈值的点构成的区域为不合格区域。
可选地,所述邻近性分析包括:
循环遍历每个连通域,计算两个连通域的位置间隔,计算每个连通域在图像坐标系中的角度;
在两个连通域的位置间隔小于第一邻近阈值,两个连通域的角度类型相同且两个连通域的角度差小于第二邻近阈值时,确定两个连通域为同类。
可选地,对所述街景图像进行预处理的步骤进一步包括:
调整所述街景图像的亮度,获得一个或多个不同亮度的街景图像;
采用神经网络模型计算所述预处理后的街景图像,得到第一车道线识别结果图像的步骤进一步包括:
采用神经网络模型计算调整过亮度的街景图像,并将得到的一个或多个结果图像中效果最好的作为所述第一车道线识别结果图像。
根据本公开的第二方面,提供一种车道线检测装置,包括:
图像获取模块,用于读取街景图像,对所述街景图像进行预处理;
识别模块,与所述图像获取模块相连接,用于通过神经网络模型计算所述预处理后的街景图像,得到第一车道线识别结果图像;
连通性分析模块,与所述识别模块相连接,用于对所述第一车道线识别结果图像或经过邻近性分析获得的第三车道线识别结果图像进行连通性分析,删除不合格区域,并对剩余区域进行直线拟合,对所述第一车道线识别结果图像处理后获得第二车道线识别结果图像,对所述第三车道线识别结果图像处理后获得第四车道线识别结果图像;以及
邻近性分析模块,与所述连通性分析模块相连接,用于对所述第二车道线识别结果图像进行邻近性分析,根据满足邻近性条件对所述第二车道线识别结果图像中的连通域聚类,合并同类连通域获得第三车道线识别结果图像;或计算所述第四车道线识别结果图像中的连通域的角度,并按角度聚类,合并同类连通域获得第五车道线识别结果图像。
可选地,所述车辆检测模块还包括:
车辆检测模块,与所述图像获取模块相连接,用于获取所述图像获取模块获取到的街景图像中的车辆信息,根据所述车辆信息检测当前街景图像中的车道线数量。
可选地,所述车辆检测模块进一步包括:
车辆位置信息获取单元,用于获取街景图像中的所有车辆的位置像素信息;
有效车辆确定单元,与所述车辆位置信息获取单元相连接,根据有效区域条件,利用车辆的位置像素信息确定当前街景图像内的有效车辆;
位置分布确定单元,与所述有效车辆确定单元和车辆位置信息获取单元相连接,用于根据车辆位于不同车道的条件,利用车辆的位置像素信息确定有效车辆在当前街景图像中道路上的分布情况;以及
车道确定单元,与所述位置分布确定单元相连接,用于根据所述位置分布确定单元确定的车辆分布情况确定车道线数量。
可选地,所述车辆检测模块还进一步包括:
车道线判断模块,与所述邻近性分析模块相连接,用于根据合并同类连通域后得到的图像判断当前街景图像中是否有车道线;在没有车道线或车道线数量少于数量阈值时,向所述车辆检测模块发送工作指令;所述车辆检测模块根据所述工作指令,向所述图像获取模块发送获取街景图像,根据所述图像获取模块发送回的街景图像中的车辆信息,检测当前街景图像中的车道线数量。
可选地,所述连通性分析模块进一步包括:
区域确定单元,用于循环遍历第一车道线识别结果图像中的每个连通域,删除不合格区域;以及
直线拟合单元,与所述区域确定单元相连接,用于对剩余区域进行直线拟合。
可选地,所述邻近性分析模块进一步包括:
位置计算单元,用于循环遍历每个连通域,计算两个连通域的位置间隔;
角度计算单元,用于循环遍历每个连通域,计算每个连通域在图像坐标系中的角度;
聚类单元,分别与所述位置计算单元和角度计算单元相连接,在两个连通域的位置间隔小于第一邻近阈值,且角度差小于第二邻近阈值时,确定两个连通域为同类;以及
合并单元,与所述聚类单元相连接,用于合并同类连通域。
根据本公开的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本公开第一方面所述方法的步骤。
根据本公开的第四方面,提供一种电子设备,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现本公开第一方面所述方法的步骤。
通过上述技术方案,本公开通过对街景图像的预处理,使模型的输出结果图像效果更好,增加了图像亮度的鲁棒性;通过连通域分析,去掉了容易引起误差的区域,增加了检测的准确性;在车辆过多、无法检测或检测出的车道线数量过少时,通过增加车辆检测方法增强了算法的鲁棒性;本公开提供的方案实现简单,便于移植。
本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
图1是本公开提供的一个实施例中的车道线检测方法的流程图;
图2是本公开提供的一个实施例中读取的街景图像;
图3是本公开提供的一个实施例中采用Lanenet模型输出的结果图像;
图4是本公开提供的一个实施例中进行连通域分析后得到的结果图像;
图5是本公开提供的一个实施例中进行邻近性分析后得到的结果图像;
图6是本公开提供的一个实施例中再次进行连通域分析、邻近性分析后得到的结果图像;
图7是本公开提供的另一个实施例中读取的街景图像;
图8是本公开提供的一个实施例用于辅助车道线检测的车辆检测方法的流程图;
图9是本公开提供的一个实施例中的标示出车辆的位置像素信息的街景图像;
图10是本公开提供的另一个实施例中的车道线检测方法的流程图;
图11是本公开提供的另一个实施例中的车道线检测方法的流程图;
图12是本公开提供的一个实施例中的车道线检测装置的原理框图;
图13是本公开提供的一个实施例中的连通性分析模块的原理框图;
图14是本公开提供的一个实施例中的邻近性分析模块的原理框图;
图15是本公开提供的另一个实施例中的车道线检测装置的原理框图;
图16是本公开提供的另一个实施例中的车辆检测模块的原理框图;
图17是本公开提供的一种电子设备的框图;
图18是本公开提供的另一种电子设备的框图。
具体实施方式
以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。
如图1所示,为本公开一个实施例中的车道线检测方法的流程图。其中,所述方法包括:
步骤S1,读取街景图像,如图2所示,对所述街景图像进行预处理。其中,所述的预处理包括亮度调整。通过亮度调整,可以提高模型输出效果。所述的街景图像可以通过某个地图平台接口获取,如腾讯地图、百度地图等。
步骤S2,采用神经网络模型计算所述预处理后的街景图像,得到第一车道线识别结果图像。其中,所述的神经网络模型可以为基于目前各种深度学习框架的模型,如RCNN、Fast RCNN、Faster RCNN、Lanenet等模型,如图3所示,为采用Lanenet模型输出的结果图像。当步骤S1中经过亮度值调整后得到多个图像时,在步骤S2,通过Lanenet模型对每一个图像进行处理,选取效果最好的一个作为第一车道线识别结果图像。
步骤S3,对所述车道线识别结果图像进行连通性分析,删除不合格区域,并对剩余区域进行直线拟合获得第二车道线识别结果图像。结果图像中的连通域,有的组成像素点多,有的则很少。在进行连通性分析时,将每个连通域对应识别为一条车道线,由于像素点过少的连通域在后期拟合时容易引起误差,因而,连通性分析中的一个任务是循环遍历图像中的每个连通域,计算构成每个连通域的点的数量;比较所述点的数量与合格数量阈值的大小,例如,设定合格数量阈值为5个像素点,如果构成一个连通域的点的数量大于或等于所述合格数量阈值,则确定所述连通域为合格区域,如果构成一个连通域的点的数量小于所述合格数量阈值,所述连通域为不合格区域,将其删除。另外,对于结果图像上方的连通域,由于该处距离镜头较远,组成连通域的像素点数量较少,不容易进行直线拟合;并且离镜头越远代表距离远,同一条车道上的车道线会由于远近不同,角度也有所差异,这种一条车道线过大的角度差异会影响后面的聚类结果,因而,本发明将图像偏上方的连通域删除。一个具体实施方式是,将图像y轴像素作为对比参数,90作为一个合格阈值,在遍历连通域时,比较每个连通域的每个像素点的y轴像素与合格阈值的大小,将y轴像素小于所述合格阈值的点构成的区域为不合格区域。去掉了不合格区域后,对剩余的连通域进行拟合,得到如图4所示的结果图像,为区别于经过其他步骤处理后的结果图像,在此称为第二车道线识别结果图像。
步骤S4,对所述第二车道线识别结果图像进行邻近性分析,将满足邻近性要求的连通域确定为一类,合并同类连通域获得第三车道线识别结果图像。具体地,以所述第二车道线识别结果图像作为目标图像,循环遍历其中的每个连通域,按邻近性条件进行聚类,例如:计算每两个连通域的位置间隔,例如,分别计算一个连通域的x轴最小值和另一个连通域的x轴最大值之差、一个连通域的y轴最小值和另一个连通域的y轴最大值之差,如果两个连通域的位置间隔,即x轴之差小于第一邻近阈值,如15个像素,且y轴之差也小于第一邻近阈值,可视为这两个连通域满足了部分相邻性条件。每个连通域可视为一条直线,根据其在图像坐标系中的位置,可以计算得到其与x轴或y轴所呈的角度。当两个连通域满足了位置间隔条件,计算两个连通域的角度,如果两个连通域的角度类型相同,即同是锐角或同是钝角,则计算二者的角度之差,如果每个连通域角度差小于第二邻近阈值,如30度时,确定这两个连通域满足邻近性条件。将满足邻近性条件的两个连通域确定为一类,根据聚类满足的传递性,以此类推,将当前结果图像中的连通域分成不同的类,最后将同类连通域合并,合并后的图像称为第三车道线识别结果图像,如图5所示。
步骤S5,对第三车道线识别结果图像再次进行连通域分析、直线拟合,得到第四车道线识别结果图像。
步骤S6,计算第四车道线识别结果图像中的连通域的角度,并按角度进行聚类、合并,如图6所示,结束车道线的检测流程。
然而,并不是所有的街景图像都能够通过神经网络模型识别出车道线或足够的数量。例如图7所示,街景图像中车辆较多,大部分的车道线被遮挡,此时无法通过前述方法实现车道线的检测。在这种情况下,本公开提供了一种辅助检测方法,即车辆检测方法,具体如图8所示。
步骤S61、获取街景图像中的所有车辆的位置像素信息。其中,所述的位置像素信息包括所述车辆在x轴和y轴方向的范围,从而形成一个用于表达车辆位置的矩形,如图9所示。另外还可以包括车辆类别、所述类别的概率及该车辆在图像中的索引号。其中每个信息中的第一列数字为计算时的车辆类别,中间数字为所属类别的概率,最后一列数字,即圈中的数字,为车辆索引号。
步骤S62、根据有效区域条件,利用车辆的位置像素信息确定当前街景图像内的有效车辆。由于图像中车辆众多,甚至会有不在同一条道路上的车辆,因而,需要从当前的车辆中排除不属于检测目标道路中的车辆或容易引起误差的车辆。在本公开的一个实施例中,设定两个有效阈值,第一有效阈值为车辆y轴和x轴的像素比,设为0.5;在图像高度为256个像素时,第二有效阈值为y轴像素,设为100。如果车辆y轴和x轴的像素比大于0.5,则确定该车辆在车道上,为有效车辆,否则为无效车辆,在后续处理过程中不予处理。另外,如果车辆中心点的纵坐标,即y轴像素小于100则为无效车辆,只有在y轴像素大于或等于100时,才为有效车辆。以图9为例,在这个模型中汽车被分为第7类,公交车被分为第6类,所以本公开只处理第6和7类的目标。通过计算,索引号为3的车宽度和长度的像素比为0.32,由于其小于第一有效阈值0.5,则确定其不在目标车道上。索引号为3和5的车辆中心点(矩形对角线的交点)的y轴像素小于90,因而将索引号为3和5的车辆确定为无效车辆,通过类似计算,剩余其他车辆都符合这两个条件,因而其他车辆0、1、2、4、5为有效车辆。
步骤S63、根据车辆位于不同车道的条件,利用车辆的位置像素信息确定有效车辆在当前街景图像中道路上的分布情况。在确定了目标车道上的有效车辆后,对有效车辆进行分析,确定车辆在目标车道上的分布。在一个具体分析方法中,包括两个同道阈值:第一同道阈值为设定的y轴像素公共范围值与车辆的y轴像素的具体比值,例如50%;第二同道阈值为设定的两个车辆中心点连线在图像坐标系中的角度的具体值,例如,通过两个第二同道阈值构成一个范围,如,设定一个第二同道阈值为10度,另一个第二同道阈值为170度。
获取两个有效车辆的y轴像素公共范围值,分别计算所述公共范围值与所述两个有效车辆的y轴像素的比值,并取其中的数值小的比值作为对比值;计算所述两个车辆中心点连线在图像坐标系中的角度;比较所述对比值与第一同道阈值的大小,同时判断所述两个车辆中心点连线在图像坐标系中的角度是否位于所述第二同道阈值构成的范围,如果在所述对比值大于或等于所述第一同道阈值,且所述两个车辆中心点连线在图像坐标系中的角度在所述第二同道阈值构成的范围外,则确定所述两个车辆位于不同的车道。以图9中的车辆为例,在索引号为0、1和2这三辆车中,由索引号为0和1的车辆的对比值为81.2%,且车辆的中心点连线角度为177.3度;索引号为0和2的车辆的对比值为69.2%,且车辆中心点连线角度为171.7度;索引号为1和2的车辆的对比值为88.1%,且车辆的中心点连线角度为2.1度,因而,索引号为0、1和2的车辆对比值均大于50%,且中心点连线角度在10-170度的范围外,因而索引号为0、1和2的车辆分别位于不同的车道,据此将其分为不同的类。
索引号为1和4的车辆对比值为32.2%,小于第一同道阈值50%,则确定索引号为1和4的车辆在同一车道内,属于同一类。
由于道路两个边缘可能会是停车位,为了识别出停车位,在将道路上的有效车辆分完类后,还要根据停车位条件判断位于有效车辆区域边缘的车辆是否位于停车位。通常来说,路边停车位的车辆会比较密集,本公开的一个实施例根据这一特点,设定所述的停车位条件为:位于同一车道内的有效车辆的数量大于或等于数量阈值(如3个)时,所述车辆位于停车位内。仍以前述图9为例,索引号为1和4的车辆位于有效车辆边缘,与其同类的车辆仅有2辆,小于数量阈值3辆,因而索引号为1和4的车辆所在的车道不是停车位。
步骤S64、根据所述分布情况确定车道线数量。以图9为例,根据有效车辆的分布情况,可以确定共有三条车道,加上道路两侧边线,应该共有4条车道线。
如图10所示,为本公开提供的另一实施例的车道线检测方法流程图。具体地,
步骤S100、从腾讯地图平台中读取目标道路的街景图像,调整所述街景图像的亮度。
步骤S101、采用Lanenet模型计算调整亮度后的街景图像,得到第一车道线识别结果图像。
步骤S102、对所述第一车道线识别结果图像进行连通性分析,删除不合格区域,并对剩余区域进行直线拟合获得第二车道线识别结果图像。
步骤S103、对所述第二车道线识别结果图像进行邻近性分析,将满足邻近性要求的连通域确定为一类,合并同类连通域获得第三车道线识别结果图像。
步骤S104、对第三车道线识别结果图像再次进行连通域分析、直线拟合,得到第四车道线识别结果图像。
步骤S105、对第四车道线识别结果图像进行聚类,合并,得到第五车道线识别结果图像。
步骤S106、判断第五车道线识别结果图像中是否有车道线,如果没有,转向图8中的步骤S61-64,进行车辆辅助检测。如果第五车道线识别结果图像中有车道线,转向步骤S107。
步骤S107、判断第五车道线识别结果图像中的车道线数量是否达到车道线数量阈值,如果没有达到,则转向图8中的步骤S61-64,进行车辆辅助检测。如果达到了所述阈值,则结束所述流程,车道线检测完成。
如图11所示,为本公开提供的另一种车道线检测方法的流程图。在本实施例中,所述方法包括:
步骤S200、从腾讯地图平台中读取目标道路的街景图像,调整所述街景图像的亮度。
步骤S201、采用Lanenet模型计算调整亮度后的街景图像,得到第一车道线识别结果图像。
步骤S202、对所述第一车道线识别结果图像进行连通性分析,删除不合格区域,并对剩余区域进行直线拟合获得第二车道线识别结果图像。
步骤S203、对所述第二车道线识别结果图像进行邻近性分析,将满足邻近性要求的连通域确定为一类,合并同类连通域获得第三车道线识别结果图像。
步骤S204、对第三车道线识别结果图像再次进行连通域分析、直线拟合,得到第四车道线识别结果图像。
步骤S205、对第四车道线识别结果图像进行聚类,合并,得到第五车道线识别结果图像。
步骤S206、根据所述第五车道线识别结果图像确定车道线数量A。
进行如图8所示的步骤S61-S64的车辆辅助检测,获得车道线数量B。
步骤S207,判断车道线数量A和车道线数量B的大小。如果车道线数量A大于或等于车道线数量B,在步骤S208,以第五车道线识别结果图像中的车道线作为检测结果;如果车道线数量A小于车道线数量B,在步骤S209,以车辆辅助检测获得的车道线作为检测结果。
在本实施例中,在通过步骤S200-S206识别出车道线后,通过车辆检测法从另一维度从同一街景图像中获得车道线数量,如果车道线数量B小于或等于车道线数量A,说明前述方法中说明车道线识别结果合理,如果车道线数量B大于A,说明当前街景图像中由于车辆过多、遮挡等原因,没有识别出应有的车道线,通过车辆检测法使得车道线的检测更加精确、可靠。
如图12所示,为本公开提供的一种车道线检测装置的原理框图,其中,车道线检测装置包括图像获取模块1、识别模块2、连通性分析模块3和邻近性分析模块4。其中,所述图像获取模块1利用其他地图平台API,从所述平台读取目标道路的街景图像,如图2所示,并调整所述街景图像的亮度从而得到多个不同亮度值的图像。识别模块2与所述图像获取模块1相连接,通过神经网络模型,如Lanenet模型,分别对不同亮度值的图像进行计算,以效果最好的一个作为第一车道线识别结果图像,如图3所示。
连通性分析模块3与所述识别模块2相连接,用于对所述车道线识别结果图像进行连通性分析,删除不合格区域,并对剩余区域进行直线拟合获得第二车道线识别结果图像。具体地,如图13所示,为一个实施例中的连通性分析模块的原理框图。所述连通性分析模块3进一步包括区域确定单元31和直线拟合单元32。所述区域确定单元31用于循环遍历第一车道线识别结果图像中的每个连通域,确定不合格区域,并将其删除。其中,确定不合适区域的方法参见前面的方法说明,在此不再重复说明。所述直线拟合单元32与所述区域确定单元31相连接,用于对剩余区域进行直线拟合从而得到第二道线识别结果图像,如图4所示。
所述邻近性分析模块4的一个实施例的原理框图如图14所示。所述邻近性分析模块4进一步包括位置计算单元41、角度计算单元42、聚类单元43和合并单元44。其中,所述位置计算单元41用于循环遍历每个连通域,计算两个连通域的位置间隔。所述的位置间隔包括两个连通域的x轴间隔和y轴间隔。x轴间隔是指一个连通域的x轴最小值和另一个连通域的x轴最大值之差。同理,y轴间隔是指一个连通域的y轴最小值和另一个连通域的y轴最大值之差。所述角度计算单元42,用于循环遍历每个连通域,计算每个连通域在图像坐标系中的角度。所述聚类单元43分别与所述位置计算单元41和角度计算单元42相连接,在两个连通域的位置间隔小于第一邻近阈值,角度类型相同且角度差小于第二邻近阈值时,确定两个连通域为同类。例如,x轴间隔和y轴间隔均小于15个像素,同为锐角或钝角等相同类型,并且两个角度之差小于30度,则认为这两个连通域为同一类,并以此递推,对结果图像中的连通域聚类。合并单元44与所述聚类单元43相连接,用于合并同类连通域,从而得到第三车道线识别结果图像,如图5所示。
在另一个实施例中,所述邻近性分析模块4将得到的第三车道线识别结果图像发送给所述连通性分析模块3,由所述连通性分析模块3对所述第三车道线识别结果图像再次进行连通性分析;并对所述连通性分析模块发送回来的经过再次连通性分性后拟合的图像按照角度进行聚类、合并,最终可以得到如图6所示的车道线识别结果图像。
如图15所示,为本公开提供的另一个车道线检测装置,其中,除了图11中的模块外,还包括车道线判断模块5和车辆检测模块6。其中,所述车道线判断模块5与所述邻近性分析模块4相连接,用于根据合并同类连通域后得到的图像判断当前街景图像中是否有车道线;在没有车道线或车道线数量少于数量阈值时,向所述车辆检测模块6发送工作指令;所述车辆检测模块6根据所述工作指令,向所述图像获取模块1发送获取街景图像的请求,根据所述图像获取模1块发送回的街景图像中的车辆信息,检测当前街景图像中的车道线数量。
其中,所述车辆检测模块的原理框图如图16所示,车辆检测模块6进一步包括:车辆位置信息获取单元61、有效车辆确定单元62、位置分布确定单元63和车道确定单元64。其中,车辆位置信息获取单元61用于获取街景图像中的所有车辆的位置像素信息。例如,车辆位置信息获取单元61利用计算模型可以获得每一个车辆的位置信息,包括代表车辆矩形的车宽(x轴像素差值)和车长(y轴像素差值),以及分类后得到的类别及其概率和索引号。所述有效车辆确定单元62与所述车辆位置信息获取单元61相连接,根据前述方法中说明的有效区域条件,按照前述方法利用车辆的位置像素信息确定当前街景图像内的有效车辆。所述位置分布确定单元63与所述有效车辆确定单元62和车辆位置信息获取单元61相连接,用于根据车辆位于不同车道的条件,采用前述方法,利用车辆的位置像素信息确定有效车辆在当前街景图像中道路上的分布情况。车道确定单元64与所述位置分布确定单元63相连接,用于根据所述位置分布确定单元确定的车辆分布情况确定车道线及其数量。
图17是根据一示例性实施例示出的一种电子设备700的框图。如图17所示,该电子设备700可以包括:处理器701,存储器702。该电子设备700还可以包括多媒体组件703,输入/输出(I/O)接口704,以及通信组件705中的一者或多者。
其中,处理器701用于控制该电子设备700的整体操作,以完成上述的车道线检测方法中的全部或部分步骤。存储器702用于存储各种类型的数据以支持在该电子设备700的操作,这些数据例如可以包括用于在该电子设备700上操作的任何应用程序或方法的指令,以及应用程序相关的数据。该存储器702可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-OnlyMemory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read-OnlyMemory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。多媒体组件703可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器702或通过通信组件705发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口704为处理器701和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件705用于该电子设备700与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near Field Communication,简称NFC),2G、3G、4G、NB-IOT、eMTC、或其他5G等等,或它们中的一种或几种的组合,在此不做限定。因此相应的该通信组件705可以包括:Wi-Fi模块,蓝牙模块,NFC模块等等。
在一示例性实施例中,电子设备700可以被一个或多个应用专用集成电路(Application Specific Integrated Circuit,简称ASIC)、数字信号处理器(DigitalSignal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的车道线检测方法。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的车道线检测方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器702,上述程序指令可由电子设备700的处理器701执行以完成上述的车道线检测方法。
图18是根据一示例性实施例示出的一种电子设备1900的框图。例如,电子设备1900可以被提供为一服务器。参照图18,电子设备1900包括处理器1922,其数量可以为一个或多个,以及存储器1932,用于存储可由处理器1922执行的计算机程序。存储器1932中存储的计算机程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理器1922可以被配置为执行该计算机程序,以执行上述的车道线检测方法。
另外,电子设备1900还可以包括电源组件1926和通信组件1950,该电源组件1926可以被配置为执行电子设备1900的电源管理,该通信组件1950可以被配置为实现电子设备1900的通信,例如,有线或无线通信。此外,该电子设备1900还可以包括输入/输出(I/O)接口1958。电子设备1900可以操作基于存储在存储器1932的操作系统,例如WindowsServerTM,Mac OS XTM,UnixTM,LinuxTM等等。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的车道线检测方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器1932,上述程序指令可由电子设备1900的处理器1922执行以完成上述的车道线检测方法。
在另一示例性实施例中,还提供一种计算机程序产品,该计算机程序产品包含能够由可编程的装置执行的计算机程序,该计算机程序具有当由该可编程的装置执行时用于执行上述的车道线检测方法的代码部分。
以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。
此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。