基于双目逆投影的停车位占位快速检测方法*

2021-06-09 15:18肖汉彪胡钊政伍锦祥
汽车工程 2021年5期
关键词:双目差分障碍物

肖汉彪,胡钊政,周 哲,伍锦祥

(1.武汉理工大学信息工程学院,武汉 430070;2.武汉理工大学智能交通系统研究中心,武汉 430063;3.武汉理工大学重庆研究院,重庆 401120)

前言

近年来,随着车辆智能化技术的飞速发展,辅助驾驶与自动驾驶技术得到广泛研究,特别是针对智能车的泊车辅助系统。新一代自动泊车系统(Autonomous valet parking,AVP)可以进一步解放驾驶人,提升驾乘体验。此外,智能泊停也是更高级别的无人驾驶系统不可或缺的组成部分。这些车辆泊停系统均需要快速准确地检测出停车位的信息[1]。

目前的停车位占位检测方法可按照其工作原理分为两类。一类为基于三维重建的方法。该类方法主要分为基于超声波雷达、毫米波雷达、激光雷达等距离传感器的方法和基于立体摄像机深度重建的方法。超声波雷达和毫米波雷达通过对车辆周围的场景进行重构,分析车位的占用情况,并计算停车所需的空间。一旦检测到足够大的空间来容纳汽车,系统就会启动自动泊车系统[2-3]。然而,这些传感器的精度依赖于相邻车辆的位置。激光扫描仪[4]可以高精度地测量距离,但是其高昂的成本阻碍了其作为汽车配件的商业化。深度相机[5]是指双目立体视觉或移动立体视觉传感器,这些传感器不仅提供图像信息,而且提供深度信息。但是,由于生成深度图的计算量很大,很难满足实时性需求[6]。因此实现高精度和低延迟的障碍物检测,是辅助驾驶的关键因素。

第二类则为基于目标检测与识别的方法,通过对停车位上的目标进行检测进而分析车位的占用情况。文献[7]中提出一种针对视频帧的时间分析法,使用高斯混合算法对背景进行差分运算,以检测车辆和车位占用情况。文献[8]中通过K-Means聚类分析实现车位线精确定位,并根据车位上的角点数量,使用分层有限状态机对车位进行分类。文献[9]中通过鸟瞰图分析停车空间的边沿比例来确定汽车是否停在一个车位内。红色区域表示用于计算边缘比率的感兴趣区域。尽管以高边缘比例为特征的停车位可以代表汽车所占用的车位,但基于单个特征的车位占用检测准确率较低,且极易受到环境因素的影响。随后由于全视监测(around view monitoring,AVM)系统的快速发展,基于车辆的成像系统从单目相机变为AVM系统。与单目相机相比,AVM系统有更广的视场角,可以更有效地帮助驾驶员识别周边停车位标识和障碍物。在AVM系统的基础上,文献[10]中使用基于方向密度的空间聚类,将带有噪声的区域聚类到具有不同方向的线段,使用相应车位几何特征来识别停车位的类型。但是,由于聚集的线段缺少停车位信息,该方法经常会错误地检测到道路标记。文献[11]中将车道边界线分成一对具有相反梯度方向的平行线,并使用随机抽样一致性检测车道边界线。为了检测停车位之间的分隔线,该文中使用距离变换结合模板匹配来识别,但是该方法只包含一个模板,因此,它只能应用于矩形停车位。文献[12]中提出用角点检测识别车位,提取道路和障碍物特征进行车位占用情况检测。由于AVM图像不能覆盖整个车位,故一些靠后停放的车辆不能被检测到。同样,除了AVM系统,深度学习由于在目标检测方面的优势,也被广泛应用于停车位检测。文献[13]中提出了一种基于决策树的车位检测算法,该算法采用了增强决策树来训练标记点检测器,以判断停车位占用情况。文献[14]中对已有网络进行车辆识别模型再训练,通过模拟和真实数据,实现了对车辆分布识别结果的有序编号和车位空缺状况的准确判断。文献[15]中提出了一种实时检测系统,利用深度卷积神经网络,并组合前后帧的信息进行车位状态更新。与基于纯图像的方法相比,该方法的准确性得到较好的提升。基于深度学习的车位检测方法虽然在特定目标的识别(车、人等)上有较好的优越性,但对其他障碍物(路障、柱子等)的鲁棒性较差,且只适用于单一场景。

针对以上问题,本文中提出一种基于双目相机逆 投 影(binocular inverse perspective mapping,BIPM)的停车位快速检测方法。其创新点在于:(1)以往的逆投影(inverse perspective mapping,IPM)算法主要用于道路上的车道线检测[16-17],而本文中将IPM算法应用于障碍物检测,获得更有效、更简单的停车场车位占用检测方法;(2)基于双目逆投影差分图,获取车位占用信息和障碍物位置信息,避免了传统算法中显式目标检测和三维重建等复杂的计算过程。

1 本文算法

本文中提出基于BIPM的车位占用检测算法,其流程如图1所示。主要包括以下步骤:(1)使用逆投影算法将左右目图像投影在参考平面,由于不同相机逆投影坐标不同,须通过双目相机外参进行位置补偿,完成坐标系统一;(2)将左右目逆投影图像进行差分运算,得到双目逆投影差分图,用于区分参考平面和平面之外的物体(障碍物);(3)将该差分图进行二值化与形态学滤波处理,以凸显目标区域和消除噪点信息;(4)获取车位线区域,并使用感兴趣区域(region of interest,ROI)算法设置车位的不同区域,检测各ROI中障碍物像素的占用比,得到车位占用信息,同时通过双目逆投影差分图获取障碍物到相机的距离。

图1 BIPM算法流程图

1.1 双目相机逆投影变换

逆投影变换是一种利用摄像机内外参数对摄像机图像进行逆映射,获取世界坐标系下某一平面图像上的实际坐标的方法。利用逆透视变换把3D空间点从图像中恢复出来至少要知道该点的一个世界坐标。因此,采用逆透视变换主要是恢复三维世界坐标系某个固定轴的平面信息。具体到智能驾驶系统的道路环境中,通过建立适当的坐标系,就可以使世界坐标系下平面Z=0和真实的道路平面重合,进而通过逆透视变换从图像恢复道路平面的俯视图,消除透视形变,得到道路交通标线等更多不变量信息,从而进行后续的检测和识别任务。

图2 为双目相机逆投影模型,在图2(a)中,相机高度为h,点O为左目相机光心C1到地面的垂直投影,定义点O为原点,O C1为Z轴建立图中相机坐标系。AB C D为摄像机拍摄到的路平面上的梯形区域,A、B、C、D各点在投影平面内的对应点如图2(b)所示,分别为图像平面矩形四个端点A1、B1、C1、D1。

图2 BIPM算法流程图

定义矩形中点为原点,以平行于X、Y轴方向的u和v方向建立图像坐标系,H和W分别为图像平面的高和宽。

以左目相机为参考,定义点[xl,yl]T为道路平面上一点,图像平面内的对应点坐标为[ul,vl]T,可得相机逆投影公式:

式中:h为摄像机的安装高度;2β0为摄像机镜头的水平视场角;2α0为摄像机镜头的垂直视场角;γ0为摄像机的俯仰角。具体推导过程见文献[18]。

由于两相机坐标系之间可通过空间矩阵M相互转换。其中R为旋转矩阵,T为平移矩阵。

则左右目相机位置变换关系为

其中,R和T可以通过相机外参标定获得[19]。则右目相机逆投影坐标为

由于本文中使用双目相机进行试验,左右相机光轴平行,当相机水平放置于车上时,通过对参考平面进行尺度约束,左右相机旋转矩阵R为单位矩阵,且只存在X轴方向上的位移,并与基线相同,t x=d,t y=t z=0,即T=[d0 0]T,可得

由式(1)和式(5)可得右目相机逆投影公式:

通过式(1)和式(6),可将双目相机逆投影变换在同一坐标系下,便于后续的图像差分变换。BIPM算法充分利用了双目相机的尺度信息(基线长度),通过高精度标定实现了双目图像在参考平面(地面)上的精确映射。

1.2 基于双目逆投影差分图的障碍检测

图像差分法常用于变化或运动的物体,将同一场景在不同时间拍摄的图像相减,实际上就是图像的差分运算。差分图像提供了图像间的像素差值信息,消除了两图像的背景和噪声,该方法可运用于目标的检测、跟踪和识别[20]。结合上节所述的逆投影变换,可将目标上的点通过某一平面进行区分,即在不同视角下的逆投影平面,目标上的点所在位置不同,故可将多视角下的逆投影图像进行差分,将目标的轮廓勾勒出来,实现目标检测。

基于双目逆投影差分图的障碍检测方法原理如图3所示。相机跟随车以速度v向前移动,在某一时刻,左右目光心C1、C2运动到图中所示的位置。对于地面上一点Q1,相机在C1与C2处的成像在地面上的投影均为Q1,灰度值相同;而对于高于地面上一点Q2,成像在地面的投影分别为Q3和Q4,灰度值存在差异。

图3 基于双目相机逆投影的障碍物检测原理

定义Pl(xl,yl)和Pr(xr,yr)为进行坐标补偿后的两个IPM图像坐标,则它们的差分图为

对差分图进行二值化处理,并设置阈值,突出目标区域:

式中:B(x,y)为左右目逆投影差分后的二值图;τ为二值化的阈值。B(x,y)=0表示地面,B(x,y)=1表示非地面的障碍物。

然而,二值化处理后图像通常会有很多噪声点,需要对二值图进行后处理,进一步区分出平面上和平面外的点。对此,提出使用开运算的形态学滤波方法消除噪点:

式中:⊖为腐蚀;⊕为膨胀;S为核函数。本文中核函数根据双目相机基线长度d设置,即S≤d。

1.3 车位占位检测与障碍物位置计算

由式(9)可知,(x,y)在G(x,y)=0时为平面上一点,在G(x,y)=1时为非平面上一点。由此,可以通过车位区域非平面点的多少来判断该车位是否被占用。为获取车位的占用信息,首先需要确定停车位的位置,本文中采用文献[17]中的方法对车位线进行识别,获取车位的位置信息,同时设置为ROI。

通过式(10)可以快速计算ROI中二值图像上的像素数,并计算非平面像素的比例,其中(x,y)为ROI区域内的坐标。通过设置比率阈值,最终可以确定一个停车位是否被占用。另外,可以在一个停车场上设置多个ROI,以获得更准确的占用检测结果。

在ROI区域遍历G(x,y)=1的点,将与相机最近的点定义为障碍物位置计算的起点。通过平面两点的距离公式得到地面上的实际距离L1。由于双目相机视场角的影响,如图2(a)所示,逆投影的起始位置并不能从原点O开始,所以逆投影起始点与相机还有一段距离L2,故最终计算障碍物到相机的距离L=L1+L2。

在BIPM算法获取的二值差分图中,可直接获取参考平面(地面)的物理坐标信息,完成障碍物的位置计算。在停车的场景下,检测区域一般较小(3个车位左右,范围约800 cm×600 cm)。在该检测范围内,基于逆投影方法(本质上是单视图方法)可以获得较好的定位精度[19]。

2 试验结果与分析

试验所用的双目相机如图4所示,相机的安装高度为120 cm,基线长度为120 mm。通过棋盘格标定获取双目系统内外参数。其中双目相机内参数如表1所示,H、V、D分别表示相机水平、垂直和对角的视场角。相机的俯仰角为86°。通过标定结果,可以完成双目图图4像逆投影,生成BIPM差分图。

图4 车载双目相机及标定

表1 双目相机参数

试验过程分为两个阶段:障碍物检测和车位占用分析与测距。在障碍物检测阶段,由于相机视场角的影响,试验根据检测车位的大小,指定800 cm×600 cm的目标区域来进行占位检测。逆投影的最近点设置在相机前方20 cm处。在差分图二值化过程中,考虑到图像处理过程中噪声点的影响,采取[5,5]核对二值图像进行形态学滤波。在测距与车位占用分析阶段,将每个停车位根据距离设置3个ROI网格,并通过网格中障碍物像素点的占比来确定该停车位是否为空,同时获取车位中各个障碍物到相机的距离。

本文中分别在地下停车场和室外停车场两种场景进行实验,且均在相同的计算机环境下进行测试,其配置为CPU:Intel Core i7-8700 3.2 GHz,内存:16 GB,开发环境为Visual Studio 2017 C∕C++。

2.1 地下停车场试验结果与分析

图5 显示了地下停车场两个较为典型的场景。第一行为双目相机左右目原始图,第二行为对应的IPM图像,通过外参标定估计两个图像之间的运动,得到第三行左图所示的BIPM差分图。通过二值化和形态学滤波做进一步处理,生成第三行右图所示的二值差分图。从图中可以观察到,障碍物的区域显示为白色,而地面显示为黑色。试验中,在停车场中从远到近设置了3个相等大小的ROI,每个ROI的阈值为6%。

图5 地下停车场占位检测

试验车沿着地下停车场的封闭路径行驶,共获取78个停车位信息,最终的检测结果如表2所示。第2列中显示,有18个车位为空位,56个车位停放有车,2个车位有路障,其余2个车位有车位锁。表2的第3列显示了错误检测的次数,在78个停车位中,本文提出的方法成功检测到其中77个,检测精度为98.7%。

表2 地下停车场占位检测结果

2.2 室外停车场试验结果和分析

试验二选择某大学的室外停车场作为试验场景。由于室外场景环境变化较大,存在更多的变量,使得停车位检测较于地下停车场更具挑战性。在试验中,测试车沿着室外停车场的任意路径行驶,并使用本文算法进行车位占用检测。共检测有40个停车位,其中15个车位为空位,21个车位停放有车,4个车位有路障。部分检测结果如图6所示。

图6 露天停车场占位检测

在室外停车场试验的统计结果如表3所示。在15个空车位和被车辆占用的21个车位中,均只有1个错误检测,而有路障的停车位检测精度为100%,平均检测精度为95.0%。试验结果进一步证明了本文中提出的BIPM方法对停车位占用检测的有效性和准确性。

表3 室外停车场占位检测结果

2.3 试验结果对比分析

为体现文本算法在时间、准确率、定位精度上的优越性,现与常用的3种算法进行对比,包括基于三维重建的停车位占用检测[6]、基于环视图的停车位占用检测[12]和基于深度学习的停车位占用检测[14],结果如图7所示。

图7 对比算法停车位占位检测结果

文献[6]中提出基于三维重建的方法,通过深度信息识别车位上的障碍物,该方法在近距离检测时定位精度较好,但深度图计算量过大,不满足实时性的需求。文献[12]中提出通过环视监控系统和相关空位分析算法,使用四路相机拼接的AVM图像,获取停车位的占用信息。由于环视系统相邻相机公共视野的影响,在图像拼接时只保留了鸟瞰图的一部分,无法识别整个车位,所以对于停车靠后的车位,会误检为空。文献[14]中提出深度学习在目标识别方面的优越性,将其应用于停车场的车位检测。类比于文献[14],本文中使用YOLO-v3网络进行试验。该方法在特定目标的识别上有很高的准确率,但在识别路障、车位锁等障碍物时准确率较低,并且该网络生成的bounding box的位置对障碍物测距的精度有很大的影响。

本文算法与这3种方法使用相同的数据集,综合检测结果如表4所示。从给出的对比算法的检测时间、准确率、定位精度的结果可以看出,基于环视图的方法(文献[12])在检测时间和定位精度方面表现较好,但由于环视系统的局限和场景的要求,导致其准确率较差;而基于深度学习方法(文献[14])耗时相对较长,并且由于bounding box的不确定性导致定位精度不足;基于三维重建的方法(文献[6])在定位上有一定的优势,但检测时间太长。由此可见,本文算法在检测时间、准确率和定位精度方面与对比方法相比有较大优势。

表4 各方法对比结果

3 结论

本文中将双目系统用于停车场车位检测,提出了一种基于双目相机逆投影变换的停车位检测方法,通过对左右目相机外参标定,将双目相机逆投影变换在同一坐标系,获得差分图像并进行车位占用检测,并通过双目相机逆投影差分图,计算障碍物与相机的距离。试验结果表明,车位检测算法准确率在95%以上,并且本文中提出的测距模型能有效测量纵向6 m、横向8 m以内的车辆距离,对不同停车场环境的障碍物测距误差在2%以内,且算法的平均处理速度达到了18帧∕s,实时性能好,鲁棒性高,满足智能车系统对算法实时性和准确性的要求。

猜你喜欢
双目差分障碍物
采用双目视觉和自适应Kalman滤波的作物行识别与跟踪
一类分数阶q-差分方程正解的存在性与不存在性(英文)
霜 降 苏美玲
基于双目视觉的机器人定位与导航算法
高低翻越
一个求非线性差分方程所有多项式解的算法(英)
机械手的双目视觉定位抓取研究
赶飞机
月亮为什么会有圆缺
一类caputo分数阶差分方程依赖于参数的正解存在和不存在性