Skip to content

[ICCV 2025] Official implementation for "SeqGrowGraph: Learning Lane Topology as a Chain of Graph Expansions"

Notifications You must be signed in to change notification settings

MIV-XJTU/SeqGrowGraph

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SeqGrowGraph: Learning Lane Topology as a Chain of Graph Expansions

🎉🎉ICCV 2025🎉🎉

arXiv HuggingFace

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

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 nvidia

Install 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 bezier

Add our projects to mmdetection3d projects

git clone git@github.com:MIV-XJTU/SeqGrowGraph.git
cp -r SeqGrowGraph mmdetection3d/projects/
cd mmdetection3d

📦 Data Preparation

1、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 data

2、Construct data

Run the following code to generate .pkl file.

python projects/SeqGrowGraph/tools/create_data_pon_centerline.py nuscenes

🚀 Train

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_NUM

🎯 Test & Visualization

Run 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_NUM

📈 Evaluation

The test outputs can be validated independently using the scirpt.

python projects/SeqGrowGraph/seq_grow_graph/nus_metric_new.py --result_path /path/to/your/checkpoint

📜 Citing

If 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}
}

🙏 Acknowledgement

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.

About

[ICCV 2025] Official implementation for "SeqGrowGraph: Learning Lane Topology as a Chain of Graph Expansions"

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •