SeqGrowGraph incrementally builds a directed lane graph by adding one vertex at a time, expanding the adjacency matrix from n×n to (n+1)×(n+1) to encode connectivity, and serializing the evolving graph into sequences, inspired by human map-drawing processes for robust, efficient topology learning.
seqgrowgraph.mp4
- Table of Contents
- 🛠️ Installation
- 📦 Data Preparation
- 🚀 Train
- 🎯 Test & Visualization
- 📈 Evaluation
- 📜 Citing
- 🙏 Acknowledgement
Setup Environment
conda create -n SeqGrowGraph python=3.8 -y
conda activate SeqGrowGraph
conda install pytorch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 pytorch-cuda=11.7 -c pytorch -c nvidiaInstall mmdetection3d
git clone git@github.com:open-mmlab/mmdetection3d.git
cd mmdetection 3d
git checkout v1.4.0
pip install -U openmim
mim install mmengine
mim install 'mmcv>=2.0.0rc4'
mim install 'mmdet>=3.0.0'
pip install -v -e .Install some extra envirnment
pip install mmsegmentation
pip install einops
pip install bezierAdd our projects to mmdetection3d projects
git clone git@github.com:MIV-XJTU/SeqGrowGraph.git
cp -r SeqGrowGraph mmdetection3d/projects/
cd mmdetection3d1、Download nuScenes
Download the complete dataset from nuScenes and extract it to mmdetection3d/data/nuscenes.
Or establish a soft connection:
mkdir data
ln -s /path/to/your/nuscenes data2、Construct data
Run the following code to generate .pkl file.
python projects/SeqGrowGraph/tools/create_data_pon_centerline.py nuscenes
See projects/SeqGrowGraph/scripts/train.sh for the code.
1、Pre-train
Begin by pretraining the model on a segmentation task. Download ResNet-50 Deeplab-V3-Plus checkpoint here
./tools/dist_train.sh ./projects/SeqGrowGraph/configs/road_seg/lss_roadseg_48x32_b4x8_resnet_adam_24e.py $GPU_NUM
2、Train
Next, train the model for lane-graph learning.
./tools/dist_train.sh projects/SeqGrowGraph/configs/seq_grow_graph/seq_grow_graph_default.py $GPU_NUMRun projects/SeqGrowGraph/scripts/test.sh to perform inference on the test dataset without training. Please download the ckpt from ModelScope.
./tools/dist_test.sh projects/configs/seq_grow_graph/seq_grow_graph_default.py /path/to/your/checkpoint $GPU_NUMThe test outputs can be validated independently using the scirpt.
python projects/SeqGrowGraph/seq_grow_graph/nus_metric_new.py --result_path /path/to/your/checkpointIf you find our work is useful in your research or applications, please consider giving us a star 🌟 and citing it by the following BibTeX entry:
@article{Xie2025SeqGrowGraphLL,
title={SeqGrowGraph: Learning Lane Topology as a Chain of Graph Expansions},
author={Mengwei Xie and Shuang Zeng and Xinyuan Chang and Xinran Liu and Zheng Pan and Mu Xu and Xing Wei},
journal={arXiv preprint arXiv:2507.04822},
year={2025}
}
This project builds on the RNTR codebase, and we gratefully acknowledge the original authors. Our repository introduces several additions and refinements and can also be used to implement their methods.
