Fwd: [Insight-users] Setting up FEM - Registration parameters

Nicholas Tustison ntustison at gmail.com
Thu Apr 6 09:40:58 EDT 2006


> Hi Markus,
>
> The registration scenario you describe seems reasonably  
> straightforward.  However, there are a couple of items I noticed  
> from the images that you might want to change.  Generally, you want  
> to keep alpha = 0.5 (as opposed to 1.0) so that the solution is  
> stable for the time step that you choose.  The chosen material  
> governs the regularization of your registration results.  The  
> default values that I have are Elasticity = 1.0e4 and Rho = 1.0e4  
> which give me reasonable registration results.  You should be able  
> to achieve reasonable results using the specified elastic  
> material.  Unfortunately, without running the registration myself,  
> it is difficult to know exactly what the problem is.
>
> On a related note, it is interesting that you chose to forgo  
> the .config file.  I actually rewrote the itkFEMRegistrationFilter  
> and plan to include it in an upcoming release along with additional  
> modifications and extensions to the library (including B-spline  
> elements).  The first thing I got rid of was the .config file along  
> with some parameters that weren't being used.
>
> Nick Tustison
>


> On Apr 6, 2006, at 7:36 AM, Markus Weigert wrote:
>
>> Hi,
>>
>> after scanning the list on FEM - registration, I still have huge  
>> problems
>> to configure the paramters for my specific registration problem  
>> with the FEM - method.
>>
>> I want to register two 3D MR 256^3 Thorax images with only small  
>> deformation.
>> The problem is, that however I set the parameters elasticity and  
>> rho / rhoc,
>> it doesn't deliver any useful results.
>>
>> I started with elasticity 100000 (even higher than in the  
>> examples), but the image became completely
>> deformed. Also, it spends only 2 iterations in the process (has  
>> this something to do with
>> the energyreductionfactor???) and after the registration, the  
>> metric (I use SSD) is much bader then before.
>> I think this should not be the case, after what I understood about  
>> the theory behind this method.
>> Also with elasticity 1000.000, it still gets completely deformed.
>> With even higher the deformation decreases of course, but the  
>> missregistration of the lungs is never
>> caught (see middle of the images at the bottom of this message).
>>
>> Please note, that I don't use a config file but set all the  
>> parameters manually.
>> Also I wonder what's the meaning of the parameters alpha and gamma  
>> (changing  these doesn't
>> seem to have a great effect on the result).
>>
>> Indeed, I call the following methods to setup the  
>> FEMRegistrationFilter (public functions),
>> while I didn't find a function to set the scaling, which is also  
>> used in the config file (is this intended???):
>>
>>   m_registrationFilter->SetFixedImage(m_fixedImage);
>>   m_registrationFilter->SetMovingImage(m_floatingImage);
>>
>>   m_registrationFilter->DoMultiRes(true);
>>
>>   m_registrationFilter->SetMeshPixelsPerElementAtEachResolution 
>> (this->m_meshPixPerElement);
>>
>>   m_registrationFilter->SetNumberOfIntegrationPoints(this- 
>> >m_numberOfIntegrationPoints);
>>
>>   m_registrationFilter->SetRho(this->m_rho);
>>
>>   m_registrationFilter->SetElasticity(this->m_elasticity);
>>
>>   m_registrationFilter->SetGamma(this->m_gamma);
>>
>>   m_registrationFilter->SetWidthOfMetricRegion(this- 
>> >m_widthOfMetricRegion);
>>   m_registrationFilter->ChooseMetric((int) this->m_metric);
>>   m_registrationFilter->SetMaximumIterations(this- 
>> >m_maxNumberOfIterations,0);
>>
>>   m_registrationFilter->SetTimeStep(this->m_timestep);
>>   m_registrationFilter->SetLineSearchMaximumIterations(this- 
>> >m_maxLineSearchIterations);
>>   m_registrationFilter->SetEnergyReductionFactor(this- 
>> >m_energyReductionFactor);
>>
>>   if(m_metric==3) m_registrationFilter->SetDescentDirectionMaximize 
>> ();
>>   else{ m_registrationFilter->SetDescentDirectionMinimize();}
>>
>>   m_registrationFilter->SetAlpha(this->m_alpha);
>>   m_registrationFilter->DoLineSearch(2);
>>   m_registrationFilter->EmployRegridding(1);
>>   m_registrationFilter->UseLandmarks(false);
>>   m_registrationFilter->SetWriteDisplacements(false);
>>
>> Also what is about the material properties:
>> Does it make sense to change something here???
>>
>>  itk::fem::MaterialLinearElasticity::Pointer m;
>>   m = itk::fem::MaterialLinearElasticity::New();
>>   m->GN = 0;                  // Global number of the material
>>   m->E = m_registrationFilter->GetElasticity();  // Young's  
>> modulus -- used in the membrane
>>   m->A = 1.0;                 // Cross-sectional area
>>   m->h = 1.0;                 // Thickness
>>   m->I = 1.0;                 // Moment of inertia
>>   m->nu = 0.;                 // Poisson's ratio -- DONT CHOOSE 1.0!!
>>   m->RhoC = this->m_density;  // Density
>>
>>   // Create the element type
>>   Element3DType::Pointer e1=Element3DType::New();
>>   e1->m_mat=dynamic_cast<itk::fem::MaterialLinearElasticity*>( m );
>>   m_registrationFilter->SetElement(e1);
>>   m_registrationFilter->SetMaterial(m);
>>
>>
>> Additionally, you can find some screenshots which show the problem  
>> and the RegistrationFilter
>> outputs here:
>>
>> http://www.markusweigert.de/images/E10%5E8_FEMRegOutput_iter2.jpg
>> http://www.markusweigert.de/images/E10%5E8_FEMRegOutput_iter1.jpg
>> http://www.markusweigert.de/images/before_registration.jpg
>> http://www.markusweigert.de/images/E10%5E8_FEMRegOutput_iter2.jpg
>> http://www.markusweigert.de/images/result_E100000.jpg
>> http://www.markusweigert.de/images/result_E1000000.jpg
>> http://www.markusweigert.de/images/result_E10000000.jpg
>>
>>
>> I hope somebody will have the time to answer at least some of my  
>> questions.
>>
>>
>> Best regards,
>> Markus
>>
>>
>>
>>
>>
>>
>> _______________________________________________
>> Insight-users mailing list
>> Insight-users at itk.org
>> http://www.itk.org/mailman/listinfo/insight-users
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://public.kitware.com/pipermail/insight-users/attachments/20060406/a0ecf684/attachment.htm


More information about the Insight-users mailing list