← All work 2025Masters research

ARMADILLO

Part of a group research project on lining up a 3D model of the liver with live surgical video. I wrote the paper on the first step, finding landmarks on the 3D model. Our loss function cuts the average landmark error by 37% compared with leading state-of-the-art research, from about 26 mm to about 17 mm.

  • Python
  • Deep learning
  • PointNet++
  • Point clouds
  • Computer vision
Results
37%
lower error than leading state-of-the-art research
48%
lower than the next-best state-of-the-art method
16.6 mm
mean error on unseen livers

Where it started

In keyhole liver surgery the surgeon works from a camera feed. A 3D model built from an earlier scan can be laid over that feed, but only after the two have been lined up, and lining them up needs landmarks marked on both. Marking them by hand is slow and varies from person to person.

ARMADILLO set out to take that step away. The group built the whole chain: landmarks on the 3D model, landmarks in the video, the registration between them, and a viewer to inspect the results.

The idea behind the midline loss

The two landmarks we looked at, the falciform ligament and the liver ridge, are thin lines on the surface. Earlier approaches used MeshCNN, graph networks and PointNet-style models, and tended to predict regions that were too wide or too sparse. That is partly down to the loss. A standard loss only asks whether each point is labelled correctly, so a fat blob around the right spot costs very little.

The midline loss adds a geometric check. It fits a central axis through the predicted points, snaps that axis to the points in a way that stays differentiable, then penalises two things: points that sit far from the axis, and an axis that drifts from the true centreline. Predictions come out thin and in the right place. We built it on PointNet++ and trained on a combined set of about 300 liver models.

How it compared

Error is the mean Chamfer distance in millimetres, so lower is better. All rows are on the unseen P2ILF test set.

MethodRidgeLigamentMean
PointNet++ with midline loss19.7013.4616.58
UCL, leading state of the art27.9724.4726.22
NCT, next-best state of the art27.1936.3831.79
PointNet++ with standard weighted cross-entropy, same training23.7260.2641.99

The result I found most interesting is about generalisation. On the held-out slice of the larger dataset, plain cross-entropy scored better than the midline loss (12.7 mm against 16.6 mm). Moved to livers from a different source, it fell to 42 mm while the midline model held at 16.6 mm. My reading is that the constraint stops the network from learning quirks of one dataset.

Across the whole pipeline the group report records a 30% relative gain in 2D segmentation precision, 36% better 3D segmentation distance, and 31% lower reprojection error than leading earlier work.

Working in a group

ARMADILLO was a seven-person project and every member is on the paper, and it won the School of Computer Science’s best MEng project prize. I am first author on the midline loss work. The 2D segmentation and registration were done by the rest of the group, and the second MIUA paper covers the 2D segmentation side.

Caveats

  • The P2ILF test set is two patients. I would want more before leaning on the generalisation result.
  • This is research code. It has not been used in a clinical setting.