[Insight-users] Registration limitations : question limitations

Luis Ibanez luis . ibanez at kitware . com
Thu, 27 Nov 2003 23:21:54 -0500


Hi Robert

1) If this is a read video image taken with a camera,
    the notion of spacing is quite ambiguious. If the
    image is planar, you could simply callibrate your
    camera by setting an object of known dimensions,
    acquiring its image and measuring it in pixels.

    if you have a 3D scene, then the pixels spacing
    only have angular sense,... but then your displacement
    of 2mm is also irrelevant...


2) Good, if the illumination paramater don't change
    you have better chances of registering your images
    using metrics like mean squares or normalized correlation.


3) Please connect a Command/Observer to the optimizer,
    This is the best (and probably the only) way of
    knowing what's happening during the registration.
    Claiming that the registration fails is irrelevant
    if you don't track the evolution of the metric values
    and the transform parameters.

    You can see it this way: you are traveling from Paris
    to Berlin.  If at the end of your trip you don't get
    to Berlin, the obvious question is to look at all your
    turns and figuring out when you started to deviate from
    the path.

4) Plot the values of the metric as reported by the
    observer the noise on the metric as well as its
    derivative trend provide the indications on how
    fast or slow your optimizer should walk on the
    parametric space. It also provides a measure of the
    suitability of the ImageMetric for your registration
    problem.

5) Translation transform are quite simple, there are
    good changes that you could solve this registration
    without too much pain.

6) One of the critical parameters in the RegularStep
    gradient descent is the Maximum initial step.
    Note however that it is measured in physical units,
    e.g. millimeters and it only makes sense is you have
    set the pixel spacing of your image to a reasonable
    value.

7) Initializing the transform to X=0 , Y = 0 translation
    should be ok.

8)  I missed your answer about the pixel type.


9) A size of 1600 x 1200 is relatively large,
    It leads to suspect that your optimization simply
    needs more iterations or maybe a larger initial step
    for the regular step gradient descent optimizer.

    However, you can only regulate this seriously once
    you figure out the value of pixel spacing and you
    plot the values of the metric provided by the
    Command/Observer.


It maybe useful if you describe the type of scene
that you are capturing in your image and how in this
scene you apply a translation of 2mm.




Regards



   Luis




------------------------------
Robert-Paul Buitendijk wrote:

> Hi Luis
> 
> 
>>For example, what is the pixel spacing of the images ?
> 
> Ho can i find out what it is
> 
> 
>>Did the illumination parameters changed between the acquisition
>>of the two images  ?
> 
> Didn't change..... foto's were shot whithin a minute
> 
> 
>>Did you connect an itk::Command observer to the optimizer ?
> 
> Nope
> 
> 
>>Did you try plotting the metric values versus optimizer iterations ?
> 
> Nope
> 
> 
>>What transform are you using ?
> 
> TranslationTransform
> 
> 
>>What optimizer are you using ?
> 
> RegularStepGradient
> 
> 
>>What values did you provide for the initialization of the transform ?
> 
> x and y translation are 0
> 
> 
>>What is the pixel type of the images ?
> 
> 
>>What is the size of the images in pixels ?
> 
> 1600x1200
> 
> Tnx 
> Robert
> 
> 
>