本公开涉及图像处理技术领域,尤其涉及一种车道线检测方法及装置、电子设备和计算机可读存储介质。
背景技术:
在智能控制领域中,车辆的辅助驾驶功能和车辆的自动驾驶功能得到越来越多的关注。在开启辅助驾驶功能的情况下,车辆可以辅助驾驶员完成驾驶行为,如:行驶、转向、停车等;在开启自动驾驶公开的情况下,车辆可以完成驾驶行为,无需驾驶员参与。
上述两种行为,均需要依赖于车道线局部地图。基于该车道线局部地图可以规划当前行驶车辆的行驶计划。
局部地图的建立主要依赖于对车道线的检测。当前采用的车道线检测方法主要还是依赖于图像识别对车辆采集到的图像进行车道线的识别。但是通过该方法来确定车道线经常会受到图像噪声等因素的感染,使得车道线的确定存在一定的误差,还存在优化空间。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解。
技术实现要素:
本公开实施例提供一种车道线检测方法及装置、电子设备和计算机可读存储介质,能够在待检测图像中准确、便捷地确定车道线。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
本公开实施例提出一种车道线检测方法,该方法包括:获取待检测图像;根据所述待检测图像生成待检测二值图像;根据所述待检测二值图像中每行连续像素值为第一值的像素生成目标像素簇;根据所述待检测图像中的目标像素簇在所述待检测二值图像中确定候选车道线;确定所述候选车道线的左边缘拟合方程和右边缘拟合方程;根据所述左边缘拟合方程和所述右边缘拟合方程确定所述候选车道线为目标车道线。
在一些实施例中,根据所述待检测图像中的目标像素簇在所述待检测二值图像中确定候选车道线,包括:将像素个数不在第一范围内的目标像素簇剔除,以确定候选像素簇;根据所述候选像素簇在所述待检测二值图像中确定所述候选车道线。
在一些实施例中,根据所述候选像素簇在所述待检测二值图像中确定所述候选车道线,包括:在所述候选像素簇中确定任意一个像素簇作为当前像素簇;将所述当前像素簇中心位置处的像素作为目标像素;以所述目标像素为起点按照列方向向上、下两个方向搜索,以确定所述目标像素的上一像素所在的上一像素簇和所述目标像素的下一像素所在的下一像素簇;若所述上一像素簇和所述下一像素簇之间的像素个数差小于第一阈值,则确定所述目标像素所在的当前像素簇为有效像素簇;将所述当前像素簇的下一像素簇作为所述当前像素簇,以继续进行有效像素簇的搜索;当搜索完成后,将上下连续的像素簇整合为车道线候选簇;当所述车道线候选簇的像素簇数量大于预设个数时,则根据所述车道线候选簇生成所述候选车道线。
在一些实施例中,所述方法还包括:若所述当前像素的上一像素簇和所述下一像素簇之间的像素个数差大于或者等于所述第一阈值,则不再对所述当前像素簇的下一像素簇进行有效像素簇的搜索;将所述当前像素簇的上一像素簇作为所述当前像素簇,并继续向上进行有效像素簇的搜索。
在一些实施例中,根据所述左边缘拟合方程和所述右边缘拟合方程确定所述候选车道线为目标车道线,包括:根据所述左边缘拟合方程和所述右边缘拟合方程确定所述候选车道线的车道线宽度满足第一条件、所述候选车道线的车道线形状满足第二条件、所述左边缘拟合方程对应的左边缘曲线与所述右边缘拟合方程对应的右边缘曲线平行;确定所述候选车道线为所述目标车道线。
在一些实施例中,根据所述左边缘拟合方程和所述右边缘拟合方程确定所述候选车道线的车道线宽度满足第一条件、所述候选车道线的车道线形状满足第二条件、所述左边缘拟合方程对应的左边缘曲线与所述右边缘拟合方程对应的右边缘曲线平行,包括:若所述左边缘拟合方程的常数项和所述右边缘拟合方程的常数项的差值在第二范围内,则确定所述候选车道线的车道线宽度满足所述第一条件;若所述左边缘拟合方程的二次项系数和所述右边缘拟合方程的二次项系数均在第三范围内,则确定所述候选车道线的车道线形状满足所述第二条件;若所述左边缘拟合方程的一次项系数与所述右边缘拟合方程的一次项系数在第四范围内,且所述左边缘拟合方程的二次项系数与所述右边缘拟合方程的二次项系数在第五范围内,则所述左边缘拟合方程对应的左边缘曲线与所述右边缘拟合方程对应的右边缘曲线平行。
在一些实施例中,在根据所述待检测二值图像中每行连续像素值为第一值的像素生成目标像素簇之前,所述方法还包括:在所述待检测二值图像中按列统计像素值为所述第一值的有效像素点个数;根据按列统计获得的有效像素点个数生成目标直方图,所述目标直方图显示所述待检测图像中每列像素值为所述第一值的像素点个数;若所述目标直方图中像素点个数大于第二阈值,且像素值为所述第一值的像素点个数相等的列数小于第三阈值,则认为所述待检测图像为出口路时采集的图像。
本公开实施例提供了一种车道线检测装置,所述装置可以包括:待检测图像获取模块、待检测二值图像获取模块、目标像素簇确定模块、候选车道线确定模块、方程拟合模块以及目标车道线模块。
其中,所述待检测图像获取模块可以配置为获取待检测图像;所述待检测二值图像获取模块可以配置为根据所述待检测图像生成待检测二值图像;所述目标像素簇确定模块可以配置为根据所述待检测二值图像中每行连续像素值为第一值的像素生成目标像素簇;所述候选车道线确定模块可以配置为根据所述待检测图像中的目标像素簇在所述待检测二值图像中确定候选车道线;所述方程拟合模块可以配置为确定所述候选车道线的左边缘拟合方程和右边缘拟合方程;所述目标车道线模块可以配置为根据所述左边缘拟合方程和所述右边缘拟合方程确定所述候选车道线为目标车道线。
本公开实施例提出一种电子设备,该电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述任一项所述的车道线检测方法。
本公开实施例提出一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如上述任一项所述的车道线检测方法。
本公开实施例提出一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述车道线检测方法。
本公开实施例提供的车道线检测方法、装置及电子设备和计算机可读存储介质,通过将待检测图像转换为待检测二值图像,然后在待检测二值图像中确定像素值为第一值的目标像素簇以确定候选车道线,然后通过边缘拟合方程对候选车道线进行筛选以确定目标车道线。本公开实施例提供的技术方案,准确、简单地在待检测图像中确定了待检测二值图像。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。下面描述的附图仅仅是本公开的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了应用于本公开实施例的车道线检测方法或车道线检测装置的示例性系统架构的示意图。
图2示出了适于用来实现本公开实施例的电子设备的结构示意图。
图3是根据一示例性实施例示出的一种车道线检测方法的流程图。
图4是根据一示例性实施例示出的一种待检测图像的示意图。
图5是根据一示例性实施例示出的一种待检测图像的示意图。
图6是根据一示例性实施例示出的一种待检测图像的示意图。
图7是对图4所示待检测图像进行二值化后的待检测二值图像的示意图。
图8是根据一示例性实施例示出的一种在待检测二值图像中绘制的目标车道线的示意图。
图9是图3中步骤s4在一示例性实施例中的流程图。
图10是图3中步骤s6在一示例性实施例中的流程图。
图11是根据一示例性实施例示出的一种车道线检测方法的流程图。
图12是根据一示例性实施例示出的一种目标直方图的示意图。
图13是根据一示例性实施例示出的一种车道线检测装置的框图。
具体实施方式
现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施例;相反,提供这些实施例使得本公开将全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
本公开所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本公开的各方面。
附图仅为本公开的示意性图解,图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和步骤,也不是必须按所描述的顺序执行。例如,有的步骤还可以分解,而有的步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
本说明书中,用语“一个”、“一”、“该”、“所述”和“至少一个”用以表示存在一个或多个要素/组成部分/等;用语“包含”、“包括”和“具有”用以表示开放式的包括在内的意思并且是指除了列出的要素/组成部分/等之外还可存在另外的要素/组成部分/等;用语“第一”、“第二”和“第三”等仅作为标记使用,不是对其对象的数量限制。
下面结合附图对本公开示例实施方式进行详细说明。
图1示出了可以应用于本公开实施例的车道线检测方法或车道线检测装置的示例性系统架构的示意图。
如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。其中,终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机、台式计算机、可穿戴设备、虚拟现实设备、智能家居等等。
服务器105可以是提供各种服务的服务器,例如对用户利用终端设备101、102、103所进行操作的装置提供支持的后台管理服务器。后台管理服务器可以对接收到的请求等数据进行分析等处理,并将处理结果反馈给终端设备。
服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn、以及大数据和人工智能平台等基础云计算服务的云服务器等,本公开对此不做限制。
服务器105可例如获取待检测图像;服务器105可例如根据所述待检测图像生成待检测二值图像;服务器105可例如根据所述待检测二值图像中每行连续像素值为第一值的像素生成目标像素簇;服务器105可例如根据所述待检测图像中的目标像素簇在所述待检测二值图像中确定候选车道线;服务器105可例如确定所述候选车道线的左边缘拟合方程和右边缘拟合方程;服务器105可例如根据所述左边缘拟合方程和所述右边缘拟合方程确定所述候选车道线为目标车道线。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的,服务器105可以是一个实体的服务器,还可以为多个服务器组成,根据实际需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图2,其示出了适于用来实现本申请实施例的终端设备的计算机系统200的结构示意图。图2示出的终端设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图2所示,计算机系统200包括中央处理单元(cpu)201,其可以根据存储在只读存储器(rom)202中的程序或者从储存部分208加载到随机访问存储器(ram)203中的程序而执行各种适当的动作和处理。在ram203中,还存储有计算机系统200操作所需的各种程序和数据。cpu201、rom202以及ram203通过总线204彼此相连。输入/输出(i/o)接口205也连接至总线204。
以下部件连接至i/o接口205:包括键盘、鼠标等的输入部分206;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分207;包括硬盘等的储存部分208;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分209。通信部分209经由诸如因特网的网络执行通信处理。驱动器210也根据需要连接至i/o接口205。可拆卸介质211,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器210上,以便于从其上读出的计算机程序根据需要被安装入储存部分208。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分209从网络上被下载和安装,和/或从可拆卸介质211被安装。在该计算机程序被中央处理单元(cpu)201执行时,执行本申请的系统中限定的上述功能。
需要说明的是,本申请所示的计算机可读存储介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读存储介质,该计算机可读存储介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、rf等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的模块(和/或子模块和/或)单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块(和/或子模块和/或)单元也可以设置在处理器中,例如,可以描述为:一种处理器包括发送单元、获取单元、确定单元和第一处理单元。其中,这些模块(和/或子模块和/或)单元的名称在某种情况下并不构成对该模块(和/或子模块和/或)单元本身的限定。
作为另一方面,本申请还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备可实现功能包括:获取待检测图像;根据所述待检测图像生成待检测二值图像;根据所述待检测二值图像中每行连续像素值为第一值的像素生成目标像素簇;根据所述待检测图像中的目标像素簇在所述待检测二值图像中确定候选车道线;确定所述候选车道线的左边缘拟合方程和右边缘拟合方程;根据所述左边缘拟合方程和所述右边缘拟合方程确定所述候选车道线为目标车道线。
在相关技术中,车道线检测方法大多采用传统计算机视觉方法,首先将图像去畸变消除畸变影响(由于畸变的存在,实际中笔直的车道线在图像中会变得弯曲),然后生成二值图(像素值大于阈值的置为255,即白色;
像素值小于阈值的像素置为0,即黑色),再通过透视变换生成二值图对应的鸟瞰图,最后通过滑窗搜索的方法搜索在车道线上的白色像素点。
现有车道线检测方法需要依赖上一帧的识别结果,因此在路口等车道线不规则分布的场景下,现有车道线检测方法容易识别错误。要解决路口识别车道线的问题,必须将每一帧图像独立处理。
图3是根据一示例性实施例示出的一种车道线检测方法的流程图。本公开实施例所提供的方法可以由任意具备计算处理能力的电子设备来执行,例如该方法可以由上述图1实施例中的服务器或终端设备来执行,也可以由服务器和终端设备共同执行,在下面的实施例中,以服务器为执行主体为例进行举例说明,但本公开并不限定于此。
参照图3,本公开实施例提供的车道线检测方法可以包括以下步骤。
在步骤s1中,获取待检测图像。
在一些实施例中,待检测图像可以指的是需要进行车道线检测的图像,如图4所示的在远离路口位置处的行程图像,或者图5所示的在进入路口时拍摄的行程图像,或者如图6所示的在出路口时拍摄的行程图像,本公开对此不做限制。
在步骤s2中,根据所述待检测图像生成待检测二值图像。
在拿到待检测图像后,可以根据提前标定好的相机畸变系数,消除图像的畸变。
然后再通过中值滤波的方法计算动态阈值以便生成待检测图像的待检测二值图像,具体可以包括:按行遍历待检测图像的像素,查找当前像素前后n(例如90)个像素点的像素中值,作为当前像素的阈值;若当前像素值大于阈值则置为第一值(例如255),小于阈值则置为第二值(例如0),n为大于或者等于1的正整数。
在对如图4所示的待检测图像进行二值化处理后,可以获得如图7所示的待检测二值图像。
在步骤s3中,根据所述待检测二值图像中每行连续像素值为第一值的像素生成目标像素簇。
例如,若待检测二值图像中的某一行包括36列,其中第10~15列对应的像素值均为第一值,20~30列对应的像素值也为第一值,那么可以根据该行第10~15、20~30列对应的像素生成目标像素簇。
在步骤s4中,根据所述待检测图像中的目标像素簇在所述待检测二值图像中确定候选车道线。
在一些实施例中,可以将待检测二值图像中上下连续的像素簇整合成候选车道簇,然后将宽度和长度满足预设条件(例如宽度在第一范围且长度在第二范围,该第一范围和第二范围均是根据车道线的实际情况预先设定的)的候选车道簇作为候选车道线。
在步骤s5中,确定所述候选车道线的左边缘拟合方程和右边缘拟合方程。
在一些实施例中,每一个候选车道线都应该是有宽度的,也就是每一个候选车道线都会有左边缘和右边缘。可以对候选车道线左边缘和右边缘分别进行拟合,以确定左边缘拟合方程和右边缘拟合方程。
在步骤s6中,根据所述左边缘拟合方程和所述右边缘拟合方程确定所述候选车道线为目标车道线。
在一些实施例中,可以根据候选车道线的左边缘拟合方程和右边缘拟合方程确定候选车道线的宽度、形状等是否满足实际车道线的要求,若根据左边缘拟合方程和右边缘拟合方程确定该候选车道线确实满足实际车道线的要求,则确定该候选车道线为目标车道线。
在一些实施例中,在确定候选车道线就是目标车道线后,还可以根据候选车道线的左边缘拟合方程和右边缘拟合方程确定目标车道线的拟合方程,以便在待检测二值图像或者待检测图像中准确的绘制目标车道线,图8就是根据一示例性实施例示出的一种在待检测二值图像中绘出的目标车道线。
本发明提出一种基于图像的路口车道线检测方法,可以提高车道线的识别准确率和鲁棒性。
图9是图3中步骤s4在一示例性实施例中的流程图。参考图9,上述步骤s4可以包括以下步骤。
在步骤s41中,将像素个数不在第一范围内的目标像素簇剔除,以确定候选像素簇。
在一些实施例中,可以将像素个数不在第一范围内(该第一范围可以是6~20个像素)的目标像素簇剔除,然后再根据完成剔除操作后的目标像素簇在待检测二值图像中生成候选车道线。通过上述像素簇的剔除操作,可以保证最终确定的目标车道线的宽度在预设范围内。
在一些实施例中,在确定了目标像素簇的宽度满足条件后,还需要保证目标像素簇的长度和形状也满足预设条件,具体过程可以包括以下步骤。
在步骤s42中,在所述候选像素簇中确定任意一个像素簇作为当前像素簇。
在步骤s43中,将所述当前像素簇中心位置处的像素作为目标像素。
在步骤s44中,以所述目标像素为起点按照列方向向上、下两个方向搜索,以确定所述目标像素的上一像素所在的上一像素簇和所述目标像素的下一像素所在的下一像素簇。
在步骤s45中,若所述上一像素簇和所述下一像素簇之间的像素个数差小于第一阈值(例如8个像素),则确定所述目标像素所在的当前像素簇为有效像素簇。
在步骤s46中,将所述当前像素簇的下一像素簇作为所述当前像素簇,以继续进行有效像素簇的搜索。
在步骤s47中,若所述当前像素的上一像素簇和所述下一像素簇之间的像素个数差大于或者等于所述第一阈值,则不再对所述当前像素簇的下一像素簇进行有效像素簇的搜索。
即若当前像素的上一像素簇和下一像素簇之间的像素个数差小于第一阈值,则继续对当前像素向下方向进行有效像素的搜索(即将当前像素的下一像素簇作为当前像素,继续进行有效像素的搜索);若当前像素的上一像素簇和下一像素簇之间的像素个数大于或者等于第一阈值,则不再对当前像素向下方向进行有效像素的搜索。
在一些实施例中,若完成对向下方向的搜索后,需要对向上方向进行有效像素的搜索,具体可以包括以下步骤。
在步骤s48中,将所述当前像素簇的上一像素簇作为所述当前像素簇,并继续向上进行有效像素簇的搜索。
在一些实施例中,当完成对向上方向或者向下方向的搜索,可以认为完成了对有效像素簇的搜索。
在步骤s49中,当搜索完成后,将上下连续的像素簇整合为车道线候选簇。
在步骤s410中,当所述车道线候选簇的像素簇数量大于预设个数时,则根据所述车道线候选簇生成所述候选车道线。
需要注意的是,待检测二值图像中可能会存在多个聚在一起的目标像素簇,上述方法仅给出了某一组聚在一起的像素簇的有效性的搜索方法。本领域技术人员可以根据上述搜索方法完成对待检测二值图像中所有目标像素簇的搜索。
图10是图3中步骤s6在一示例性实施例中的流程图。其中,图3中的步骤s6可以包括:根据所述左边缘拟合方程和所述右边缘拟合方程确定所述候选车道线的车道线宽度满足第一条件、所述候选车道线的车道线形状满足第二条件、所述左边缘拟合方程对应的左边缘曲线与所述右边缘拟合方程对应的右边缘曲线平行;确定所述候选车道线为所述目标车道线。
其中,第一条件、第二条件等都可以根据车道线的实际情况确定,本公开对此不做限制。
该步骤s6具体可以包括如图10所示的步骤。
在步骤s61中,若所述左边缘拟合方程的常数项和所述右边缘拟合方程的常数项的差值在第二范围内,则确定所述候选车道线的车道线宽度满足所述第一条件。
在一些实施例中,该第一条件可以根据车道线的实际宽度进行设定,例如可以设定为左边缘拟合方程的常数项和右边缘拟合方程的常数项在第二范围内(例如6~20个),以使得候选车道线的车道线宽度在6~20个像素范围内。
在步骤s62中,若所述左边缘拟合方程的二次项系数和所述右边缘拟合方程的二次项系数均在第三范围内,则确定所述候选车道线的车道线形状满足所述第二条件。
在一些实施例中,由于拟合方程的二次项控制了曲线的曲率,而实际的车道线在待检测二值图像中要么垂直于图像横轴坐标系(假设待检测二值图像对应的待检测图像是行驶的车辆采集的,可以以车辆的行驶方向为纵轴,垂直于纵轴的方向为横纵构建待检测二值图像的图像坐标轴),要么与横轴坐标系有夹角,不可能平行于横轴。因此,可以令左边缘拟合方程的二次项系数与右边缘拟合方程的二次项系数均大于某个阈值,以保证目标车道线的形状符合实际图像中实际车道线的形状。
在步骤s63中,若所述左边缘拟合方程的一次项系数与所述右边缘拟合方程的一次项系数在第四范围内,且所述左边缘拟合方程的二次项系数与所述右边缘拟合方程的二次项系数在第五范围内,则所述左边缘拟合方程对应的左边缘曲线与所述右边缘拟合方程对应的右边缘曲线平行。
例如可以令左边缘拟合方程的一次项系数与右边缘拟合方程的一次项系数之间的差值很小,左边缘拟合方程的二次项系数与右边缘拟合方程的二次项系数之间的差值也很小,以保证目标车道线的边缘近似平行。
通过上述步骤可以在待检测二值图像中找到车道线宽度满足第一条件(保证了车道线宽度符合条件)、车道线形状(即保证了车道线形状符合条件)满足第二条件以及边缘近似平行的目标车道线。
在实际情况中,车辆在路口处拍摄的待检测图像中的车道线会存在不同程度的曲率,如果单纯的使用现有技术中的图像识别技术进行车道线的识别,无法准确的识别出车道线。
本公开提供了一种如图11所示的车道线检测方法,该方法假设待检测图像中在路口附近的道路信息可以包括三种情况:进入路口、在路口中及出路口。其中进入路口,车道线依然是规则的,可按照传统方法(例如传统的图像识别方法)进行识别;在路口中,没有车道线,无需识别;出路口时使用本公开提出的方法识别车道线。
那么判断当前在路口状态的方法如下:
在待检测二值图像中按列统计像素值为第一值(例如255)的有效像素点个数;根据按列统计获得的有效像素点个数生成目标直方图(图12是对图7所示待检测二值图像直方图统计后获得的目标直方图),目标直方图显示待检测图像中每列像素值为第一值的像素点个数,例如使用直方图统计待检测二值图每一列白色(255)像素点的个数;利用进入路口时,路口斑马线平行的特点(如图5所示),则斑马线所在列的白色像素点个数相近,因此若目标直方图中像素点个数大于第二阈值,且像素值为第一值的像素点个数相等的列数大于或者等于第三阈值,则认为待检测图像为进入口路时采集的图像;若目标直方图中像素点个数小于或者等于第二阈值(即认定待检测二值图像中没有足够多的白色像素点),则认为待检测图像为在路口时采集的图像;若目标直方图中像素点个数大于第二阈值(即认定待检测二值图像中有足够多的白色像素点),且像素值为第一值(例如255)的像素点个数相等的列数小于第三阈值,则认为待检测图像为出口路时采集的图像。
通过本实施例提供的技术方案,既能保证车道线检测的准确率,又能节约计算资源,提供车道线检测效率。
图13是根据一示例性实施例示出的一种车道线检测装置的框图。参照图13,本公开实施例提供的车道线检测装置1300可以包括:待检测二值图像获取模块1301、目标像素簇确定模块1302、候选车道线确定模块1303、方程拟合模块1304以及目标车道线模块1305。
其中,所述待检测二值图像获取模块1301可以配置为获取待检测图像,并根据所述待检测图像生成待检测二值图像;所述目标像素簇确定模块1302可以配置为根据所述待检测二值图像中每行连续像素值为第一值的像素生成目标像素簇;所述候选车道线确定模块1303可以配置为根据所述待检测图像中的目标像素簇在所述待检测二值图像中确定候选车道线;所述方程拟合模块1304可以配置为确定所述候选车道线的左边缘拟合方程和右边缘拟合方程;所述目标车道线模块1305可以配置为根据所述左边缘拟合方程和所述右边缘拟合方程确定所述候选车道线为目标车道线。
在一些实施例中,所述候选车道线确定模块1303可以包括:剔除子模块、候选车道线确定子模块。
其中,所述剔除子模块可以配置为将像素个数不在第一范围内的目标像素簇剔除,以确定候选像素簇;所述候选车道线确定子模块可以配置为根据所述候选像素簇在所述待检测二值图像中确定所述候选车道线。
在一些实施例中,所述候选车道线确定子模块可以包括:当前像素簇确定单元、目标像素确定单元、搜索单元、有效像素簇确定单元、有效像素簇继续搜索单元、车道候选簇确定单元以及候选车道线确定单元。
其中,所述当前像素簇确定单元可以配置为在所述候选像素簇中确定任意一个像素簇作为当前像素簇;所述目标像素确定单元可以配置为将所述当前像素簇中心位置处的像素作为目标像素;所述搜索单元可以配置为以所述目标像素为起点按照列方向向上、下两个方向搜索,以确定所述目标像素的上一像素所在的上一像素簇和所述目标像素的下一像素所在的下一像素簇;所述有效像素簇确定单元可以配置为若所述上一像素簇和所述下一像素簇之间的像素个数差小于第一阈值,则确定所述目标像素所在的当前像素簇为有效像素簇;所述有效像素簇继续搜索单元可以配置为将所述当前像素簇的下一像素簇作为所述当前像素簇,以继续进行有效像素簇的搜索;所述车道候选簇确定单元可以配置为当搜索完成后,将上下连续的像素簇整合为车道线候选簇;所述候选车道线确定单元可以配置为当所述车道线候选簇的像素簇数量大于预设个数时,则根据所述车道线候选簇生成所述候选车道线。
在一些实施例中,所述当前像素簇的上一像素簇是有效像素簇;其中,车道线检测装置还包括:停止搜索单元和向上搜索单元。
其中,所述停止搜索单元可以配置为若所述当前像素的上一像素簇和所述下一像素簇之间的像素个数差小于第一阈值,则不再对所述当前像素簇的下一像素簇进行有效像素簇的搜索;所述向上搜索单元可以配置为将所述当前像素簇的上一像素簇作为所述当前像素簇,并继续向上进行有效像素簇的搜索。
在一些实施例中,所述目标车道线模块1305可以包括:条件判断子模块和目标车道线确定子模块。
其中,所述条件判断子模块可以配置为根据所述左边缘拟合方程和所述右边缘拟合方程确定所述候选车道线的车道线宽度满足第一条件、所述候选车道线的车道线形状满足第二条件、所述左边缘拟合方程对应的左边缘曲线与所述右边缘拟合方程对应的右边缘曲线平行;所述目标车道线确定子模块可以配置为确定所述候选车道线为所述目标车道线。
在一些实施例中,所述条件判断子模块可以包括:宽度判断单元、形状判断单元以及平行判断单元。
其中,所述宽度判断单元可以配置为若所述左边缘拟合方程的常数项和所述右边缘拟合方程的常数项的差值在第二范围内,则确定所述候选车道线的车道线宽度满足所述第一条件;所述形状判断单元可以配置为若所述左边缘拟合方程的二次项系数和所述右边缘拟合方程的二次项系数均在第三范围内,则确定所述候选车道线的车道线形状满足所述第二条件;所述平行判断单元可以配置为若所述左边缘拟合方程的一次项系数与所述右边缘拟合方程的一次项系数在第四范围内,且所述左边缘拟合方程的二次项系数与所述右边缘拟合方程的二次项系数在第五范围内,则所述左边缘拟合方程对应的左边缘曲线与所述右边缘拟合方程对应的右边缘曲线平行。
在一些实施例中,所述车道线检测装置还包括:有效像素个数确定模块、直方图统计单元、出路口图像确定单元。
其中,所述有效像素个数确定模块可以配置为在所述待检测二值图像中按列统计像素值为所述第一值的有效像素点个数;所述直方图统计单元可以配置为根据按列统计获得的有效像素点个数生成目标直方图,所述目标直方图显示所述待检测图像中每列像素值为所述第一值的像素点个数;所述出路口图像确定单元可以配置为若所述目标直方图中像素点个数大于第二阈值,且像素值为所述第一值的像素点个数相等的列数小于第三阈值,则认为所述待检测图像为出口路时采集的图像。
由于本公开的示例实施例的车道线检测装置1300的各个功能模块与上述车道线检测方法的示例实施例的步骤对应,因此在此不再赘述。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,本公开实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中,包括若干指令用以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者智能设备等)执行根据本公开实施例的方法,例如图3的一个或多个所示的步骤。
此外,上述附图仅是根据本公开示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其他实施例。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未申请的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
应当理解的是,本公开并不限于这里已经示出的详细结构、附图方式或实现方法,相反,本公开意图涵盖包含在所附权利要求的精神和范围内的各种修改和等效设置。