Repository navigation
v0.2.17 — retinal-layer segmentation tool
Released 2026-08-09.
Added
-
Retinal-layer segmentation — a toolbar tool, a parameter dialog, and
ISemanticSegmenter/SEMANTIC_SEGMENTER, backed byjax-ai-js.A third segmentation port rather than a reuse of the other two, because the output is a genuinely different shape: cellpose separates touching instances of one class, YOLO returns overlapping classified objects with a confidence each, and this returns layers that tile the image, never overlap, and where two disconnected patches of a class are one finding rather than two objects. There is no per-object confidence and no NMS because there are no objects.
Only the VNet checkpoint is enabled. Against the ground-truth masks shipped with them, VNet scores mIoU 0.9061 and the three ResUNet-a variants 0.27–0.31. That is not quantization damage — each ONNX export reproduces its own Keras original exactly. They disagree with the masks, folding ground-truth class 1 into their class 2 and class 3 into background, and no relabelling rescues them (the best of all 24 permutations reaches 0.36). Their weights are unpublished pending that question, so their registry entries carry an empty
modelUrland a specific reason. They are listed rather than deleted so a host can show them as unavailable instead of pretending the server's choice does not exist.WebGPU only, with no fallback: ORT-Web's WASM EP dies with
std::bad_allocon these graphs at 512², at every precision.WebGpuRequiredErroris re-thrown unchanged so a host can show a real unsupported-browser message.An empty result distinguishes "found nothing" from "was unsure everywhere" — the second is the signature of the wrong magnification or wrong preprocessing, and reported as a plain empty result a misconfiguration is indistinguishable from an empty field.
npm: @jax-data-science/sci-image-visualizer@0.2.17
Full diff: v0.2.16...v0.2.17