当前位置: 首页 > news >正文

自动泊车端到端算法 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. 训练过程需要专家轨迹
    .(img-7orUMtby-1731052248424)]

关键词解释:

PSR:停车成功率

NSR:无车位率

PVR:停车违规率

APE:平均位置误差

AOE:平均方向误差

APS:平均停车得分

APT:平均停车时间

05 局限性

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

相关文章:

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

01 算法介绍 自主泊车是智能驾驶领域中的一项关键任务。传统的泊车算法通常使用基于规则的方案来实现。因为算法设计复杂,这些方法在复杂泊车场景中的有效性较低。 相比之下,基于神经网络的方法往往比基于规则的方法更加直观和多功能。通过收集大量专家…...

《手写Spring渐进式源码实践》实践笔记(第十七章 数据类型转换)

文章目录 第十七章 数据类型转换工厂设计实现背景技术背景Spring数据转换实现方式类型转换器(Converter)接口设计实现 业务背景 目标设计实现代码结构类图实现步骤 测试事先准备属性配置文件转换器工厂Bean测试用例测试结果: 总结 第十七章 数…...

W3C HTML 活动

关于W3C(万维网联盟)的HTML活动,我们可以从HTML的不同版本的发展历程中了解其主要的活跃时期和贡献。 HTML 2.0:这个版本的HTML是由Internet工程工作小组(IETF)的HTML工作组于1996年开发的。它是HTML的早期…...

机器学习—为什么我们需要激活函数

如果我们使用神经网络中每个神经元的线性激活函数,回想一下这个需求预测示例,如果对所有节点使用线性激活函数,在这个神经网络中,事实证明,这个大神经网络将变得与线性回归没有什么不同,所以这将挫败使用神…...

软考系统架构设计师论文:论软件的可靠性评价

试题四 论软件的可靠性评价 软件可靠性评价是软件可靠性活动的重要组成部分,既适用于软件开发过程,也可针对最 终软件系统。在软件开发过程中使用软件可靠性评价,可以使用软件可靠性模型,估计软件当前的可靠性,以确认是否可以终止测试并发布软件,同时还可以预计软件要达…...

C++:线程(thread)的创建、调用及销毁

在 C 中,线程的管理主要依赖于标准库 std::thread,自 C11 起,这一功能被标准化,使得我们能够更加方便地创建、管理和销毁线程。这里我们详细讲解线程的创建、调用和销毁流程。 1. 线程的创建 创建线程通常是为了在单独的线程中执…...

关于随身wifi,看了再决定要不要买!2024年最受欢迎的随身wifi品牌推荐!

话费、流量费缴纳起来肉疼,毕竟不是每个月都有很大需求,主打一个该省省该花花。特别是短租人群、在校学生、出差或旅游的人群、追求高性价比的人群,随身Wifi特别实用,出门当WiFi,在家当宽带,两不耽误&#…...

SpringMVC总结 我的学习笔记

SpringMVC总结 我的学习笔记 一、SpringMVC简介1.MVC2.SpringMVC概述3. SpringMVC中的核心组件4.SpringMVC核心架构流程 二、SpringMVC框架实例具体实现使用注解实现 四、数据处理及跳转1.结果跳转方式2.处理器方法的参数与返回值处理提交数据数据显示到前端 五、RestFul风格1.…...

DevCheck Pro手机硬件检测工具v5.33

前言 DevCheck Pro是一款手机硬件和操作系统信息检测查看工具,该软件的功能非常强大,为用户提供了系统、硬件、应用程序、相机、网络、电池等一系列信息查看功能 安装环境 [名称]:DevCheckPro [版本]:5.33 [大小]&a…...

数据分析ReAct工作流

让我用一个数据分析项目的例子来展示plan-and-execute框架的应用。这个例子会涉及数据处理、分析和可视化等任务。 from typing import List, Dict, Any from dataclasses import dataclass import json from enum import Enum import logging from datetime import datetime#…...

Rust-AOP编程实战

文章本天成,妙手偶得之。粹然无疵瑕,岂复须人为?君看古彝器,巧拙两无施。汉最近先秦,固已殊淳漓。胡部何为者,豪竹杂哀丝。后夔不复作,千载谁与期? ——《文章》宋陆游 【哲理】文章…...

Flutter鸿蒙next 中的 Expanded 和 Flexible 使用技巧详解

在 Flutter 开发中,Expanded 和 Flexible 是两个非常常用的布局控件,它们可以帮助开发者更加灵活地管理 UI 布局的空间分配。虽然它们看起来非常相似,但它们的功能和使用场景有所不同。理解这两者的区别,能帮助你在构建复杂 UI 布…...

【微信小游戏学习心得】

这里是引用 微信小游戏学习心得 简介了解微信小游戏理解2d游戏原理数据驱动视图总结 简介 本人通过学习了解微信小游戏,学习微信小游戏,加深了对前端框架,vue和react基于数据驱动视图的理解,及浏览器文档模型和javaScript之间的关…...

Python | Leetcode Python题解之第539题最小时间差

题目: 题解: def getMinutes(t: str) -> int:return ((ord(t[0]) - ord(0)) * 10 ord(t[1]) - ord(0)) * 60 (ord(t[3]) - ord(0)) * 10 ord(t[4]) - ord(0)class Solution:def findMinDifference(self, timePoints: List[str]) -> int:n len…...

Zookeeper运维秘籍:四字命令基础、详解及业务应用全解析

文章目录 一、四字命令基础二、四字命令详解三、四字命令的开启与配置四、结合业务解读四字命令confconsenvi命令Stat命令MNTR命令ruok命令dump命令wchswchp ZooKeeper,作为一款分布式协调服务,提供了丰富的四字命令(也称为四字短语&#xff…...

Error: `slot-scope` are deprecated报错解决

本人新手菜鸡,文章为自己遇到问题的记录,如有错误或不足还请大佬批评指正 问题描述 在Vue3环境下使用slot插槽,出现‘slot-scope’ are deprecated报错问题,经过查找发现,是因为在slot插槽使用中,vue2和vu…...

Excel(图例)中使用上标下标

单元格中 1、在Excel单元格中刷黑要设置成上标的字符,如m2中的2; 2、单击右键,在弹出的对话框中选择“设置单元格格式”; 3、在弹出的“设置单元格格式”对话框中选择上标(或下标); 4、最后…...

熔断和降级

目录 隔离和降级 FeignClient整合Sentinel 通过Feign设置服务降级 1.创建类实现FallbackFactory接口,并让这个类和使用FeignClient的接口类绑定 2.让order-service服务的feign开启sentinel 3.测试,只开启order-service服务,而不开启user-…...

【学习笔记】Linux系统基础知识 6 —— su命令详解

提示:学习Linux系统基础命令 su 命令详解,包含通过 su 命令切换用户实例 一、前期准备 1.已经正确安装并成功进入Linux系统 说明:本实验采用的 Redhat 系统(因系统不一致,可能部分显示存在差异) 二、学…...

docker-compose命令介绍

docker-compose命令介绍 docker-compose1. docker-compose是什么2. Compose file format3. 命令3.1 服务相关命令upruncreatestartrestartdownstopkillrmpauseunpause 3.2 镜像相关命令3.3 查看相关命令 docker-compose 学了docker,然后就直接去学k8s了。恍恍惚惚几…...

R语言AI模型部署方案:精准离线运行详解

R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...

IGP(Interior Gateway Protocol,内部网关协议)

IGP(Interior Gateway Protocol,内部网关协议) 是一种用于在一个自治系统(AS)内部传递路由信息的路由协议,主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...

pam_env.so模块配置解析

在PAM(Pluggable Authentication Modules)配置中, /etc/pam.d/su 文件相关配置含义如下: 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块,负责验证用户身份&am…...

测试markdown--肇兴

day1: 1、去程:7:04 --11:32高铁 高铁右转上售票大厅2楼,穿过候车厅下一楼,上大巴车 ¥10/人 **2、到达:**12点多到达寨子,买门票,美团/抖音:¥78人 3、中饭&a…...

最新SpringBoot+SpringCloud+Nacos微服务框架分享

文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的,根据Excel列的需求预估的工时直接打骨折,不要问我为什么,主要…...

新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案

随着新能源汽车的快速普及,充电桩作为核心配套设施,其安全性与可靠性备受关注。然而,在高温、高负荷运行环境下,充电桩的散热问题与消防安全隐患日益凸显,成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...

学习STC51单片机32(芯片为STC89C52RCRC)OLED显示屏2

每日一言 今天的每一份坚持,都是在为未来积攒底气。 案例:OLED显示一个A 这边观察到一个点,怎么雪花了就是都是乱七八糟的占满了屏幕。。 解释 : 如果代码里信号切换太快(比如 SDA 刚变,SCL 立刻变&#…...

智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制

在数字化浪潮席卷全球的今天,数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具,在大规模数据获取中发挥着关键作用。然而,传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时,常出现数据质…...

【笔记】WSL 中 Rust 安装与测试完整记录

#工作记录 WSL 中 Rust 安装与测试完整记录 1. 运行环境 系统:Ubuntu 24.04 LTS (WSL2)架构:x86_64 (GNU/Linux)Rust 版本:rustc 1.87.0 (2025-05-09)Cargo 版本:cargo 1.87.0 (2025-05-06) 2. 安装 Rust 2.1 使用 Rust 官方安…...

uniapp 小程序 学习(一)

利用Hbuilder 创建项目 运行到内置浏览器看效果 下载微信小程序 安装到Hbuilder 下载地址 :开发者工具默认安装 设置服务端口号 在Hbuilder中设置微信小程序 配置 找到运行设置,将微信开发者工具放入到Hbuilder中, 打开后出现 如下 bug 解…...