This repository contains the official implementation of the Paper"One-shot active learning for vessel segmentation" by D. Falcetta, H. Chaptoukaev, F. Galati, and M.A. Zuluaga. Early Accepted at MICCAI 2025 🎉
V-DiSNet is a novel one-shot active learning framework for brain vessel segmentation that selects informative patches in a single iteration without expensive retraining cycles.
-
Download the dataset (MR Images) from the official IXI webpage.
-
Download the Vessel Annotations from the official VesselVerse Repo (Or see the official Webpage for more information!)
-
Expected folder organization:
. └── IXI/ ├── volumes/ │ ├── IXI002-Guys-0828-MRA.nii.gz │ ├── IXI012-HH-1211-MRA.nii.gz │ └── ... ├── masks/ │ ├── IXI002-Guys-0828-MRA_mask.nii.gz │ ├── IXI012-HH-1211-MRA_mask.nii.gz │ └── ... └── vessels/ ├── IXI002-Guys-0828-MRA_vessel_mask2.nii.gz └── IXI012-HH-1211-MRA_vessel_mask2.nii.gz └── ...
-
Download the dataset (MR Images + Corresponding vessels masks) from the following link.
-
Download the A2V-generated brain masks from the following link or generate by using other softwares (e.g. FreeSurfer or HDBET)
-
Expected folder organization:
. └── CAS/ ├── volumes/ │ ├── 000.nii.gz │ ├── 001.nii.gz │ └── ... ├── masks/ │ ├── pred_000.nii.gz │ ├── pred_001.nii.gz │ └── ... └── vessels/ ├── vessels_001.nii.gz ├── vessels_001.nii.gz └── ...
git clone https://github.com/i-vesseg/V-DiSNet.git
cd V-DiSNet
pip install -r requirements.txt-
Run the preprocessing notebooks for both the IXI and CAS dataset:
. └── preprocessings ├── preprocessing_IXI.ipynb └── preprocessing_CAS.ipynb -
Adjust the corresponding input and output path in the first section (Prepare dataset)
-
Run the preprocessing file load_patches for both the IXI and CAS dataset to split each volume into patches:
python patch_dataloader/load_patches.py --dataset IXIJ python patch_dataloader/load_patches.py --dataset CASJ
-
Adjust the corresponding input and output paths and parameters values(size of patch, standardization, etc.) at the end of the file.
-
Run the dictionary learning module to train an encoder to generate latent representations of binary vessel patches from IXI:
python script_py/VPATCHES_SDL.py (../VPATCHES_SDL-NL.py) (../VPATCHES_VDL.py) (../VPATCHES_VDL-NL.py) -
Adjust the parameters values(batch_size, epochs, etc.).
-
You can also run different variation of the Dictionary Learning Model (Non linear decoder (NL), Variance-regularized (VDL)).
-
Results of this step are saved by default in the folder ~/results/
-
Run the following notebook:
. └── get_embedding_DL └── COMPLETE_PIPELINE_FINALE.ipynb -
Adjust, if needed, to input and output paths in the section 1 - Load Data
-
Modify the datetime of section 2 - Create Embeddings to load the best dictionary learning model (trained in the previous step)
- Load IXI dataset and the best encoder from the previous step.
- Extract the latent representation for the binary vessel patches.
- Compute PSNR and save the vessel dictionary.
- Visualize the latent space in 2D using T-SNE.
- Find clusters by using k-means on the latent representations
- Train a contrastive learning model by using patches from IXI as input and previous k-means classes as label
- This allows to generate a latent space where similar brain patches are close to each other based on the vessels present in the patch.
- Extract the encoder from the contrastive model and use it to generate a latent space of patches from the non-annotated dataset CAS.
- Find clusters by using k-means on the latent representations.
-
Run the one-shot active learning file FINAL_EXPERIMENT to sample different percentages of CAS patches (to be annotated by an external oracle) and use the selected annotated patches to train a segmentation model (WNET):
python get_embedding_DL/FINAL_EXPERIMENT.py
@inproceedings{falcetta2025vdisnet,
author = { Falcetta, Daniele and Marciano, Vincenzo and Yang, Kaiyuan and Cleary, Jon and Legris, Loïc and Rizzaro, Massimiliano Domenico and Pitsiorlas, Ioannis and Chaptoukaev, Hava and Lemasson, Benjamin and Menze, Bjoern and Zuluaga, Maria A. },
title = { { VesselVerse: A Dataset and Collaborative Framework for Vessel Annotation } },
booktitle = {Medical Image Computing and Computer Assisted Intervention -- MICCAI 2025},
year = {2025},
publisher = {Springer Nature Switzerland},
volume = { LNCS 15972 },
month = {October},
pages = { 656 -- 666 },
}- Maria A. Zuluaga - maria.zuluaga@eurecom.fr
- Daniele Falcetta - daniele.falcetta@eurecom.fr
Supported by ANR JCJC project IVESSEG (22-CE45-0015-01) and 3IA Côte d'Azur (ANR-23-IACL-0001).

