参考资料:https://zhuanlan.zhihu.com/p/87185139 一、3D空间中点到图像的投影 设3D空间中的点(x,y,z)投影到图像上的像素坐标(连续值,以左上角像素的左上角为原点的坐标系,注意与整数值的图像像素索引相区别,详见此文第2部分)为(u,v),深度为d,图像内参矩二、图像缩放及同一3D点在缩放前后图像中的投影坐标对于3D空间中的同一个点,其投影到缩放前后图像
1.测试时数据增广 测试时数据增广(TTA)在测试时使用数据增广技术获取同一数据的多个“变体”,使用同一网络在这些“变体”以及原始数据上进行推断,最后整合所有结果作为该原始数据最终的预测结果。 TTA类似于集成学习,都是整合多个结果作为最终预测,但区别在于:TTA只使用一个模型,多个结果的来源是多个数据“变体”。 2.mmdetection3d中,点云数据的测试时数据增广 2.1
1.复制粘贴数据增广 复制粘贴(copy-paste)数据增广又叫GT增广,是将其余帧的边界框及其内部点云复制到当前帧,以增加当前帧数据丰富性的一种数据增广方法。复制前后的边界框在帧内的坐标不变,需要满足“不与已有边界框重合”的条件,且添加时会删除当前帧在复制边界框内的点。 2.mmdetection3d中物体点云数据库的建立 本节以nuScenes数据集为例,介绍mmdete
MMDetection3D的点云数据一般会经历如下步骤/模块:下面分别介绍每个部分的一些典型模型。 0.体素化函数 在介绍体素编码器前,需要先介绍体素化函数,以理解体素编码器的输入参数含义。 0.1 mmcv.ops.voxelize中的Voxelization类初始化参数:注:将体素大小z_zise设置为与点云高度范围相同时,就可以实现柱体化操作。 forward函数:0.2 MVXTwoS
参考:MMCV 核心组件分析(六): Hook - 知乎、MMCV 核心组件分析(七): Runner - 知乎 1.Runner(执行器)MMDetection(3D)中,最常用的Runner是EpochBasedRunner。下面以EpochBasedRunner为例介绍Runner。run()函数是Runner的关键函数,其代码如下(其中的call_hook()函数可暂时忽略): def r
1.builder.build_xxx()该函数根据配置字典实例化相应的类。使用格式(以build_dataset函数为例): # dataset_cfg为数据集配置字典 dataset = bulider.build_dataset(dataset_cfg) # 返回数据集类的实例 其中配置字典的格式如下: dataset_cfg = dict( type='XxxDataset',
参考文章:https://arxiv.org/abs/2210.00379 1.概述 神经场是一种神经网络,其输入为坐标,输出为坐标对应点的某个属性。 神经辐射场(NeRF)模型是一种新视图合成方法,它使用体积网格渲染,通过MLP进行隐式神经场景表达,以学习3D场景的几何和照明。 应用:照片编辑、3D表明提取、人体建模、3D表达和视图合成等。 特点:模型自监督。对于一个场景,只需要多视图
注:调试项目代码可以根据本文提出的运行流程进行。 1.数据集准备工作 通常会从create_data.py(或名字类似的自定义文件)开始,运行得到{train/val/test}_info.pkl文件,其中包含每一帧的文件路径、相关信息以及标注信息(部分数据集不提供测试集的标注,故测试集pkl文件可能不含标注信息)。 2.训练流程 通常会从train.py
UVTR论文链接:https://arxiv.org/abs/2206.00630 UVTR论文笔记:Unifying Voxel-based Representation with Transformer for 3D Object Detection (UVTR)论文笔记 UVTR代码链接:https://github.com/dvlab-research/UVTR 看本文前建议阅读MMDe
写在前面:本人正在学习MMDetection3D的过程中,可能有理解错误,欢迎指正。 在MMDetection3D中,如果需要自定义模型,需要进行类的注册。 该部分需要一定的python编程基础知识(类的继承以及函数修饰符@),不熟悉的可参考这篇文章。 1.从头开始定义模型 先看一下官方SECOND的代码: # Copyright (c) OpenMMLab. All rights res
为了看懂基于MMDetection/MMDetection3D的目标检测模型代码,有必要先了解一些重要但平时不常用的python基础知识。 1.类的继承 参考:Python中的init和super() - 知乎 python定义类的语句如下: class ClassName: <statements> 也可在类名后加括号,括号内写上另一个已定义类的名称表示新类继承旧类的属性和
1.准备知识 参考:带你玩转 3D 检测和分割 (二):核心组件分析之坐标系和 Box - 知乎 1.1 坐标系介绍 激光雷达坐标系通常定义如下左图所示,其中x指向前方,y指向左方,z指向上方。 相机坐标系通常定义如上右图所示,其中x指向右方,y指向下方,z指向前方。 1.2 3D边界框的定义 一般来说,对于自动驾驶目标检测任务而言,一个3D边界框可以由7个参数决定:位置(x
写在前面:本人正在学习MMDetection3D的过程中,可能有理解错误,欢迎指正。 参考视频链接:4小时入门深度学习+实操MMDetection 第二课 官方中文文档:MMDetection 文档 一、模型推断 在官方github上下载所需模型(预训练模型参数文件/pth文件)及其配置文件(后面会讲配置文件的内容/py文件)。 然后使用下列代码进行单张图片的推断: from mmdet im
M²BEV: Multi-Camera Joint 3D Detection and Segmentation with Unified Bird’s-Eye View Representation 论文笔记 原文链接:https://arxiv.org/pdf/2204.05088.pdf 1.引言 本文设计一个联合训练多视图图像3D目标检测和BEV分割任务的统一网络。此外,本文提
一、Non-local 原文链接:Non-local Neural Networks | IEEE Conference Publication | IEEE Xplore 1.公式 其中。 的形式可以不同,如 (1)Gaussian: (2)Embedded Gaussian:
参考资料:https://zhuanlan.zhihu.com/p/87185139 一、3D空间中点到图像的投影 设3D空间中的点 ( x , y , z ) (x,y,z) (x,y,z)投影到图像上的像素坐标(连续值,以左上角像素的左上角为原点的坐标系,注意与整数值的图像像素索引相区别,详见此文第2部分)为 ( u , v ) ,深度为 d d d,图像内参矩阵为L3×3,外参矩阵
原文链接:https://arxiv.org/abs/2206.10092 1.引言 目前的图像3D目标检测方法在深度估计上的效果很差。基于深度3D检测器特点: 若无真实深度的监督,虽然最终的3D检测结果鼓励模型输出正确的深度,但要学习到精确的深度是很困难的; 此外,理论上深度子网络应该根据相机内外参推断深度,但目前方法都没有这么做; 深度估计后的视图转换子网络很低效
由于二者有一定共通之处,因此放在一篇文章内介绍。 1. 关于torch.nn.functional.grid_sample函数的说明(F.grid_sample) 该函数的作用是在图像/体素空间中采样特征。 1.1 输入和输出: 1.2 需要注意的地方 以4维输入(即从图像采样特征)为例,设图像的大小为(H,W)。 当align_corner=False时,函数会将像素
一、A-SCN 原文链接:Attentional ShapeContextNet for Point Cloud Recognition | IEEE Conference Publication | IEEE Xplore 这篇文章提出了一个新的网络结构SCN(本文不过多关注): 引入注意力后即A-SCN。下图为A-SCN块结构(图中标注的第一个好像应为):
一、ViT 原文链接:https://arxiv.org/pdf/2010.11929.pdf 首先将图像分割成长宽均为的patch(共个),然后将每个patch reshape成一个向量,得到所谓的flattened patch(记为)。 为了避免模型结构受到patch size的影响,对flattened patch向量做了Linear Project
如果视觉Transformer中去掉MSA部分,性能是否能达到相同的水平?或者说仅使用MLP来实现视觉任务是否可行?由此考虑到视觉MLP。 一、EANet(External Attention) 原文链接:https://arxiv.org/pdf/2105.02358.pdf 其中和为可学习的参数,不依赖于输入。Norm为double normalization(分别对行和列)
一、RepMLP 原文链接:https://arxiv.org/pdf/2105.01883.pdf RepMLP(re-parameterized MLP)是考虑到FC层比起卷积来说不擅长捕捉局部信息的特点而提出的。其训练和推断是不同的。 训练阶段由全局感知器,partition感知器和局部感知器组成。 全局感知器 图中N为batch size 将
1.引言 BEV表达包含了丰富的语义信息,精确定位和绝对尺度,可直接应用于下游任务如行为预测和运动规划。此外,BEV表达为融合不同视角、模态、时间和智能体的信息提供了物理可解释的方法。 其中,以视觉为中心的BEV表达成本最低,但透视图(PV)与BEV之间的转换问题是不适定的。 目前PV到BEV的变换方法主要分为两类,即基于几何的转换
原文链接:https://arxiv.org/pdf/2202.02980.pdf 2 任务 通常每个被检测物体表达为在某个预定义坐标系下的位置,尺寸和朝向,但通常只使用绕竖直轴的偏航角。 3.数据集与评估 3.2 评估指标 KITTI 3D数据集提供了AP指标,包含3D AP和BEV AP。此外,平均朝向相似度(AOS)用
转载自:https://arxiv.org/pdf/2206.09474.pdf 2 背景 2.1 3D目标检测 检测结果的表示 3D物体的表达通常为包含该物体的3D长方体,即,表示中心位置、长宽高、朝向和类别。有的工作会为该物体添加速度表示,即。工业应用中,这些参数可以被简化为BEV下的4个角点坐标。 激光雷达数据表达 若一
2 背景和基础知识 _2.1 目标检测_ 目标检测是物体识别和物体定位任务的融合。 传统机器学习方法使用特征描述子提取有代表性的图像特征,如Viola-Jones方法、尺度不变特征变换(SIFT)或定向梯度直方图(HOG)。这些特征都是低级特征,是为某特定用途而手工设计的。SVM也可用于物体识别任务。但设计一个鲁棒的特征描述子是很困难的
原文链接:https://arxiv.org/pdf/2106.12735.pdf 1.引言 1.1 单一传感器3D目标检测 __ 基于图像的3D目标检测__。低费用换来满意的性能。但存在遮挡、高计算成本、易受极端天气影响等问题。 __ 基于激光雷达的3D目标检测__。激光雷达提供更丰富的几何信息,性能比图像好;但其昂贵而笨重、分辨率和刷新率低、
II.深度学习的简要回顾 __B.点云深度学习__ 本文将点云深度学习方法分为5类,即基于体素、基于2D视图、基于点、基于图以及基于索引/树的方法。 (2)基于索引/树的方法引入树状数据结构(如kd树、八叉树),自适应地划分分辨率,减小计算量。通过建立不平衡的树,可以根据点云密度划分区域。这样,点密度低的区域可以有低分辨率。根据树的结构提取点的
转载自:https://arxiv.org/pdf/2204.00106.pdf III. SotA 将基于点云的3D目标检测分为4类,即基于点的、基于体素的、基于前视图的和基于多视图的方法。 __A. 结构__ 结构上可分为单阶段检测(PointPillars,3DSSD,SA-SSD,CIA-SSD和SE-SSD)和两阶段检测(PV-
原文链接:https://arxiv.org/pdf/2106.10823.pdf II.传感器 分为被动传感器(如摄像机)和主动传感器(如激光雷达)。优缺点如下: 传感器 优点 缺点 单目摄像机 提供色彩和纹理信息 成本低 对光照条件敏感 不提供深度信息
转载自:https://arxiv.org/pdf/2003.00601.pdf I. 概述 上图为自动驾驶系统框图,主要涉及到两种点云:激光雷达实时扫描点云和离线点云地图。本文重点关注与点云密切相关的建图、定位和感知部分,包含点云处理和点云学习两个大方向。 II. 点云的特点、表达和方法 A. 特点 激光雷达每个点包含
积分
粉丝
勋章
TA还没有专栏噢
第三方账号登入
看不清?点击更换
第三方账号登入
QQ 微博 微信