SACP: Spatially-Adaptive Conformal Prediction in Uncertainty Quantification of Medical Image Segmentation

Jacqueline Isabel Bereska, Hamed Karimi, Reza Samavi · MIDL (PMLR 301) · 2025

Bereska, Karimi and Samavi, SACP, MIDL 2025 (proceedings volume dated 2026).

In one paragraph

Conformal prediction (CP) turns any classifier into one that outputs a set of labels per item, with a promise that the true label is inside the set at least 1-\alpha of the time. Applied voxel by voxel to a segmentation, the promise is the same everywhere in the image. A surgeon deciding whether a pancreatic tumour can be cut out cares much more about the voxels where the tumour touches a major blood vessel than about the middle of the tumour. SACP multiplies the tumour’s non-conformity score by a weight below 1 that is smaller near vessels, so the tumour label enters the prediction set more readily there, and the paper argues the original coverage guarantee still holds.

The picture, intuition first

Conformal prediction as a “how weird is this?” test. Fit a model. On a held-out calibration set, record for each item a non-conformity score S: how badly the model’s answer fits the true label (a common choice is S=1-p, one minus the probability the model gave the true class). Sort the scores and take the threshold \tau below which 1-\alpha of them fall. For a new item, put into its prediction set every label whose score is below \tau. If the new item behaves like the calibration items, the true label’s score is below \tau about 1-\alpha of the time. That is the whole guarantee; it needs no assumption about the data’s distribution.

What “behaves like” means: exchangeability. The calibration items and the test item must be interchangeable: if you shuffled them, the joint probability would not change (independent draws from one distribution satisfy this). This is what lets the new item’s rank among the calibration scores be uniformly random, and that is what makes the 1-\alpha promise exact.

Class-conditional version. Tumour voxels are a tiny fraction of the scan, so a single threshold is dominated by background voxels. Class-conditional CP computes one threshold \tau_{\hat y} per class from the calibration voxels that truly belong to that class, so each class gets its own 1-\alpha promise (their Eq. 1 and 2).

The SACP twist. For the tumour label l only, replace the score by S_{\text{SACP}}=w\cdot S_{\text{base}} with weight w\in[0.5,1) (Eq. 3). Since w<1 the score shrinks, so it is more often below the threshold \tau_l and the tumour label is included in more voxels. The weight (Eq. 4) is w=\sigma\!\big(\tfrac1\gamma(\phi+\delta\,I)\big) where

Close to a vessel and tumour, w is small, the tumour label is included generously, and the set grows.

Notation in plain words

The theory claimed

Theorem 3 and its proof (Appendix C) say C_{\text{base}}(x)\subseteq C_{\text{SACP}}(x): since 0.5\le w<1, S_{\text{SACP}}<S_{\text{base}}, so any label passing the base test passes the SACP test. Hence SACP sets are never smaller, and coverage is at least that of class-conditional CP.

Results (30 CTs from PANORAMA; 10 calibration, 20 test; \alpha=0.05)

Quantity CCCP (class-conditional CP) SACP
Overall coverage 0.968 0.981 (voxel-pooled 0.987)
Coverage within 2 mm of a vessel 0.954 0.981
RWR within 2 mm / beyond 20 mm 2.887 / 2.509 2.762 / 2.525

Per-vessel coverage within 2 mm for CCCP is 0.925 (SMA) and 0.927 (PV), below the 0.95 target, and SACP brings these to 0.975 and 0.953. A second dataset (MSK) gives similar overall coverage (0.980 against 0.979).

Questions and doubts

Takeaways