Cerebral vessel segmentation from MRA, 14 classes. Full end-to-end pipeline:
drop your own .nii.gz MRA volume in,
WASM does gzip decompress + nnU-Net preprocess (trilinear resample to
0.65 × 0.469 × 0.469 mm + ZScoreNormalization) +
sliding window + inverse resample back to your scanner frame +
NIfTI pack, and hands you back a labelled seg.nii.gz.
·
← single-patch parity/debug
How to use:
① Load WASM →
② Load model weights →
③ Upload an MRA volume (NIfTI, gzipped or raw) →
④ Run sliding window →
⑤ Download segmentation.
✓ nnU-Net V2 strict conformance:
canonical-frame argmax 99.9989% vs nnUNetv2_predict
(fold 0, use_mirroring=False, use_gaussian=True).
Pipeline order matches official exactly: transpose → crop-to-nonzero →
per-image ZScoreNormalization → cubic B-spline resample → sliding window.
ResEncUNet forward rel_rms < 5e-6 per patch vs PyTorch.
Performance (M1 MacBook, 180 patches, 48×96×112):
Chrome WebGPU ~75 s ≈ Python MPS 73.8 s (parity).
Node WebGPU 66.3 s · Python CPU 223.8 s.
Per-patch ~417 ms (Chrome) / ~366 ms (Node).
Pipeline (strict nnU-Net V2): transpose → crop-to-nonzero →
per-image ZScoreNormalization (x − μ) / σ (μ, σ
computed from the cropped volume, not the training fingerprint) →
cubic B-spline resample to target spacing → sliding window.