自动泊车端到端算法 ParkingE2E 介绍

01 算法介绍

自主泊车是智能驾驶领域中的一项关键任务。传统的泊车算法通常使用基于规则的方案来实现。因为算法设计复杂,这些方法在复杂泊车场景中的有效性较低。

相比之下,基于神经网络的方法往往比基于规则的方法更加直观和多功能。通过收集大量专家泊车轨迹数据,基于学习的仿人策略方法,可以有效解决泊车任务。

在本文中,我们采用模仿学习来执行从 RGB 图像到路径规划的端到端规划,模仿人类驾驶轨迹。我们提出的端到端方法利用目标查询编码器来融合图像和目标特征,并使用基于 Transformer 的解码器自回归预测未来的航点。

我们在真实世界场景中进行了广泛的实验,结果表明,我们提出的方法在四个不同的真实车库中平均泊车成功率达到了 87.8%。实车实验进一步验证了本文提出方法的可行性和有效性。

输入:1.去完畸变的 RGB 图 2.目标停车位

输出:路径规划

论文精读博客参考链接:https://blog.csdn.net/qq_45933056/article/details/140968352

源代码:https://github.com/qintonguav/ParkingE2E

02 算法部署后的 demo 效果展示

03 实现过程

3.1 算法整体架构

多视角 RGB 图像被处理,图像特征被转换为 BEV(鸟瞰图)表示形式。使用目标停车位生成 BEV 目标特征,通过目标查询将目标特征和图像 BEV 特征融合,然后使用自回归的 Transformer 解码器逐个获得预测的轨迹点。

3.2 训练过程

注:训练数据集是去完畸变的图像,在数据处理时需要对 4 路鱼眼相机进行标定,获取相机内外参,对鱼眼图进行去畸变,去完畸变的图像会被制作成训练集

获取去完畸变的 RGB 图像和目标停车位做为输入:

(去完畸变的 RGB 图像示例)

目标停车位坐标示例:

{
"x": 83.93134781878057,
"y": -7.080006849257972,
"z": -7.404438257656194,
"yaw": 20.95510451530132
}
  • 使用 EfficientNet 从 RGB 图像中提取特征;
  • 将预测的深度分布 ddep 与图像特征 Fimg 相乘,以获得具有深度信息的图像特征;
  • 将图像特征投影到 BEV 体素网格(特征的大小为 200×200,对应实际空间范围 x∈[−10m, 10m], y∈[−10m, 10m],分辨率为 0.1 米)中,生成相机特征 Fcam。

BEV 视图示例:

  • 使用深度 CNN 神经网络提取目标停车位特征 Ftarget
  • 在 BEV 空间,将相机特征 Fcam 和目标停车位特征 Ftarget 进行融合,获取融合特征 Ffuse
  • 使用 Transformer 解码器以自回归方式预测轨迹点

预测的轨迹序列示例:

[[-0.17014217376708984, -0.010008811950683594], [-0.3298116556863353, -0.011956165423615472], [-0.4854376561367579, -0.02052420170634236], [-0.6337416331734281, -0.03509474854381417], [-0.774850889165686, -0.05409092178920946], [-0.9106318371186677, -0.07662342910150008], [-1.0429499912911764, -0.10220288211346742], [-1.1730293341546085, -0.130403150090076], [-1.3014671109093938, -0.16081194272771432], [-1.4284175031869575, -0.19315076247807056], [-1.5537739117230407, -0.22739195648381574], [-1.6773593831451739, -0.2637573983721455], [-1.7991250198403412, -0.3025803813592571], [-1.9192866870681176, -0.34410827406410627], [-2.0383187092132995, -0.3883681895794497], [-2.1567872059422366, -0.43518302389208097], [-2.275088086162824, -0.4843281463722012], [-2.393198715763861, -0.5357188397161318], [-2.5105481374226417, -0.5894858888356189], [-2.6260817537118184, -0.6458681996255287], [-2.7385546018760474, -0.7049937228225489], [-2.84701611529502, -0.7667346960596122], [-2.9513409844272736, -0.8308041149223722], [-3.0525702187102848, -0.8970783878192974], [-3.1528531887709175, -0.9658913604113011], [-3.25493913830157, -1.0379629359384206], [-3.3612681922638727, -1.1139021444876271], [-3.4725675825974993, -1.193842039192509], [-3.58588491431963, -1.2783030155644421], [-3.69307804107666, -1.3711423873901367]]

实现过程图标表示:

3.3 推理过程

  1. 在 RViz 界面软件中使用“2D-Nav-Goal”来选择目标停车位
目标停车位停车轨迹示例:
position:
x: -6.49
y: -5.82
z: 0.0
orientation:
x: 0.0
y: 0.0
z: 0.0
w: 1.0目标停车位停车轨迹示例:position:x: -6.49y: -5.82z: 0.0orientation:x: 0.0y: 0.0z: 0.0w: 1.0
  1. 获取起始位姿,将以起始点为原点的世界坐标转化为车辆坐标
起始轨迹位姿示例:
position:
x: -0.16161775150943924
y: 0.018056780251669124
z: 0.006380920023400627
orientation:
x: -0.0002508110368611588
y: 0.0008039258947159855
z: 0.010172557118261405
w: 0.9999479035823092
  1. 组合数据输入到 transformer 进行推理,预测轨迹序列
预测的轨迹序列示例:
[[-0.17014217376708984, -0.010008811950683594], [-0.3298116556863353, -0.011956165423615472], [-0.4854376561367579, -0.02052420170634236], [-0.6337416331734281, -0.03509474854381417], [-0.774850889165686, -0.05409092178920946], [-0.9106318371186677, -0.07662342910150008], [-1.0429499912911764, -0.10220288211346742], [-1.1730293341546085, -0.130403150090076], [-1.3014671109093938, -0.16081194272771432], [-1.4284175031869575, -0.19315076247807056], [-1.5537739117230407, -0.22739195648381574], [-1.6773593831451739, -0.2637573983721455], [-1.7991250198403412, -0.3025803813592571], [-1.9192866870681176, -0.34410827406410627], [-2.0383187092132995, -0.3883681895794497], [-2.1567872059422366, -0.43518302389208097], [-2.275088086162824, -0.4843281463722012], [-2.393198715763861, -0.5357188397161318], [-2.5105481374226417, -0.5894858888356189], [-2.6260817537118184, -0.6458681996255287], [-2.7385546018760474, -0.7049937228225489], [-2.84701611529502, -0.7667346960596122], [-2.9513409844272736, -0.8308041149223722], [-3.0525702187102848, -0.8970783878192974], [-3.1528531887709175, -0.9658913604113011], [-3.25493913830157, -1.0379629359384206], [-3.3612681922638727, -1.1139021444876271], [-3.4725675825974993, -1.193842039192509], [-3.58588491431963, -1.2783030155644421], [-3.69307804107666, -1.3711423873901367]]
  1. 将预测的轨迹序列发布到 rviz 进行可视化

04 评估指标

端到端实车评估:在实车实验中,我们使用以下指标来评估端到端停车性能。

关键词解释:

PSR:停车成功率

NSR:无车位率

PVR:停车违规率

APE:平均位置误差

AOE:平均方向误差

APS:平均停车得分

APT:平均停车时间

05 局限性

  1. 由于数据规模和场景多样性的限制,我们的方法对移动目标的适应性较差
  2. 训练过程需要专家轨迹
  3. 与传统的基于规则的停车方法相比仍有差距

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/829028.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

hive基础知识分享(三)

今天学习hive的最后部分!写在前面 今天继续学习hive部分的知识。 Hive中如何实现行列转换一行变多行 可以对表使用 LATERAL VIEW EXPLODE(),也可以直接使用 EXPLAIN() 函数来处理一行数据。 SELECT name, col1 FROM testarray2 LATERAL VIEW EXPLODE(weight) t1 AS col1;多行…

一文读懂远程控制协议—Remote Control Protocol

RCP是一种轻量级的通信协议,核心理念是将边缘节点控制器中MCU的协议转换功能迁移至区域控制器ZCU甚至中央控制器Central ECU中实现,从而实现针对边缘节点的远程控制,实现网络中软件集中化,边缘节点轻量化。 随着中央计算+区域控制的中央集中式架构广泛应用,10BASE-T…

2024-2025-1 20241305 《计算机基础与程序设计》第七周学习总结

作业信息这个作业属于哪个课程 2024-2025-1-计算机基础与程序设计(https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP)这个作业要求在哪里 2024-2025-1计算机基础与程序设计第七周作业这个作业的目标 1、数组与链表2、基于数组和基于链表实现数据结构3、无序表与有序表4、…

OSSFileBrowse:OSS存储桶遍历漏洞利用工具

简介: 由于经常遇到存储桶遍历漏洞,直接访问文件是下载,不方便预览,且甲方要求证明该存储桶的危害,因此该工具应运而生。 使用javafx做图形化,kkFileView做文件预览接口。 使用: 命令行运行: java -Dfile.encoding=UTF-8 -jar OSSFileBrowse-1.0-SNAPSHOT.jar或者直接点…

NetExec:新型内网/域渗透工具

免责声明 仅供安全研究与学习之用,若将工具做其他用途,由使用者承担全部法律及连带责任,作者及发布者不承担任何法律及连带责任。简介: NetExec是一款强大的自动化网络安全评估和漏洞测试工具,作为已停止维护的CrackMapExec(CME)的现代替代品,它已被渗透测试人员和红队成…

2024-2025-1 20241407《计算机基础与程序设计》第七周学习总结

这个作业属于哪个课程 [2024-2025-1 计算机基础与程序设计](https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP)这个作业要求在哪里 2024-2025-1计算机基础与程序设计第七周作业这个作业的目标 学习数组与链表,基于数组和基于链表实现数据结构,无序表与有序表,树,图…

mysql ubuntu 卸载

mysql 卸载 :引用https://developer.aliyun.com/article/1306777 在 Ubuntu 系统中,MySQL 是一种常用的关系型数据库服务器。有时,我们可能需要完全卸载 MySQL 服务器,包括所有配置文件和数据,以便重新安装或切换到其他数据库服务器。本文将详细介绍在 Ubuntu 中如何完全卸…

MySQLMonitor: 黑盒测试Mysql实时监控辅助工具

MySQLMonitor MySQL实时监控工具(代码审计、黑盒测试辅助工具)使用 1.自行打包使用 git clone https://github.com/fupinglee/MySQLMonitorcd MySQLMonitormvn clean package -DskipTests=true打开target下的jar文件即可执行 2.直接下载使用 https://github.com/fupinglee/My…

初始mysql以及创建

mysql是一个客户端服务器结构的程序 mysql的服务器是真正的本体,负责保存和管理数据,数据都是保存在硬盘上 数据库服务器上可以把很多有业务上联系的表放在一起,构成一个逻辑上的数据集合登陆mysql 打开终端输入mysql -u root -p,然后显示这个就说明mysql客户端连接到了服务…

【论文阅读笔记】Transformer——《Attention Is All You Need》

论文地址:https://arxiv.org/pdf/1706.03762 代码地址:https://github.com/huggingface/transformers目录IntroductionBackgroundModel ArchitectureEncoderLN and BNDecoderAttentionMulti-head AttentionFeed-ForwardPostion Encoding IntroductionRNN,LSTM 处理时序信息的…

Trivy : 容器安全利器

在当今数字化时代,容器化技术已经成为软件开发和部署的重要组成部分。然而,随着容器数量的增加,安全问题也日益突出。为了确保容器环境的安全,我们需要一款强大的工具来检测容器中的漏洞。今天,我将为大家介绍一款优秀的容器漏洞扫描工具:Trivy Container Scanner。本文将…

Hive3.1.2搭建文档包含详细步骤及相关截图以及常见问题解决

hive-3.1.2分布式搭建文档 1、下载,上传,解压,配置环境变量# 1、解压(解压到上级目录) tar -zxvf apache-hive-3.1.2-bin.tar.gz -C..# 2、重名名 mv apache-hive-3.1.2-bin hive-3.1.2# 3、配置环境变量 vim /etc/profile# 4、在最后增加配置 export HIVE_HOME=/usr/loca…