Awakening ImageCAS: Open Coronary Ostia and Centerlines for CCTA

From arXiv:2611.09714 by Leccardi et al., Politecnico di Milano, ETH Zurich and University of Pavia: ImageCAS coronary CT angiography slices with the annotated right and left coronary ostium markers (Fig. 1), and the released centerline tree of ImageCAS patient 343 rooted at both ostia (Fig. A.2c).

Anyone who has built a coronary CT angiography (CCTA) workflow knows where the coronary tree starts: at the two ostia, where the left and right coronary arteries leave the aortic root. Curved planar reformation, vessel tracking, branch labeling and stenosis measurement all hang off that point and off the centerline that grows from it. Public data for training a model to find those points has been thin. In arXiv:2611.09714, Matteo Leccardi and colleagues at Politecnico di Milano, with ETH Zurich and the University of Pavia, fix that for ImageCAS, the largest public coronary segmentation dataset. The project is called Awakening ImageCAS.

What they released

The release has three parts, all tied to the 1000 CCTA scans of ImageCAS (Guangdong Provincial People’s Hospital, 2012 to 2018):

  • Ostium labels for every scan. A left and a right ostium for all 1000 patients, each stored in world (RAS, mm) and voxel coordinates with the affine matrices, plus a 3D Slicer markup per scan.
  • Rooted centerline graphs. One connected tree per side for 999 of the 1000 patients, grown from the annotated ostia along the official ImageCAS masks. Every node carries position, lumen radius, topological type and side. Files come as networkx-compatible GML, VTK polydata and Slicer markups, with a per-case quality table.
  • Open-weight ostium localizers. Four of six benchmarked 3D models (SwinUNETR-V2, nnResUNet, ResNet50, ResNet101), plus a SwinUNETR-V2 trained at 1.0 mm spacing, with MIT-licensed inference and training code.

Before this, the only CCTA data with ostium information were CAT08 and ASOCA, 72 scans in total, where the ostium is only implicit as a centerline start point. CAT08 can no longer be downloaded from an official source. No dedicated ostium localizer had been released with code or weights.

How the labels were made

The first 500 scans were annotated by three people each, drawn from six trained annotators in rotating groups that reshuffled every 25 images, working in 3D Slicer across axial, coronal and sagittal views. The consensus point is the mean of the three markers, followed by a visual check for gross errors. On these scans an individual annotator sits a mean of 1.45 mm (right) and 1.95 mm (left) from the mean of the other two, so the landmark itself carries a millimeter or two of uncertainty.

The second 500 used a human-in-the-loop pass. A SwinUNETR-V2 trained on the first batch plus CAT08 and ASOCA proposed both ostia, and one annotator reviewed every scan. The reviewer moved the point in 88 scans, and the model missed an ostium in 10, which were placed by hand. That took about 5 person-hours, against roughly 144 person-hours for the triple manual annotation of the first batch. The test set comes only from the first, fully manual batch.

How the centerlines are grown

Instead of thinning the mask into a skeleton, which leaves loops and spurious stubs, the authors resample the mask to 0.5 mm, build a cost that is cheap on the vessel axis and expensive near the wall, and propagate a minimal-cost front from each ostium. The tree then grows by repeatedly tracing the path to the farthest uncovered voxel and keeping it as a branch only if it adds at least 5 mm of new vessel. Because every path comes from the same minimal-path map, the result is a tree by construction. A second pass with a capped wall distance keeps the path centered at bulky bifurcations, and gaps in the mask of up to 10 mm, such as at a severe stenosis, are bridged.

The numbers worth knowing

On 58 held-out scans (50 ImageCAS, 4 ASOCA, 4 CAT08), SwinUNETR-V2 and nnResUNet found every ostium with no error above 5 mm. Median errors were 0.70 to 0.87 mm per side, below the annotators’ own spread. The authors read that as agreement with the reference at the level of a human reader. nnResUNet took 41.1 s per scan against 55.6 s for SwinUNETR-V2 on an A100, including loading and export.

The data matter more than the architecture. Trained on CAT08 and ASOCA alone, SwinUNETR-V2 failed on 34% of right and 53% of left ostia. Adding 250 ImageCAS scans removed every failure. The centerline method, checked on the 40 ASOCA scans where reference centerlines come from the same masks, covers a median 99.5% of the reference length at a median 0.22 mm from it.

What it hangs on a scan in a viewer

Run the localizer on a CCTA volume and you get two points, R and L, in the image’s own world coordinates and as continuous voxel indices, written as JSON and as a Slicer point list. Pair those with your own coronary segmentation and the released extraction procedure, and you have two rooted trees with a radius at every node. In a DICOM viewer that maps to two ostium markers on the aortic root, a seed for automatic vessel tracking, a centerline overlay you can drive a curved planar reformation along, and a radius profile per branch for a first-pass stenosis view. For a planning tool, the ostium height above the valve annulus is a TAVI risk measurement that needs exactly this landmark.

One practical gotcha is the coordinate frame. All coordinates are RAS, the convention of nibabel, MONAI and Slicer. ITK, SimpleITK and DICOM patient coordinates use LPS, so x and y flip sign. Get that wrong and your markers land in the wrong place.

Why a clinical AI team should care

  • A shared benchmark. The test split, weights and a grading scheme (Optimal, Good, Acceptable, Failed, with thresholds from ostial anatomy and annotator spread) are public, so you can compare an in-house localizer on the same 58 scans.
  • Cheap extension. The second batch shows that model-proposed points plus one reviewer cost a few hours per 500 scans. The released models can seed the same loop on your own data.
  • Spacing rules you can use. Training and running at 1.0 mm keeps accuracy and roughly halves time (21.9 s for SwinUNETR-V2). Running a 0.5 mm model on a 1.0 mm volume breaks it, with 22.4% of left ostia failing, so resample to the training spacing.

Where it falls short

  • ImageCAS is a single hospital. CAT08 and ASOCA add only 72 scans, so per-dataset numbers are fragile, and the models have not been validated clinically or prospectively.
  • The labels assume one ostium per side. Separate LAD and circumflex ostia, a single coronary ostium and anomalous origins are not represented, and model behavior on them is unknown. That is a gap for a tool that wants to flag anomalous origins.
  • Annotators were biomedical engineers, not clinicians, and the second 500 labels came from one reviewer correcting model output without independent verification.
  • The centerlines inherit ImageCAS mask defects. One patient has no right tree because the mask never reaches the ostium. Visual review confirmed missed small distal branches in 29 patients, and in 12 of the 25 patients where left and right masks touch, a distal segment went to the wrong tree.
  • Trained on ImageCAS alone, the models still transferred to CAT08 and ASOCA, but with isolated failures on the order of a hundred millimeters, meaning the network locked onto a different structure. Any viewer integration should sanity-check the distance between the two ostia (33 mm on average in this data) before trusting the points.
  • Only gated CCTA was tested. Non-gated aortic CT is left for future work.

Code, weights and license

The code for training, inference and evaluation, with the train, validation and test lists, is on GitHub at AAMIASoftwares-research/HCATOstiaLocalizationRelease under the MIT license. Inference takes NIfTI or NRRD, reorients to RAS, resamples, clips to -200 to 800 HU and runs a sliding window, so you do not have to preprocess. The ostium and centerline annotations are on Zenodo (10.5281/zenodo.23243093) and the weights in a separate Zenodo record (10.5281/zenodo.23399623), both under CC BY-NC 4.0, matching the non-commercial terms of ImageCAS itself. No CT images or masks are redistributed. You download ImageCAS separately. For a product team, the code is free to reuse, but the annotations and weights are research-only unless you get permission, so a commercial ostium detector would need retraining on data you are allowed to use. The release is research software and is not a medical device.

Paper: arXiv:2611.09714 · Project: hal9000-lab.github.io/Awakening-ImageCAS · Code: GitHub (MIT) · Data and weights: Zenodo (CC BY-NC 4.0)

We build custom medical imaging platforms — advanced DICOM viewers, AI segmentation, and the clinical systems around them.

Get in Touch

Copyright © 2026 PYCAD. All Rights Reserved.