APP下载

基于全景图像与人机交互的自动泊车系统

2023-06-23曹立波岳鹏宇张正阳刘建国黄梅珊

汽车技术 2023年6期
关键词:标志点泊车全景

曹立波 岳鹏宇 张正阳 刘建国 黄梅珊

(1.湖南大学,汽车车身先进设计制造国家重点实验室,长沙 410082;2.广汽乘用车有限公司,广州 511400)

主题词:自动泊车 车位检测 路径规划 路径跟踪

1 前言

自动泊车系统(Automatic Parking System,APS)能够自动寻找车位并提前规划路径自主将车辆驶入,解决狭小车位的泊车问题,提升驾驶体验,减少事故的发生。

近年来,国产汽车品牌逐步在其高档汽车上搭载泊车辅助系统:2018年,百度基于Apollo平台,在一辆搭载6 个摄像头和12 个超声波雷达的共享汽车上完成了自动泊车试验,利用布置在车身上的大量传感器完成对周围环境的探测,进而规避行人和障碍物,同时可以实现停车位自动检测、自主导航、自动泊车入位和自动还车功能。2019 年,小鹏推出搭载有多达20 个传感器的车型,可以完成70%场景下的自动泊车,应对有线框和无线框的垂直车位、平行车位以及有线框的斜车位。

目前,自动泊车技术依然存在一些局限性,例如在泊车过程中难以应对突然出现的行人和车辆,在复杂的场景中难以精确识别车位中的各种障碍物,尤其是低矮物体、电线或洞穴。相对完善的自动泊车系统大多配置十余个摄像头、雷达等各种传感器及高算力芯片,成本高昂,影响了自动泊车功能的普及与应用,所以,研发成本低廉、效果稳定的自动泊车系统成为现实之需。

泊车过程可以分为环境感知与泊车控制2 个部分。环境感知用于搜索可用的停车位,判断车辆是否停到合适的泊车位置,并在泊车过程中检测障碍物。泊车控制包括路径规划、路径跟踪和控制车辆移动。在环境感知过程中,驾驶员通常可以轻松判断车位是否可用,故由驾驶员完成车位最终判定和周围环境的监测,车辆实现泊车过程控制,不失为一种明智的选择。

基于以上分析,本文提出基于全景图像与人机交互的自动泊车系统,采用环视图像系统的4个摄像头配合低成本控制器完成自动泊车过程。

2 车位识别

2.1 车位检测

近年来,基于全景图像的视觉车位检测方法可大致分为基于线的方法[1-3]、基于标志点的方法[4-6]和基于语义分割的方法[7-8]。基于线的方法都是基于原始线特征,因而对真实复杂的环境不具有鲁棒性。基于语义分割的方法需要进行后处理才能获得车位,既耗时又不准确。相比较而言,基于标志点的方法更适于实际使用。

本文车位识别采用纯视觉方案,基于空闲停车位网络(Vacant Parking Slot-Net,VPS-Net)进行车位检测和车位占据分类[9],VPS-Net的模型结构如图1所示。

图1 VPS-Net结构

YOLOv3[10]是优秀的多目标检测器。VPS-Net在车位检测阶段,将全景图像作为输入,利用YOLOv3同时检测图像中的“T型”和“L型”标志点及车位的头部并直接分类为直角、锐角或钝角头部,标志点和头部的示例如图2所示。

图2 不同类型车位头部和标志点示例

考虑到实际应用中对车位检测实时性的要求,需要在检测速度与精度之间达到较好的平衡。根据Hui[11]的研究,使用MobileNet 的单步多框目标检测(Single Shot MultiBox Detector,SSD)是在检测速度和准确率之间取得均衡的最优方案。

因此,本文对VPS-Net 进行改进,使用SSDMobileNet v1替换原网络中车位检测部分的YOLOv3网络,相比较而言,SSD-MobileNet v1 在满足较小精度损失的前提下具有更快的推理速度。

2.2 完整车位预测

本文使用文献[9]中的方法对检测到的车位标志点与车位头部进行配对,同时预测完整的车位。

2.2.1 车位标志点配对

假设P1、P2为车位的2个标志点,矩形B为覆盖车位头部的检测区域,B中检测到的车位标志点存在4种情形,如图3所示。

图3 车位标志点与检测区域的关系

对于图3a的情形,P1、P2即为2个成对的标志点。

对于图3b 和图3c 的情形,如果同时满足车位头部的预测置信度大于95%,则Pi的另一个配对车位标志点的坐标为:

式中,bj为B的4个顶点之一的坐标;~bj为bj的对角顶点坐标;Δw、Δh为控制B的宽、高的超参数。

对于图3d的情形,先计算B的4个顶点区域的归一化平均强度(Normalized Average Intensity Values,NAIV),将含有最大NAIV的一组对角顶点选为B中的成对标志点:

式中,Vi为以第i个顶点为中心,大小为10像素×10像素的区域Ri的NAIV;max(I)为图像I的最大强度;N、(x,y)分别为Ri区域的像素数量及其坐标。

如果区域B中含有多于2 个的标志点,则最接近B的对角线顶点的2个标志点为配对标志点。

配对完成后需要对车位类型进行判断。垂直车位和平行车位的头部均为直角头部,但是2种车位的2个标志点间的距离不同,如果标志点间的距离小于阈值t,则车位类型为垂直车位,反之为平行车位;如果检测到的车位头部为钝角或锐角类型,则车位类型为斜车位。

2.2.2 完整车位预测

在全景图像中,大多数停车位并不能完整显示,因此,需要对完整的车位进行预测。完整车位可由4个顶点表示,P1、P2为已经配对的2 个车位标志点,另外2 个标志点P3、P4可计算为:

式中,αi、di分别为停车位的角度和深度。

计算出P3、P4后还须确定车位的方向,即标志点是按顺时针排列或逆时针排列,此时,可以通过计算车辆自身形成的矩形框与车位形成的矩形框之间的交并比(Intersection Over Union,IOU)来判断。正常行驶过程中,车辆一定不会与车位重叠,则IOU 为零,如图4 所示;在泊车过程中,针对垂直车位或斜车位,车辆从入口线倒入车位,则车位方向向下,如图5 所示。如果是平行车位,入口线的斜率为正,则车位位于车辆的右侧,否则位于左侧,如图6所示。IOU的计算方法为:

图4 正常行驶中车辆与车位的位置关系

图5 泊车过程中判断垂直车位(斜车位)方向的示意

图6 泊车过程中判断平行车位方向的示意

式中,A1为车辆自身形成的矩形框;A2为车位形成的矩形框。

2.3 车位占据分类

车位占据分类是一个二分类问题,主要判断车位状态是否为空。经典的基于机器学习的方法使用人工设计的特征来表示停车位样本,然后训练支持向量机(Support Vector Machine,SVM)分类器模型实现分类。基于深度学习的方法直接使用停车位分类样本来训练深度卷积神经网络(Deep Convolutional Neural Networks,DCNN)模型,可以应对光照变化和不同环境的影响。VPS-Net[9]基于AlexNet[12]设计了DCNN 模型,由于模型加速时底层接口NNAPI(Android Neural Networks API)不支持只对图像的一条边进行填充,所以本文对VPSNet的分类网络进行了少量修改,网络结构如表1所示。

表1 分类网络结构

使用预先采集并标注的车位分类数据集对网络进行训练,在训练迭代过程中网络会逐渐学习图像的特征,并输出图像是否为空的概率。分类过程为:将上一步检测到的车位从全景图像中裁剪,并经过透视变换将图像统一正则化处理为120 像素×54 像素;将图像输入训练好的分类卷积神经网络,输出车位的状态。

3 路径规划与跟踪方案

在全景图像生成过程中,可以很容易获得从全景图像坐标系到以车辆为中心的世界坐标系的转换矩阵。这样,一旦检测到空闲车位,即可根据转换矩阵求出其实际位置,并发送到路径规划模块。路径规划模块负责求解车辆到车位的最佳路径;当完成相应的路径规划时,需要控制车辆按照既定的路线行驶,正确地停在终点,且保证车辆的位姿与规划的位姿一致。此时需要路径跟踪的参与,实时调整前轮转角与车速,控制车辆按照规划好的路径行驶。

3.1 路径规划

本文采用圆弧与直线相连接的方法对3 种类型的车位进行泊车路径规划。为了方便不同车位的路径规划以及尽量减少对泊车空间的需求,针对3种不同的车位均以最小转弯半径进行路径规划,保证在正常情况下能够实现不同车位的泊车。对于垂直车位和斜车位,根据车辆与车位入口线的不同横向距离提出了不同的泊车路径规划。对于平行车位,同时考虑车辆与车位入口线的不同横向距离和车位的不同长度,本文提出了两步式和四步式泊车路径规划方法,如图7~图10所示。

图7 垂直车位路径示意

图8 斜车位路径示意

图9 两步式平行泊车路径示意

图10 短平行车位下的四步式平行泊车路径示意

3.2 路径跟踪

模型预测控制[13](Model Predictive Control,MPC)作为一种基于模型的闭环控制策略,具有良好的控制效果和较强的鲁棒性,能够在一定程度上克服过程的不确定因素,处理过程中的各种约束。MPC 系统的结构如图11所示。

图11 模型预测控制原理

路径跟踪控制器需要对MPC的控制器模块进行重新设计,该模块结合了预测模型、目标函数和约束条件进行最优化求解:

a.泊车控制器的预测模型。首先需要将低速状态下的车辆运动学模型线性化,以应用于线性时变模型预测控制算法。线性化方法有很多种,主要分为精确线性化和近似线性化。精确线性化一般用于具体系统,不具备普遍适用性。近似线性化具有较强的适用性,使用较为简单。本文选用近似线性化的方法。

b.泊车控制器的目标函数。为了对每个采样周期进行控制增量的限制,避免被控系统的控制量发生突变,本文采用软约束方法[14]。

c.泊车控制器的约束条件。为了实现路径的准确与平稳跟踪,需要对车辆的控制量和控制增量进行约束。控制量约束和控制增量约束表达式分别为:

式中,u(t+k)为(t+k)时刻控制系统的输出,包含前轮等效转角和后轴中心速度;umin(t+k)、umax(t+k)分别为(t+k)时刻系统控制量的最小值和最大值集合;Δu(t+k)为(t+k)时刻的系统控制增量;Δumin(t+k)、Δumax(t+k)分别为(t+k)时刻系统控制增量的最小值和最大值集合;Nc为控制时域。

4 系统工作流程

如图12 所示,基于全景图像与人机交互的自动泊车系统的主要工作流程为:

图12 基于全景图像与人机交互的自动泊车流程

a.驾驶员启动自动泊车系统后,车辆在驾驶员的操作下开始在全景图像中自动搜索停车位。

b.搜索到可能的停车位时,系统在全景图像中通过人机交互界面提示驾驶员确认是否可以停车。

c.驾驶员确认可以停车后,车辆进行自动泊车路径规划并开始自动泊车,同时系统在全景图像中提示驾驶员注意观察车辆周围环境。

d.遇到危险时,驾驶员踩下制动踏板立即中止泊车,系统通过人机交互界面询问是否继续泊车。

e.驾驶员判断危险解除后,确认继续泊车,系统将继续完成后续操作。

5 实车验证

5.1 实车平台

本文使用一辆装有全景影像系统的乘用车验证所提出系统的可行性,如图13 所示,其在左右后视镜、车头和车尾各装有1个鱼眼摄像头,用于采集车辆周围的环境并生成全景照片。

图13 实车试验平台

5.2 算法移植

本文使用如图14所示的NXP i.MX 8M Plus EVK作为实车运算平台,其带有的神经处理单元(Neural Processing Unit,NPU)运行速率最高可达2.3×1012次/s,可以大幅加快深度学习模型的推理速度,从而保证系统的实时运行。

图14 运算平台

本文使用前文所提出的实车平台采集了训练数据。用于车位检测模型训练的车位数据包括6 种环境条件,即室内、室外白天、室外夜晚、室外雨天、室外阴影和室外路灯,3 种地面条件,即水泥路、柏油路和瓷砖路,3 种车位类型,即垂直车位、平行车位和斜车位,足以覆盖绝大多数的泊车环境。将车位数据集中的各车位裁剪制成了车位分类数据集。其中,车位检测数据集含有9 827 张训练照片、3 962 张测试照片,车位分类的数据集含有8 921张训练照片和2 147张测试照片。

在装有NVIDIA TITAN Xp 显卡的计算机上进行模型训练,量化后移植到开发板。深度学习模型的量化可以大幅减小模型占用的存储空间,同时提高计算速度。为尽量减少模型量化造成的精度损失,本文在训练时采用量化感知训练。图15所示为算法训练并执行量化的步骤。

图15 模型量化流程

首先,在模型训练阶段,量化感知训练会在网络可识别的某些操作内嵌入伪量化节点,统计训练时流经该节点的最大、最小值以备模型量化时使用。伪量化节点会参与模型训练的前向推理过程,同时获得量化损失以减少模型量化造成的精度损失。

网络训练收敛后,将训练好的网络参数与模型结构使用冻结工具(freeze_graph)冻结为一个带参数的模型文件,最后使用TOCO 工具将模型量化为uint8 并转换为NPU可以加速的tflite文件。

5.3 结果分析

使用上述实车平台试验验证本文所提出的系统的泊车效果,结果表2 所示。验证结果表明,该系统可以可靠地完成自动泊车。

6 结束语

本文提出了一种基于全景图像与人机交互的自动泊车系统:使用SSD-MobileNet v1进行车位头部和标志点检测,再推理出完整车位,创建了一个分类网络用来判断车位是否被占用;使用圆弧-直线法进行路径规划,使用模型预测控制进行路径跟踪;基于NXP i.MX 8M Plus EVK 运算平台完成了算法开发,使用量化感知训练在保证尽量减小量化损失的前提下提高模型推理速度。

本文提出的自动泊车系统将驾驶员对环境的感知和判断加入到自动泊车过程中,可以大幅减少自动泊车系统所用传感器的数量,在降低成本的同时保证自动泊车效果。

猜你喜欢

标志点泊车全景
基于插电式混动汽车的自动泊车控制策略
基于MATLAB的平行泊车路径规划
基于CarSim的平行泊车仿真分析
戴上耳机,享受全景声 JVC EXOFIELD XP-EXT1
Arrive平台新增智能泊车推荐引擎 帮助找到最佳泊车地点
标志点定向系统几何精度因子的计算方法
一种圆形编码标志点的设计及解码算法研究
全景敞视主义与侦探小说中的“看”
从5.1到全景声就这么简单 FOCAL SIB EVO DOLBY ATMOS
全景搜索