How to use from the
Use from the
Transformers library
# pip install -U transformers accelerate
# Load model directly
from transformers import AutoModel
model = AutoModel.from_pretrained("JonathanFhima/RLAD-SwinV2-Large", trust_remote_code=True, device_map="auto")
Quick Links

Enhancing Retinal Vessel Segmentation Generalization via Layout-Aware Generative Modelling

State-of-the-art AV segmentation in retinal fundus images

Jonathan Fhima  β€’  Jan Van Eijgen  β€’  Lennert Beeckmans  β€’  Thomas Jacob  β€’  Moti Freiman
Luis Filipe Nakayama  β€’  Ingeborg Stalmans  β€’  Chaim Baskin  β€’  Joachim A. Behar

arXiv GitHub Dataset RLAD + PVBM Tutorial

The strongest open-weight model for retinal artery/vein segmentation we know of, trained with RLAD-generated images and the REYIA dataset. Internally also known as LUNetV2.

Example predictions across UZLF, LES-AV, INSPIRE, FIVES, DRIVE, TREND, MBRSET, and AV-WIDE

Quickstart

The model loads the standard Hugging Face way - AutoModel and AutoImageProcessor with trust_remote_code=True download the code, config, weights, and preprocessing directly, nothing to fetch by hand:

import numpy as np
import torch
from PIL import Image
from transformers import AutoModel, AutoImageProcessor

repo = "JonathanFhima/RLAD-SwinV2-Large"
model = AutoModel.from_pretrained(repo, trust_remote_code=True).to("cuda").to(torch.bfloat16).eval()
processor = AutoImageProcessor.from_pretrained(repo, trust_remote_code=True)

image = Image.open("fundus.png").convert("RGB")
inputs = processor(image, return_tensors="pt")["pixel_values"].to("cuda", torch.bfloat16)
with torch.no_grad():
    output = model(inputs).float()

probs = torch.sigmoid(output)[0].cpu().numpy()
mask = np.zeros((*probs.shape[1:], 3), dtype=np.uint8)
mask[probs[0] > 0.5, 0] = 255                        # arteries: red
mask[(probs[1] > 0.5) & ~(probs[0] > 0.5), 2] = 255  # veins: blue

Or just run the CLI script, which does the same thing plus writes a blended overlay image:

python3 -m venv lunetv2_env && source lunetv2_env/bin/activate
pip install -r requirements.txt
python infer.py fundus.png out/

Writes out/mask.png and out/overlay.png. Runs in bfloat16, the precision the model was trained in.

For a full pipeline from a raw fundus image to vasculature biomarkers, see the RLAD + PVBM end-to-end tutorial, which feeds this model's output into PVBM.

Example

Input fundus image and its predicted artery/vein overlay

Results

If you plan to use this model or compare against it, we recommend scoring against our benchmark rather than re-running every baseline yourself. The scorer that produced these numbers lives in the REYIA repo (scripts/eval/dice_score.py).

Artery/vein Dice score, averaged across the same local, external, and out-of-distribution (OOD) test sets; βˆ† rows show the improvement RLAD adds on top of each backbone, and † marks results with data leakage during training β€” this release is the SwinV2-large row.

Table 1: RLAD Results β€” quantitative comparison of RLAD-generated data integrated into DinoV2, RETFound, and SwinV2 across model sizes, evaluated on Local, External, and OOD benchmarks

Ablations

Table 3: Impact of increasing the number of training datasets β€” adding newly introduced or annotated datasets to the SwinV2-tiny training pipeline

Table 4: Pretraining Objective and Generation Method β€” impact of pretraining objectives and AV-conditioned generation on Local, External, and OOD performance

License

The code (LUNetv2.py, infer.py) is Apache 2.0. The weights (model.safetensors) are non-commercial, research use only β€” the training set mixes in subsets that are themselves non-commercial or restricted:

Source Status
UZLF KU Leuven dataset
GRAPE CC0 1.0 β€” see REYIA
MAGRABIA CC BY-NC 4.0 β€” see REYIA
MESSIDOR redistribution and commercial use explicitly prohibited β€” see REYIA
PAPILA figshare license field reads GPL 3.0+ β€” likely a depositor mis-click, not corrected as of this writing β€” see REYIA
ENRICH non-commercial use only, KU Leuven data-sharing protocol β€” see REYIA

Citation

Fhima, J., Van Eijgen, J., Beeckmans, L., Jacob, T., Freiman, M., Nakayama, L.F., Stalmans, I., Baskin, C., Behar, J.A. Enhancing Retinal Vessel Segmentation Generalization via Layout-Aware Generative Modelling. arXiv:2503.01190, 2025. https://arxiv.org/abs/2503.01190

Downloads last month
48
Safetensors
Model size
0.2B params
Tensor type
F32
Β·
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support

Model tree for JonathanFhima/RLAD-SwinV2-Large

Quantized
(1)
this model

Dataset used to train JonathanFhima/RLAD-SwinV2-Large

Paper for JonathanFhima/RLAD-SwinV2-Large