基于多台飞行时间相机的建图与结构语义的三维库位检测
2019-05-09赵君峤张兴连冯甜甜李建峰
赵君峤, 张兴连, 冯甜甜, 李建峰
(1.同济大学 电子与信息工程学院,上海 201804;2.同济大学 测绘与地理信息学院,上海 200092)
自动泊车系统控制汽车自动寻找库位并泊车入库而无需人工控制[1],该系统能够大幅提高当前辅助泊车系统的自动化水平,并为解决泊车的“最后一公里”难题、提升用户出行舒适度提供技术保证,因此成为当前无人驾驶的研究热点[2-3].自动泊车系统的关键在于库位的检测,传统的库位检测方法往往局限于二维,而在复杂的室内停车场中,垂直方向上的复杂结构(如管道、横梁等)也限制了不同车型的适停性,因此对三维库位的检测将大幅提升自动泊车系统的安全性.
目前,库位检测方法主要通过距离探测(如利用超声波雷达进行距离探测[4-5]),以及基于对库位视觉结构特征的提取(如利用环视相机提取结构特征[6-7])来实现.除此之外,还有基于局部环境重建的库位检测方法,如利用激光雷达进行局部环境重建[8].超声波雷达测距短,角度分辨率低且视场角小,适用于车辆之间空区域的探测,难以实现对较大规模停车场环境的库位信息提取.基于环视相机可对库位的点、线特征进行提取和追踪,从而实现对结构化库位的识别,借助相机搭建超声波-视觉系统可进一步提升检测精度[9].虽然深度学习算法的发展使基于相对库位的提取方法的精度大大提升[10-13],但是容易受到如线型、划定方式等不同库位特征的限制,难以实现障碍物的提取.激光雷达尤其是三维激光雷达能够精确地对环境中障碍物等信息进行建模[14],但成本高昂,难以实用化.相比之下,飞行时间(ToF)相机有着较高的测距精度,能同时获得彩色与深度数据(RGB-D),并且性价比高,因此成为室内建图、结构重建等领域的研究热点[15-16].然而,由于ToF相机在探测范围和视场方面的局限,目前尚未见基于ToF相机的室内停车场环境感知研究,以及基于该类传感器的三维库位自动提取.本文提出基于多台ToF相机替代车载超声波雷达与环视相机的方案,通过对单帧多台ToF相机标定来获得单帧拼接点云,随后利用视觉里程计融合多帧拼接点云对室内停车场局部场景进行实时建图,同时在局部地图上对点云进行聚类与分割,提取障碍物分布与停车场墙面、车库顶面、地面等结构语义,在语义限定的范围和方向上结合库位模型实现对三维库位的实时检测.本文方法的流程如图1所示.
图1 本文方法流程
1 多台ToF帧间融合建图与结构提取
为了突破ToF相机的水平视场角局限,以及模仿车载环视相机布置方案,提出布设多台不同朝向的ToF相机对场景进行联合观测.通过设备间相对位姿的标定结果,将多台ToF相机点云拼接成广角点云,再采用RGB信息构建视觉里程计,融合多帧点云进行局部建图,构建停车场环境,并从中提取结构语义,为三维库位的检测提供约束及辅助.
1.1 多帧RGB-D融合的地图重建
1.1.1基于视觉里程计的帧间相机运动估计
视觉里程计通过不同时刻拍摄的图像来估计相机的运动.在ToF相机获取点云的同时获得环境的RGB图像,通过对邻近帧获得的RGB图像进行特征点匹配的方法,计算相邻帧间的相机运动.由于地下车库光照情况复杂,因此选用较为鲁棒的SIFT(scale-invariant feature transform)算法[17]提取RGB图像上的特征点并进行匹配.
(1) 特征点的匹配
对于相邻帧的RGB图像,分别提取图像的SIFT特征点并使用最近邻算法进行匹配.由于特征点匹配结果是计算相邻帧间相机位姿变化的基础,因此在匹配结果中,删除大于n倍最小特征距离的匹配,以确保特征点匹配结果的可靠性.
(2) 变化矩阵的计算
相邻帧间相机的位姿变化常用变化矩阵的形式表达,变化矩阵T由旋转矩阵R以及平移向量t组成.旋转矩阵R由x、y、z轴的旋转角α、β、γ计算并确定,平移向量t由两坐标系原点的位置差值(Δx,Δy,Δz)组成.通过使用深度信息恢复的多对匹配特征点的三维坐标与图像坐标,最小化重投影误差来计算相机外参变化矩阵.使用三维点投影的方式计算位姿变换,可保证平移向量的尺度相同.最终由获得的最优参数估计组成变换矩阵T,作为视觉里程计的结果.
1.1.2多帧点云融合
前后帧间坐标系中的独立点云,通过变换矩阵T进行融合,建立局部地图.两坐标系间通过式(1)进行转换,如下所示:
(1)
式中:(x1,y1,z1)和(x2,y2,z2)分别为变换前后的点云坐标值.
1.2 结构语义提取
地下停车场环境中的墙面、车库顶面、地面等结构语义限定了库位的范围和方向,因此对该类结构进行提取并加以语义判别,可为库位检测提供必要约束.
1.2.1结构提取
由于多数室内停车场环境内的结构语义由平面构成,并具有类内结构曲率变化小、类间法向量方向突变大的特点,属于典型的阶梯形平面,因此选择以法向量、曲率平滑度、角度阈值等基本平面属性作为判定条件的区域生长算法.该算法能快速且准确地提取曲率变化小的结构平面聚类.部分实验数据和结果如图2所示.图2c为车库环境的平面聚类结果,图中不同灰度代表不同的点云聚类,颜色最暗为边界离群点,不纳入聚类中.考虑到深度数据噪声较多,选择RANSAC(random sample consensus)方法[18]提取平面结构的参数.根据点云数据的平面聚类结果,提取平面与线结构参数,对边界线的平滑及融合优化后得到的结构地图如图2d所示.
a 环视全景图
b 原始点云
c 区域生长平面聚类结果
d 结构地图结果
Fig.2 Region growing and structure extraction results of indoor parking lot environment
1.2.2语义判别
利用平面法向量方向、距原点距离、航向方向等特征,采用决策树方法对停车场局部场景中的平面结构进行语义分析,将聚类平面分为墙面、车库顶面、地面及其他结构平面,语义决策树如图3所示.
2 基于结构语义的库位检测
首先利用聚类分析方法在构建好的局部地图上进行障碍物检测,获得障碍物的分布.由于库位方向通常垂直或平行于墙面,故结合场景的结构语义分析结果,确定障碍物的投影方向,以寻找障碍物间的二维空位.最后,基于二维空位位置搜索垂直方向上的限定高度空间,以探测三维库位.
2.1 障碍物检测
图3 结构语义决策树
首先根据结构语义分析的结果,将地面聚类点及高于1.8 m(机动车库位最小高度[19])的点云从局部地图中滤除.剩余点云作为车辆通行障碍物检测兴趣区,滤除的高度区间点云用于检测库位限高.为了检测具有不同形状与大小的障碍物目标,选择欧式聚类来获得环境内的障碍物分布,以几何距离作为判定条件,将间距小于阈值的对象点合并作为聚类集合.在聚类结果中设置障碍物聚类的最少点数,以防止点云地图中的噪声点导致的障碍物错检.
2.2 二维库位检测
为寻找库位的二维位置,首先将第2.1节中障碍物检测兴趣区的聚类三维点云结果正投影至二维水平面,用于搜索空位区域.由于库位常垂直或平行于墙面,同时停车场道路方向常垂直或平行于库位,因此二维库位的检测方法基于如下假设:
(1) 若局部停车场环境中无墙面,则将点云沿道路(即当前车辆航向)垂直方向投影以检测库位,如图4所示的虚线投影矩形.
(2) 若局部停车场环境中存在墙面,则将点云投影至距离最近的墙面上以检测库位,如图4所示的实线投影矩形.
为寻找二维空间中表征库位的空位区域,提取障碍物聚类的最小包络矩形,并将其按照上述假设进行投影,合并重叠区域矩形.取相邻障碍物矩形间距大于2.2 m(库位最小标准[19])的空位矩形区域作为可停车区域,空位数的计算方法如下所示:
(2)
2.3 三维库位检测
图4 投影方向示意图
在已有二维库位检测的基础上,探测垂直方向上的可泊车空位区域,获得三维库位.基于二维库位的平面位置,以ΔD作为步长向车库顶面方向增长,形成三维包围盒.在三维包围盒内包含的点云个数超过设定阈值时视作触碰到障碍物,结束增长,并记录库位垂直方向最大高度Zup;取三维点云平面分割结果中地面分割点的平均高度作为地面高度Zf,三维库位的限高由下式计算得到:
Z=Zup-Zf
(3)
最终取二维库位与垂直限高组成三维包围盒,作为可停三维库位.
3 结果与讨论
Kinect-V2是微软公司生产的一款高性价比ToF相机,测量性能满足实验需求,因此选用Kinect-V2相机搭建实验平台,设备的参数和精度可参考文献[20].实验中使用手推车模拟车辆平台,使用4台Kinect-V2相机采集RGB-D数据,固定方式如图5所示.平台相机间的相对位置关系通过人工标定方式确定.整体点云坐标系以1号相机光心为原点,Y轴平行于航向,X轴垂直航向水平向右,Z轴垂直向上,组成右手系,如图5坐标系所示.单帧拼接点云如图6所示,图中4种灰度对应4个相机获得的点云.平台所用处理器为Intel Core i7-3,30 GHz.停车场环境为同济大学体育馆地下停车场.
3.1 库位探测
3.1.1障碍物识别
Kinect-V2相机测距范围为0.5~12.0 m,距离检测平均精度为2~4 mm.为提高处理效率,采用边长为0.15 m的栅格降采样.障碍物聚类与对应的最小包络矩形结果如图7所示,分别为有墙面和无墙面场景.
图5 多台ToF硬件测试平台与传感器编号
图6 单帧拼接点云
a 无墙面场景b 有墙面场景
图7 障碍物聚类与对应的最小包络矩形结果
Fig.7 Obstacle clustering and corresponding minimum bounding rectangle
3.1.2库位检测
在有墙面和无墙面2种场景下分别进行实验,将障碍物最小包络矩形(见图4)投影至特定方向后,二维库位检测效果如图8b所示.图8b中,虚线矩形为障碍物范围,实线矩形为空位范围.图8d为三维库位检测与语义结构建图结果.库位识别率如表1所示.为评价三维库位检测的精度,通过实际测量方式获得各库位的宽度和高度以及障碍物大小.绝对差值计算式如下所示:
(4)
式中:Wi、Hi分别为本文方法检测出的第i个车位的宽度、高度;Li为本文方法检测出的第i个障碍物的宽度;wi、hi、li分别为停车场实地测量的对应车位的宽度、高度和障碍物宽度真值.对绝对差值统计平均差值与标准差,结果如表2所示.
a 环视全景图
b 二维空区域位置探测结果c 三维空区域探测结果与点云
d 三维库位划分与结构地图结果
数据分类库位总个数检出数识别率/%有墙面898898.88无墙面272281.48合计11611094.83
表2 车位宽度、高度与障碍物宽度检测精度
Table.2 Precision of detected width and height of parking slots and width of obstacles
cm
实验中,特征点提取与匹配的图像源分辨率为512×424像素,算法处理的局部地图点云数量约为7万个.算法各主要部分耗时如表3表示.算法总耗时为0.301 s,检测帧率为3~4帧·s-1.
表3 算法耗时分析
3.2 实验结果分析
综合库位检测实验结果,库位识别综合精度为94.83%,在有墙面作为结构语义辅助时,检出率可达98.88%;检测精度上,障碍物宽度检测精度为30.0 cm,含点云降采样与建图漂移误差.库位宽度识别精度为14.4 cm,高度识别精度为12.4 m.由于移动方式导致航向上点云漂移略大于纵向,故宽度识别精度略低于高度.在无墙面的情况下,因车库照明光源等因素的影响,Kinect-V2相机在部分区域探测到大量噪声点而误判为含有障碍物,导致库位漏检.在有墙面环境下的漏检主要因视觉里程计累积的漂移误差,导致库位宽度小于阈值而被过滤.
与现有库位检测方法相比,本文方法使用局部三维观测进行融合建图,可进行较大范围的三维环境感知,而传统方法无法对高度进行测量.虽然局部建图的误差在一定程度上降低了检测精度,但是其可对较大范围环境进行车位探测,同时仍满足实际泊车中分米级的检测精度需求.
4 结语
使用多台ToF相机作为传感器,利用多帧融合建图与结构语义提取,在室内车库环境中可实时且高精度地进行障碍物识别与三维库位探测,弥补了现有方法中无法量测库位限定高度的缺限,同时可对超越传感器感知范围的环境障碍物进行检测.对障碍物、库位的识别率和检测精度均可满足自动泊车系统的实用需求,证明了使用多台ToF相机替代现有传感器方案的可行性.在未来的工作中,可进一步添加惯性导航设备,提升算法的精度和效率.此外,当前的检测假设无法推广到异型库位,需进一步扩充与优化.