RMSE in Landmarks Registration

Hello everyone,
I’m trying to register two volumes using “Fiducial Registration Wizard” module. My goal is to find the minimum number of fiducial points that give me best result in the alignment.
What I observe when I increase the number of landmarks is that RMSE increases but visual alignment seems better in axial, coronal and sagittal views.
If I want to quantify registration with respect to the number of fiducials is it fair to consider RMSE or is there another way?

It is a somewhat unintuitive but but a well proven fact that fiducial registration (residual error shown as RMSE) is different from target registration error (accuracy of aligning important target positions).

You need minimum 3 points for a rigid registration, but the more points you add, the higher the chances that you reduce the effect of random errors in your imaging and point marking. However, the more points you add, the more time it takes, you may become less careful when placing the points, and you may only find lower-quality landmark points (that you are not so sure about or are farther from the region of interest), which may not improve the end result.

Most often you would end up using 6-8 high-quality landmarks, placed carefully.

If you don’t have this many good landmarks then there are alternative methods. For example, you can collect a large number of surface points using a tracked stylus or surface scanner and use points to surface registration.


I have a similar problem and am looking for a way to quantify the “success” of registration.
In my case, I use the “Fiducial Registration Wizard” to coregister a 3D MRI dataset and a 3D stack of histological images obtained with light sheet microscopy. I placed fiducials on anatomical landmarks and want to somehow quantify the registration result. Qualitatively, the more fiducials I place, the better the visual alignment of the datasets and the higher the RMSE.
Is there any way to quantify the visual impression of “the more fiducials the better”? Is there a way to calculate at which number of fiducials the result is best, i.e. alignment doesn’t get better by adding more fiducials once a certain number has been placed?
Thanks in advance! Any input on this is highly appreciated! :slight_smile:

There is no general solution for objective evaluation of accuracy of landmark registration. To measure the error you would need ground truth information that is about a magnitude more accurate than the expected error, but such ground truth information is usyallynot available.

Most common TRE estimation method is that an expert determines some matching landmarks in the region of interest that are not used for registration. Unfortunately, this method takes a lot of effort and its accuracy is usually worse than the registration error that we want to measure.

There may be better solutions for special cases. You can search on the web for papers on “target registration error estimation” or just search for papers on MR/histology registration and see if you like any of the registration error evaluation methods.

MR/histology registration is a particularly difficult problem because it is a 2D/3D deformable registration. Registration evaluation techniques are both very tedious and very inaccurate.

For manual point marking, I would say this is only true up to maybe 10-15 points. Usually you cannot place any number of fiducial points with equal accuracy (there are some easy ones that you can place quickly and accurately and you may be able to find more, but they take more effort to mark). Often there are practical limitations on available time, so marking more points may lead to less carefully placed points. Usually you cannot place the points evenly distributed (there may be some regions where you can find many fiducials and there may be large homogeneous areas where you cannot easily find any corresponding points), so you may have higher accuracy in regions where you can easily find points, potentially at the cost of having lower accuracy in the region of interest.

Thank you a lot for your reply!
We are now trying to compare displacement vector fields of transforms based on varying numbers and locations of fiducials to the transform, which visually rendered the best result to get an idea of the variation. With that, we came across a problem when trying to save the output displacement field generated in the “Transforms”-module. When we try to save it via the “Save” panel", we get an error message, but we are able to save it via the Python interactor with a simple “saveNode”-command. It’s not a bis issue to use this work-around, however we wondered, why this error occurs.

You get an error when you try to save the inverse transform or choose incorrect file format. I would recommend to export the displacement values into a vector image in Transform module. You can then save it into nrrd file format.

Thank you, that worked!

1 Like