[IGSTK-Developers] Registration error computation

Hui Zhang zhang at isis.imac.georgetown.edu
Tue Dec 6 18:45:25 EST 2005


Hi, Andinet,
>>
> Thank you for your comments..
>
> I agree with you that ComputeFRE can be inserted  in 
> igstkLandmarkRegistration class..In fact, we have already something 
> similar ( ComputeRMSError()) . However, I am not sure if ComputeTRE() 
> belongs to igstkTransform or igstkLandmarkRegistration class. ComputeTRE() 
> needs target location information and that information is not available 
> in and shouldn't be part of  igstkTransform and igstkLandmarkRegistration 
> class.  Plus, FLE depends on the fiducial type and that might not be 
> readily available. In fact, the reason why I have decided to compute TRE 
> in terms of FRE is b/c of the lack of information regarding FLE

Approximate TRE  = EvaluateTRE( FREs(orFLEs), fixed points, moving points); 
This function needs fixed points and moving points, so probably should be in
igstkLandmarkRegistration;
Real TRE = ComputeTRE(transform, target point in space 1, same point in 
space 2); The igstkTransform will give the information of transform, and the 
other two point positions should be input by the user.
I am not sure whether the ComputeTRE function should be put in the 
igstkLandmarkRegistration or in the igstkTransform, for those two classes 
all have the transform needed to compute the result. I talked with Ziv here 
at my lab., he suggested to put in the igstkLandmarkRegistration for this 
TRE error is only for the registration, and igstkTransform is a general 
transform and can be used in some other places. For example, the calibration 
class use it too. But in the calibration, TRE doesn't give any meaning.
What I am thinking is, we may have several different registration classes, 
all those registration class will need ComputeTRE function. If this function 
is not implemented in the igstkTransform class, it will be implemented in 
each registration class. I suggest to have a general igstkRegistration 
class, and put igstkLandmarkRegistration, later igstkICPRegistration as the 
derived class of it. So the ComputeTRE function can be implemented in the 
general igstkRegistration base class. Of course that igstkRegistration class 
should have a member variable of igstkTransform as the general output.

2 cents.

Regards,
James


>
> So, I am still not sure where to add ComputeTRE......
>
> -Andinet
>
>
>
>
>> That is my option, wish it helps,
>>
>> James,
>>
>> Another related paper is :
>>
>> Predicting error in rigid-body point-based registration
>> Fitzpatrick, J.M.; West, J.B.; Maurer, C.R., Jr.;
>> Medical Imaging, IEEE Transactions on
>> Volume 17,  Issue 5,  Oct. 1998 Page(s):694 - 702
>>
>>
>> ----- Original Message ----- From: "Andinet Enquobahrie" 
>> <andinet.enqu at kitware.com>
>> To: "'IGSTK-developers'" <igstk-developers at public.kitware.com>
>> Sent: Tuesday, December 06, 2005 4:35 PM
>> Subject: [IGSTK-Developers] Registration error computation
>>
>>
>>> Hi Folks,
>>>
>>> I would like to get your opinion on how to integrate a registration 
>>> error computation scheme into igstk.   The goal is to determine the 
>>> accuracy of a target registration using transform parameters computed by 
>>> "igstkLandmarkRegistration". From West et al. paper,  target 
>>> registration error  (TRE) is a function of  landmark registration error 
>>> and the location of the target with respect to the landmarks (distance 
>>> from the target to the three principal axis of the landmark 
>>> configuration). Integration of this computation into igstk is a bit 
>>> tricky since it is "target" and "target location" specific.
>>>
>>> To implement this computation in igstk, I see the need for the following
>>>
>>> 1) A member variable  to store landmark configuration information in 
>>> "igstkTransform"  (This could probably be just a three by three matrix 
>>> to encode the principal axis of the landmarks configuration)
>>> 2) Set/Get methods in "igstkTransform" for  this new member variable.
>>> 3) ComputeTargetRegistrationError()  method to compute the error. This 
>>> method will use the location of the target and landmark configuration 
>>> information to compute the registration error. The computed registration 
>>> error could be stored in the "ErrorValue" igstkTransform member 
>>> variable. However, I am not sure which class this method would perfectly 
>>> fit in . Either in Tracker class where target transformation is reported 
>>> to the spatial object or  in spatialobject class itself or in a new 
>>> helper class...
>>>
>>> Any thoughts?
>>>
>>> Thank you
>>>
>>> -Andinet
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> IGSTK-Developers mailing list
>>> IGSTK-Developers at public.kitware.com
>>> http://public.kitware.com/cgi-bin/mailman/listinfo/igstk-developers
>>>
>>
>>
>>
>>
>
>
> 





More information about the IGSTK-Developers mailing list