本发明涉及图像处理领域,特别是涉及一种停车位的检测方法及系统、计算机可读存储介质及电子设备。
背景技术:
停车位就是相关部门规划整齐的用来专门停车的位置。有的在地下停车场,有的在普通的小区,有的在闹市,有的在办公楼下方。目前,停车位包括垂直停车位、水平停车位、斜停车位等,不管是哪种停车位都是通过粗细均匀,线条笔直的停车线来划定的。
随着科学技术的发展,越来越多的车辆搭载了具有自动泊车功能的车载终端,车载终端通过存储并执行预设的软件算法来实现自动泊车功能。然而,如何从车辆周边图像中检测出停车位的位置,实已成为本领域技术人员亟待解决的技术问题。
技术实现要素:
鉴于以上所述现有技术的缺点,本发明的目的在于提供停车位检测方法及系统、存储介质及电子设备,用于车辆周边图像中检测出停车位。
为实现上述目的及其他相关目的,本发明提供一种停车位检测方法,包括:采集车辆周边图像;从所述车辆周边图像中检测出若干直线段;从所述若干直线段中选择出相互平行或近似平行的、并相隔第一预设间距的、且像素点梯度方向相反的两个直线段,并将这两个直线段之间的区域所形成的亮线条作为停车位的第一侧边;根据所述若干直线段,确定与所述第一侧边平行或近似平行的、并相隔第二预设间距的亮线条或直线段,以作为所述停车位的第二侧边;在所述第一侧边和所述第二侧边的某一端的一定区域内,寻找与这两个侧边呈一定角度相交的直线段/亮线条,以作为所述停车位的底边;计算所述停车位的两条侧边与一条底边的交点坐标,据以作为所述停车位的位置信息。
于本发明一实施例中,判断两个侧边之间是否平行或近似平行是通过以下方式实现的:当两个侧边都是亮线条时:获取每个亮线条在其长度方向上的中心线;根据各所述中心线之间的斜率差,判断两个侧边之间是否平行或近似平行;当两个侧边中一个是亮线条另一个是直线段时:获取该亮线条在其长度方向上的中心线;根据该中心线与该直线段的斜率差,判断两个侧边之间是否平行或近似平行。
于本发明一实施例中,所述近似平行是指:斜率差不超过预设阈值。
于本发明一实施例中,计算两个侧边之间的间距是通过以下方式实现的:当两个侧边都是亮线条时:获取每个亮线条在其长度方向上的中心线;计算各所述中心线之间的距离,据以作为两个侧边之间的间距;当两个侧边中一个是亮线条另一个是直线段时:获取该亮线条在其长度方向上的中心线;将该中心线与该直线段之间的距离作为两个侧边之间的间距。
为实现上述目的及其他相关目的,本发明提供一种停车位检测系统,包括:图像采集模块,用于采集车辆周边图像;停车位检测模块,用于从所述车辆周边图像中检测出若干直线段;从所述若干直线段中选择出相互平行或近似平行的、并相隔第一预设间距的、且像素点梯度方向相反的两个直线段,并将这两个直线段之间的区域所形成的亮线条作为停车位的第一侧边;根据所述若干直线段,确定与所述第一侧边平行或近似平行的、并相隔第二预设间距的亮线条或直线段,以作为所述停车位的第二侧边;在所述第一侧边和所述第二侧边的某一端的一定区域内,寻找与这两个侧边呈一定角度相交的直线段/亮线条,以作为所述停车位的底边;计算所述停车位的两条侧边与一条底边的交点坐标,据以作为所述停车位的位置信息。
于本发明一实施例中,判断两个侧边之间是否平行或近似平行是通过以下方式实现的:当两个侧边都是亮线条时:获取每个亮线条在其长度方向上的中心线;根据各所述中心线之间的斜率差,判断两个侧边之间是否平行或近似平行;当两个侧边中一个是亮线条另一个是直线段时:获取该亮线条在其长度方向上的中心线;根据该中心线与该直线段的斜率差,判断两个侧边之间是否平行或近似平行。
于本发明一实施例中,所述近似平行是指:斜率差不超过预设阈值。
于本发明一实施例中,计算两个侧边之间的间距是通过以下方式实现的:当两个侧边都是亮线条时:获取每个亮线条在其长度方向上的中心线;计算各所述中心线之间的距离,据以作为两个侧边之间的间距;当两个侧边中一个是亮线条另一个是直线段时:获取该亮线条在其长度方向上的中心线;将该中心线与该直线段之间的距离作为两个侧边之间的间距。
为实现上述目的及其他相关目的,本发明提供一种存储介质,其中存储有计算机程序,所述计算机程序被处理器加载执行时,实现如上任一所述的停车位检测方法。
为实现上述目的及其他相关目的,本发明提供一种电子设备,包括:处理器、及存储器;其中,所述存储器用于存储计算机程序;所述处理器用于加载执行所述计算机程序,以使所述电子设备执行如上任一所述的停车位检测方法。
如上所述,本发明的停车位检测方法及系统、存储介质及电子设备,有利于从车辆周边图像中快速地检测出停车位的位置,为自动泊车提供有力协助。
附图说明
图1a~1c显示为现有技术中的三种典型的停车位。
图2显示为本发明一实施例中的停车位检测方法的流程示意图。
图3a~3d显示为本发明检测的几种停车位的结构示意图。
图4显示为本发明一实施例中的亮线条的中心线的示意图。
图5显示为本发明一实施例中的停车位检测系统的模块示意图。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
图1a~1c显示了现有的几种典型的停车位类型,其中,箭头的方向表示汽车的车尾驶入的方向。图1a显示的是“一字型”停车位,图1b显示的是“非字型”停车位,图1c显示的“斜线型”停车位。本发明的停车位检测方法,通过不同的参数设置,可以从采集的图像中快速地定位出这些类型的停车位,并给出这些停车位的具体位置,为驾驶员泊车提供有效的协助。如图2、图3a~3d所示,具体实现过程如下:
步骤s201:采集车辆周边图像。
所述车辆周边图像的采集可以通过设置在车辆上的鱼眼摄像头、前置摄像头、后置摄像头等设备来实现,该车辆周边图像中包含了通过白色或黄色宽线条划定的一个或多个停车位。
步骤s202:从所述车辆周边图像中检测出若干直线段。
在车辆周边图像中,无论是白色宽线条划定的停车位,还是黄色宽线条划定的停车位,其在图像中的显示出的亮度都会比周围图像的亮度要高。基于这一特征,本步骤将图中所有的符合预设宽度的、且像素值与周围图像的像素值之差大于预设阈值的直线段检测出来。
步骤s203:从所述若干直线段中选择出相互平行或近似平行的、并相隔第一预设间距的、且像素点梯度方向相反的两个直线段,并将这两个直线段之间的区域所形成的亮线条作为停车位的第一侧边。
步骤s204:根据所述若干直线段,确定与所述第一侧边平行或近似平行的、并相隔第二预设间距的亮线条或直线段,以作为所述停车位的第二侧边。
步骤s205:在所述第一侧边和所述第二侧边的某一端的一定区域内,寻找与这两个侧边呈一定角度α相交的直线段/亮线条(α值可以是90°、60°等),以作为所述停车位的底边。
步骤s206:计算所述停车位的两条侧边与一条底边的交点坐标,据以作为所述停车位的位置信息。
在一较佳的实施方式中,判断两个侧边之间是否平行或近似平行是通过以下方式实现的:
方式1)当两个侧边都是亮线条时:获取每个亮线条在其长度方向上的中心线,如图4所示;根据各所述中心线之间的斜率差,判断两个侧边之间是否平行或近似平行;
方式2)当两个侧边中一个是亮线条另一个是直线段时:获取该亮线条在其长度方向上的中心线;根据该中心线与该直线段的斜率差,判断两个侧边之间是否平行或近似平行。
其中,所述近似平行是指:斜率差不超过预设阈值。
在一较佳的实施方式中,计算两个侧边之间的间距是通过以下方式实现的:
方式1)当两个侧边都是亮线条时:获取每个亮线条在其长度方向上的中心线;计算各所述中心线之间的距离,据以作为两个侧边之间的间距;
方式1)当两个侧边中一个是亮线条另一个是直线段时:获取该亮线条在其长度方向上的中心线;将该中心线与该直线段之间的距离作为两个侧边之间的间距。
在一实施方式中,寻找像素点梯度方向相反的两个直线段,例如:首先,将输入图像缩小为原来大小的80%左右,目的在于减弱甚至消除很多图像中出现的锯齿效应;然后,在2×2的模板上进行图像梯度的计算。具体的:给定
其中,i(x,y)是灰度图像上像素点(x,y)处的灰度值,图像的梯度通过以下的式子(1)和(2)来得到:
而level-line的角度(像素点的梯度方向)则通过下面的式子(3)得到:
相应的,每个像素点的梯度幅值则通过下面的式子(4)得到:
这里,在计算过程中利用尽可能小的模板是为了尽量减少梯度计算过程中的彼此依赖。梯度和level-time角度两者将图像的边缘进行编码,即从黑到白的转换。特别的,从黑到白和从白到黑是不同的,两者在梯度和level-line上具有180度的差异。当灰度图的进行亮度翻转时(黑的像素变白、白的像素变黑),则检测到的直线的起始点和终止点交换。
如图5所示,与上述方法实施例原理相似的是,本发明提供一种停车位检测系统,包括:图像采集模块501、停车位检测模块502。由于前述方法实施例中的技术特征已经进行了详细说明,在本系统实施例中便不再重复赘述。
图像采集模块501采集车辆周边图像。停车位检测模块502从所述车辆周边图像中检测出若干直线段;从所述若干直线段中选择出相互平行或近似平行的、并相隔第一预设间距的、且像素点梯度方向相反的两个直线段,并将这两个直线段之间的区域所形成的亮线条作为停车位的第一侧边;根据所述若干直线段,确定与所述第一侧边平行或近似平行的、并相隔第二预设间距的亮线条或直线段,以作为所述停车位的第二侧边;在所述第一侧边和所述第二侧边的某一端的一定区域内,寻找与这两个侧边呈一定角度相交的直线段/亮线条,以作为所述停车位的底边;计算所述停车位的两条侧边与一条底边的交点坐标,据以作为所述停车位的位置信息。
进一步的,判断两个侧边之间是否平行或近似平行是通过以下方式实现的:当两个侧边都是亮线条时:获取每个亮线条在其长度方向上的中心线;根据各所述中心线之间的斜率差,判断两个侧边之间是否平行或近似平行;当两个侧边中一个是亮线条另一个是直线段时:获取该亮线条在其长度方向上的中心线;根据该中心线与该直线段的斜率差,判断两个侧边之间是否平行或近似平行。其中,所述近似平行是指:斜率差不超过预设阈值。
进一步的,计算两个侧边之间的间距是通过以下方式实现的:当两个侧边都是亮线条时:获取每个亮线条在其长度方向上的中心线;计算各所述中心线之间的距离,据以作为两个侧边之间的间距;当两个侧边中一个是亮线条另一个是直线段时:获取该亮线条在其长度方向上的中心线;将该中心线与该直线段之间的距离作为两个侧边之间的间距。
除此之外,本发明还包括一种存储介质和一种电子设备,由于前述实施例中的技术特征可以应用于存储介质实施例、电子设备实施例,因而不再重复赘述。
所述存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质,其中存储有计算机程序,该计算机程序在被处理器加载执行时,实现前述实施例中停车位检测方法的全部或部分步骤。
所述电子设备为包括处理器(cpu/mcu/soc)、存储器(rom/ram)、通信模块(有线/无线网络),其中,设置在车辆上的多个摄像头与该电子设备电性连接。特别的,该存储器中存储有计算机程序,该处理器在加载执行所述计算机程序时,实现前述实施例中停车位检测方法的全部或部分步骤。
综上所述,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。