[paper] Lift,Splat,Shoot论文浅析
创始人
2025-05-28 10:08:45
0

目录

基本信息

创新点

Method

Lift(Latent Depth Distribution):潜在深度分布

Splat:柱体池化


基本信息

题目:《Lift, Splat, Shoot: Encoding Images from Arbitrary Camera Rigs by Implicitly Unprojecting to 3D》

ECCV 2020

paper:https://arxiv.org/abs/2008.05711

GitHub:https://github.com/nv-tlabs/lift-splat-shoot

当前BEV感知方法大致分为两个技术流派:隐式深度模型,使用Transformer网络架构将深度信息构造进模型中隐式预测深度信息;显式深度估计模型,构造深度信息表示并且将其投影到BEV视角下作为BEV图像特征的组成部分,本文属于显式深度估计的开创者。

创新点

Lift: 提取图像的特征和图像特征的每一个像素可能的深度的表示,将具有像素深度信息的特征表示为图像特征和图像深度特征的外积,生成截锥体形状的图像特征点云;
Splat: 将截锥体形状的图像特征点云通过外参和内参转换成BEV坐标系下的特征,使用累积求和池化的方式加速运算,之后使用Resnet提取特征作为BEV坐标系下的特征。

Method

Lift(Latent Depth Distribution):潜在深度分布

作用:找到每一个像素在3D空间中可能的深度值表示,构造包含深度信息的图像特征。

使用backbone提取每一个相机的图像的特征,图像特征的维度设置为C+D,C为图像的特征值维度,设置为64,D为设定的每个特征点的可能的距离(深度)的数量,设置为41,现在的每一个特征图中的像素都有41个深度信息,但是并不能确定每一个像素的深度值到底是多少,这里使用外积操作,将image-feature (HxWxC)和depth-feature(HxWxD)相乘,形成新的特征图HxWxDxC,最后生成的特征图为24 (batch)x 64 x 41 x 8 x 22。论文中给出的公式为:

其中:c是像素的上下文特征(64 x 8 x 22), �� \alpha _{d} 是像素的深度信息特征。

最后生成的是一个截锥体形状的图像点云特征。

Splat:柱体池化


目前已经得到了像素的2D像素坐标以及深度值,再加上相机的内参和外参,即可计算得出像素对应的在车身坐标系中的3D坐标。
将多个相机中的像素点投影在同一张俯视图中,需要先过滤掉感兴趣域(以车身为中心200*200范围)外的点。但是投影时会发现在俯视图中同一个坐标可能存在多个特征,这里有两个原因:

  1. 单张2D图像不同的像素点可能投影在俯视图中的同一个位置;
  2. 不同相机图像中的不同像素点投影在俯视图中的同一个位置,例如不同相机画面中的同一个目标(本论文中使用6个相机)。

借鉴了pointPillars中的做法,把Lift步骤得到的图像点云转换到BEV视角下,BEV空间下分成了很多的gird,图像点云就会转换到这些grid中,对grid中的特征进行求和池化,得到一个C × H × W 张量,再对该张量进行特征提取(resnet18作为backbone)得到BEV视角下的特征图。"lift-splat"框架在Figure 2:

视锥体池化累积求和技巧
该模型使用的是Pillar的累积求和池化,该技巧是基于本文方法用图像产生的点云形状是固定的,因此每个点可以预先分配一个区间(即BEV网格)索引,用于指示其属于哪一个区间。按照索引排序后将所有的feature基于坐标位置进行排序,过程示意图Fig 3:

源码分析:

请移步知乎吧[paper] Lift,Splat,Shoot论文浅析 - 知乎

相关内容

热门资讯

linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
C++ 机房预约系统(六):学... 8、 学生模块 8.1 学生子菜单、登录和注销 实现步骤: 在Student.cpp的...
JAVA多线程知识整理 Java多线程基础 线程的创建和启动 继承Thread类来创建并启动 自定义Thread类的子类&#...
【洛谷 P1090】[NOIP... [NOIP2004 提高组] 合并果子 / [USACO06NOV] Fence Repair G ...
国民技术LPUART介绍 低功耗通用异步接收器(LPUART) 简介 低功耗通用异步收发器...
城乡供水一体化平台-助力乡村振... 城乡供水一体化管理系统建设方案 城乡供水一体化管理系统是运用云计算、大数据等信息化手段࿰...
程序的循环结构和random库...   第三个参数就是步长     引入文件时记得指明字符格式,否则读入不了 ...
中国版ChatGPT在哪些方面... 目录 一、中国巨大的市场需求 二、中国企业加速创新 三、中国的人工智能发展 四、企业愿景的推进 五、...
报名开启 | 共赴一场 Flu... 2023 年 1 月 25 日,Flutter Forward 大会在肯尼亚首都内罗毕...
汇编00-MASM 和 Vis... Qt源码解析 索引 汇编逆向--- MASM 和 Visual Studio入门 前提知识ÿ...
【简陋Web应用3】实现人脸比... 文章目录🍉 前情提要🌷 效果演示🥝 实现过程1. u...
前缀和与对数器与二分法 1. 前缀和 假设有一个数组,我们想大量频繁的去访问L到R这个区间的和,...
windows安装JDK步骤 一、 下载JDK安装包 下载地址:https://www.oracle.com/jav...
分治法实现合并排序(归并排序)... 🎊【数据结构与算法】专题正在持续更新中,各种数据结构的创建原理与运用✨...
在linux上安装配置node... 目录前言1,关于nodejs2,配置环境变量3,总结 前言...
Linux学习之端口、网络协议... 端口:设备与外界通讯交流的出口 网络协议:   网络协议是指计算机通信网...
Linux内核进程管理并发同步... 并发同步并发 是指在某一时间段内能够处理多个任务的能力,而 并行 是指同一时间能够处理...
opencv学习-HOG LO... 目录1. HOG(Histogram of Oriented Gradients,方向梯度直方图)1...
EEG微状态的功能意义 导读大脑的瞬时全局功能状态反映在其电场结构上。聚类分析方法一致地提取了四种头表面脑电场结构ÿ...
【Unity 手写PBR】Bu... 写在前面 前期积累: GAMES101作业7提高-实现微表面模型你需要了解的知识 【技...