[Insight-users] Procrustes registration again

Luis Ibanez luis.ibanez@kitware.com
Wed, 09 Apr 2003 23:44:15 -0400


Hi Imho,

Unfortunately we cannot label anything as "fast",
we can only say that X is 'faster' of 'slower'
than Y for performing the task Z.

Put in this way:

1) Demons is in principle much slower than ICP.

   Demons is solving a partial differential
   equation in the whole volume.

   However, ICP can get really slow if you have
   many points (tens of thousands).  In some cases
   it is faster to cmpute the distance map of one
   of the point sets, and then register the other
   point set against the image holding the distance
   map.  In this way you factorize the N^2 distance
   comparisons.  You can use the DanielsonDistance
   filter to that end.

2) It is always a good idea to solve first the
    rigid part of the registration. Then use a
    more refined transform for perfectining the
    alignment.

    Some methods (e.g. procrustes) will have a
    closed form solution for rigid registration.



Regards


    Luis


-----------------------
imho wrote:
> Hi all,
> maybe that would be more efficient to use an ICP registration directly?
> But I think ICP need two models very close to be fast.
> Is the demon's registration fast?
> As the registration that I need is a non-rigid one, I plained to use 
> rigid registration first for a better performance, but maybe that will 
> decrease it?
> 
> thanks
> 
> Luis Ibanez wrote:
> 
>>
>> Hi Imho,
>>
>>
>> You can use the VTK procrustes filter,
>>
>> However, since procrustes already have the
>> point associations, (as opposed to ICP), its
>> computation is relatively fast. This makes
>> that the overhead of converting point sets
>> from ITK to VTK data structures may be
>> significant.
>>
>> You may be better off implementing
>> procrustes in a native ITK way.
>>
>> It depends on how much programming time
>> you can dedicate to this taks and how
>> much concerns do you have for performance.
>>
>>
>> Regards,
>>
>>   Luis
>>
>>
>> ------------------------
>>
>> imho wrote:
>>
>>> Thank you, as I use VTK and ITK together, I can try to use this class.
>>> The procrustes needs as you said some landmarks (3 minimum from each 
>>> model), and I think use it as first registration, to align 
>>> imperfectly the two models. I'll try to find 3 non-moving points.
>>> It may reduce the calculation costs for the others registration steps.
>>>
>>> Luis > What do you think about this filter, if I put it in my 
>>> pipeline? (I already have VTK -> ITK -> VTK, I can add a VTK task in 
>>> this)
>>>
>>> thanks,
>>> imho
>>>
>>> Rasmus Reinhold Paulsen wrote:
>>>
>>>> On Fri, 4 Apr 2003, imho wrote:
>>>>
>>>>
>>>>> As I said to you before, I would like to implement a procrustes myself 
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> If you would like to implement Procrustes in the ITK framework I would
>>>> recommend you to look at:
>>>>
>>>> http://www.vtk.org/doc/nightly/html/classvtkProcrustesAlignmentFilter.html 
>>>>
>>>>
>>>> for inspiration.
>>>>
>>>>
>>>>> (the registration steps I'd like to try : procrustes -> ICP -> one 
>>>>> deformable registration, maybe your demon's registration) , how 
>>>>> could I use your optimizer? Is it possible?
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> I do not understand though how you would use Procrustes in a 
>>>> registration
>>>> task. It requires point correspondence? You would either need
>>>> manually annotated landmarks or some kind of prior registration of your
>>>> shapes generating semi-landmarks.
>>>>
>>>> Regards,
>>>> Rasmus
>>>>
>>>>
>>>>
>>>>
>>>
>>> _______________________________________________
>>> Insight-users mailing list
>>> Insight-users@public.kitware.com
>>> http://public.kitware.com/mailman/listinfo/insight-users
>>>
>>
>>
>>
>>
>>
> 
>