Inspiration
Toralis Labs' Branchseed challenge asks a deceptively narrow question: given a CT scan and a mask of the parent aorta, find every artery that branches directly off it — without knowing in advance how many there are, what they're called, or where they'll be. Surgeons currently do this translation from raw imaging to a mental map of the vasculature almost entirely by eye. We wanted to see how far a fast, fully classical, no-training-data pipeline could get toward automating that step, on hardware no more powerful than a laptop.
What it does
Given a CT volume and a binary aorta mask, the pipeline detects every eligible daughter artery leaving the aorta and reports, per branch: the ostium (origin point on the aortic wall), a 5mm seed point along its path, its local radius, and a unit direction vector — all in physical millimetres, in the exact SimpleITK LPS coordinate convention the challenge requires. It runs without any manual point placement, generalizes across variable anatomy and scan lengths, and completes each case in well under the 60-second budget on 4 CPU cores with no GPU.
How we built it
The pipeline is entirely classical computer vision, deliberately avoiding deep learning so it can run without a GPU, without internet access, and without any labeled training set:
- Per-case adaptive calibration — blood-intensity (HU) range is sampled from each case's own aorta voxels rather than a fixed global threshold, since contrast timing varies scan to scan.
- 3D Frangi vesselness filtering, tuned to remain sensitive to tubular structures as thin as ~1–2 voxels, since a 2mm-diameter branch is only about 1.3 voxels wide at 1.5mm spacing.
- Outward wall-tracing from the aorta boundary through contiguous, vessel-like voxels, with eligibility gated on the challenge's own rules: a followable path of at least 5mm, minimum 2mm origin diameter.
- Two distinct merge strategies — an unconditional near-duplicate merge for detections that are almost certainly the same physical origin found twice, and a separate, more careful path-divergence check for genuinely distinct nearby ostia (real anatomical pairs can sit closer together than a naive duplicate filter would allow).
- Coordinate correctness treated as a first-class requirement — every physical coordinate is computed via SimpleITK's
TransformIndexToPhysicalPoint, never via a NiBabel affine, since NiBabel returns RAS by default and the challenge scores in LPS.
Challenges we ran into
- A NIfTI direction-matrix bug that only appeared on one case out of 25 — a slightly non-orthonormal direction cosine matrix (likely gantry-tilt residue) caused a hard crash in SimpleITK's reader. Since this is a property of real scanner output, we couldn't assume it wouldn't appear in the hidden test set, so we built a general SVD-based correction into the loader rather than special-casing that one file.
- A false-negative failure mode we could not safely fix. In one case, two real, closely-spaced ostia get connected by a single contiguous contact patch on the aortic wall and detected as one instance instead of two. We tested four different geometric signals (endpoint direction, directional clustering, cross-sectional radius "waist," concentration of ridge curvature) trying to distinguish a genuine fused pair from a long, smoothly curving vessel wall that happens to have a similarly large contact footprint. None of them reliably separated our one confirmed fuse case from roughly twenty other long-contact instances across the full dataset, without either missing the fuse entirely or incorrectly splitting a single healthy vessel elsewhere. We chose not to ship a fix we couldn't validate.
- Distinguishing real precision loss from an incomplete reference. The provided draft annotations explicitly state they aren't exhaustive. We found direct supporting evidence: several of our "false positive" detections on one case form geometrically consistent left/right pairs at matching heights along the aorta — the expected signature of lumbar arteries, which are real, eligible branches under the challenge's own criteria but simply weren't in the draft labels.
Accomplishments we're proud of
- A working, generalizing pipeline validated across the full 25-case dataset, not just the 5 labeled development cases — including catching and fixing a real crash that only manifested on one previously-untested case.
- Recall of 0.895 against the draft reference — the pipeline finds almost everything real.
- Restraint. We tested and explicitly rejected several changes that looked promising in isolation but either failed on independent validation (a single-feature vesselness or shape-consistency threshold, neither of which cleanly separated real branches from noise) or actively regressed overall accuracy (a broader contact-splitting heuristic that dropped F1 from 0.708 to 0.585 by fragmenting correct detections). We'd rather ship a system with an honestly documented limitation than one tuned to look good on five cases we happened to have labels for.
- An independent manual review of 128 detections across 18 additional, unlabeled cases confirmed only 5 as clear false positives — strong supporting evidence that our measured precision against the draft set is a conservative floor, not a true error rate. ### What we learned
That the hardest part of a "narrow" computer vision task is rarely the core detection logic — it's correctly handling coordinate conventions, malformed real-world scanner metadata, and the judgment calls around when a geometric heuristic is trustworthy enough to ship versus when it's overfitting to a five-case sample.
What's next
Expanding manual review across the full unlabeled dataset to build a larger internal reference, and revisiting the fused-ostia problem with topological/graph-based vessel-tree features rather than purely local geometric signals, which the literature suggests is a more robust approach to this exact problem.
Log in or sign up for Devpost to join the conversation.