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?

Thanks

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

2 Likes

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:

3 Likes