🎯 框架定位
MMDetection3D 是 OpenMMLab 生态中专注于3D 目标检测、3D 语义分割、多模态感知的工业级框架,支持点云、单/多视角图像、多传感器融合等输入,广泛适配自动驾驶、机器人导航、工业质检等场景。其模块化设计(Backbone→Neck→Head)与 MMSegmentation 完全对齐,可快速复用 2D 生态的成熟模块。
🔧 一、MMDetection3D 所有核心 Backbone(骨干网络)
Backbone 是 3D 感知的特征提取核心,负责从原始 3D 数据(点云/体素/图像)中提取底层特征,支持三类骨干,所有 Backbone 均可在配置文件中通过 backbone: 字段直接调用,部分支持预训练权重加载。
1. 点云专用 Backbone(3D 特征提取核心)
专为点云稀疏性、无序性设计的骨干,是 3D 感知的基础核心。
| Backbone | MMDetection3D 配置标识 | 核心特点 | 适配场景 |
|---|---|---|---|
| PointNet++ | PointNet2Backbone | 多尺度分组(MSG/SG),融合局部 + 全局特征,点云分割/检测的经典基线 | 3D 语义分割、小目标检测 |
| PVCNN | PVCNNBackbone | 体素化 + 稀疏卷积,高效处理大规模点云,算力 - 精度平衡优秀 | 大场景 3D 检测、自动驾驶 |
| PointPillars | PointPillarsBackbone | 点云柱式编码(Pillarization),将点云转为伪图像,适配 2D CNN 加速推理 | 实时 3D 检测、自动驾驶部署 |
| DGCNN | DGCNNBackbone | 动态图卷积建模点云邻域关联,特征表达能力强于 PointNet++ | 高精度 3D 分割、学术研究 |
| PointTransformer | PointTransformerBackbone | 自注意力机制建模长距离特征关联,精度超传统 CNN,算力稍高 | 高精度 3D 分割、学术研究 |
| PAConv | PAConvBackbone | 位置感知动态图卷积,动态调整邻域关联,分割精度 SOTA | 高精度 3D 分割、工业级验证 |
2. 图像复用 Backbone(多模态融合基础)
直接复用 MMSegmentation 的 2D 骨干,用于多模态检测中的图像特征提取,配置标识与 MMSeg 完全一致。
| Backbone | 配置标识 | 核心特点 | 适配场景 |
|---|---|---|---|
| ResNet | ResNet/ResNetV1c | 残差连接解决梯度消失,V1c 为分割优化版,支持空洞卷积改造 | 多模态检测、图像特征增强 |
| SwinTransformer | SwinTransformer | 窗口自注意力 + 层级融合,全局感受野强,适配 BEV 感知算法 | 多模态 BEV 检测、高精度场景 |
| MobileNetV3 | MobileNetV3 | 深度可分离卷积,参数量极小,速度极快 | 单目实时 3D 检测、边缘部署 |
3. 多模态融合 Backbone(点云 + 图像联合特征提取)
并行提取点云与图像特征,解决多模态空间错位问题,适配多传感器融合场景。
| Backbone | 配置标识 | 核心特点 | 适配场景 |
|---|---|---|---|
| MVXBackbone | MVXBackbone | 双分支并行提取点云 + 图像特征,支持早期/晚期融合 | 多传感器融合、自动驾驶 |
| BEVBackbone | BEVBackbone | 提取鸟瞰图(BEV)特征,将图像特征投影到 3D 空间,适配时序融合 | 大规模多模态检测、Waymo/nuScenes |
🔗 二、MMDetection3D 所有核心 Neck(颈部特征融合网络)
Neck 负责对 Backbone 输出的多尺度特征进行融合、增强、重采样、空间对齐,解决 3D 任务中尺度不一致、点云稀疏性、多模态空间错位等问题,配置文件中通过 neck: 字段调用。
1. 点云专用 Neck
专为点云特征设计的融合模块,适配点云专用 Backbone。
| Neck | 配置标识 | 核心原理 | 适配 Backbone/算法 |
|---|---|---|---|
| PointPillarsNeck | PointPillarsNeck | 柱式特征上采样 +2D FPN 融合,将伪图像特征转为 3D 检测特征 | PointPillars、实时检测 |
| CenterPointNeck | CenterPointNeck | 多尺度体素特征融合,增强中心点检测的鲁棒性 | CenterPoint、单阶段检测 |
| FPSSGNeck | FPSSGNeck | 特征金字塔 + 稀疏卷积,融合多尺度点云特征,适配两阶段检测 | PartA2、PointRCNN |
| PointFPN | PointFPN | 点云特征金字塔,融合高/低尺度特征,提升小目标分割精度 | PointNet++、3D 语义分割 |
2. 多模态融合 Neck
解决点云与图像的空间错位问题,适配多模态 Backbone。
| Neck | 配置标识 | 核心原理 | 适配 Backbone/算法 |
|---|---|---|---|
| BEVFeatureExtractor | BEVFeatureExtractor | 将图像特征通过相机内外参投影到 BEV 空间,融合时序特征 | SwinTransformer、BEVFormer |
| FusionNeck | FusionNeck | 点云 + 图像特征加权融合,动态调整模态权重 | MVXNet、多模态检测 |
🎯 三、MMDetection3D 所有核心 Head(检测/分割头)
Head 负责最终的3D 目标检测框预测、语义分割掩码生成,是算法任务的直接输出模块,配置文件中通过 bbox_head:/seg_head: 字段调用。
1. 3D 目标检测 Head
| Head | 配置标识 | 核心原理 | 适配算法 |
|---|---|---|---|
| Anchor3DHead | Anchor3DHead | 基于锚框的检测头,预测 3D 框的偏移、尺寸与类别,经典两阶段检测核心 | PointRCNN、PartA2、PointPillars |
| CenterHead | CenterHead | 中心点检测头,预测目标中心点、尺寸与朝向,单阶段检测的主流方案 | CenterPoint、BEVFormer |
| VoteHead | VoteHead | 投票机制生成候选框,再细化检测结果,适配稀疏点云场景 | VoteNet、室内目标检测 |
| PartA2Head | PartA2Head | 两阶段检测头,第一阶段生成体素提议,第二阶段细化 3D 框,精度极高 | PartA2、KITTI 高精度检测 |
2. 3D 语义分割 Head
| Head | 配置标识 | 核心原理 | 适配算法 |
|---|---|---|---|
| PointSegHead | PointSegHead | 直接预测每个点的类别,适配点云分割算法 | PointNet++、DGCNN |
| SPVCNNHead | SPVCNNHead | 稀疏卷积分割头,处理百万级点云,支持端到端训练 | SPVCNN、SemanticKITTI 分割 |
| PAConvHead | PAConvHead | 位置感知卷积输出分割掩码,精度超传统图卷积 | PAConv、ScanNet 分割 |
🗂️ 四、MMDetection3D 官方内置支持的所有数据集类型
MMDetection3D 实现了统一的数据集加载接口(BaseDataset),支持自动下载、标注解析、多模态对齐,覆盖通用 3D 检测、城市场景、室内导航、遥感分割等主流任务,同时支持自定义数据集。
1. 3D 目标检测数据集
| 数据集名称 | 核心信息 | 标注格式 | 适配场景 |
|---|---|---|---|
| KITTI 3D | 3 类(Car/Pedestrian/Cyclist),7481 训练/7518 测试,点云 + 单视角图像 | KITTI/txt | 自动驾驶基线、算法复现 |
| nuScenes | 10 类,1000 场景,多传感器(激光雷达 +6 摄像头 + 雷达),大规模多模态 | nuScenes/json | 高精度多模态检测、工业级自动驾驶 |
| Waymo Open Dataset | 4 类(Vehicle/Pedestrian/Cyclist/Sign),1200 场景,超大规模点云 + 图像 | Waymo/tfrecord | 工业级自动驾驶、大场景检测 |
| SUN RGB-D | 37 类,10335 训练/2860 验证,室内点云+RGB-D 图像,适配机器人导航 | SUNRGBD/json | 室内目标检测、机器人感知 |
2. 3D 语义分割数据集
| 数据集名称 | 核心信息 | 标注格式 | 适配场景 |
|---|---|---|---|
| ScanNet V2 | 20 类,1513 场景,室内点云+RGB-D,细粒度标注 | ScanNet/ply | 室内语义分割、机器人导航 |
| S3DIS | 13 类,6 个区域,室内点云,小样本分割基准 | S3DIS/label | 小样本 3D 分割、学术研究 |
| SemanticKITTI | 8 类,22 序列,室外点云,自动驾驶语义分割基准 | SemanticKITTI/bin | 室外语义分割、自动驾驶 |
🧩 五、MMDetection3D 完整模型详解(含图片中所有模型)
按功能分类,覆盖图片中所有模型文件,标注核心架构、特点与适配场景:
1. 基础点云检测/分割算法(基线首选)
| 模型文件 | 核心架构(Backbone+Neck+Head) | 核心特点 | 适配场景 |
|---|---|---|---|
point_rcnn.py | PointNet++ + FPSSGNeck + Anchor3DHead | 首个两阶段点云检测算法,精度高但速度较慢,经典基线 | KITTI 3D 检测基线、学术复现 |
pointnet2_ssg.py | PointNet2Backbone(单尺度分组) + PointSegHead | 单尺度局部特征融合,算力低、速度快 | ScanNet/S3DIS 室内分割、入门验证 |
pointnet2_msg.py | PointNet2Backbone(多尺度分组) + PointSegHead | 多尺度局部特征融合,分割精度更高 | 复杂场景 3D 分割、小目标检测 |
votenet.py | PointNet++ + VoteHead | 投票机制生成目标中心点,适配稀疏点云 | SUN RGB-D 室内目标检测、机器人导航 |
dgcnn.py | DGCNNBackbone(动态图卷积) + PointSegHead | 动态图卷积建模点云邻域关联,特征表达更强 | 高精度 3D 分割、学术研究 |
parta2.py | PVCNN + FPSSGNeck + PartA2Head | 两阶段体素检测,KITTI Car 检测 AP 达 92%+,精度天花板 | KITTI 高精度检测、工业级验证 |
2. 实时点云检测算法(部署首选)
| 模型文件 | 核心架构 | 核心特点 | 适配场景 |
|---|---|---|---|
hv_pointpillars_secfpn_kitti.py | PointPillarsBackbone + PointPillarsNeck + Anchor3DHead | 柱式编码 +2D FPN,速度达 20FPS,工业部署标准 | 自动驾驶实时检测、KITTI |
hv_pointpillars_secfpn_waymo.py | PointPillarsBackbone + PointPillarsNeck + Anchor3DHead | 适配 Waymo 大规模点云,支持 4 类目标检测 | Waymo 工业级自动驾驶 |
hv_pointpillars_fpn_nus.py | PointPillarsBackbone + PointPillarsNeck + Anchor3DHead | 适配 nuScenes 多传感器数据集,支持 10 类目标 | nuScenes 多模态检测 |
hv_pointpillars_fpn_lyft.py | PointPillarsBackbone + PointPillarsNeck + Anchor3DHead | 适配 Lyft 数据集,优化小目标检测 | 自动驾驶基线验证 |
hv_pointpillars_fpn_range100_lyft.py | PointPillarsBackbone + PointPillarsNeck + Anchor3DHead | 针对 100 米远距离点云优化 | 高速场景自动驾驶 |
hv_second_secfpn_kitti.py | SECONDBackbone + SECFPNNeck + Anchor3DHead | 体素化稀疏卷积,PointPillars 的经典前身 | 实时检测基线 |
hv_second_secfpn_waymo.py | SECONDBackbone + SECFPNNeck + Anchor3DHead | 适配 Waymo 大规模点云,优化稀疏卷积效率 | Waymo 工业级部署 |
centerpoint_02pillar_second_secfpn_nus.py | PointPillarsBackbone + CenterPointNeck + CenterHead | 中心点检测 + 柱式编码,速度达 30FPS | nuScenes 实时多目标检测 |
centerpoint_01voxel_second_secfpn_nus.py | VoxelBackbone + CenterPointNeck + CenterHead | 体素化 + 中心点检测,精度略高于 Pillar 版本 | 高精度实时检测 |
3. 多模态/单目感知算法(低成本方案)
| 模型文件 | 核心架构 | 核心特点 | 适配场景 |
|---|---|---|---|
smoke.py | ResNet + SMOKENeck + SMOKEHead | 单目图像 3D 检测,基于关键点回归,速度达 30FPS | 低成本自动驾驶、单相机感知 |
fcos3d.py | ResNet + FPNNeck + FCOS3DHead | 单目无锚框 3D 检测,精度比 SMOKE 更高 | 单目高精度检测 |
imvotenet_image.py | ResNet + VoteHead | 单目图像 + 点云融合检测,提升小目标鲁棒性 | 室内多模态检测、机器人导航 |
mask_rcnn_r50_fpn.py | ResNet-50 + FPNNeck + MaskRCNNHead | 2D 实例分割,用于多模态检测中的图像特征增强 | 多模态感知辅助 |
cascade_mask_rcnn_r50_fpn.py | ResNet-50 + FPNNeck + CascadeMaskRCNNHead | 级联式 2D 实例分割,精度更高 | 高精度多模态融合 |
4. 高精度/前沿算法(学术研究)
| 模型文件 | 核心架构 | 核心特点 | 适配场景 |
|---|---|---|---|
3dssd.py | PointNet++ + 3DSSDNneck + Anchor3DHead | 单阶段稀疏点云检测,精度与速度平衡 | 大规模点云检测 |
groupfree3d.py | PointTransformerBackbone + GroupFree3DHead | 无分组点云检测,自注意力建模全局特征 | 高精度 3D 检测、顶会复现 |
h3dnet.py | H3DNetBackbone + H3DNetHead | 分层点云特征融合,小目标检测精度高 | 复杂场景 3D 检测 |
faf3d.py | FAF3DBackbone + FAF3DHead | 多模态特征对齐融合,解决空间错位问题 | 高精度多模态检测 |
paconv_ssg.py | PAConvBackbone + PointSegHead | 位置感知动态图卷积,特征表达强于 DGCNN | 高精度 3D 分割 |
paconv_cuda_ssg.py | PAConvBackbone(CUDA 加速) + PointSegHead | 位置感知卷积的 CUDA 优化,速度提升 2-3 倍 | 高精度实时分割 |
pgd.py | PGDBackbone + PGDHead | 生成式点云检测,伪点云增强小目标鲁棒性 | 小样本 3D 检测 |
🎯 六、模块经典搭配与选型建议
MMDetection3D 的解耦设计让模块可自由组合,合理搭配能大幅提升精度与速度,结合官方最佳实践,给出核心搭配原则:
- Backbone 与 Neck 搭配:点云专用 Backbone(PointPillars/PVCNN)优先配 PointPillarsNeck/CenterPointNeck,图像复用 Backbone(ResNet/Swin)优先配 FPN/BEVFeatureExtractor,多模态 Backbone(MVXBackbone)优先配 FusionNeck;
- 算法与模块搭配:PointPillars → PointPillarsBackbone + PointPillarsNeck + Anchor3DHead,CenterPoint → VoxelBackbone + CenterPointNeck + CenterHead,BEVFormer → SwinTransformer + BEVFeatureExtractor + CenterHead,VoteNet → PointNet++ + VoteHead;
- 数据集与算法搭配:通用 3D 检测 → KITTI/nuScenes + PointPillars/CenterPoint,室内导航 → SUN RGB-D + VoteNet/imvotenet_image,工业级自动驾驶 → Waymo + PointPillars_secfpn_waymo/BEVFormer,3D 语义分割 → ScanNet/S3DIS + PointNet++/PAConv。
🚀 七、一键运行配置模板(全场景)
所有配置基于 MMDetection3D 1.x 稳定版,兼容 MMEngine/MMCV,直接替换路径 + 少量参数即可启动训练/测试。
场景 1:实时 3D 检测(PointPillars-KITTI)
工业级部署首选,速度与精度平衡极佳。
# PointPillars 一键训练配置(KITTI) _base_ =['../_base_/models/pointpillars.py','../_base_/datasets/kitti-3d-3class.py','../_base_/schedules/cyclic_40e.py','../_base_/default_runtime.py']# 【可修改参数】核心项 data_root ='/your/path/to/kitti'# KITTI 数据集根路径 work_dir ='./work_dirs/pointpillars_kitti' gpu_ids =[0] batch_size =4# 16G 单卡→4,24G→8 lr =0.001# batch 翻倍则 lr 翻倍# 数据集配置(无需改,按官方规范) data =dict( samples_per_gpu=batch_size, workers_per_gpu=2)
启动命令:
# 训练 python tools/train.py configs/your_folder/pointpillars_kitti.py # 测试 python tools/test.py configs/your_folder/pointpillars_kitti.py work_dirs/pointpillars_kitti/best_epoch_xx.pth --show-dir work_dirs/pointpillars_kitti/results
场景 2:多模态 SOTA 检测(BEVFormer-nuScenes)
大规模多模态检测首选,适配 Waymo/nuScenes。
# BEVFormer 一键训练配置(nuScenes) _base_ =['../_base_/models/bevformer.py','../_base_/datasets/nuscenes-3d.py','../_base_/schedules/schedule_12e.py','../_base_/default_runtime.py']# 【可修改参数】核心项 data_root ='/your/path/to/nuscenes' work_dir ='./work_dirs/bevformer_nuscenes' gpu_ids =[0] batch_size =1# 16G 单卡→1,24G→2 lr =0.00006
💡 八、通用使用关键指南
- 数据集目录规范:严格遵循官方结构,点云/图像/标注路径需与配置中
data_root/img_dir/ann_dir对应。 - 参数调整原则:
- 批次大小(batch_size):16G 显卡→基础值,24G×2,32G×4,批次翻倍则学习率(lr)同步翻倍(核心!否则训练不收敛)。
- 输入尺寸:显存足够→增大尺寸(如 512→896),精度更高;显存不足→减小尺寸(如 512→384)。
- 多卡训练:启动命令加
--gpu-ids即可,如python tools/train.py config.py --gpu-ids 0 1。 - 结果可视化:测试时加
--show-dir保存 3D 检测/分割结果,加--show实时可视化。
模型导出部署:支持 ONNX/TensorRT/TorchScript 一键导出,如:
python tools/export_model.py config.py work_dirs/best.pth ./output --format onnx


