MCPcopy Index your code
hub / github.com/Tsinghua-MARS-Lab/futr3d

github.com/Tsinghua-MARS-Lab/futr3d @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
1,929 symbols 6,371 edges 488 files 1,446 documented · 75% updated 3y ago★ 35030 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

FUTR3D: A Unified Sensor Fusion Framework for 3D Detection

This repo implements the paper FUTR3D: A Unified Sensor Fusion Framework for 3D Detection. Paper - project page

We built our implementation upon MMdetection3D 1.0.0rc6. The major part of the code is in the directory plugin/futr3d.

Environment

Prerequisite

  1. mmcv-full>=1.5.2, <=1.7.0
  2. mmdet>=2.24.0, <=3.0.0
  3. mmseg>=0.20.0, <=1.0.0
  4. nuscenes-devkit

Installation

There is no neccesary to install mmdet3d separately, please install based on this repo:

cd futr3d
pip3 install -v -e .

Data

Please follow the mmdet3d to process the data. mmdet3d_nuscenes_guidance

Notably, we have modified the nuscenes_converter.py to add the radar infomation, so the infos.pkl generated by our code is different from the original code. The other infomation except the radar infos is the same with the original infos.pkl.

Train

For example, to train FUTR3D with LiDAR only on 8 GPUs, please use

bash tools/dist_train.sh plugin/futr3d/configs/lidar_only/lidar_0075_900q.py 8

For LiDAR-Cam and Cam-Radar version, we need pre-trained model.

The Cam-Radar uses DETR3D model as pre-trained model, please check DETR3D.

The LiDAR-Cam uses fused LiDAR-only and Cam-only model as pre-trained model. You can use

python tools/fuse_model.py --img <cam checkpoint path> --lidar <lidar checkpoint path> --out <out model path>

to fuse cam-only and lidar-only models.

Evaluate

For example, to evalaute FUTR3D with LiDAR-cam on 8 GPUs, please use

bash tools/dist_train.sh plugin/futr3d/configs/lidar_cam/lidar_0075_cam_res101.py ../lidar_cam.pth 8 --eval bbox

Results

LiDAR & Cam

models mAP NDS Link
Res101 + VoxelNet 67.4 70.9 model
VoVNet + VoxelNet 70.3 73.1 model

Cam & Radar

models mAP NDS Link
Res101 + Radar 39.9 50.8 model

LiDAR only

models mAP NDS Link
32 beam VoxelNet 63.3 68.9 model
4 beam VoxelNet 44.3 56.4
1 beam VoxelNet 16.9 39.2

Cam only

The camera-only version of FUTR3D is the same as DETR3D. Please check DETR3D for detail implementation.

Acknowledgment

For the implementation, we rely heavily on MMCV, MMDetection, MMDetection3D, and DETR3D

Related projects

  1. DETR3D: 3D Object Detection from Multi-view Images via 3D-to-2D Queries
  2. MUTR3D: A Multi-camera Tracking Framework via 3D-to-2D Queries
  3. For more projects on Autonomous Driving, check out our Visual-Centric Autonomous Driving (VCAD) project page webpage

Reference

@article{chen2022futr3d,
  title={FUTR3D: A Unified Sensor Fusion Framework for 3D Detection},
  author={Chen, Xuanyao and Zhang, Tianyuan and Wang, Yue and Wang, Yilun and Zhao, Hang},
  journal={arXiv preprint arXiv:2203.10642},
  year={2022}
}

Contact: Xuanyao Chen at: xuanyaochen19@fudan.edu.cn or ixyaochen@gmail.com

Core symbols most depended-on inside this repo

cat
called by 367
mmdet3d/core/points/base_points.py
build_loss
called by 72
mmdet3d/models/builder.py
clone
called by 64
mmdet3d/core/points/base_points.py
to
called by 61
mmdet3d/core/points/base_points.py
load
called by 51
data/scannet/extract_posed_images.py
cat
called by 47
mmdet3d/core/bbox/structures/base_box3d.py
gather
called by 41
tools/data_converter/kitti_data_utils.py
decode
called by 27
mmdet3d/core/bbox/coders/smoke_bbox_coder.py

Shape

Method 1,288
Function 382
Class 258
Route 1

Languages

Python100%

Modules by API surface

mmdet3d/datasets/pipelines/transforms_3d.py96 symbols
mmdet3d/core/bbox/structures/base_box3d.py38 symbols
mmdet3d/datasets/pipelines/loading.py37 symbols
mmdet3d/models/detectors/mvx_two_stage.py29 symbols
mmdet3d/models/detectors/imvotenet.py27 symbols
mmdet3d/core/bbox/box_np_ops.py27 symbols
mmdet3d/core/points/base_points.py24 symbols
mmdet3d/models/dense_heads/fcaf3d_head.py21 symbols
tools/data_converter/kitti_data_utils.py20 symbols
plugin/futr3d/models/backbone/vovnet.py20 symbols
mmdet3d/models/segmentors/encoder_decoder.py20 symbols
mmdet3d/datasets/scannet_dataset.py20 symbols

For agents

$ claude mcp add futr3d \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact