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

【MLP-BEV(10)】BEVPooling V1和BEVPooling V2的view_transformer,进行鱼眼图片实践

文章目录

  • 先说说 BEVPoolv1
      • 步骤1:3D点生成
      • 步骤2 2D特征采样和BEV特征生成
      • 特点
  • 再谈谈BEVPoolv2
      • 步骤1:3D点生成
      • 步骤2: 计算索引关系
      • 步骤3: `voxel_pooling`计算
  • 鱼眼图片进行实践
    • 步骤1、3D点生成(基于Kannala-Brandt 进行调整)
    • 步骤2、2D特征采样和BEV特征生成
        • (1) 体素化 (Voxelization)
        • (2) 特征散射 (Scatter Operation)
  • 补充:Kannala-Brandt 模型简短说明
  • 参考

先说说 BEVPoolv1

BEVPoolv2 是 BEVPoolv1 的优化版本,其优化了图像特征到 BEV 特征的转换过程,实现了在计算和存储方面极大的降低。BEVPoolv1 (左)和 BEVPoolv2(右) 的示意图如下:

在这里插入图片描述

BEVPoolv1 的主要计算流程如下:

步骤1:3D点生成

利用get_geometry() 计算图像中每个像素对应的3D空间点在自车(Ego)坐标系下的坐标,即建立 2D像素坐标 ↔ 3D自车坐标 的映射关系。
输入(典型参数):

  • rots:相机到自车的旋转矩阵 [B, N, 3, 3]
  • trans:相机到自车的平移向量 [B, N, 3]
  • intrins:相机内参矩阵 [B, N, 3, 3]
  • post_rots / post_trans:图像后处理(如裁剪/缩放)的变换矩阵
  • depth_假设:离散深度值(如 [4.0, 5.0, ..., 45.0]

输出

  • points:3D点坐标 [B, N, D, H, W, 3]
    • B:Batch大小
    • N:相机数量
    • D:深度采样数
    • H/W:特征图高度/宽度
    • 3:自车坐标系下的 (x, y, z) 坐标

首先执行(1) 生成视锥体(Frustum)

  • 预定义一个 3D视锥体网格(Frustum),表示相机视野范围内的空间采样点:
    # 伪代码:生成像素坐标 + 深度假设的网格
    # frustum 是视锥空间的点集合,初始形状为 (B, N_cams, D, H, W, 3)。
    frustum = create_frustum(depth_bins, H, W)  # [D, H, W, 3]
    
    • 每个点的初始坐标为 (u, v, d)(像素坐标 + 深度)。

其次执行(2) 逆投影到3D相机坐标系

  • 通过相机内参的逆变换,将像素坐标转换为 归一化相机坐标
    [ x c a m y c a m 1 ] = K − 1 ⋅ [ u v 1 ] \begin{bmatrix} x_{cam} \\ y_{cam} \\ 1 \end{bmatrix} = K^{-1} \cdot \begin{bmatrix} u \\ v \\ 1 \end{bmatrix} xcamycam1 =K1 uv1
  • 乘以深度值得到 3D相机坐标
    P c a m = [ x c a m ⋅ d y c a m ⋅ d d ] P_{cam} = \begin{bmatrix} x_{cam} \cdot d \\ y_{cam} \cdot d \\ d \end{bmatrix} Pcam= xcamdycamdd
# 使用深度信息&#

相关文章:

  • 跟李沐学AI:DALL·E 2 论文精读
  • 【位运算】371. 两整数之和
  • DataGear 企业版 1.4.0 发布,数据可视化分析平台
  • 飞牛NAS本地部署小雅Alist结合内网穿透实现跨地域远程在线访问观影
  • MySQL8.0 binlog不清理导致使用磁盘空间过大问题
  • V8的内存分代方法
  • 作业14 (2023-05-22_const修饰指针)
  • 基于SpringBoot+Vue3实现的宠物领养管理平台功能十六
  • 基于云服务器的数仓搭建-服务器配置
  • FPGA学习篇——Verilog学习之寄存器的实现
  • 第九章:优化查找和排序_《C++性能优化指南》notes
  • DPDK介绍
  • 性能比拼: Rust vs C++
  • 【Boost搜索引擎】上
  • Jupyter Notebook中解决matplotlib绘图中文乱码的实用方案
  • Unity Standard Shader 解析(一)之ForwardBase(标准版)
  • 如何在 JavaScript 中实现一个简单的递归函数,例如计算阶乘?
  • HarmonyOS之深入解析如何根据url下载pdf文件并且在本地显示和预览
  • 【leetcode hot 100 295】数据流的中位数
  • 基于大模型的肋骨骨折合并血气胸预测及诊疗方案研究
  • 广告公司名字怎么取/搜索引擎优化的简称是
  • 网站制作公司站建设/杭州排名优化公司
  • 真实的做视频网站/semester
  • 网站内的搜索怎么做的/百度账号注销
  • 自建站和独立站/网站域名综合查询
  • 湖南城市建设职业技术学院官方网站/微信营销技巧