Hang a multi-frame DSA run into a neuro-interventional viewer and the useful hang is a vessel overlay you can trust for stenosis work, reperfusion scoring, or 3D reconstruction, not another pixel-perfect mask that only exists after a senior neurosurgeon spends an evening tracing every branch. Dense artery annotation is exactly that kind of work, which is why the public DIAS and DSCA sets still hold only 60 and 224 labeled sequences even though DIAS alone was filtered from over a thousand acquisitions. Xinge Guo (Duke), Yuanhao Wang, Yang Liu, and Min Xu (Carnegie Mellon), with Liqi Shu (UPMC), take that shortage seriously in arXiv:2609.30043, posted 24 September 2026. They call the method ConPro: Contrast Projection Pretraining for Label-Efficient Vessel Segmentation in DSA Sequences. The idea is simple enough for a shop that already sits on unlabeled angio archives. Use the contrast course the sequence already recorded as a mask-free pretraining target, then fine-tune the same backbone with whatever labeled fraction you can afford.
Semi-supervised DSA training usually copies targets from the current model, so bad early masks poison the next round. Generic self-supervised pretexts reconstruct static appearance and leave the contrast transient unused. ConPro does the opposite. It asks the network to predict a contrast projection, the normalized drop of every pixel below its temporal median, from a random half of the frames. After that Stage I pass, Stage II drops the projection head, keeps the backbone, and trains a fresh segmentation head on the labeled subset. Architecture and inference cost stay the same as a scratch TPoolUNet. Only the initialization changes.
What hangs on the viewer
Upstream is a short DSA sequence after subtraction and intensity normalization, typically 4 to 14 frames on DIAS or eight resampled frames on DSCA in the paper’s setup, resized to 256×256. Downstream is a binary vessel mask for the whole sequence, obtained by thresholding the sigmoid at 0.5. For a DICOM or angio viewer rail, the hangable pieces are: a vessel overlay scrubber aligned to the DSA series, optional topology-aware QC against a connectivity metric such as clDice, and a path that can start from unlabeled archive pretraining when labeled cases are scarce.
The practical claim for a clinic AI shop is not a new decoder. ConPro hands you pretrained TPoolUNet weights you can fine-tune with labels alone, or hand to a semi-supervised trainer such as UniMatch or RPST*. Inference stays a single temporally pooled U-Net with about 1.08 million parameters. No extra input channel, no projection head at test time, no change to the viewer’s model card beyond where the weights came from.
How it works in plain words
In subtracted DSA, contrast transiently darkens vessel pixels while background stays closer to a stable level. For each pixel, ConPro takes the temporal median as a quiet reference and the temporal minimum as the strongest darkening, then forms R = median – min. That map is clipped after dividing by the 99th percentile of R over the sequence, producing a soft target C* in [0, 1]. Stage I feeds a random half of the frames (at least two, kept in temporal order) into a temporally pooled U-Net backbone plus a 1×1 projection head, and trains with BCE on logits plus soft Dice against the full-sequence C*. Frame dropout is the default; ablations with all frames or a half-sequence target stay close, so the authors keep the half-in / full-target recipe rather than selling it as the mechanism.
The backbone is a lightweight TPoolUNet: a shared 2D encoder at four scales, masked temporal max pooling over the valid frames at each scale, then a U-Net decoder. Padding frames stay out of the pool. Stage II discards the projection head, copies the Stage I backbone weights, attaches a randomly initialized 1×1 segmentation head, and fine-tunes with the same BCE+Dice loss on the labeled subset. Labeled fractions are nested 10 / 20 / 50 percent of the training cases (3 / 6 / 15 of 30 DIAS training cases; 15 / 31 / 76 of 153 DSCA training cases), with three seeds controlling subset, init, and order. Stage I sees the 90 DIAS training-plus-unlabeled sequences or the 153 DSCA training sequences. Stage II runs a matched update budget for every compared method on the same backbone.
Controlled checks put the gain on the target. Swap C* for a temporal-median target with the same input, loss, and budget, and performance falls back to scratch. Feed C* itself as an input channel or as a thresholded pseudo-label without pretraining, and the help is small or negative on parts of the table. Predicting the contrast excursion, rather than pasting the map into the supervised recipe, is what moves the needle.
What the numbers say
On DIAS and DSCA, ConPro fine-tuned with labels alone beats supervised scratch at every label fraction on both Dice and clDice (three-seed means, Table 1). The largest cited lift is at DIAS 10% labels, where ConPro reaches about 69.5 / 63.9 Dice / clDice against supervised 65.1 / 58.7, a gain of 4.4 Dice and 5.2 clDice with only three labeled DIAS sequences. Elsewhere the ConPro-alone margin is smaller, roughly 0.7 to 1.5 points, and some DIAS mid-fraction gains are not significant after correction. On DSCA at 20% and 50% labels, ConPro is the best of the compared methods in the abstract’s claim, ahead of UniMatch on that slice.
UniMatch is the strongest semi-supervised baseline in the paper’s lineup (CPS, CorrMatch, UniMatch, RPST*, plus a Generic-SSL median-reconstruction control). Starting UniMatch from ConPro weights adds 0.5 to 2.0 Dice and 0.9 to 2.3 clDice at every label fraction relative to UniMatch from scratch. That combination reaches 75.4 Dice on DIAS and 81.3 on DSCA at the 50% label setting reported in the abstract, and it sits at the top of Table 1 on DIAS across fractions. Qualitatively, Figure 3 at 20% labels shows fewer red error pixels (missed or extra) on both DIAS and DSCA when ConPro initializes UniMatch, against a supervised baseline that still scatters red around fine branches.
Ablations in Table 2 reinforce the story. With half frames as input and BCE+Dice fixed, a median target stays at or below scratch, while a contrast-projection target lifts Dice by about 1.2 to 5.2 points over that median control. Direct use of C* as a channel or pseudo-label does not replace learning it. Thresholded C* alone only reaches about 52.0 and 59.3 Dice as a crude vessel map, useful as intuition, not as a finished overlay.
Where it fails and what not to trust
This is research software on public DSA sets, not a cleared medical device. Rebuild and validate on your own angio protocol, frame rate, subtraction quality, and lesion mix before you hang overlays next to reportable stenosis or reperfusion scores. The target inherits subtraction artifacts, so motion that survives subtraction enters C*, and vessels that never opacify never appear in it. TPoolUNet pools with a maximum and C* is built from median and minimum, so frame order is not what the method is testing; the paper’s evidence is about which contrast phases the network sees.
Behavior at true lesions and clinical value are left open. DIAS and DSCA are still small labeled pools, and three-seed means with Holm-corrected paired tests do not replace a local prospective holdout. Do not treat the 75.4 / 81.3 Dice band as a guarantee on a different vendor stack. Do not advertise C* as a free segmentation label after the direct-use rows underperformed. And do not hide that Stage I still needs a few thousand unlabeled sequences and an 8,000-update pretrain before the cheap fine-tune starts looking cheap.
For a viewer or clinic AI shop
Wire DSA multi-frame sequences in; hang a sequence-level vessel overlay out. Prefer ConPro as a drop-in initialization for the temporally pooled U-Net you already train, then fine-tune with your labeled fraction. If you already run UniMatch-style consistency training, start it from ConPro weights rather than from scratch; that is where the paper’s top DIAS numbers and the 0.5-2.0 Dice / 0.9-2.3 clDice band come from. Keep a residual or connectivity QC scrubber in the viewer so support can spot broken topology on fine distal branches.
Log label fraction, whether Stage I ran on local unlabeled angio, seed, and whether UniMatch or labels-only fine-tuning was used. Validate on at least one internal DSA cohort with senior review of overlays before you claim label-efficient vessel hang in production. Rebuild from arXiv:2609.30043. PDF: https://arxiv.org/pdf/2609.30043.
Sources
- Guo, X., Wang, Y., Shu, L., Liu, Y., Xu, M. ConPro: Contrast Projection Pretraining for Label-Efficient Vessel Segmentation in DSA Sequences. arXiv:2609.30043, 2026. https://arxiv.org/abs/2609.30043. PDF: https://arxiv.org/pdf/2609.30043.
- Abstract headline: ConPro + UniMatch reaches 75.4 Dice on DIAS and 81.3 on DSCA; UniMatch gains 0.5-2.0 Dice and 0.9-2.3 clDice at every label fraction when started from ConPro weights.
- Table 1 (three-seed means): DIAS 10% ConPro 69.5/63.9 Dice/clDice vs supervised scratch 65.1/58.7 (largest cited gain 4.4 Dice / 5.2 clDice with three labeled DIAS sequences). ConPro best among compared methods on DSCA at 20% and 50% labels (abstract).
- Fig. 3 qualitative at 20% labels: green = correct vessel pixels, red = errors; Ours + UniMatch cleaner than supervised and several semi-supervised baselines on DIAS and DSCA test sequences.