Skip to content
Yinheng ZHU

Decoupled Single-Mask Annotation Noise Detection via Cross-Sectional Patch Self-Consistency

Yinheng Zhu1 and Xiaowei Xu2,✉

1 Tsinghua University, Beijing, China
2 Guangdong Provincial People's Hospital, Guangzhou, China
corresponding author

Medical Image Computing and Computer Assisted Intervention (MICCAI) 2026
Oral Poster


Annotation noise is not random

Vascular CT is annotated once per scan, because paying experts to label the same scan twice is not affordable. With a single mask there is nothing to disagree with it, so nobody can point at a region and say the label is wrong. We built a way to do exactly that from one mask, ran it over about three million vessel cross-sections, and the errors turned out to be structured.

Orientation first, because it has the largest effect and an explanation of its own. Below is how often a cross-section is contradicted: how often near-identical cross-sections elsewhere in the dataset carry a substantially different mask, as a function of which way the vessel runs. The six poles are the imaging axes. They dimple inward, and those are the cleanest annotations. The bulges between them are vessels running diagonally through the scanner.

Direction sphere Drag to rotate · hover the surface

Loading direction data…

The share contradicted, over vessel tangent direction, binned 80×40. Radius and colour both carry it. A tangent and its opposite are the same direction, so both are binned together. A cell's solid angle shrinks as sin φ, so counts are pooled over a neighbourhood that widens toward the poles and then shrunk toward the global rate with a Beta prior; without that, the sparse polar slivers tear the surface. Hovering reports the observed share alongside the smoothed one. Sample density answers the obvious objection: the oblique bulges are not thin data.

Measured as the angle to the nearest imaging axis, the trend is close to monotonic across the whole range: 0.44% for vessels lying along an axis, 2.24% for the most oblique. Spearman ρ = −0.20, Cochran–Armitage trend z = −33.31, both p < 0.001. Across a thousand scans this is not a fluctuation.

Rate by angle Drag across the plot to filter the walker · click to clear
Share contradicted per bin with Wilson 95% intervals. Brushing a range restricts which cross-sections the walker below will jump to.

And not only orientation

Two more attributes correlate with annotation noise, and unlike orientation they share a single cause. Cross-sections under 2 mm² are markedly worse, and the rate falls away steeply beyond 5 mm². Contrast behaves the same way: the rate peaks below 0 HU at around 5–6% and drops through the 50–200 HU lumen range. Thin vessels occupy a handful of pixels; low-contrast lumen has no clear edge against the vessel wall. Both come down to reduced boundary discriminability at annotation time.

Area and contrast Drag across a plot to filter the walker · click to clear
Wide bands are thin bins, not instability: the smallest area bin holds very few cross-sections, so its interval is correspondingly wide.

One explanation fits all three, though we did not test it directly and it should be read as a hypothesis rather than a result. Annotation is done slice by slice, in tools such as ITK-SNAP. A vessel running along an imaging axis meets that slice as a clean circle. An oblique vessel meets it as an elongated ellipse with a diffuse edge. On that reading the pattern is not anatomical at all: it is a trace left by the annotation interface. Hemodynamic workflows that annotate directly on centreline cross-sections would not be expected to show it.

Why believe it

Start with one case, before any of the machinery.

Two coronary trees from different scans; a cross-section is taken from each; the two cross-sections are the same while the two expert masks differ substantially Same image. Different mask.
Two scans from a public dataset, each with one cross-section taken where the dotted line points. The cross-sections match: the retrieval tolerance is 30 dB PSNR, so a qualifying pair is indistinguishable by eye, and the panel shows one image in both slots to make that literal. The masks an expert drew on them do not match at all. Both cannot be right. Neither scan gives you any way to notice, because each was annotated once, by one person, and nothing inside it disagrees.

That pair is the whole idea, so it is worth being precise about why finding it is possible at all. Multi-rater fusion rests on one principle: the same image should get the same mask, and where it does not, there is annotation noise. The other family, training-coupled robust learning, reads noise off optimisation dynamics instead, and so cannot separate a mislabelled region from a merely hard one. Look at what the first requires. Either (a) the same image has been annotated more than once (exactly the cost nobody can pay), or (b) identical images already exist somewhere inside the dataset.

Vessels are tubes. Sample perpendicular to the centreline and cross-sections recur, along the same vessel and across different patients. The dataset already contains its own repeats. So option (b) is available for free, and the principle needs only one word relaxed, from the same image to a near-identical one:

dI(Ii, Ij) ≤ εI  ⇒  dM(Mi, Mj) ≤ εM

Image distance is mean squared error; mask distance is one minus intersection over union. Comparing a patch against every neighbour that survives the retrieval and taking the median gives its score, Ri: a signed z-score of mask disagreement, measured against how much disagreement is normal for pairs that similar. Put plainly: if most of your look-alikes disagree with you, you are the problem.

Nothing here is hidden inside a network, so a flagged region arrives with the neighbours that convicted it. Walk a real vessel below and watch the jury change.

Centreline walker Drag the trace, or use ← → · orbit the mesh

Loading scan…

under examination

Jury: the look-alikes whose disagreement set this score, ordered by how much they disagree. A trailing * marks one from a different scan.

← mask agreesmask disagrees →

Every point is one cross-section, in centreline order; gaps are branch breaks. The trace is Ri: lower is worse, and the dashed line is the −3 threshold this page counts as contradicted. Noise arrives in runs rather than as isolated points: scan 1 has six consecutive flagged sections at the distal end of one branch. Juries are short because qualifying look-alikes are scarce, and nothing is padded with neighbours that failed the test.

One case proves a case. What makes the score usable is that it is graded: it does not only fire on disasters, and it recognises clean annotation as clean.

Score spectrum Each column is a slice of the score · each row one pair

Loading spectrum…

Each pair is a scored cross-section beside the look-alike that disagrees with it most. Toward the left the images are near-identical and the masks are not; toward the right the disagreement softens into a boundary shift; at the right end the masks simply match. Examples are sampled across the whole corpus rather than from one scan: the most extreme bin is thinly populated and spread over many different patients, so a handful of scans would never contain one.

How it works

Three stages, none of which involves training a network. The notes under the figure follow the stage they sit beneath.

Pipeline: cross-sectional patches sampled along centreline frames, neighbours retrieved across subjects, scores aggregated into a scan-level quality map
  • Sample patches along the centreline.
  • 103 volumes produce 106 patches.
  • Bishop frames keep them stable.
  • Operationalise the principle as a statistical test.
  • Implemented with a vector search engine to accommodate 106+6 patch pairs.
  • Spread patch residuals onto voxels to obtain a quality map for loss weighting.
Left: patches are extracted along centreline frames and visually similar ones retrieved across subjects. Middle: each mask is compared with those of its intensity-equivalent neighbours. Right: pair- and patch-level scores aggregate into a scan-level quality map.

Three choices in there are worth the extra sentence. The frames are torsion-free because a frame that twists as it travels would spin the patch with it, and a rotated copy of a cross-section is no longer retrievable as a near-identical one, and the method would lose the pairs it depends on. The retrieval tolerance εI = 10−3 MSE is about 30 dB PSNR, which is the level at which two patches stop being distinguishable by eye; that is what licenses treating a retrieved neighbour as the same image. And mask disagreement is never compared against a fixed threshold: pairs are binned by image distance and calibrated inside each bin, so a pair is judged against how much disagreement is normal at its own level of similarity rather than against a number chosen in advance.

Failure cases and limitations

The failures are false negatives. Noise goes undetected when no sufficiently similar counterpart is retrieved: patches identical only up to a rotation, or up to a window-level shift, slip past raw-MSE retrieval. Centreline and frame errors do the same thing. All of it costs recall, not precision: fewer errors are flagged, but what is flagged is real, which is the trade this design chooses on purpose. Recall is recoverable by sampling rotations and shifts more densely, at proportionally higher compute cost.

Beyond that: the method detects rather than corrects, it assumes tubular anatomy, and it has been evaluated on ImageCAS alone.

Two patches near-identical up to a rotation, whose masks disagree Two patches near-identical up to a window-level shift, whose masks disagree
Undetected noise. Left: near-identical up to a rotation. Right: near-identical up to a window-level shift. Both pairs are real annotation disagreements that the retrieval never surfaces.

References

How to cite

@inproceedings{zhu2026hiddennoise,
  title     = {Decoupled Single-Mask Annotation Noise Detection via
               Cross-Sectional Patch Self-Consistency},
  author    = {Zhu, Yinheng and Xu, Xiaowei},
  booktitle = {Medical Image Computing and Computer Assisted Intervention
               (MICCAI)},
  year      = {2026},
  eprint    = {2607.05965},
  archivePrefix = {arXiv},
}

Acknowledgements

Experiments use the ImageCAS coronary CT angiography dataset.