go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes
itk::ComputePreconditionerUsingDisplacementDistribution< TFixedImage, TTransform > Class Template Reference

#include <itkComputePreconditionerUsingDisplacementDistribution.h>

Detailed Description

template<class TFixedImage, class TTransform>
class itk::ComputePreconditionerUsingDisplacementDistribution< TFixedImage, TTransform >

This is a helper class for the automatic estimation of a preconditioner for the FPSGD optimizer. // update below More specifically this class computes the Jacobian terms related to the automatic parameter estimation for the adaptive stochastic gradient descent optimizer. Details can be found in the TMI paper.

[1] Y. Qiao, B. van Lew, B.P.F. Lelieveldt, M. Staring Fast Automatic Step Size Estimation for Gradient Descent Optimization of Image Registration IEEE Transactions on Medical Imaging, vol. 35, no. 2, pp. 391 - 403, February 2016 http://dx.doi.org/10.1109/TMI.2015.2476354

Definition at line 40 of file itkComputePreconditionerUsingDisplacementDistribution.h.

+ Inheritance diagram for itk::ComputePreconditionerUsingDisplacementDistribution< TFixedImage, TTransform >:

Public Types

using ConstPointer = SmartPointer< const Self >
 
using Pointer = SmartPointer< Self >
 
using ScalesType = NonLinearOptimizer::ScalesType
 
using Self = ComputePreconditionerUsingDisplacementDistribution
 
using Superclass = ComputeDisplacementDistribution< TFixedImage, TTransform >
 
- Public Types inherited from itk::ComputeDisplacementDistribution< TFixedImage, TTransform >
using ConstPointer = SmartPointer< const Self >
 
using FixedImageMaskConstPointer = typename FixedImageMaskType::ConstPointer
 
using FixedImageMaskPointer = typename FixedImageMaskType::Pointer
 
using FixedImageMaskType = SpatialObject< Self::FixedImageDimension >
 
using FixedImagePixelType = typename FixedImageType::PixelType
 
using FixedImageRegionType = typename FixedImageType::RegionType
 
using FixedImageType = TFixedImage
 
using NonZeroJacobianIndicesType = typename TransformType::NonZeroJacobianIndicesType
 
using Pointer = SmartPointer< Self >
 
using ScalesType = NonLinearOptimizer::ScalesType
 
using Self = ComputeDisplacementDistribution
 
using Superclass = ScaledSingleValuedNonLinearOptimizer
 
using TransformPointer = typename TransformType::Pointer
 
using TransformType = TTransform
 
- Public Types inherited from itk::ScaledSingleValuedNonLinearOptimizer
using ConstPointer = SmartPointer< const Self >
 
using Pointer = SmartPointer< Self >
 
using ScaledCostFunctionPointer = ScaledCostFunctionType::Pointer
 
using ScaledCostFunctionType = ScaledSingleValuedCostFunction
 
using ScalesType = NonLinearOptimizer::ScalesType
 
using Self = ScaledSingleValuedNonLinearOptimizer
 
using Superclass = SingleValuedNonLinearOptimizer
 

Public Member Functions

void Compute (const ParametersType &mu, double &jacg, double &maxJJ, std::string method) override
 
virtual void Compute (const ParametersType &mu, double &maxJJ, ParametersType &preconditioner)
 
virtual void ComputeDistributionTermsUsingSearchDir (const ParametersType &mu, double &jacg, double &maxJJ, std::string methods)
 
void ComputeForBSplineOnly (const ParametersType &mu, const double delta, double &maxJJ, ParametersType &preconditioner)
 
virtual void ComputeJacobiTypePreconditioner (const ParametersType &mu, double &maxJJ, ParametersType &preconditioner)
 
virtual const char * GetClassName () const
 
virtual const doubleGetConditionNumber ()
 
virtual const doubleGetMaximumStepLength ()
 
virtual const doubleGetRegularizationKappa ()
 
 ITK_DISALLOW_COPY_AND_MOVE (ComputePreconditionerUsingDisplacementDistribution)
 
 itkStaticConstMacro (FixedImageDimension, unsigned int, FixedImageType::ImageDimension)
 
virtual void PreconditionerInterpolation (ParametersType &preconditioner)
 
virtual void SetConditionNumber (double _arg)
 
virtual void SetMaximumStepLength (double _arg)
 
virtual void SetRegularizationKappa (double _arg)
 
- Public Member Functions inherited from itk::ComputeDisplacementDistribution< TFixedImage, TTransform >
virtual void AfterThreadedCompute (double &jacg, double &maxJJ)
 
virtual void BeforeThreadedCompute (const ParametersType &mu)
 
virtual void Compute (const ParametersType &mu, double &jacg, double &maxJJ, std::string method)
 
virtual void ComputeSingleThreaded (const ParametersType &mu, double &jacg, double &maxJJ, std::string method)
 
virtual void ComputeUsingSearchDirection (const ParametersType &mu, double &jacg, double &maxJJ, std::string methods)
 
virtual const char * GetClassName () const
 
virtual const FixedImageMaskTypeGetFixedImageMask ()
 
virtual const FixedImageRegionTypeGetFixedImageRegion ()
 
 ITK_DISALLOW_COPY_AND_MOVE (ComputeDisplacementDistribution)
 
 itkStaticConstMacro (FixedImageDimension, unsigned int, TFixedImage::ImageDimension)
 
virtual void SetFixedImage (const FixedImageType *_arg)
 
virtual void SetFixedImageMask (const FixedImageMaskType *_arg)
 
virtual void SetFixedImageMask (FixedImageMaskType *_arg)
 
void SetFixedImageRegion (const FixedImageRegionType &region)
 
virtual void SetNumberOfJacobianMeasurements (SizeValueType _arg)
 
void SetNumberOfWorkUnits (ThreadIdType numberOfThreads)
 
virtual void SetTransform (TransformType *_arg)
 
- Public Member Functions inherited from itk::ScaledSingleValuedNonLinearOptimizer
virtual const char * GetClassName () const
 
const ParametersType & GetCurrentPosition () const override
 
virtual bool GetMaximize () const
 
virtual const ScaledCostFunctionTypeGetScaledCostFunction ()
 
virtual const ParametersType & GetScaledCurrentPosition ()
 
bool GetUseScales () const
 
virtual void InitializeScales ()
 
 ITK_DISALLOW_COPY_AND_MOVE (ScaledSingleValuedNonLinearOptimizer)
 
virtual void MaximizeOff ()
 
virtual void MaximizeOn ()
 
void SetCostFunction (CostFunctionType *costFunction) override
 
virtual void SetMaximize (bool _arg)
 
virtual void SetUseScales (bool arg)
 

Static Public Member Functions

static Pointer New ()
 
- Static Public Member Functions inherited from itk::ComputeDisplacementDistribution< TFixedImage, TTransform >
static Pointer New ()
 
- Static Public Member Functions inherited from itk::ScaledSingleValuedNonLinearOptimizer
static Pointer New ()
 

Protected Member Functions

 ComputePreconditionerUsingDisplacementDistribution ()
 
 ~ComputePreconditionerUsingDisplacementDistribution () override=default
 
- Protected Member Functions inherited from itk::ComputeDisplacementDistribution< TFixedImage, TTransform >
 ComputeDisplacementDistribution ()
 
virtual void InitializeThreadingParameters ()
 
 itkAlignedTypedef (ITK_CACHE_LINE_ALIGNMENT, PaddedComputePerThreadStruct, AlignedComputePerThreadStruct)
 
 itkPadStruct (ITK_CACHE_LINE_ALIGNMENT, ComputePerThreadStruct, PaddedComputePerThreadStruct)
 
void LaunchComputeThreaderCallback () const
 
virtual void SampleFixedImageForJacobianTerms (ImageSampleContainerPointer &sampleContainer)
 
virtual void ThreadedCompute (ThreadIdType threadID)
 
 ~ComputeDisplacementDistribution () override=default
 
- Protected Member Functions inherited from itk::ScaledSingleValuedNonLinearOptimizer
virtual void GetScaledDerivative (const ParametersType &parameters, DerivativeType &derivative) const
 
virtual MeasureType GetScaledValue (const ParametersType &parameters) const
 
virtual void GetScaledValueAndDerivative (const ParametersType &parameters, MeasureType &value, DerivativeType &derivative) const
 
void PrintSelf (std::ostream &os, Indent indent) const override
 
 ScaledSingleValuedNonLinearOptimizer ()
 
void SetCurrentPosition (const ParametersType &param) override
 
virtual void SetScaledCurrentPosition (const ParametersType &parameters)
 
 ~ScaledSingleValuedNonLinearOptimizer () override=default
 

Protected Attributes

double m_ConditionNumber
 
double m_MaximumStepLength
 
double m_RegularizationKappa
 
- Protected Attributes inherited from itk::ComputeDisplacementDistribution< TFixedImage, TTransform >
ScaledSingleValuedCostFunction::Pointer m_CostFunction
 
DerivativeType m_ExactGradient
 
FixedImageType::ConstPointer m_FixedImage
 
FixedImageMaskConstPointer m_FixedImageMask
 
FixedImageRegionType m_FixedImageRegion
 
SizeValueType m_NumberOfJacobianMeasurements
 
SizeValueType m_NumberOfParameters
 
ThreaderType::Pointer m_Threader
 
TransformPointer m_Transform
 
- Protected Attributes inherited from itk::ScaledSingleValuedNonLinearOptimizer
ScaledCostFunctionPointer m_ScaledCostFunction
 
ParametersType m_ScaledCurrentPosition
 

Additional Inherited Members

- Protected Types inherited from itk::ComputeDisplacementDistribution< TFixedImage, TTransform >
using CoordinateRepresentationType = typename TransformType::ScalarType
 
using FixedImageIndexType = typename FixedImageType::IndexType
 
using FixedImagePointType = typename FixedImageType::PointType
 
using ImageFullSamplerPointer = typename ImageFullSamplerType::Pointer
 
using ImageFullSamplerType = ImageFullSampler< FixedImageType >
 
using ImageGridSamplerPointer = typename ImageGridSamplerType::Pointer
 
using ImageGridSamplerType = ImageGridSampler< FixedImageType >
 
using ImageRandomSamplerBasePointer = typename ImageRandomSamplerBaseType::Pointer
 
using ImageRandomSamplerBaseType = ImageRandomSamplerBase< FixedImageType >
 
using ImageSampleContainerPointer = typename ImageSampleContainerType::Pointer
 
using ImageSampleContainerType = typename ImageGridSamplerType ::ImageSampleContainerType
 
using ImageSamplerBasePointer = typename ImageSamplerBaseType::Pointer
 
using ImageSamplerBaseType = ImageSamplerBase< FixedImageType >
 
using JacobianType = typename TransformType::JacobianType
 
using JacobianValueType = typename JacobianType::ValueType
 
using NumberOfParametersType = typename TransformType::NumberOfParametersType
 
using ThreaderType = itk::PlatformMultiThreader
 
using ThreadInfoType = ThreaderType::WorkUnitInfo
 
using TransformJacobianType = JacobianType
 
- Static Protected Member Functions inherited from itk::ComputeDisplacementDistribution< TFixedImage, TTransform >
static ITK_THREAD_RETURN_FUNCTION_CALL_CONVENTION ComputeThreaderCallback (void *arg)
 

Member Typedef Documentation

◆ ConstPointer

template<class TFixedImage , class TTransform >
using itk::ComputePreconditionerUsingDisplacementDistribution< TFixedImage, TTransform >::ConstPointer = SmartPointer<const Self>

◆ Pointer

template<class TFixedImage , class TTransform >
using itk::ComputePreconditionerUsingDisplacementDistribution< TFixedImage, TTransform >::Pointer = SmartPointer<Self>

◆ ScalesType

template<class TFixedImage , class TTransform >
using itk::ScaledSingleValuedNonLinearOptimizer::ScalesType = NonLinearOptimizer::ScalesType

Definition at line 85 of file itkScaledSingleValuedNonLinearOptimizer.h.

◆ Self

template<class TFixedImage , class TTransform >
using itk::ComputePreconditionerUsingDisplacementDistribution< TFixedImage, TTransform >::Self = ComputePreconditionerUsingDisplacementDistribution

Standard ITK.

Definition at line 47 of file itkComputePreconditionerUsingDisplacementDistribution.h.

◆ Superclass

template<class TFixedImage , class TTransform >
using itk::ComputePreconditionerUsingDisplacementDistribution< TFixedImage, TTransform >::Superclass = ComputeDisplacementDistribution<TFixedImage, TTransform>

Constructor & Destructor Documentation

◆ ComputePreconditionerUsingDisplacementDistribution()

template<class TFixedImage , class TTransform >
itk::ComputePreconditionerUsingDisplacementDistribution< TFixedImage, TTransform >::ComputePreconditionerUsingDisplacementDistribution ( )
protected

◆ ~ComputePreconditionerUsingDisplacementDistribution()

template<class TFixedImage , class TTransform >
itk::ComputePreconditionerUsingDisplacementDistribution< TFixedImage, TTransform >::~ComputePreconditionerUsingDisplacementDistribution ( )
overrideprotecteddefault

Member Function Documentation

◆ Compute() [1/2]

template<class TFixedImage , class TTransform >
void itk::ComputePreconditionerUsingDisplacementDistribution< TFixedImage, TTransform >::Compute ( const ParametersType &  mu,
double jacg,
double maxJJ,
std::string  method 
)
overridevirtual

The main function that performs the computation. DO NOT USE.

Reimplemented from itk::ComputeDisplacementDistribution< TFixedImage, TTransform >.

◆ Compute() [2/2]

template<class TFixedImage , class TTransform >
virtual void itk::ComputePreconditionerUsingDisplacementDistribution< TFixedImage, TTransform >::Compute ( const ParametersType &  mu,
double maxJJ,
ParametersType &  preconditioner 
)
virtual

The main function that performs the computation. The aims to be a generic function, working for all transformations.

◆ ComputeDistributionTermsUsingSearchDir()

template<class TFixedImage , class TTransform >
virtual void itk::ComputePreconditionerUsingDisplacementDistribution< TFixedImage, TTransform >::ComputeDistributionTermsUsingSearchDir ( const ParametersType &  mu,
double jacg,
double maxJJ,
std::string  methods 
)
virtual

The main function that performs the computation. DO NOT USE.

◆ ComputeForBSplineOnly()

template<class TFixedImage , class TTransform >
void itk::ComputePreconditionerUsingDisplacementDistribution< TFixedImage, TTransform >::ComputeForBSplineOnly ( const ParametersType &  mu,
const double  delta,
double maxJJ,
ParametersType &  preconditioner 
)

The main function that performs the computation. B-spline specific thing we tried. Can be removed later.

◆ ComputeJacobiTypePreconditioner()

template<class TFixedImage , class TTransform >
virtual void itk::ComputePreconditionerUsingDisplacementDistribution< TFixedImage, TTransform >::ComputeJacobiTypePreconditioner ( const ParametersType &  mu,
double maxJJ,
ParametersType &  preconditioner 
)
virtual

◆ GetClassName()

template<class TFixedImage , class TTransform >
virtual const char * itk::ComputePreconditionerUsingDisplacementDistribution< TFixedImage, TTransform >::GetClassName ( ) const
virtual

Run-time type information (and related methods).

Reimplemented from itk::ComputeDisplacementDistribution< TFixedImage, TTransform >.

◆ GetConditionNumber()

template<class TFixedImage , class TTransform >
virtual const double & itk::ComputePreconditionerUsingDisplacementDistribution< TFixedImage, TTransform >::GetConditionNumber ( )
virtual

◆ GetMaximumStepLength()

template<class TFixedImage , class TTransform >
virtual const double & itk::ComputePreconditionerUsingDisplacementDistribution< TFixedImage, TTransform >::GetMaximumStepLength ( )
virtual

◆ GetRegularizationKappa()

template<class TFixedImage , class TTransform >
virtual const double & itk::ComputePreconditionerUsingDisplacementDistribution< TFixedImage, TTransform >::GetRegularizationKappa ( )
virtual

◆ ITK_DISALLOW_COPY_AND_MOVE()

template<class TFixedImage , class TTransform >
itk::ComputePreconditionerUsingDisplacementDistribution< TFixedImage, TTransform >::ITK_DISALLOW_COPY_AND_MOVE ( ComputePreconditionerUsingDisplacementDistribution< TFixedImage, TTransform >  )

◆ itkStaticConstMacro()

template<class TFixedImage , class TTransform >
itk::ComputePreconditionerUsingDisplacementDistribution< TFixedImage, TTransform >::itkStaticConstMacro ( FixedImageDimension  ,
unsigned int  ,
FixedImageType::ImageDimension   
)

◆ New()

template<class TFixedImage , class TTransform >
static Pointer itk::ComputePreconditionerUsingDisplacementDistribution< TFixedImage, TTransform >::New ( )
static

Method for creation through the object factory.

◆ PreconditionerInterpolation()

template<class TFixedImage , class TTransform >
virtual void itk::ComputePreconditionerUsingDisplacementDistribution< TFixedImage, TTransform >::PreconditionerInterpolation ( ParametersType &  preconditioner)
virtual

Interpolate the preconditioner, for the non-visited entries.

◆ SetConditionNumber()

template<class TFixedImage , class TTransform >
virtual void itk::ComputePreconditionerUsingDisplacementDistribution< TFixedImage, TTransform >::SetConditionNumber ( double  _arg)
virtual

Set/get kappa for condition number.

◆ SetMaximumStepLength()

template<class TFixedImage , class TTransform >
virtual void itk::ComputePreconditionerUsingDisplacementDistribution< TFixedImage, TTransform >::SetMaximumStepLength ( double  _arg)
virtual

Set/get maximum step length delta.

◆ SetRegularizationKappa()

template<class TFixedImage , class TTransform >
virtual void itk::ComputePreconditionerUsingDisplacementDistribution< TFixedImage, TTransform >::SetRegularizationKappa ( double  _arg)
virtual

Set/get kappa for regularization.

Field Documentation

◆ m_ConditionNumber

template<class TFixedImage , class TTransform >
double itk::ComputePreconditionerUsingDisplacementDistribution< TFixedImage, TTransform >::m_ConditionNumber
protected

◆ m_MaximumStepLength

template<class TFixedImage , class TTransform >
double itk::ComputePreconditionerUsingDisplacementDistribution< TFixedImage, TTransform >::m_MaximumStepLength
protected

◆ m_RegularizationKappa

template<class TFixedImage , class TTransform >
double itk::ComputePreconditionerUsingDisplacementDistribution< TFixedImage, TTransform >::m_RegularizationKappa
protected


Generated on 1687403667 for elastix by doxygen 1.9.4 elastix logo