ITK-Based Implementation of Two-Projection 2D/3D Registration Method with an Application in Patient Setup for External Beam Radiotherapy

Please use this identifier to cite or link to this publication:
This document describes an ITK-based implementation of intensity-based 2D/3D rigid image registration for patient setup assessment in external beam radiotherapy. The registration framework was designed to simultaneously register two projection images to a 3D image volume. The projection geometry was set up to simulate the x-ray imaging system that attached to a medical linear accelerator for cancer treatment. The normalized correlation was used as the similarity measure and the Powell's optimizer was used as the optimization method. Siddon-Jacobs fast ray-tracing algorithm was implemented to compute projection images from a 3D image volume.
plus Automatic Testing Results by Insight-Journal Dashboard on Fri Dec 24 01:30:07 2010 for revision #2
starstarstarstarstar expertise: 5 sensitivity: 5
plus Automatic Testing Results by Insight-Journal Dashboard on Wed Dec 22 03:01:04 2010 for revision #1
starstarstarstarstar expertise: 5 sensitivity: 5

minus Interesting project, but requires extra work by Alvaro Bertelsen on 2011-03-04 05:25:47 for revision #3
starstarstarstarstar expertise: 3 sensitivity: 5

The author proposes an ITK-based application for 2D-3D registration, specifically designed for radiotherapy. It receives a CT scan of the patient and registers it to two fixed radiographs, taken at a relative angle set by the user. To implement the application, the author defines a new ITK registration method, able to receive two fixed images instead of one, and derives a set of new classes required by it.


(Non applicable)


The author focuses on presenting a new application and not on proving a hypothesis. However, he makes three claims that require further verification.


The first claim made by the author is about the chosen metric for the registration -Normalized Correlation (NC)- which, according to him "has been shown to have very good accuracy and robustness for this application" citing a previous article writen by himself. The best metric for registration of Digitally Reconstructed Radiographs (DRR) and real radiographs has been a subject debated for a long time and there are plenty of publications about it (for a recent review see Markelj P. et al, "A review of 3D/2D registration methods for image-guided interventions", Medical Image Analysis. 2010. doi: 10.1016/ ). There is little consensus about which metric is best, although there is evidence that measures based on global correspondences -such as NC- perform worse than the ones based on local intensity features (Merkelj et al. 2010). However, it may be possible that NC performs well for this particular application, but the author should acknowledge that there are plenty of discussion about this or, even better, include a comparison of it against other metrics in the article.


The second claim is that the implemented ray-tracer, based on previous work by Siddon and then extended by Jacobs et al., is "expected to be at least an order of magnitude faster than the linear interpolation-based ray tracing method." No evidence however is presented in the article to support this claim.


Finally, the proposed application should be tested with more cases. The author tests his application using only one starting transformation -displacements of 5, 5 and 5 mm in x,y and z and rotations of -3, 4 and 2 degress around x, y and z- on two dataset, one of them being a downsampled version of the other. 2D-3D registration is known for being error-prone and two experiments are not enough to validate an application of this kind. More starting positions should be definitively included.


Open Science:

The author provides the source code of his proposed application, along with the input and output images described in the article. Enough details are give to replicate the presented results.


I was able to download, compile and run the program. I also obtained the same output images presented by the author after execution.


However, the author should fix the CMakeLists file, correcting the location of the IJMacros.txt file. Also, the 'add_test' lines have incorrect file names in it, which makes the tests fail. (Also, the 2D3DTwoProjRegistration application should not return 0 if the input is incorrect, as this will make a test pass despite that the program did not do anything at all)

Use of Open Source Software:

The author used Open Source software -ITK and CMake- for his project. Little is written about his experince using it and about advice given for future users.

Open source Contributions:

The author implemented a new set of ITK classes, given as a set of h and txx files. These can be easily included into any project which uses ITK.


The author extends the capabilities of ITK for 2D-3D registration, which are quite limited in the current version. To achieve this, a new class -itkTwoProjectionImageRegistrationMethod- was written, similar to the existing itkImageRegistrationMethod but able to handle two (and only two) fixed images, two interpolators, and a single moving image. Another useful addition was a new metric class -itkTwoImageToImageMetric- able to calculate the similarity between two fixed images and a single moving image. The author also wrote the subclass itkNormalizedCorrelationTwoImageToOneImageMetric, an implementation of the NC metric for the application.


In addition, a new ray tracer class was presented -itkSiddonJacobsRayCastInterpolateImageFunction- replacing the limited itkRayCastInterpolateImageFunction, offering more speed (although this need verification) and flexibility to define the projection geometry. However, projection planes are limited to rotate around the y-axis, which, however, is not a problem for radiotherapy planning.


Multi resolution registration was not addressed at all, which is a big limitation of the proposed implementation.

Code Quality :

The author sets an example with the quality of his code. It strictly follows the ITK coding style, is clear and well documented. Also, multi-platform compiling was addressed using CMake.


The only problem I see in the code is the itkNormalizedCorrelationTwoImageToImageMetric class. An implementation of the NC algorithm is repeated twice in the source code, once per fixed image, and their results are averaged. I believe it is unnecessary to write another implementation of the NC metric, as ITK already comes with one. To fix this, it could be possible to redefine the itkTwoImageToImageMetric class, adding two instances of itkImageToImageMetric to it. The 'GetValue' method of this class should just return the average of these individual metrics. In this way, a derived method of this class (such as itkNormalizedCorrelationTwoImageToImageMetric) should just redefine its individual metrics and its definition would be complete. Classes like this would re-use the ITK's available code and ease the implement the metric's derivatives, something missing from the current implementation.

Quality of the data :

The data quality was good. The author also added a couple of extra applications to convert existing data to a more suitable format for the application (such as Nifti)


Any other surgery driven by radiographs could benefit from this work, in particular, hip and spine surgery.

Free comment :

I believe that this work is interesting, but an additional effort is required to make it really useful for the open-source community. It presents an application specifically designed for radiotherapy and extends ITK's functionality for 2D-3D registration, an area for which the toolbox still does not provide adequate support. In particular, the author presents a framework for development of registration methods with multiple fixed images, which is adequate although still limited to an arbitrary number of images (two). All the source and data are provided and all the experiments described in the article can be reproduced.


Going into details, good points of this work are:

+ It makes possible to register a 3D dataset to two 2D images, something not possible to do with the current version of ITK.

+ Flexible implementation -in line with ITK's philosophy- which allows use of different types of optimizers and interpolators. Also it is not mandatory for the fixed images to be 2D: they can also be volumetric.

+New ray-caster, with added flexibility for definition of its projection geometry.

+Clear and well-documented code.

+Available data and possibility to reproduce all the article's results.


The points which need improvement are the following:

+ Lack of multi-resolution support for registration.

+ Number of fixed images limited to two. It would be interesting to re-design the classes so they can handle any number of images.

+ Implementation of metrics which forces the developer to re-write existing algorithms (such as Normalized Correlation)

+ Additional experiments needed, in particular for the 2D3DTwoProjRegistration application's performance (accuracy, capture basins, etc.)


Add a new review
Quick Comments

Download All
Download Paper , View Paper
Download Source code

Statistics more
Global rating: starstarstarstarstar
Review rating: starstarstarstarstar [review]
Code rating: starstarstarstarstar
Paper Quality: plus minus

Information more
Categories: Registration, Registration metrics, Resampling, Transforms
Keywords: 2D/3D registration, ray-tracing algorithm, radiotherapy, patient setup
Toolkits: ITK, CMake
Export citation:


Linked Publications more
Importing Contours from DICOM-RT Structure Sets Importing Contours from DICOM-RT Structure Sets
by Dowling J., Malaterre M., Greer P.B., Salvado O.
A Label Geometry Image Filter for Multiple Object Measurement A Label Geometry Image Filter for Multiple Object Measurement
by Padfield D., Miller J.

View license
Loading license...

Send a message to the author
Powered by Midas