Skip to content

This repo provides a reference implementation of "UDF: Uncertainty-Aware Dual-Memory Fusion for Video Lane Detection."

Notifications You must be signed in to change notification settings

ChengtaiCao/UDF

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

UDF: Uncertainty-Aware Dual-Memory Fusion for Video Lane Detection

This repo provides a reference implementation of "UDF: Uncertainty-Aware Dual-Memory Fusion for Video Lane Detection."

Abstract

Video Lane Detection aims to enhance detection accuracy and robustness by exploiting temporal information in continuous driving scenarios. While existing methods have made efforts in temporal information processing and integration, they exhibit two critical limitations: (i) they often apply a uniform management strategy to both short-term dynamics and long-term structures, failing to address their distinct temporal properties; and (ii) they rely on primitive fusion operations that are incapable of arbitrating conflicts or assessing the reliability of information from different temporal sources. To address these challenges, we propose Uncertainty-aware Dual-memory Fusion (UDF), featuring two key innovations. First, UDF introduces a dual-memory management schema to process temporal information. It combines an attention-based short-term memory, which captures recent dynamic changes, with a novel surprise-based long-term memory to maintain stable scene structures. Second, UDF pioneers an uncertainty-aware fusion framework. It leverages Evidential Learning to quantify the uncertainty of each temporal source and then employs Dempster-Shafer theory for robust temporal integration. This allows UDF to dynamically down-weight unreliable sources and manage conflicts between them, ensuring the final prediction favors consistent and trustworthy information. Extensive evaluations on two benchmarks demonstrate that UDF sets a new state-of-the-art, while operating with superior computational efficiency.

Dataset

Download the preprocessed data from the RVLD repository (Recursive Video Lane Detection) and put it into the ROOT directory.

Environmental Settings

All experiments are conducted on an NVIDIA GeForce RTX 4090 GPU with 128GB RAM and Intel i9-14900K CPU, using Python 3.7, PyTorch 1.13.1, and CUDA 11.6.

Step 1: Install Anaconda

Step 2: Create a virtual environment and install the required packages

# create a new environment
conda create -n UDF python=3.7

# activate environment
conda activate UDF

# install Pytorch
pip install torch torchvision torchaudio

# install other required packages
pip install -r requirements.txt

Usage

Train

Set the dataset you want to train on (DATASET_NAME), then parse your dataset path into the -dataset_dir argument.

$ cd ROOT/DATASET_NAME/code/
$ python main.py --run_mode train --pre_dir ROOT/preprocessed/DATASET_NAME/ --dataset_dir /your_dataset_path 

Test

Set the dataset you want to train on (DATASET_NAME), then parse your dataset path into the -dataset_dir argument.

$ cd ROOT/DATASET_NAME/code/
$ python main.py --run_mode test --pre_dir ROOT/preprocessed/DATASET_NAME/ --dataset_dir /your_dataset_path 

Evaluation (on VIL-100)

To evaluate on VIL-100, you will need to install the official CULane evaluation tools. The official metric implementation is available in the MMA-Net repository (VIL-100: A New Dataset and A Baseline Model for Video Instance Lane Detection ). Download the tools into ROOT/VIL-100/code/evaluation/culane/ and compile them.

$ cd ROOT/VIL-100/code/evaluation/culane/
$ make

Results

Method Pub. Image-Level Video-Level Efficiency
mIoU ↑ $\text{F1}^{0.5}$ $\text{F1}^{0.8}$ $\mathcal{M}_{\mathcal{J}}$ $\mathcal{M}_{\mathcal{F}}$ $\mathcal{M}_{\mathcal{T}}$ # Para. ↓ FPS ↑
LaneNet IV'18 0.633 0.721 0.222 / / / / /
SCNN AAAI'18 0.517 0.491 0.134 / / / / /
ENet-SAD ICCV'19 0.616 0.755 0.205 / / / / /
LSTR WACV'21 0.573 0.703 0.131 / / / / /
LaneATT CVPR'21 0.664 0.823 0.246 / / / / /
GAM CVPR'19 0.602 0.703 0.316 0.414 0.721 0.568 / /
RVOS CVPR'19 0.294 0.519 0.182 0.251 0.251 0.251 / /
STM ICCV'19 0.597 0.756 0.327 0.656 0.743 0.656 / /
TVOS CVPR'20 0.157 0.240 0.037 0.255 0.257 0.255 / /
Cutie CVPR'24 0.623 0.730 0.334 0.663 0.737 0.685 / /
MMA-Net ICCV'21 0.705 0.839 0.458 0.679 0.848 0.764 59.62M 41
TGC-Net MM'22 0.738 0.892 0.469 0.727 0.891 0.809 37.25M 58
RVLD ICCV'23 0.787 0.924 0.582 0.734 0.883 0.756 17.16M 67
OMR ECCV'24 0.774 0.936 0.614 0.725 0.874 0.748 15.69M 60
LaneTCA TCSVT'25 0.796 0.933 0.621 0.742 0.884 0.815 17.25M 52
UDF (Ours) -- 0.814 0.947 0.665 0.776 0.915 0.841 14.38M 74

About

This repo provides a reference implementation of "UDF: Uncertainty-Aware Dual-Memory Fusion for Video Lane Detection."

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages