机器学习笔记 - 3D对象检测技术路线调研(未完)

一、3D对象检测简述

        3D对象检测是计算机视觉中的一项任务,其目标是根据对象的形状、位置和方向在 3D 环境中识别和定位对象。它涉及检测物体的存在并实时确定它们在 3D 空间中的位置。这项任务对于自动驾驶汽车、机器人和增强现实等应用至关重要。

1、基本流程

         给定图像,估计所有对象实例的3D形状和3D姿态。

        数据收集:收集包含图像和相应 3D 数据的数据集,例如来自 LiDAR 传感器的点云、深度图或立体图像。数据集应使用我们想要检测的对象的3D边界框信息进行注释。

        决定我们将用于捕获 3D 数据的传感器。常见选项包括 LiDAR 传感器、立体摄像头、RGB-D 摄像头(如 Microsoft Kinect)和深度传感器。每种传感器类型都有其优点和局限性,因此请选择适合您应用的传感器类型。

        通过用相应的 3D 边界框标记感兴趣的对象来注释我们的数据。这涉及指定对象的尺寸(长度、宽度、高度)及其在 3D 空间中的位置(通常由对象的质心或边界框的角表示)。Labelbox、VGG 图像注释器 (VIA) 或自定义脚本等工具可以帮助完成此过程。

        预处理:准备训练数据。这可能涉及标准化图像和数据、将图像与相应的 3D 数据对齐以及增强数据以增加训练集的多样性。

        架构选择:选择适合 3D 物体检测的架构。为此目的设计了各种神经网络架构,例如 PointNet、Frustum PointNets、PIXOR、VoxelNet 和 SECOND等等。这些架构可以处理不同类型的输入数据,例如点云或体素网格。

2、技术发展

        据了解目前大概有三个层次的,这里仅仅是个人了解到的一些信息整合,不保证准确,仅供参考。

        1、基于单个2D的RGB图像中围绕对象绘制3D边界框的任务。这是定位任务,但没有任何额外的信息,如深度或其他传感器或多图像。

        2、基于单目深度估计来生成3D点云,将相机转变为伪激光雷达传感器。或者基于深度图+RGB的思路。

        3、基于给定输入(例如RGB图像、LiDAR数据或两者的融合、LiDAR序列数据)识别和定位3D空间中的对象。

二、基于相机的3D对象检测

1、基于RGB图像

        基于锚点的单阶段方法利用图像特征和预定义的 3D 锚框来预测 3D 对象参数。单阶段无锚方法直接从图像像素预测 3D 对象参数。两阶段方法首先从 2D 检测器生成 2D 边界框,然后通过从 2D RoI 特征预测 3D 对象参数,将 2D 检测提升到 3D 空间。

2、基于RGB+深度

        基于深度图像的方法通过融合来自 RGB 图像和深度图像的信息来获得深度感知图像特征。基于伪激光雷达的方法首先将深度图像转换为 3D 伪点云,然后在点云上应用基于激光雷达的 3D 检测器来检测 3D 物体。基于补丁的方法将深度图像转换为二维坐标图,然后在坐标图上应用二维神经网络进行检测。

(1)DD3D

        这些两级检测器随着中间深度估计网络的准确性而提高,中间深度估计网络本身可以通过大规模自监督学习而无需手动标签而得到改进。然而,它们往往比端到端方法更容易遭受过度拟合,并且更复杂,并且与类似的基于激光雷达的检测器的差距仍然很大。

        端到端、单级、单目 3D 物体检测器 DD3D,它可以受益于伪激光雷达方法等深度预训练,但没有其限制。模型架构专为深度估计和 3D 检测之间的有效信息传输而设计,使得能够根据未标记的预训练数据量进行扩展。

我们的方法在两个具有挑战性的基准上取得了最先进的结果,在 KITTI-3D 基准上汽车和行人的 AP 分别为 16.34% 和 9.28%,在 NuScenes 上的 mAP 为 41.5%。

        论文地址

https://arxiv.org/abs/2108.06417icon-default.png?t=N7T8https://arxiv.org/abs/2108.06417

(2)待续

3、基于先验引导

        先验引导方法利用对象形状先验、几何先验、分割和时间约束来帮助检测 3D 对象。从这个思路猜测,如果是没见过的东西,那就不知道咋弄了可能。

4、基于立体估计

        基于 2D 检测的方法首先分别从左图像和右图像生成一对 2D 提案,然后根据配对提案估计 3D 对象参数。基于伪 LiDAR 的方法通过立体匹配预测视差图,然后将视差估计转换为深度和 3D 点云,然后使用基于 LiDAR 的检测器进行 3D 检测。基于体积的方法通过视图变换构造3D特征体积,然后在3D体积上应用基于网格的3D对象检测器进行检测。

四、基于LIDAR的3D对象检测

        用于2D对象检测和分类的CNN 已经成熟。但3D物体检测至少有两点不同:

        1、与 RGB 图像不同,LIDAR 点云是 3D 且非结构化的。

        2、自动驾驶的 3D 检测必须很快(<~100ms)。

        几种 3D 检测方法通过将 LIDAR 点云离散化为 3D 体素网格并应用 3D 卷积来解决第一个问题。然而,与 2D 卷积相比,3D 卷积的计算成本更高,因此延迟也更高。或者,可以将点云投影到自上而下的鸟瞰图 ( BEV ) 或 LIDAR 的本机范围视图 (RV) 中的2D图像。优点是可以通过更快的 2D 卷积有效地处理投影图像,从而产生更低的延迟。

        近几年的相关论文

1、基于点云

        通用的基于点的检测框架包含基于点的骨干网络和预测头。基于点的主干由几个用于点云采样和特征学习的块组成,预测头直接从候选点估计 3D 边界框。

2、基于网格

        基于网格的方法将点云栅格化为 3 种网格表示形式:体素、柱子和鸟瞰图 (BEV) 特征图。2D 卷积神经网络或 3D 稀疏神经网络应用于网格上进行特征提取。最终从 BEV 网格单元预测 3D 对象。

3、基于点体素

        单级点体素检测框架融合了主干网络中的点和体素特征。两阶段点体素检测框架首先使用基于体素的 3D 检测器生成 3D 对象建议,然后使用从点云采样的关键点细化这些建议。

4、基于范围

        第一类基于范围的方法直接根据范围图像中的像素预测 3D 对象,使用标准 2D 卷积或用于特征提取的专用卷积/图运算符。第二类将特征从范围视图转换为鸟瞰视图或点视图,然后从转换后的视图中检测3D对象。

5、基于锚点

        3D 锚框放置在每个 BEV 网格单元处。那些与基本事实具有高 IoU 的锚被选择为正样本。3D 对象的大小和中心从正锚点回归,并且通过基于 bin 的分类和回归来预测对象的航向角度。

6、无锚检测

        无锚学习目标可以分配到不同的视图,包括鸟瞰图、点视图和范围视图。直接从正样本预测对象参数。

五、基于多模态3D物体检测

1、LiDAR-相机融合

(1)早期融合

        早期融合方法在点云特征通过基于 LiDAR 的 3D 物体检测器之前,通过图像信息增强点云特征。在区域级知识融合中,首先对图像进行2D检测以生成2D边界框。然后将 2D 框挤压到视锥体中,为后续基于 LiDAR 的 3D 物体检测选择合适的点云区域。在点级知识融合中,首先将语义分割应用于图像,然后将分割结果从图像像素转移到点并用作附加到每个点的附加特征。增强的点云最终通过 LiDAR 探测器进行 3D 物体检测。

(2)中间融合

        中间融合方法旨在在 3D 对象检测管道的中间步骤进行多模态融合。在骨干网络中,首先通过相机到激光雷达的变换建立像素到点的对应关系,然后利用该对应关系,通过不同的融合算子将激光雷达特征与图像特征融合。融合可以在中间层进行,也可以仅在输出特征图上进行。在提案生成和细化阶段,首先生成 3D 对象提案,然后将其投影到相机和 LiDAR 视图中以裁剪不同模态的特征。最终融合多视图特征以细化用于检测的 3D 对象建议。

(3)后期融合

        基于后期融合的方法对输出进行操作,即分别由基于 LiDAR 的 3D 对象检测器和基于图像的 2D 对象检测器生成的 3D 和 2D 边界框。将3D box和2D box组合在一起并融合,得到最终的检测结果。

六、基于时间序列的3D物体检测

1、基于 LiDAR 序列

        在 LiDAR 序列的时间 3D 对象检测中,采用不同的时间聚合模块来融合来自多帧点云的特征和对象建议。

2、基于流数据

        在产生完整扫描之前,对每个 LiDAR 数据包进行流数据检测。

七、KITTI视觉基准测试

​        提供了一个标准化数据集,用于训练和评估不同 3D 物体检测器的性能。值得深入查看。The KITTI Vision Benchmark Suiteicon-default.png?t=N7T8http://www.cvlibs.net/datasets/kitti/

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

leetcode_828_统计子串中的唯一字符

题意&#xff1a;所有子串中单个字符出现的次数和 问题转化&#xff1a;对于串中的每个字符&#xff0c;只包含其一次的所有子串的个数和 关于求只包含某位置字符一次的子串个数 class Solution { public:int uniqueLetterString(string s) {/* ...A...A...A...*/int n s.size…

DDD(领域驱动设计)一些基础概念

DDD、微服务和中台之间的关系 DDD、微服务和中台之间的关系。 中台本质是业务模型&#xff0c;微服务是业务模型的系统落地&#xff0c;DDD 是一种设计思想&#xff0c;可以同时指导中台业务建模和微服务设计&#xff0c;它们之间就是这样的一个铁三角关系。DDD 强调领域模型…

【深度学习笔记】05 线性回归

线性回归 线性回归基于几个简单的假设&#xff1a; 首先&#xff0c;假设自变量 x \mathbf{x} x和因变量 y y y之间的关系是线性的&#xff0c; 即 y y y可以表示为 x \mathbf{x} x中元素的加权和&#xff0c;这里通常允许包含观测值的一些噪声&#xff1b; 其次&#xff0c;我…

Educational Codeforces Round 158 [Rated for Div. 2]

A. Line Trip 还算比较简单的&#xff0c;不过本蒟蒻一开始以为是二分答案&#xff0c;二分写到一半突然想到油量直接取两个加油站之间的最大距离就好了。 最大距离能过&#xff0c;剩下必然都能过&#xff0c;要特判a[n]~x距离是两倍&#xff0c;因为x没有加油站&#xff0c…

Spring Cache框架,实现了基于注解的缓存功能。

个人简介&#xff1a;Java领域新星创作者&#xff1b;阿里云技术博主、星级博主、专家博主&#xff1b;正在Java学习的路上摸爬滚打&#xff0c;记录学习的过程~ 个人主页&#xff1a;.29.的博客 学习社区&#xff1a;进去逛一逛~ Spring Cache框架 简介Spring Cache 环境准备S…

如何提高API性能

下图给出了提高API性能的5个常用技巧 分页 当结果很大时&#xff0c;这是一种常见的优化。结果会流回客户端以提高服务响应能力。 异步日志记录 同步日志记录每次调用都会处理磁盘&#xff0c;并且会降低系统速度。异步日志记录首先将日志发送到无锁缓冲区并立即返回。日志将…

【企业微信连接问题】

1、个人可以创建企业微信的企业账号么&#xff1f; 答&#xff1a;可以的&#xff0c;只是没法认证。不过基础的功能还是有的。 注册步骤&#xff1a;企业微信注册步骤 2、集简云链接企业微信&#xff0c;在授权之后&#xff0c;找不到集简云怎么办&#xff1f; 答&#xff1a…

git分支命名规范

https://www.cnblogs.com/wq-9/p/16968098.html

一. BEV感知算法介绍

目录 前言1. BEV感知算法的概念2. BEV感知算法数据形式3. BEV开源数据集介绍3.1 KITTI数据集3.2 nuScenes数据集 4. BEV感知方法分类4.1 纯点云方案4.2 纯视觉方案4.3 多模态方案 5. BEV感知算法的优劣6. BEV感知算法的应用介绍7. 课程框架介绍与配置总结下载链接参考 前言 自动…

电力感知边缘计算网关产品设计方案-网关软件设计方案

网关采用网络协议和软件技术在通信网络中针对工业协议、互联网通用协议进行分析和记录,提升工业控制系统环境的安全防护能力。A类和B类网关采用容器技术的软件架构,采用C/S架构软件客户端提供应用软件平台,为管理员提供功能丰富的图形管理控制界面。 因A类和B类网关在产品定…

ubuntu20.04打不开github网址的有效解决方案

问题描述&#xff1a;重装的ubuntu系统&#xff0c;chrome浏览器刚开始还能打开github网址&#xff0c;然后突然就打不开了&#xff0c;换网络也不行。 解决方案步骤 1&#xff0c;查询你的电脑IP对应的github网址信息 2&#xff0c;修改host文件&#xff0c;添加第1步查询到…

Spring Cloud Gateway 的简单介绍和基本使用

前言 本文主要对Spring Cloud Gateway进行简单的概念介绍&#xff0c;并通过多模块编程的方式进行一个简单的实操。 文章目录 前言1 什么是网关&#xff08;概念&#xff09;2 微服务中的网关2.1 问题12.2 问题2 3 网关作用4 Spring Cloud Gateway组成5 Spring Cloud Gateway基…

局域网的网络ip不稳定问题

在局域网的多个设备&#xff0c;互相通信时好时坏&#xff0c;不稳定。 遭遇过的情况如下&#xff1a; 用两个开发板&#xff1a;972开发板1和2&#xff0c;网口同时互相ping&#xff0c;出现1ping 2通--此时2ping 1不通&#xff0c;过段时间&#xff0c;1ping2不通--但2ping又…

美化wordpress复制文章内容弹出版权提示框的源码代码

通过SweetAlert美化的提示框 将下面代码添加到当前主题模板函数functions.php文件最后即可&#xff1a; function zm_copyright_tips() { echo <link rel"stylesheet" type"text/css" rel"external nofollow" target"_blank" href…

【新手解答2】深入探索 C 语言:一些常见概念的解析

C语言的相关问题解答 写在最前面问题1变量名是否有可能与变量重名&#xff1f;变量名和变量的关系变量名与变量是否会"重名"举例说明结论 变量则是一个地址不变&#xff0c;值时刻在变的“具体数字”变量的地址和值变量名与数据类型具体化示例结论 问题2关于你给我的…

电商项目高级篇-03 商品上架

商品上架 1、商品上架1.1、设计&#xff1a;宽表设计 1、商品上架 上架的商品才可以在网站展示。 上架的商品需要可以被检索。 1.1、设计&#xff1a;宽表设计 优点&#xff1a;方便检索 缺点&#xff1a;数据冗余 商品数据模型设计&#xff1a; PUT product {"mappi…

tidyverse数据特征学习

目录 特征缩放 1&#xff0c;标准化-scale 2&#xff0c;归一化-rescale 3&#xff0c;行规范化 4&#xff0c;数据平滑 特征变换 1. 非线性特征 2. 正态性变换 3. 连续变量离散 特征降维 特征缩放 不同数值型特征的数据量纲可能相差多个数量级&#xff0c;这对很多…

【Web】/proc利用相关例题wp

先贴一篇文章一起学习一下 [CTF]proc目录的应用 - CodeAntenna ①[HDCTF 2023]YamiYami 点击Read somethings直接跳转到了百度 从url中发现存在任意文件读取&#xff0c;因为不知道flag在哪&#xff0c;所以考虑读环境变量 payload: ?urlfile:///proc/1/environ 拿到fla…

短视频获客系统成功分享,与其开发流程与涉及到的技术

先来看实操成果&#xff0c;↑↑需要的同学可看我名字↖↖↖↖↖&#xff0c;或评论888无偿分享 一、短视频获客系统的开发流程 1. 需求分析&#xff1a;首先需要对目标用户进行深入了解&#xff0c;明确系统的功能和目标&#xff0c;制定详细的需求文档。 2. 系统设计&#…

Python教程:DataFrame列数据类型的转换

Pandas提供了多种数据类型转换方法。可以使用astype()函数来转换数据类型。例如&#xff0c;可以将字符串类型的列转换为整数类型的列&#xff1a; # Author : 小红牛 # 微信公众号&#xff1a;wdPython import pandas as pd# 创建包含字符串类型列的DataFrame df pd.DataFra…