尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

EmbodiedScan稀疏特征融合原理:ResNet+MinkResNet双骨干网络如何协同工作

EmbodiedScan稀疏特征融合原理:ResNet+MinkResNet双骨干网络如何协同工作 EmbodiedScan稀疏特征融合原理ResNetMinkResNet双骨干网络如何协同工作【免费下载链接】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感知方案。其中多视图3D检测Multi-View 3D Detection模型采用了ResNet MinkResNet 双骨干网络的经典架构将图像特征与点云特征在稀疏张量层面进行融合。本文用最通俗的语言拆解这套稀疏特征融合方案的核心原理带你理解两条骨干网络究竟如何分工、又如何协作。为什么3D感知需要 ResNet 与 MinkResNet 双骨干网络传统的室内3D检测通常只吃点云一种输入但真实世界是多模态的一张彩色图像富含纹理与颜色信息而点云则提供了精确的几何结构。两者互补缺一不可输入模态骨干网络擅长提取的信息RGB 图像ResNet2D卷积颜色、纹理、物体轮廓、语义外观点云MinkResNet3D稀疏卷积空间几何、尺寸、深度结构、位置关系在 EmbodiedScan 中图像来自第一人称视角的 RGB-D 序列单场景可达数十帧点云则是由深度图反投影得到的连续点云。双骨干网络各司其职ResNet 负责看懂画面MinkResNet 负责摸清空间最后在稀疏特征层面合二为一。MinkResNet 稀疏卷积如何编码点云特征点云是稀疏的——大部分空间是空气只有少数位置有激光点。如果像图像那样用稠密卷积暴力计算会浪费大量算力。MinkResNet 的秘诀是MinkowskiEngine 稀疏卷积只对有数据的体素做计算。在代码 mink_resnet.py 中MinkResNet 与经典 ResNet 结构一一对应支持depth ∈ {18, 34, 50, 101, 152}的残差结构BasicBlock/Bottleneck首层MinkowskiConvolution将输入in_channels3即 xyz 坐标特征编码为 64 维依次经过 4 个残差 stagelayer1~layer4逐级输出4 个尺度的稀疏特征通道数依次为 128 → 256 → 512 → 1024。关键点是MinkResNet 输出的不是普通张量而是ME.SparseTensor它只保留有体素的位置这正是后续稀疏特征融合能高效进行的前提。ResNet 图像骨干如何提取多尺度视觉特征图像的编码则交给经典的mmdet.ResNet。在配置 mv-det3d_8xb4_embodiedscan-3d-284class-9dof.py 中可以看到它的设定backbonedict( typemmdet.ResNet, depth50, base_channels16, # 与 MinkResNet 对齐 num_stages4, out_indices(0, 1, 2, 3), init_cfgdict(typePretrained, checkpointtorchvision://resnet50), ...)几个容易忽略的细节base_channels16把通道基数从默认的 64 降为 16让 2D 骨干的 4 个 stage 输出维度128/256/512/1024与 MinkResNet完全对齐为后续逐尺度拼接铺路预训练权重加载 torchvision 的 ResNet50 权重让模型赢在起跑线多视图处理多帧图像先按视图维度展开批量送入 ResNet提取完特征后再 reshape 回(batch, n_views, C, H, W)保证每个视角都有自己的特征金字塔。稀疏特征融合图像特征如何附着到点云上这是整套方案最精妙的一步实现在 sparse_featfusion_single_stage.py 的extract_feat方法中整个过程可以拆成四步第一步点云体素化并编码。将点云按voxel_size0.011厘米划分体素构造ME.SparseTensor送入 MinkResNet 得到 4 个尺度的稀疏特征x[0] ~ x[3]。第二步提取多视图图像特征。所有视角图像过 ResNet得到 4 个尺度的 2D 特征图。第三步坐标投影 特征采样。这是融合的核心动作取每个尺度体素的中心坐标乘回voxel_size还原真实位置再用内外参矩阵intrinsic extrinsic把 3D 坐标投影到图像平面通过grid_sample在 2D 特征图上采样出该体素能看到什么图像特征。核心函数见 point_fusion.py 中的batch_point_sample它还考虑了尺度、裁剪、翻转等数据增强的逆变换保证投影坐标准确。第四步特征拼接。采样的图像特征被构造成与点云特征共享同一套坐标索引的SparseTensor然后通过ME.cat与原始点云特征拼接——至此每个体素同时拥有了几何特征 视觉特征一个真正多模态的稀疏特征金字塔就诞生了。连续检测与多视图检测的差异在哪里除了多视图版本EmbodiedScan 还提供连续3D检测方案对应 embodied_det3d.py 的Embodied3DDetector。它把来自不同帧的 RGB-D 图像反投影出的点云聚合拼接成一个完整的大点云再走MinkResNet 编码 → 投影采样 → 融合的流程。相比多视图方案它天然支持任意视角数量更适合机器人实时累积场景信息。从配置看双骨干网络如何协同组装以多视图检测配置为例模型组装逻辑一目了然model dict( typeSparseFeatureFusionSingleStage3DDetector, backbonedict(typemmdet.ResNet, depth50, base_channels16, ...), # 图像骨干 backbone_3ddict(typeMinkResNet, in_channels3, depth34), # 点云骨干 use_xyz_featTrue, bbox_headdict(typeFCAF3DHeadRotMat, in_channels(128, 256, 512, 1024), ...), ...)在SparseFeatureFusionSingleStage3DDetector.__init__中两个骨干通过注册器MODELS.build()分别构建bbox_head的in_channels(128, 256, 512, 1024)正好对应双骨干融合后的 4 尺度通道数。下游的FCAF3DHeadRotMat见 fcaf3d_head.py基于这些融合特征回归出带旋转角度的 9-DoF 三维框最多可识别284 个室内物体类别。核心代码文件速查表如果你打算深入源码这份清单能帮你快速定位功能文件路径双骨干融合检测器sparse_featfusion_single_stage.py连续点云检测器embodied_det3d.py点云骨干 MinkResNetmink_resnet.py图像/点云特征采样与融合point_fusion.py多视图检测配置mv-det3d_8xb4_embodiedscan-3d-284class-9dof.py连续检测配置cont-det3d_8xb1_embodiedscan-3d-284class-9dof.py总结双骨干协同的三大设计精髓回到开头的问题——ResNet 与 MinkResNet 如何协同工作答案可以浓缩为三点分工明确2D 骨干负责语义外观3D 骨干负责几何结构各取所长尺度对齐通过base_channels调参让两个骨干的 4 尺度特征通道数一一对应融合零障碍坐标索引共享用稀疏张量的坐标索引作为通讯协议让图像特征精确附着到每个体素上既高效又不丢失空间对应关系。这种稀疏特征融合范式让 EmbodiedScan 的多模态 3D 感知模型在检测AP0.25 达 15.22与视觉接地等任务上表现出色也为具身智能研究提供了坚实的技术底座。如果你想亲手复现这套方案克隆仓库后运行tools/train.py配合上述配置文件即可开启训练之旅。【免费下载链接】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),仅供参考
返回列表