Clinical evaluation

What a clinic would actually need

A clinic does not act on a single number. It acts on a number with a band around it, an honest account of how far it sits from the reference it would replace, and some assurance that the model is reading the anatomy rather than an artefact. This page reports four such checks on the tuned DenseNet201, all recomputed from the saved patient-level out-of-fold predictions.

These results are a research-grade characterisation, not a deployment claim. They are computed on the same small single-center cohort — roughly ten volunteers, 84 base images, one Sonix OP scanner, common carotid artery only — and against a single MATLAB-GUI reference reading per image. Read them as evidence about the estimator’s behaviour, not as a clearance for clinical use.

A band, not just a number

A point estimate of the insonation angle is only useful if its uncertainty is legible. We wrap the tuned DenseNet201 in a split-conformal procedure: hold out a calibration set, take the empirical quantile of the absolute residuals, and emit a symmetric prediction interval whose half-width is that quantile. For a target miscoverage \(\alpha\) and calibration residuals \(r_i = \lvert \theta_{\text{true},i} - \theta_{\text{pred},i}\rvert\), the half-width is

\[q_{1-\alpha} = \operatorname{Quantile}_{1-\alpha}\big(\{r_i\}\big), \qquad \text{interval} = \big[\,\hat{\theta} - q_{1-\alpha},\; \hat{\theta} + q_{1-\alpha}\,\big].\]

The split is patient-disjoint (a group-conformal split: 900 calibration rows and 1200 test rows, with no patient appearing in both), so the interval is distribution-free and finite-sample valid. At a single seed-42 split the empirical coverage meets or exceeds the nominal level at every band, which is why the intervals are wide but honest.

Nominal levelInterval half-widthEmpirical coverage
80%±15.01°89.7%
90%±20.50°95.2%
95%±26.03°97.8%

The headline band is ±20.50° at the 90% level, with empirical coverage of 95.2% — at or above nominal. The interval is honest precisely because it is wide: roughly forty degrees of total width is the price of distribution-free validity on a cohort this size.

The conformal split sits on top of pooled out-of-fold predictions, which can make the bands look mildly optimistic. The OOF predictions on which these intervals are calibrated were produced across the cross-validation folds rather than on a single fully held-out test set, and the same pooled-OOF predictions feed the stacked ensemble reported on the Results page. Stacking and calibrating on out-of-fold predictions can be mildly optimistic, so treat the empirical coverage as an estimate from a single seed-42 patient-disjoint split (900 calibration rows, 1200 test rows), not a guarantee.

Figure 1

Calibration plot: a step curve of empirical coverage against nominal level, with the empirical curve sitting on or above the diagonal at the 80, 90, and 95 percent levels.
Split-conformal coverage meets or exceeds the nominal level at every band; the empirical values (89.7%, 95.2%, 97.8%) sit at or above the diagonal, so the prediction intervals are wide but valid.

Agreement, not inter-observer

The estimator would, in practice, stand in for a sonographer’s manual angle setting, so the right question is how far it sits from the reference reading it would replace. A Bland–Altman analysis plots the signed difference against the mean of the two readings. Per sample, across all 2,100 views, the bias is −4.31°, with 95% limits of agreement of −24.25° … +15.63° (n=2,100). Aggregated per patient, the bias is −4.56°, with limits of agreement of −16.87° … +7.75° (n=12). The bias is small and negative: the model reads slightly lower than the reference.

This is a method-vs-reference comparison against a single reading, not an inter-observer agreement study. There is exactly one MATLAB-GUI reference reading (theta_true) per image, so the Bland–Altman analysis measures how the model agrees with that single reference — not how two independent readers agree with each other. The reference is itself a noisy estimate of the true angle, and we cannot separate model error from reference error. The differences are also signed with a 180°-periodic wrap, and the per-sample n=2,100 counts 25 coupled rotation copies of each of the 84 base images, not 2,100 independent measurements.

Figure 2

Bland–Altman plot: signed difference between model and reference angle on the vertical axis against their mean on the horizontal axis, with a bias line near minus four degrees and dashed 95 percent limits-of-agreement lines above and below.
Model and reference agree to within a small negative bias of −4.31°; the 95% limits of agreement span −24.25° to +15.63°. The interactive view plots a downsampled set of the per-sample differences, with a per-patient toggle for the twelve patient-proxy means.

De-rotation cuts the per-image error by about two-fifths

The augmentation that builds the training corpus is also a tool at inference. Each of the 84 base images carries 25 rotation views; median rotation test-time augmentation de-rotates every view back to the base frame and reduces them circularly (180°-periodic, seam-safe). On the base images this takes the raw base-image MAE from 7.80° down to 4.72° under the circular median (and to 5.31° under the circular mean) — cutting the per-image error by roughly 40%.

Rotation TTA, base-image MAE

7.80° → 4.72° (circular median over rotations); 7.80° → 5.31° (circular mean). Measured on the 84 de-rotated base images.

The 7.80° base-image figure is on a different footing from the headline patient-level numbers. The 7.80° → 4.72° reduction is measured on the 84 de-rotated base frames, which is not the same population as the patient-level pooled-OOF evaluation. The 7.80° base-image MAE is the like-for-like starting point for this de-rotation experiment, and it should not be read directly against the 5.93° / 8.53% patient-level headline reported on the Results page.

It looks at the vessel wall

A model that reports an angle should be reading the anatomy that defines the flow axis. Grad-CAM attributions for the tuned DenseNet201 localise on the vessel wall — the longitudinal common-carotid boundary that fixes the orientation — consistent with the network keying on the geometry rather than on an artefact or label leak.

Figure 3

Grad-CAM montage: a row of carotid B-mode frames overlaid with warm heatmaps, each concentrated along the long bright vessel-wall boundary that runs across the frame.
Grad-CAM attributions concentrate along the vessel wall, the structure that defines the flow axis the model is estimating.
Grad-CAM overlay on carotid B-mode image 09-41-06_1: the heatmap sits on the vessel-wall boundary.
Image 09-41-06_1.
Grad-CAM overlay on carotid B-mode image 09-46-10_1: the heatmap sits on the vessel-wall boundary.
Image 09-46-10_1.
Grad-CAM overlay on carotid B-mode image 09-53-51: the heatmap sits on the vessel-wall boundary.
Image 09-53-51.
These attributions are illustrative, not a cohort-wide attribution study. The panels above are three hand-picked frames at the coarse Grad-CAM grid resolution. They are qualitative evidence that the network attends to the vessel wall on these examples; they are not a quantitative, cohort-wide attribution analysis, and they do not certify that the model never relies on an artefact elsewhere.

Explore the predictions

The explorer below is driven by the real saved out-of-fold predictions for the tuned DenseNet201 on the study images. Pick one of the 84 base images, scrub the rotation, and read the reference angle, the model’s estimate, the signed residual, and the ±20.50° conformal band on a number line. Nothing here is computed in the browser beyond the signed error \(\theta_{\text{pred}} - \theta_{\text{true}}\); the angles and the band are the precomputed values from the evaluation.

These are precomputed out-of-fold predictions, not live in-browser inference. The explorer reads precomputed real predictions exported from results/predictions/tuned_densenet201_oof.csv — the same pooled-OOF predictions used throughout this page. It is a viewer over saved numbers, not a live model; running the network in the browser on a freshly uploaded image is out of scope for this version.

Figure 4

Five per-backbone scatter panels of predicted versus actual insonation angle, points clustered along the identity line, shown as the static fallback for the prediction explorer.
Per-backbone predicted-versus-reference scatter (static fallback); the interactive explorer above reads the tuned DenseNet201 predictions and the ±20.50° conformal band.

Next: Reproduce →