CAMP: Computational Anatomy and Medical Imaging using PyTorch

CAMP is designed as a general-purpose tool for medical image and data processing. PyTorch provides an efficient backend for mathematical routines (linear algebra, automatic differentiation, etc.) with support for GPU acceleration and distributed computing. PyTorch also allows CAMP to be portable due to full CPU-only support.

CAMP adopts coordinate system conventions designed to be compatible with medical imaging systems, including meta-data for a consistent world coordinate frame. Image transformations and image processing can be performed relative to the coordinate system in which the images reside, which facilitates multi-scale algorithms. Core representations for data include structured and unstructured grids.

Structured Grids

Structured grids represent data with consistent rectilinear element spacing. These grids are commonly defined by the origin and element spacing attributes. Images and vector fields are most commonly represented by a structured grid. CAMP defines many operators to perform computation on structured grid data, including Gaussian blur and composition of deformation fields. Multi-channel (including color) images are supported – the internal convention is channels-first representation (C x D x H x W).

Unstructured Grids

Unstructured grids represent data with arbitrary element shape and location. Currently, only triangular mesh objects are supported, which aim to represent surface data via edge and vertex representation. Data values may be face-centered or node-centered. The unstructured grid objects maintain a world coordinate system that preserves relationships between other unstructured and structured grid data. An example implementation of deformable surface-based registration is implemented using the unstructured grid representation, based on Glaunes et al. (2004). Watch a summary video using this implementation on YouTube.

Data I/O

Many medical imaging formats are supported through SimpleITK.

Relevant Publications

There is not a single publication that describes the architecture or design of the CAMP project. However, the following publications are use cases that inspired the core development of CAMP.

Indices and tables