2008 Winter Project Week BSplineReg

From NAMIC Wiki
Jump to: navigation, search
Home < 2008 Winter Project Week BSplineReg
Figure 2: An example deformation field. The local neighborhood affecting the deformation is overlayed on the image.

Key Investigators

  • MIT: Serdar Balci, Polina Golland
  • Kitware: Luis Ibanez


The goal of this project is to develop an efficient B-Splines based registration code. We explore the space of different optimization schemes e.g. caching, sparsity and memory-speed trade-off's.

Approach, Plan

We run benchmark experiments in the special case of itkMattesMutualInformation implementation. The current implementation in ITK uses caching of B-Spline coefficient in order to speed-up the registration. Also the sparsity of B-Spline coefficient updates are taken into account, yielding and efficient implementation.

The drawback of caching is the use of high amounts of memory. We compare the performance of caching vs. not-caching(computing the coefficients on the fly) by deactivating caching code in itkMattesMutualInformation .


Jan 2008 Project Week

We run an experiment on a machine with 8GB of memory, 4 core CPU running gcc compiler on a linux system.

We used a B-Spline with mesh size 32x32x16 with an image of size 256x256x124 and used Mattes mutual information as the registration algorithm.


  • 21 seconds with caching (2.4 GB of memory)
  • 52 seconds w/o caching (800MB of memory)

Overall in this experiment, caching improved the performance by 2.5 while using 3 times more memory. We are in the process of exploring the effect of number of samples, image size and compiler on registration time.