必须先自行安装 MinkowskiEngine,否则 make install 无法完成;可视化需要 make install-all 安装可选依赖;运行前需从 Downloads 下载预训练权重;复现论文原始结果需 git checkout v0.1。
4DMOS
PRBonnMIT长期未更新用稀疏 4D 卷积在 3D 激光雷达点云中做移动物体分割,能区分场景里的动与静,适合自动驾驶感知研究。
Receding Moving Object Segmentation in 3D LiDAR Data Using Sparse 4D Convolutions (RAL 2022)
git clone [email protected]:PRBonn/4DMOS && cd 4DMOS
make installREADME 未说明显存或 CPU 运行要求;依赖 MinkowskiEngine,通常需要 NVIDIA GPU 环境,具体型号未说明。
用稀疏 4D 卷积在 3D LiDAR 序列中分割运动物体,适合做动态场景建图与感知
用稀疏 4D 卷积在 3D 激光雷达点云中做移动物体分割,能区分场景里的动与静,适合自动驾驶感知研究。
核心能力
- 在滑动窗口内构建稀疏 4D 点云
- 用 MinkowskiEngine 稀疏 4D 卷积提取时空特征
- 逐点输出运动物体分数
- 内部用 KISS-ICP 对齐扫描,支持多种点云格式
- 提供预训练权重与 SemanticKITTI 等评测流程
容易踩的坑
- v1.0.0最新正式版2024-08-27 · 2024-08-27 15:10 UTC
What's Changed
- Major Upgrade after HeLiMOS by @benemer in https://github.com/PRBonn/4DMOS/pull/38
Full Changelog: https://github.com/PRBonn/4DMOS/compare/v0.1...v1.0.0
- v0.1Originally published code2024-08-09 · 2024-08-09 14:48 UTC
查看更新说明
This is the code originally published with the 4DMOS paper.
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
Our moving object segmentation on the unseen SemanticKITTI test sequences 18 and 21. Red points are predicted as moving.
Please find the corresponding video here.
Given a sequence of point clouds, our method segments moving (red) from non-moving (black) points.
We first create a sparse 4D point cloud of all points in a given receding window. We use sparse 4D convolutions from the MinkowskiEngine to extract spatio-temporal features and predict per-points moving object scores.
Important Update
Please also check out our latest map-based moving object segmentation pipeline MapMOS.
The current state of the repository is improved by internally aligning the scans using KISS-ICP. Also, the build system and pipeline have been updated after the release of our newer method MapMOS, so you can run it on most point cloud data formats. If you want to reproduce the original results from the paper, this version is tagged under 0.1. You can checkout by
git checkout v0.1
Installation
First, make sure the MinkowskiEngine is installed on your system, see here for more details.
Next, clone our repository
git clone [email protected]:PRBonn/4DMOS && cd 4DMOS
and install with
make install
or
make install-all
if you want to install the project with all optional dependencies (needed for the visualizer). In case you want to edit the Python code, install in editable mode:
make editable
How to Use It
Just type
mos4d_pipeline --help
to see how to run 4DMOS.
Check the Download section for a pre-trained model. Like KISS-ICP, our pipeline runs on a variety of point cloud data formats like bin, pcd, ply, xyz, rosbags, and more. To visualize these, just type
mos4d_pipeline --visualize /path/to/weights.ckpt /path/to/data
Because these labels come in all shapes, you need to specify a dataloader. This is currently available for SemanticKITTI, NuScenes, HeLiMOS, and our labeled KITTI Tracking sequence 19 and Apollo sequences (see Downloads).
Training
To train our approach, you need to first cache your data. To see how to do that, just cd into the 4DMOS repository and type
python3 scripts/precache.py --help
After this, you can run the training script. Again, --help shows you how:
python3 scripts/train.py --help
You can inspect the cached training samples by using the script python3 scripts/cache_to_ply.py --help.
The training log and checkpoints will be saved by default to the current working directory. To change that, export the export LOGS=/your/path/to/logs environment variable before running the training script.
HeLiMOS
To train on the HeLiMOS data with different sensor configurations, use the following commands:
python3 scripts/precache.py /path/to/HeLiMOS helimos /path/to/cache --config config/helimos/*_training.yaml
python3 scripts/train.py /path/to/HeLiMOS helimos /path/to/cache --config config/helimos/*_training.yaml
by replacing the paths and the config file names. To evaluate for example on the Velodyne test data, run
mos4d_pipeline /path/to/weights.ckpt /path/to/HeLiMOS --dataloader helimos -s Velodyne/test.txt
Evaluation and Visualization
We use the SemanticKITTI API to evaluate the intersection-over-union (IOU) of the moving class as well as to visualize the predictions. Clone the repository in your workspace, install the dependencies and then run the following command to visualize your predictions for e.g. sequence 8:
cd semantic-kitti-api
./visualize_mos.py --sequence 8 --dataset /path/to/dataset --predictions /path/to/4DMOS/predictions/ID/POSES/labels/STRATEGY/
Benchmark
To submit the results to the LiDAR-MOS benchmark, please follow the instructions here.
Downloads
- Model [A]: 5 scans @ 0.1s
- Model [B]: 5 scans @ 0.2s
- Model [C]: 5 scans @ 0.3s
- Model [D]: 5 scans, no poses
- Model [E]: 5 scans input, 1 scan output
- Model [F]: 2 scans
- Model [G]: 10 scans
Publication
If you use our code in your academic work, please cite the corresponding paper:
@article{mersch2022ral,
author = {B. Mersch and X. Chen and I. Vizzo and L. Nunes and J. Behley and C. Stachniss},
title = {{Receding Moving Object Segmentation in 3D LiDAR Data Using Sparse 4D Convolutions}},
journal={IEEE Robotics and Automation Letters (RA-L)},
year = 2022,
volume = {7},
number = {3},
pages = {7503--7510},
codeurl = {https://github.com/PRBonn/4DMOS},
}
Acknowledgments
This implementation is heavily inspired by KISS-ICP.
License
This project is free software made available under the MIT License. For details see the LICENSE file.