Speed up ITK Registration Pipeline

Hello Everyone,

I implemented a registration pipeline using MattesMutualInformation as the metric algorithm.
I am reaching convergence around 50 iterations but these iterations are taking nearly 4 minutes. My computer has an i7-9750, 16GB RAM, and an Nvidia RTX 2060 6GB.

I tried setting up the WorkUnits but no improvement was noticed. I looked into some questions on the forum regarding the GPU implementation and, as far as I understood, there isn’t a current implementation of the registration framework on the GPU.

The moving image is 640x402 and the fixed image is 640x480. Is processing time normal? Is there a way in which I can use the GPU or use more threads?


If that is a 2D image, registration should be done in seconds. Debug can be 100x slower than release.


MattesMutualInformation really works different than the rest and in fact does not fit conceptually the ITK framework, the transformation is non-linear so the cost per iteration is higher than the rest of the co-reg algorithms. Several things you can try: (1) relax the criteria for convergence (2) do provide better initial transform. Also, as @dzenanz suggested try not to use debug but instead use release with debug symbols.

1 Like

Thanks everyone.
I was sure to be running on release mode. Later on, I found an error on my CMake file that was making it to always build on debug.

Now, the registration task is running on 2 seconds :slight_smile: