【BEV】3D视觉 PRELIMINARY

这里的知识来自于论文 Delving into the Devils of Bird's-eye-view Perception: A Review, Evaluation and Recipe 的 Appendix B.1

部分来自 这篇文章

从透视图转向鸟瞰图。(Xw、Yw、Zw)、(Xc、Yc、Zc)表示世界World坐标和相机Camera坐标, ( X i 、 Y i ) (X_i、Y_i) (Xi、Yi)、(U、V)表示图像坐标和像素坐标。由于图像坐标系和像素坐标系处于同一平面,故两者之间的差异在于坐标原点的位置和单位。像素坐标系的原点在图像坐标系的左上角,同时像素坐标系的单位为像素。

故两个坐标系之间的变换满足
u = x d x + u 0 , v = y d y + v 0 u=\frac{x}{d_x}+u_0,v=\frac{y}{d_y}+v_0 u=dxx+u0,v=dyy+v0

dx,dy表示像素坐标系中每个像素点的宽和高 ,而图像坐标系原点在像素坐标系中的横纵坐标分别为 u 0 , v 0 u_0, v_0 u0,v0。

从BEV平面上升起一根柱子。P代表柱子上的3D点, P ′ P^{'} P′代表P相应在相机视角上的投影点。

P, P ′ P^{'} P′分别对应于柱上的三维点和摄像机视图上投影的2D点。

给定P的世界坐标和相机的内在参数和外在参数,可以得到 P ′ P^{'} P′的像素坐标。

显式BEV特征构造通常需要基于三维到二维投影对局部图像视图特征进行索引。上图显示BEVFormer的视角转换。一根柱子从BEV平面升起,柱子内的一个三维点被投影到相机视图上。

投影过程涉及到世界World、相机Camera、图像Image和像素Pixel坐标系之间的转换。

从世界坐标到相机坐标的转换是一种刚性变换,只需要平移和旋转(更详细的可以看上面的博客)。

设 P w = [ x w 、 y w 、 z w , 1 ] 、 P c = [ x c 、 y c 、 z c , 1 ] P_w = [x_w、y_w、z_w,1]、P_c = [x_c、y_c、z_c,1] Pw=[xw、yw、zw,1]、Pc=[xc、yc、zc,1]分别为一个三维点P在世界坐标和相机坐标中的同质表示。它们之间的关系可以描述如下:
R,T分别表示旋转矩阵和平移矩阵。

相关推荐
reddingtons7 小时前
Illustrator 3D Mockup:零建模,矢量包装一键“上架”实拍
人工智能·ui·3d·aigc·illustrator·设计师·平面设计
远瞻。13 小时前
【环境配置】【bug调试】pytorch3d 安装
人工智能·pytorch·3d·调试
数据与后端架构提升之路13 小时前
感知模块详解:从 OpenCV/YOLO 脚本到 多模态多任务 BEV 架构
人工智能·机器学习·自动驾驶
数据与后端架构提升之路14 小时前
自动驾驶仿真数据闭环:如何利用大数据构建“上帝视角”的虚拟矩阵?(硬核指南)
大数据·矩阵·自动驾驶
老黄编程15 小时前
点云SIFT3D特征点云原理、算法描述及参数详细说明
算法·3d·sift3d
胖墩会武术15 小时前
【PyTorch项目实战】SAM3:概念分割 + 3D重建(模型 + 人体)
人工智能·pytorch·3d
TTGGGFF1 天前
人工智能:用Gemini 3一键生成3D粒子电子手部映射应用
人工智能·3d·交互
地平线开发者1 天前
征程 6 | linear 高精度输出配置方式
算法·自动驾驶
地平线开发者1 天前
征程 6 | QAT 新版 qconfig 量化模板使用教程
算法·自动驾驶
回忆彡美好1 天前
OpenGL的3D编程个人笔记之材质贴图
笔记·3d·材质·opengl