[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