Uncertainty-Aware Dental X-ray Detection

A YOLO26 detector that finds caries, deep caries, impacted teeth and periapical lesions on panoramic X-rays — and, unlike a bare bounding box, tells you how much each finding can be trusted.

Core Capabilities

Detection That Holds Up on the Official Test Set

Ultralytics YOLO26-s was fine-tuned on the public DENTEX challenge data at 1024 px on a single 6 GB laptop GPU, reaching its best epoch in under an hour. Results are reported on the official 250-image test set, not a favourable internal split.

  • mAP50 0.619 on validation, 0.569 on the official test set
  • Impacted teeth: AP50 0.932 with 92.8% recall
  • ~8 ms per image on GPU, 0.2–0.5 s on CPU via ONNX Runtime

Confidence That Means Something

A raw detector score is not a probability. Per-class Platt scaling, fitted on a 100-image split held out from training, roughly halves the expected calibration error — so a finding shown at 0.7 confidence really is right about 70% of the time. Split-conformal prediction then wraps each box in an outer interval that contains the true lesion extent at least 90% of the time.

  • Expected calibration error cut from 0.070 to 0.037
  • 90% conformal box coverage met for all four classes
  • Calibration split never used for training, so guarantees stay valid

Honest About What It Misses

Conformal recall control asks a harder question than accuracy: can we promise a dentist that at most 10% of lesions are missed? For impacted teeth, yes, at 87% precision. For caries and periapical lesions the analysis proves no threshold reaches 90% sensitivity with this detector — a fixed 0.25 cutoff quietly hides that, and this pipeline states it.

  • "Miss at most 10%" achievable for impacted teeth, at thr 0.40
  • Explicit feasibility check instead of a silently degenerate threshold
  • MC-dropout over 20 passes flags false positives better (AUROC 0.818 vs 0.767)
Findings
Impacted — 0.91 · Confident
Caries — 0.45 · Probable
Periapical — 0.21 · Review

Engineering Behind the Result

Data-Driven Label Audit

The released test labels used Turkish treatment-planning codes, not the four challenge diagnoses. Every annotation was matched against model predictions and tabulated, so the mapping is evidenced rather than guessed.

MC-Dropout Retrofit

YOLO26 ships with no dropout, so Dropout2d layers were injected before all twelve detection-head convolutions and the model fine-tuned, giving genuine stochastic passes at inference.

Vectorised Fusion

Clustering ~6,000 boxes per image across 20 passes took hours in pure Python; a NumPy rewrite brought it down to seconds.

Serverless Parity

Exported to a 39 MB ONNX model served by FastAPI on Vercel. On 10 test images all 93 detections matched at IoU 0.9 with a max score difference of 0.001, so calibration transfers unchanged.

A Research Prototype, Not a Medical Device

DENTEX data and the derived weights are non-commercial (CC BY-NC-SA 4.0), and this detector has not been clinically validated. The uncertainty layer is the transferable part — the same calibration and conformal toolkit applies directly to industrial defect detection. Tell us what you need inspected.

Discuss a Vision AI Project
WhatsApp Book a Call