2008 Winter Project Week BSplineReg
Key Investigators
- MIT: Serdar Balci, Polina Golland
- Kitware: Luis Ibanez
Objective
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 .
Progress
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.
Run-times:
- 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.