Voxformer代码 DataLoader 的编写

news2024/9/30 7:32:40

Stage 1: 目标是 使用QPN 生成 Occupancy Field

读取 需要读取 pseudo 的 vox_path

实际的 test 发生在 lmsnet.py 这个文件
input :25625632 的 pseudo point
output: 12812816 的 Occupancy Grid

代码中 实际inference 的输入是 img_metas[0]["pseudo_pc"]

  1. 因此,首先需要借助 MobileStereoNet 生成 disparity 图

  2. 然后借助 disparity 生成 lidar 的bin

python utils/depth2lidar.py --calib_dir
./kitti360_images/01/image_2/calib --depth_dir
./mobilestereonet/depths_kitti/sequences/01/ --save_dir ./lidar

  1. 再使用 lidar2voxel 的脚本,将lidar 生成的 pointcloud 转化成 pseudo_pc, 然后网络实际输入的是这个 pseudo_pc 这个文件,输出的是 12812816 的 Voxel。 即QPN 网络的输出

Stage 2: 生成一个 Semantic Vox field

Input:

  1. 每一个 sequence 的 pose.txt

还不知道这个 pose.txt 表示的是什么意思,如何在代码中使用;单张图像用不上

  1. 每一个 sequence 的 calib.txt
    读取每一个 sequence 的 内参矩阵 P2 和 Tr。
    在Semantic Kitti 的数据集当中,Tr 表示 Rigid transform from Velodyne coord to reference camera coord。 即表示从激光Lidar 的坐标系 到图像坐标系的 刚体转换

3. 实际上 读入的 Scan 数据在代码当中使用一个 dict 去表示:

在这里插入图片描述

4. 在DataLoader 加载的过程当中 去构建 meta_info:

在这里插入图片描述

4. 构建 meta之后 去 Read 出image

image 的 shape 是 ([1, 3, 370, 1220]). batch_size = 1; channel =3.

5. 在 Dataloader 的过程当中,最后返回的是 data_info

在这里插入图片描述


6. 在 Dataloader 的过程当中,关于外参 pose.txt 的使用进行 debug

目前的理解: Voxformer 可以对于一帧图像进行 3D Voxel 的 进行生成,但是 如果当 batch_size 不为1的话,其他帧生成的 Voxel 的3D 坐标应该都是相对与 target 帧来进行生成的。

因此,在Dataset 中读取的 pose.txt 实际上是计算其他帧对应的 lidar 坐标系 转化到 target image 的 camera 坐标系。当如果从一张图像进行 infer 的时候自然不需要 pose.txt 提供的外参信息。

在 cfg 文件加载的时候, 指定了在**temporal 参数 来给定 一个序列的图像当中图像的 ref 帧**,也就是好几个image 生成的 Voxel 映射到 ref image 上面去。 造成一种动态前行的 video 的效果。


在Kitti360 Datasets 上去 inference 一张图像的 Semantic Voxel Field

  • Input: 图像 image
  • calib.txt 给定 相机内参 P2 和 Lidar 坐标系 到 Cam 坐标系的 Transform
  • QPN 从 Stage 1 输出

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

算法小课堂(十)随机化算法

目录 一、概述 1.1概念 1.2分类 二、数值随机化算法 2.1随机数 2.2用随机投点法计算Π值 2.3随机投点法计算定积分 三、舍伍德(Sherwood)型随机化算法 3.1随机洗牌算法 3.2随机快速排序:随机选择枢点的快速排序算法 3.3找出这n个元素…

STL——string类的模拟实现

0.关注博主有更多知识 C知识合集 目录 1.编码问题 2.string类概述 2.6习题练习 3.string类的模拟实现 3.1成员变量 3.2迭代器部分 3.3类的默认成员部分 3.4容量接口 3.5增删查改接口 3.6通用接口 3.7输入与输出 3.8完整代码 1.编码问题 实际上在我们接触C之前就…

SpringBoot入门(构建、打包、启动、起步依赖starter)

文章目录 1 SpringBoot快速入门1.1 开发步骤步骤1 创建新模块步骤2 创建 Controller步骤3 启动服务器步骤4 进行测试 1.2 对比1.3 官网构建工程步骤1 进入SpringBoot官网步骤2 选择依赖步骤3 生成工程 1.4 SpringBoot工程快速启动1.4.1 问题导入1.4.2 打包1.4.3 启动 2 SpringB…

OverTheWireBandit教程(1-10)

这个网站还挺好玩的于是我就抽点时间做了一下 OverTheWire的登录网址:OverTheWire: Bandit 本人用的是远程连接软件mobaxterm,windows自带的ssh版本不对用不了 Bandit Level 0 Level Goal The goal of this level is for you to log into the game usi…

使用ASM直接生成字节码的方法

ASM是一套java字节码分析/生成/修改的工具,它能够在java程序运行时直接修改java字节码文件,换句话说它能够直接修改java的二进制文件;也能够跳过编译直接生成字节码文件。所以ASM功能非常强大,对于代码性能提升、代码问题定位都非…

【技术】《Netty》从零开始学netty源码(六十)之ByteToMessageDecoder

ByteToMessageDecoder 在Netty中用于拆包的解码器都继承了抽象类ByteToMessageDecoder,它的类结构如下: 从中可以看出它其实就是一个handler,只要添加到pipeline中channel每次读取数据的时候都会得到解析,它的数据结构如下&#…

业绩涨,股价不涨,蓝思科技深陷「果链困局」

作者 | 辰纹 来源 | 洞见新研社 曾经的女首富,蓝思科技董事长周群飞很困惑,公司业绩明明还算不错,可股价却怎么也涨不起来,距离市值2000亿的顶点更是遥遥无望。 根据不久前(4月23日)蓝思科技发布的2022年…

Mybatis中处理特殊SQL处理逻辑

文章目录 0、前言1、模糊查询2、动态表名3、获取自增的组件4、批量删除 0、前言 在MyBatis中可能会有一些特殊的SQL需要去执行,一般就是模糊查询、批量删除、动态设置表名、添加功能获取自增的主键这几种,现在分别来进行说明。 为了方便演示 &#xff0…

强化学习路线规划之深度学习代码练习预备

前面已经练习过神经网络的相关代码,其实弄明白了你会发现深度学习其实是个黑盒,不论是TensorFlow还是pytorch都已经为我们封装好了,我们不需要理解深度学习如何实现,神经网络如何计算,这些都不用我们管,可能…

一看就懂之与栈结构(FILO)相对的——队列结构(FLFO)

文章目录 一、什么是队列,什么是FIFO二、使用C模拟实现以及解析队列1.结构体的定义2.队列的创建及销毁3.实现插入操作4.队列删除操作5.获取栈中有效元素个数以及头元素尾元素 源代码分享 一、什么是队列,什么是FIFO ​ 队列允许在一端进行插入操作&…

微服务之以nacos注册中心,以gateway路由转发服务调用实例(第一篇)

实现以nacos为注册中心,网关路由转发调用 项目版本汇总项目初始化新建仓库拉取仓库项目父工程pom初始化依赖版本选择pom文件如下 网关服务构建pom文件启动类配置文件YMLnacos启动新建命名空间配置网关yml(nacos)网关服务启动 用户服务构建pom文件启动类配置文件YML新增url接口配…

[网鼎杯 2020 青龙组]jocker 题解

32位无壳 堆栈有问题 先修堆栈在反编译 查看关键函数 对输入的字符串进行了加密 加密之后omg函数中与存储的字符串进行比较 我们先解密这个 提取数据 解密脚本 data[0x66,0x6b,0x63,0x64,0x7f,0x61,0x67,0x64,0x3b,0x56,0x6b,0x61,0x7b,0x26,0x3b,0x50,0x63,0x5f,0x4d,0x5…

javascript基础二:Javscript字符串的常用方法有哪些?

在日常开发中,我们对字符串也是操作蛮多,这里我们来整理下字符串的一下最常用的方法 一、操作方法 字符串常用的操作方法归纳为增、删、改、查 增 这里增的意思并不是说直接增添内容,而是创建字符串的一个副本,再进行操作 除了…

Python实战基础9-元组、字典、集合

一、元组 Python的元组与列表类似,不同职称在于元组的元素不能修改。元组使用(),列表使用[]。 Python的元组与列表类似,不同之处在于元组的元素不能修改(增删改), 元组使用小括号()…

VuePress 1.x 踩坑记录

文章目录 前言1.Node.js 版本问题2.侧边栏3.添加页面目录导航4.非首页 footer 不生效5.部署到 Github 的错误vuepress 的 docs 与 Github Pages 的 docs 目录冲突样式丢失 7.资源引用问题本地图片找不到引用 CSDN 图片报 403 错误 参考文献 前言 我的第二本开源电子书《后台开…

被问了100遍的 堆的基本功能如何实现? 绝了!!!

文章目录 堆的介绍堆的概念堆的结构 堆的向下调整算法建堆的时间复杂度 堆的向上调整算法堆的基本功能实现初始化堆打印堆堆的插入堆的删除获取堆顶的数据获取堆的数据个数堆的判空销毁堆 堆的介绍 堆的概念 堆:如果有一个关键码的集合K{k0,k1,k2,…,kn-1}&#x…

计算机图形学-GAMES101-9

前言 材质和光的相互作用很重要。VertexShader和FragmentShader。纹理贴图Texture mapping。 一、在三角形中插值 为什么要在三角形内部插值?虽然我们的操作很多是在三角形顶点上进行计算的,但是对于三角形内部我们也希望每个像素点能得到一个值&…

FLASH锁死,STLink烧程序烧完一次无法再烧?

ST烧程序烧完一次无法再烧,因为把烧录引脚占用,所以可以再配置一下。 (平时不勾PA13和PA14,也是会通过PA13和PA14烤录,勾上是为了防止锁死FLASH) 如果锁住,再烧烧不进去 卡点,按住复…

【踩坑无数终极0错版】mac-Parallels Desktop的windwos虚拟机安装最新夜神模拟器+burpsuite证书安装+app渗透

文章目录 前言一、安装夜神模拟器二、夜神模拟器配置三、安装证书与所需软件四、测试抓包总结 前言 不想说了,反正我吐了,直接看正文吧。 提示:以下是本篇文章正文内容,下面案例可供参考 一、安装夜神模拟器 mac上是安装不成功…

Spring6新特性来了!便捷替代Feign封装RPC接口

spring6的新特性笔者最近也有在研究,其中在HttpServiceProxyFactory服务代理工厂的使用方式体验上,笔者认为极其像是在用Feign编写RPC接口,使用服务代理工厂我们只要在全局配置单例的服务代里工厂bean再维护一个http interface接口就能统一的…