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

用于自动驾驶的基于立体视觉的语义 3D 对象和自我运动跟踪

Stereo Vision-based Semantic 3D Object and Ego-motion Tracking for Autonomous Driving

论文

摘要: 我们提出了一种基于立体视觉的方法,用于在动态自动驾驶场景中跟踪相机自我运动和 3D 语义对象。我们建议使用易于标记的 2D 检测离散视点分类以及轻量级语义推理方法来获得粗略的 3D 对象测量,而不是使用端到端方法直接回归 3D 边界框。基于在动态环境中具有鲁棒性的对象感知辅助相机姿态跟踪,结合我们新颖的动态对象束调整(BA)方法来融合时间稀疏特征关联语义3D测量模型,我们获得了3D对象姿态,具有实例精度和时间一致性的速度和锚定动态点云估计。我们提出的方法的性能在不同的场景中得到了证明。自我运动估计和对象定位都与最先进的解决方案进行了比较。

引言:

在这里插入图片描述
主要贡献:

  • 一种仅使用 2D 对象检测和所提出的视点分类的轻量级 3D 框推理方法,为对象特征提取提供对象重投影轮廓和遮挡掩模。也作为后续优化的语义度量模型。
  • 一种新颖的动态对象束调整方法,它将语义和特征测量紧密结合起来,以持续跟踪具有实例准确性和时间一致性的对象状态。

方法
语义跟踪系统主要由三个模块组成
1)执行 2D 对象检测和视点分类,利用这两个输出并借助2D检测框的边与3D检测框上的点之间的约束粗略的推断物体的位姿。
2)特征提取和匹配。它将所有推断的 3D 框投影到 2D 图像,以获得对象轮廓和遮挡蒙版。然后应用引导特征匹配来获得立体图像和时间图像的鲁棒特征关联。
3)所有的语义测量和特征测量被紧耦合到一个优化方法中,用于相机和物体位姿的求解。
在这里插入图片描述
视点分类和 3D 框推理
视点分类:使用Fast-RCNN机型2d物体检测,在最后的FC层添加子类别分类,而不是原始视线中的纯对象分类,它表示对象水平和垂直离散视点。
对于水平和垂直观测点的解释:其实就是16个类别的区分过程,作者认为水平方向连续的8个观测位置和垂直方向的两个位置的16种组合足以包括目标在相机中的状态。
在这里插入图片描述
通过水平和垂直视点分类的总共16种组合,可以基于3D边界框的重投影将紧密贴合2D边界框的假设,生成2D框中的边缘与3D框中的顶点之间的关联。

基于视点的3D box推理:给定了归一化平面上的2D检测框 [umin, vmin, umax, vmax]和观测点,基于2D 框边缘和 3D 框顶点之间的四个约束来推断物体姿态。物体的3D检测框中心点位置 p = [ p x , p y , p z ] T p = [p_x, p_y, p_z]^T p=[px,py,pz]T,物体相对于相机的水平方向 θ,物体的先验尺寸 d = [ d x , d y , d z ] T d = [d_x, d_y, d_z]^T d=[dx,dy,dz]T。其中,前两个变量 p, θ 用于表示物体的4自由度位姿。为了推断物体的3D检测框或者说物体的位姿,我们可以在图2(b)中得到4个约束关系,即3D检测框的四个点被投影到2D检测框边界上
在这里插入图片描述
π是从相机坐标系到归一化平面的投影矩阵, R θ R_θ Rθ表示从物体坐标系转化到相机坐标系,由θ参数化的旋转。
在这里插入图片描述
C1:4表示对角选择矩阵描述3D检测框中心点和与2D检测框边界相交的4个点①②③④之间的位置关系。当全卷积层输出了观测点,我们也就得到了对应的C1:4。例如上面给出的C1:4即为图2(b)中观测点下对应的选择矩阵。公式(1)中,第一个解释为以中心点为起点,向xyz三个方向的正方向各增加对应维度先验尺寸的一半得到点①,第二个解释为以中心点为起点,向x, z的反方向增加先验尺寸dx, dz的一半,向y的正方向增加先验尺寸dy的一半得到点②,这其中包含着由Rθ决定的从物体坐标系向相机坐标系的转换,再将点①②从相机坐标系转化到归一化平面正好和2D检测框边界相交,其余两个同理。这样,我们就得到了公式(1),用这四个等式就可以求解物体的4自由度位姿,同时也得到了3D检测框。

通过这四个方程,可以在给定先验尺寸的情况下直观地求解 4 DoF 物体位姿。我们将复杂的 3D 对象检测问题转换为 2D 检测、视点分类和简单的封闭式计算。诚然,解决的姿势是一个近似估计,它以 2D 边界框的实例“紧密度”和先验的对象尺寸为条件。另外,对于某些顶视图情况,3D 框的重投影并不严格适合 2D 框,这可以从图 3(b)中的顶部边缘观察到。然而,对于自动驾驶场景中几乎水平或轻微俯视的视点,这个假设可以合理地成立。请注意,我们的实例姿态推断仅用于生成用于特征提取的对象投影轮廓和遮挡掩模,并作为后续最大后验(MAP)估计的初始值,其中 3D 对象轨迹将通过基于滑动窗口的特征相关性和对象点云对齐来进一步优化。

特征提取和匹配:
我们将推断的 3D 对象框投影到立体图像以生成有效的 2D 轮廓。如图 2 (b) 所示,使用不同颜色的蒙版来表示每个对象的可见部分(灰色为背景)。对于遮挡对象,我们根据对象 2D 重叠和 3D 深度关系将被遮挡部分屏蔽为不可见。因此,对于具有少于四个有效边缘测量值的截断对象,无法通过第 4.2 节中的方法进行推断。我们直接将左图中检测到的2D框投影到右图中。我们为每个对象和背景的可见区域中的左图像和右图像提取 ORB 特征。立体匹配是通过极线搜索来执行的。物体特征的深度范围是从推断的物体姿态中得知的,因此我们将搜索区域限制在一个小范围内以实现鲁棒的特征匹配。对于时间匹配,我们首先通过 2D 框相似性得分投票来关联连续帧的对象。相似度得分是通过补偿相机旋转后连续图像之间的 2D 框的中心距离和形状相似度来加权的。
如果该对象与前一帧中所有对象的最大相似度得分小于阈值,则该对象被视为丢失。我们注意到,有更复杂的关联方案,例如概率数据关联,但它更适合避免重新访问静态对象场景时的硬决策,而不是自动驾驶的高度动态和非重复场景。随后,我们将相关对象和背景的 ORB 特征与前一帧进行匹配。 RANSAC 通过对每个对象和背景独立进行局部基本矩阵测试来拒绝异常值。

自我运动和物体跟踪: 具体详细部分可参考原文
在这里插入图片描述
在一个通常的自动驾驶场景中,我们的目标有三个:
(1) 连续估计相机的运动
(2) 连续追踪3D物体的位置
(3) 恢复动态稀疏特征点的3D位置
在这里,k表示物体序号,k=0表示背景;n表示第k个物体上的特征点序号;t表示时间或者帧的序号。
首先针对目标(1),利用背景特征点的重投影误差来构建优化的最小二乘。由于没有先验信息可以利用,我们直接计算目标函数的最大似然,并假设观测模型服从高斯分布,将最大似然问题转化为马氏距离的BA问题。在这里,我们要求解的是相机的位姿和背景特征点的位置。

自我运动追踪:给定静态背景特征观察,自我运动可以通过最大似然估计(MLE)来解决:
在这里插入图片描述语义对象跟踪:在我们求解出相机位姿之后,可以根据先验维度和实例语义测量来求解每个时间 t 的对象状态。我们假设该对象是一个刚体,这意味着锚定到它的特征相对于对象框架是固定的。因此,如果我们有连续的对象特征观察,则对象的时间状态是相关的。给定相机姿态,不同对象的状态是有条件独立的,因此我们可以并行且独立地跟踪所有对象。对于第 k 个对象,我们有每个类标签的维度先验分布 p(dk)。我们假设每个对象每次的检测结果和特征测量都是独立的并且呈高斯分布。根据贝叶斯规则,我们有以下最大后验(MAP)估计:
在这里插入图片描述
类似于等式3,我们将MAP转化为非线性优化问题:
在这里插入图片描述
稀疏特征观察:我们将静态特征和相机姿态之间的射影几何扩展到动态特征和物体姿态。基于相对于对象框架的锚定相对静态特征,共享特征观察的对象姿势可以通过因子图连接。对于每个特征观测,残差可以由预测特征位置和左右图像上的实际特征观测的重投影误差来表示:
在这里插入图片描述
语义 3D 对象测量:受益于视点分类,我们可以知道 2D 边界框的边和 3D 边界框的顶点之间的关系。假设 2D 边界框紧密贴合到对象边界,则每条边都与重新投影的 3D 顶点相交。这些关系可以被确定为每个 2D 边缘的四个选择矩阵。语义残差可以通过预测的 3D 框顶点与检测到的 2D 框边缘的重投影误差来表示:
在这里插入图片描述
车辆运动模型:过该运动模型能够从t-1时刻车的状态推断k时刻车的状态,还能连续追踪车的速度和方向。该项误差定义为通过运动模型预测的t时刻状态减去估计的t时刻状态:在这里插入图片描述

点云对齐在最小化所有残差后,我们根据先验维度获得物体位姿的MAP估计。然而,由于物体大小差异,姿势估计可能会出现偏差(见图 5)。因此,我们将 3D 框与恢复的点云对齐,由于精确的立体外部校准,这是无偏差的。我们最小化所有 3D 点与其锚定 3D 框表面的距离:
在这里插入图片描述
在这里插入图片描述

实验

在这里插入图片描述
长轨迹的连续跟踪结果。 (a) 显示了大约 700 m 的闭环轨迹,包括静态汽车和动态汽车。右上和右下分别是放大的开始视图和结束视图。蓝色圆圈内的汽车被跟踪超过200米,其轨迹可以在左上视图中找到。 (b) 显示了一个主要包含动态和截断汽车的场景。估计的轨迹、速度和重新投影的二维图像分别显示在左侧和右侧。请注意,LiDAR 点云仅供所有俯视图中参考。后续的非线性优化是与数据无关的。因此,我们的系统能够在不同的数据集上执行一致的结果。定量评估表明,我们的语义 3D 对象和自我运动跟踪系统比孤立的最先进解决方案具有更好的性能。
在这里插入图片描述
不同场景的定性示例。从左到右:车辆集中。包括汽车和行人的十字路口(请注意,我们不解决行人的方向问题),动态汽车。顶部两行是 KITTI 数据集上的结果,底部两行显示 Cityscapes 数据集上的结果。
在这里插入图片描述
(a) RPE比较。左、右分别是来自 KITTI 原始数据集的 0929 0004 和 1003 0047 序列的结果。 (b) 十个长 KITTI 原始序列的 ATE 比较的 RMSE。

鸟瞰图和 3D 框比较的平均精度。
在这里插入图片描述

相关文章:

用于自动驾驶的基于立体视觉的语义 3D 对象和自我运动跟踪

Stereo Vision-based Semantic 3D Object and Ego-motion Tracking for Autonomous Driving 论文 摘要: 我们提出了一种基于立体视觉的方法,用于在动态自动驾驶场景中跟踪相机自我运动和 3D 语义对象。我们建议使用易于标记的 2D 检测和离散视点分类以及…...

Spring@Autowired注解

Autowired顾名思义,就是自动装配,其作用是为了消除代码Java代码里面的getter/setter与bean属性中的property。当然,getter看个人需求,如果私有属性需要对外提供的话,应当予以保留。 因此,引入Autowired注解…...

32.x86游戏实战-使用物品call

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 本次游戏没法给 内容参考于:微尘网络安全 工具下载: 链接:https://pan.baidu.com/s/1rEEJnt85npn7N38Ai0_F2Q?pwd6tw3 提…...

Prometheus+Alertmanager+邮件告警

参考node_exporter-CSDN博客,球球不要断更!!!! 大致流程 1.部署promethus 可以写一个自定义的 systemd 服务启动文档,详情见自定义的 systemd 服务启动方式-CSDN博客 [rootlocalhost system]# sudo tee /e…...

upload-labs漏洞靶场~文件上传漏洞

寻找测试网站的文件上传的模块,常见:头像上传,修改上传,文件编辑器中文件上传,图片上传、媒体上传等,通过抓包上传恶意的文件进行测试,上传后缀名 asp php aspx 等的动态语言脚本,查…...

PostgreSQL 高阶函数详解:全面深入的功能与实用示例

PostgreSQL 高阶函数详解 PostgreSQL 是一款功能强大的开源关系数据库管理系统,以其丰富的功能和高扩展性著称。在数据处理和分析方面,PostgreSQL 提供了一系列高阶函数,可以极大地简化和优化各种复杂操作。本文将详细介绍 PostgreSQL 的高阶…...

Redis——集合 SET

目录 1. 添加元素 SADD 2. 查看元素 SMEMBERS 3. 判断元素是否存在该集合 SISMEMBER 4. 删除元素 SREM 集合 SET 是一种无序集合;因此其与列表有以下区别: (1)列表是有序的,集合是无序的; &#xff0…...

openEuler安装docker

1.下载地址 搜索docker 寻找docker-ce 复制地址 2.配置仓库 [rootlocalhost yum.repos.d]# pwd /etc/yum.repos.d [rootlocalhost yum.repos.d]# vim docker-ce.repo [docker-ce] namedocker baseurlhttps://mirrors.aliyun.com/docker-ce/linux/rhel/9/x86_64/stable/ gpgche…...

每天一个数据分析题(四百六十五)- 缺失值

某连续型变量的数据集存在缺失值,可以采用哪种方法处理? A. 插值法填补 B. EM算法填补 C. 随机森林填补 D. 以上均不对 数据分析认证考试介绍:点击进入 题目来源于CDA模拟题库 点击此处获取答案 数据分析专项练习题库 内容涵盖Pytho…...

干货 | 变频器的详细介绍

变频器简述 变频器是电机控制领域中常见的一种设备,也称变频调节器,是一种将固定频率的交流电转换为可调频率的交流电的电力电子设备,用于控制交流电机的转速和输出功率。变频器通过调节输出电源的电压和频率,从而控制电动机的转速…...

Linux线程2

线程相关函数 线程分离--pthread_detach(后面会详细讲) 函数原型:int pthread_datach(pthread_t thread); 调用该函数之后不需要 pthread_join 子线程会自动回收自己的PCB 杀死(取消)线程--pthread_cancel 取…...

乱弹篇(40)人类追求长寿

不要认为只有中国的老龄化才严重,实际上全球都面临老龄化,其中日本最为严重。 这是随着人类生活和医学水平的不断提高,寿命才会比过去数十年有了大幅度的提升。据资料显示,目前全球平均预期寿命估计为73岁。与百年之前相比&#…...

技术详解:互联网医院系统源码与医保购药APP的整合开发策略

本篇文章,小编将从系统架构、数据安全、用户体验和技术实现等方面详细探讨互联网医院系统与医保购药APP的整合开发策略。 一、系统架构 1.模块化设计 互联网医院系统与医保购药APP的整合需要采用模块化设计。 2.微服务架构 每个功能模块作为一个独立的微服务&am…...

N4 - Pytorch实现中文文本分类

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 目录 任务描述步骤环境设置数据准备模型设计模型训练模型效果展示 总结与心得体会 任务描述 在上周的任务中,我们使用torchtext下载了托管的英文的…...

centos 如何安装sox音视频处理工具

要在 CentOS 系统上安装 Sox 音频处理软件,你可以遵循以下步骤。请注意,这些说明适用于 CentOS 7,对于 CentOS 8 及更高版本,某些包管理命令可能略有不同。 第一步:安装所需的依赖库 首先,你需要安装一系列…...

Java语言程序设计——篇十一(2)

🌿🌿🌿跟随博主脚步,从这里开始→博主主页🌿🌿🌿 欢迎大家:这里是我的学习笔记、总结知识的地方,喜欢的话请三连,有问题可以私信🌳🌳&…...

Linux 应急响应靶场练习 1

靶场在知攻善防实验室公众号中可以获取 前景需要:小王急匆匆地找到小张,小王说"李哥,我dev服务器被黑了",快救救我!! 挑战内容: (1)黑客的IP地址 (2&#xff0…...

AWS-Lambda的使用

介绍 Lambda 是一种无服务器(Serverless), 而且设计成事件驱动的计算服务器. 简单来说, 你可以将你的 code 上传, 当有事件产生(例如cronjob , 或者S3有新的文件被上传上來) , 你的code 就会在瞬间(零点几秒以內)被叫起來执行. 由于你不用管 Server如何维护, 或者自动扩展之类…...

python3.12 搭建MinerU 环境遇到的问题解决

报错: AttributeError: module pkgutil has no attribute ImpImporter. Did you mean: zipimporter? ERROR: Exception: Traceback (most recent call last):File "D:\ipa_workspace\MinerU\Lib\site-packages\pip\_internal\cli\base_command.py", …...

基于SpringBoot+Vue的流浪猫狗救助救援网站(带1w+文档)

基于SpringBootVue的流浪猫狗救助救援网站(带1w文档) 基于SpringBootVue的流浪猫狗救助救援网站(带1w文档) 该流浪猫狗救助救援网站在Windows平台下完成开发,采用java编程语言开发,将应用程序部署于Tomcat上,加之MySQL接口来实现交互式响应服…...

56_AOP

AOP使用案例 如何进行数据库和Redis中的数据同步?/ 你在项目的那些地方使用了aop?答:可以通过Aop操作来实现数据库和Redis中的数据同步。/ 通过Aop操作来实现数据库和Redis中的数据同步。可以定义一个切面类,通过对控制器下的所有…...

安装了h5py,使用报错ImportError: DLL load failed while importing _errors

使用pip 安装了h5py,但是运行代码报错; from . import _errorsImportError: DLL load failed while importing _errors: 找不到指定的程序。 原因: 可能和不正确安装h5py这个包有关系 解决: pip uninstall h5py 换成使用conda…...

BootStrap前端面试常见问题

在前端面试中,关于Bootstrap的问题通常围绕其基本概念、使用方式、特性以及实际应用等方面展开。以下是一些常见的问题及其详细解答: 1. Bootstrap是哪家公司研发的? 回答:Bootstrap是由Twitter的Mark Otto和Jacob Thornton合作…...

在linux运维中为什么第一道防线是云防火墙,而不是waf

在Linux运维和云计算环境中,第一道防线通常是云防火墙(Cloud Firewall),而不是Web应用防火墙(WAF),主要是因为云防火墙提供了更基础和广泛的网络层安全控制。以下是一些关键原因: 1…...

2022年中国高校计算机大赛-团队程序设计天梯赛(GPLT)上海理工大学校内选拔赛

2022年中国高校计算机大赛-团队程序设计天梯赛(GPLT)上海理工大学校内选拔赛 2024.8.2 12:00————16:00 过题数790/1500 补题数943.33/1500 AB Problem Komorebi的数学课 次佛锅 Setsuna的K数列 Wiki下象棋 黄金律法 天气预报 叠硬币 AB Problem ag…...

多语言海外AEON抢单可连单加额外单源码,java版多语言抢单系统

多语言海外AEON抢单可连单加额外单源码,java版多语言抢单系统。此套是全新开发的java版多语言抢单系统。 后端java,用的若依框架,这套代码前后端是编译后的,测试可以正常使用,语言繁体,英文,日…...

文件上传——springboot大文件分片多线程上传功能,前端显示弹出上传进度框

一、项目搭建 创建 Spring Boot 项目: 创建一个新的 Spring Boot 项目&#xff0c;添加 Web 依赖。 添加依赖: 在 pom.xml 文件中添加以下依赖: <dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId&…...

每日学术速递8.2

1.A Scalable Quantum Non-local Neural Network for Image Classification 标题&#xff1a; 用于图像分类的可扩展量子非局部神经网络 作者&#xff1a; Sparsh Gupta, Debanjan Konar, Vaneet Aggarwal 文章链接&#xff1a;https://arxiv.org/abs/2407.18906 摘要&#x…...

SAP-PLM创建物料主数据接口

FUNCTION zplm_d_0001_mm01. *"---------------------------------------------------------------------- *"*"本地接口&#xff1a; *" EXPORTING *" VALUE(EX_TOTAL) TYPE CHAR4 *" VALUE(EX_SUCCESSFUL) TYPE CHAR4 *" …...

超声波眼镜清洗机哪个品牌好?四款高性能超声波清洗机测评剖析

对于追求高生活质量的用户来说&#xff0c;眼镜的清洁绝对不能马虎。如果不定期清洁眼镜&#xff0c;时间久了&#xff0c;镜片的缝隙中会积累大量的灰尘和细菌&#xff0c;眼镜靠近眼部&#xff0c;对眼部健康有很大影响。在这种情况下&#xff0c;超声波清洗机显得尤为重要。…...

做影视网站存储视频会侵权吗/网络销售是做什么的

视频写在前面上章节中介绍了Deployment&#xff0c;ReplicaSet&#xff0c;ReplicationController等副本1. DaemonSet控制器1.1 DaemonSet简介介绍DaemonSet时我们先来思考一个问题&#xff1a;相信大家都接触过监控系统比如zabbix&#xff0c;监控系统需要在被监控机安装一个a…...

太原便宜做网站的公司/网店推广平台有哪些

思科&#xff08;Cisco&#xff09;VLAN在配置 思路&#xff1a; 一.配置好DHCP、DNS、web服务器&#xff08;在这文章的第三&#xff09; 二.先配置两个交换机的vlan 三.配置路由器 四.检查设备的互通情况 每一步操作都有详细解析哦 拓扑图结构 1.VLAN的理解 交换机可以划分…...

网页设计素材电影/广州aso优化公司 有限公司

【实例简介】主题模型(Topic Model)LDA详解及其Matlab代码【实例截图】【核心代码】LDA讲解及matlab程序└── LDA讲解及matlab程序├── LDA实验│ ├── Matlab Topic Modeling Toolbox 1.docx│ └── topictoolbox│ ├── AssociationLDA2.m│ ├── Associ…...

什么是自适应网站/东莞网站快速排名提升

将数据&#xff08;如音频、视频、文本&#xff09;变为图像结构&#xff0c;然后进行处理 输入二维像素&#xff0c;输出是 即使输入数据是经过旋转、缩放等处理的&#xff0c;输出仍然可以正确识别并进行输出 feature map 颜色越深&#xff0c;值越低 卷积核 如果卷积核形状与…...

漯河做网站/网络小说网站三巨头

所以情况就是这样&#xff1a;我正在创建一个多人游戏,我希望我的朋友……,能够为它创建机器人.所以我要做的是创建一个抽象类Bot {},并为机器人定义函数,然后他们必须实现它们&#xff1a;非常简单.我被卡住了,之后如何添加它们&#xff1f;您可以使用反射或类似的东西来找到B…...

淘宝联盟网站建设/百度电脑版下载安装

5.4.3 用超类的构造函数 在使用构造函数对实例对象进行初始化时&#xff0c;可以在子类的构造函数中调用超类的构造函数。 supper用于在子类作用引用操作。 5.4.4 多重继承 多重继承指子类可以同时继承多个超类。 如果超类中存在同名的属性或方法&#xff0c;Python按照从左到右…...