从RGB-D到3D点云:EmbodiedScan多视图数据生成流水线原理与实战 📅 2026/8/21 15:58:14 从RGB-D到3D点云EmbodiedScan多视图数据生成流水线原理与实战【免费下载链接】EmbodiedScan[CVPR 2024 NeurIPS 2024] EmbodiedScan: A Holistic Multi-Modal 3D Perception Suite Towards Embodied AI项目地址: https://gitcode.com/gh_mirrors/em/EmbodiedScan想训练一个能理解三维世界的模型第一步不是写网络而是先搞清楚数据从哪来。EmbodiedScanCVPR 2024 NeurIPS 2024正是为此而生的多模态 3D 感知套件它把海量 ego-centric RGB-D 视图、语言指令与 3D 标注打包在一起为具身智能研究提供了统一的数据与评测基准。本文将带你拆解 EmbodiedScan 最核心的一环——多视图数据生成流水线看看一段段原始 RGB-D 视频帧是如何一步步被加工成模型可用的 3D 点云与体素特征的。为什么需要多视图数据生成流水线先看一组数字EmbodiedScan 数据集包含5k 场景扫描、100 万张 ego-centric RGB-D 视图、100 万条语言指令、16 万 3D 目标框、覆盖 760 类别并附带 80 类的密集语义占用标注。如此规模的数据不可能靠人工标注点云它的背后是一条自动化的转换流水线从原始传感器数据出发逐帧提取彩色图与深度图再由深度图反投影出三维点最后把多视角点云融合到统一的全局坐标系中。这套逻辑正是 EmbodiedScan 中converter与datasets/transforms两个模块的核心职责。第一步从原始传感器数据中提取 RGB-D 帧原始数据长什么样以 ScanNet 为例每个场景被打包成一个.sens文件里面混排着彩色图、深度图、相机位姿与内参矩阵。EmbodiedScan 提供了解析工具generate_image_scannet.py读取.sens文件逐帧解压出 RGB 图export_color_images、深度图export_depth_images、相机外参位姿export_poses以及彩色/深度内参export_intrinsics/export_depth_intrinsics输出到posed_images目录。generate_image_3rscan.py针对 3RScan 数据集只需解压sequence.zip即可得到同样的帧序列。这一步产出的核心资产是每帧的深度图 相机内参 相机到世界的外参它们是后续点云重建的原材料。第二步深度图反投影把像素变回三维点有了深度图和内参就可以做反投影back-projection。在 points.py 中ConvertRGBDToPoints变换完成了这件事对深度图每个像素(u, v, d)结合内参矩阵用points_img2cam把像素坐标映射为相机坐标系下的三维点(x, y, z)过滤掉深度为 0 的无效像素若开启use_color还会用相机外参把 3D 点投影回彩色图上采样对应 RGB 颜色得到xyzrgb 彩色点云。这就是从 RGB-D 到 3D 点云最关键的一跳——单帧深度图在这里变成了一小片三维点云。第三步多视图点云融合拼出完整场景单帧视角只能看到局部EmbodiedScan 的流水线要把一个场景内任意数量的视角点云融合到全局坐标系。这一步由 multiview.py 中的MultiviewPipeline完成遍历每个视角的点云利用depth2img中记录的相机外参把相机系点云变换到全局坐标系将各视角点云拼接torch.cat成完整场景点云开启save_slices时还会记录各视角点云的索引切片用于连续 3D 感知1-N 帧任务的输入。至此一条完整的多视图数据生成流水线已经打通RGB-D 帧 → 单视角点云 → 全局融合点云。进阶体素化与占用标注喂给稀疏 3D 网络融合后的点云动辄几十万点直接输入网络并不现实。EmbodiedScan 的做法是体素化在 voxelize.py 中提供 hard 与 dynamic 两种体素化方式把点云离散成规则网格voxel再由稀疏 3D 编码器如 MinkResNet提取特征。此外extract_occupancy_ann.py 负责把占用occupancy标注批量拷贝到各场景目录下支撑 80 类密集语义占用任务。实战快速跑通数据转换流水线想亲手复现环境要求为 Ubuntu 20.04、CUDA 12.0、Python 3.8 与 PyTorch 1.11。克隆仓库后执行git clone https://gitcode.com/gh_mirrors/em/EmbodiedScan cd EmbodiedScan python install.py all # 安装全部依赖拿到 ScanNet 原始数据后运行python embodiedscan/converter/generate_image_scannet.py --dataset_folder 你的数据目录 --nproc 8数据组织方式请参考 data/README.md模型训练与评测脚本位于tools/目录多视图检测/视觉定位的完整配置见configs/。写在最后EmbodiedScan 的多视图数据生成流水线并不神秘解析原始帧、深度反投影、多视角融合、体素化四步即可把原始 RGB-D 数据变成高质量 3D 感知训练语料。理解这条流水线你不仅能复现官方基准更能为自己的数据集定制一套RGB-D 到 3D 点云的生产链路。若想深入源码建议从converter/与datasets/transforms/入手代码注释清晰、模块化程度高是极佳的学习范本。【免费下载链接】EmbodiedScan[CVPR 2024 NeurIPS 2024] EmbodiedScan: A Holistic Multi-Modal 3D Perception Suite Towards Embodied AI项目地址: https://gitcode.com/gh_mirrors/em/EmbodiedScan创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考