go home Home | Main Page | Topics | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
Loading...
Searching...
No Matches
itk::ComputePreconditionerUsingDisplacementDistribution< TFixedImage, TTransform > Class Template Reference

#include <itkComputePreconditionerUsingDisplacementDistribution.h>

Detailed Description

template<typename TFixedImage, typename 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 FixedImageMaskConstPointer
using FixedImageMaskPointer
using FixedImageMaskType
using FixedImagePixelType
using FixedImageRegionType
using FixedImageType
using NonZeroJacobianIndicesType
using Pointer = SmartPointer<Self>
using ScalesType
using Self = ComputePreconditionerUsingDisplacementDistribution
using Superclass = ComputeDisplacementDistribution<TFixedImage, TTransform>
using TransformPointer
using TransformType
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 = ImageMaskSpatialObject<Self::FixedImageDimension>
using FixedImagePixelType = typename TFixedImage::PixelType
using FixedImageRegionType = typename TFixedImage::RegionType
using FixedImageType = TFixedImage
using NonZeroJacobianIndicesType = typename TTransform::NonZeroJacobianIndicesType
using Pointer = SmartPointer<Self>
using ScalesType
using Self = ComputeDisplacementDistribution
using Superclass = ScaledSingleValuedNonLinearOptimizer
using TransformPointer = typename TTransform::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
void Compute (const ParametersType &mu, double &maxJJ, ParametersType &preconditioner) const
void ComputeJacobiTypePreconditioner (double &maxJJ, ParametersType &preconditioner)
virtual const doubleGetConditionNumber ()
virtual const doubleGetMaximumStepLength ()
virtual const doubleGetRegularizationKappa ()
 ITK_DISALLOW_COPY_AND_MOVE (ComputePreconditionerUsingDisplacementDistribution)
 itkOverrideGetNameOfClassMacro (ComputePreconditionerUsingDisplacementDistribution)
 itkStaticConstMacro (FixedImageDimension, unsigned int, TFixedImage::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 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 FixedImageMaskTypeGetFixedImageMask ()
virtual const FixedImageRegionTypeGetFixedImageRegion ()
 ITK_DISALLOW_COPY_AND_MOVE (ComputeDisplacementDistribution)
 itkOverrideGetNameOfClassMacro (ComputeDisplacementDistribution)
 itkStaticConstMacro (FixedImageDimension, unsigned int, TFixedImage::ImageDimension)
virtual void SetFixedImage (const TFixedImage *_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 (TTransform *_arg)
Public Member Functions inherited from itk::ScaledSingleValuedNonLinearOptimizer
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)
 itkOverrideGetNameOfClassMacro (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 Types

using CoordinateRepresentationType
using FixedImageIndexType
using FixedImagePointType
using ImageSampleType
using JacobianType
using JacobianValueType
using NumberOfParametersType
using TransformJacobianType
Protected Types inherited from itk::ComputeDisplacementDistribution< TFixedImage, TTransform >
using CoordinateRepresentationType = typename TTransform::ScalarType
using FixedImageIndexType = typename TFixedImage::IndexType
using FixedImagePointType = typename TFixedImage::PointType
using ImageSampleType = ImageSample<TFixedImage>
using JacobianType = typename TTransform::JacobianType
using JacobianValueType = typename JacobianType::ValueType
using NumberOfParametersType = typename TTransform::NumberOfParametersType
using ThreadInfoType = MultiThreaderBase::WorkUnitInfo
using TransformJacobianType = JacobianType

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
std::vector< ImageSampleTypeSampleFixedImageForJacobianTerms () const
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 {}
TFixedImage::ConstPointer m_FixedImage { nullptr }
FixedImageMaskConstPointer m_FixedImageMask { nullptr }
FixedImageRegionType m_FixedImageRegion {}
SizeValueType m_NumberOfJacobianMeasurements { 0 }
SizeValueType m_NumberOfParameters {}
MultiThreaderBase::Pointer m_Threader { MultiThreaderBase::New() }
TransformPointer m_Transform { nullptr }
Protected Attributes inherited from itk::ScaledSingleValuedNonLinearOptimizer
ScaledCostFunctionPointer m_ScaledCostFunction {}
ParametersType m_ScaledCurrentPosition {}

Additional Inherited Members

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<typename TFixedImage, typename TTransform>
using itk::ComputePreconditionerUsingDisplacementDistribution< TFixedImage, TTransform >::ConstPointer = SmartPointer<const Self>

◆ CoordinateRepresentationType

template<typename TFixedImage, typename TTransform>
using itk::ComputeDisplacementDistribution< TFixedImage, TTransform >::CoordinateRepresentationType
protected

Definition at line 160 of file itkComputeDisplacementDistribution.h.

◆ FixedImageIndexType

template<typename TFixedImage, typename TTransform>
using itk::ComputeDisplacementDistribution< TFixedImage, TTransform >::FixedImageIndexType
protected

Definition at line 151 of file itkComputeDisplacementDistribution.h.

◆ FixedImageMaskConstPointer

template<typename TFixedImage, typename TTransform>
using itk::ComputeDisplacementDistribution< TFixedImage, TTransform >::FixedImageMaskConstPointer

Definition at line 81 of file itkComputeDisplacementDistribution.h.

◆ FixedImageMaskPointer

template<typename TFixedImage, typename TTransform>
using itk::ComputeDisplacementDistribution< TFixedImage, TTransform >::FixedImageMaskPointer

Definition at line 80 of file itkComputeDisplacementDistribution.h.

◆ FixedImageMaskType

template<typename TFixedImage, typename TTransform>
using itk::ComputeDisplacementDistribution< TFixedImage, TTransform >::FixedImageMaskType

Definition at line 79 of file itkComputeDisplacementDistribution.h.

◆ FixedImagePixelType

template<typename TFixedImage, typename TTransform>
using itk::ComputeDisplacementDistribution< TFixedImage, TTransform >::FixedImagePixelType

Definition at line 67 of file itkComputeDisplacementDistribution.h.

◆ FixedImagePointType

template<typename TFixedImage, typename TTransform>
using itk::ComputeDisplacementDistribution< TFixedImage, TTransform >::FixedImagePointType
protected

Definition at line 152 of file itkComputeDisplacementDistribution.h.

◆ FixedImageRegionType

template<typename TFixedImage, typename TTransform>
using itk::ComputeDisplacementDistribution< TFixedImage, TTransform >::FixedImageRegionType

Definition at line 70 of file itkComputeDisplacementDistribution.h.

◆ FixedImageType

template<typename TFixedImage, typename TTransform>
using itk::ComputeDisplacementDistribution< TFixedImage, TTransform >::FixedImageType

typedef

Definition at line 66 of file itkComputeDisplacementDistribution.h.

◆ ImageSampleType

template<typename TFixedImage, typename TTransform>
using itk::ComputeDisplacementDistribution< TFixedImage, TTransform >::ImageSampleType
protected

Definition at line 156 of file itkComputeDisplacementDistribution.h.

◆ JacobianType

template<typename TFixedImage, typename TTransform>
using itk::ComputeDisplacementDistribution< TFixedImage, TTransform >::JacobianType
protected

Definition at line 153 of file itkComputeDisplacementDistribution.h.

◆ JacobianValueType

template<typename TFixedImage, typename TTransform>
using itk::ComputeDisplacementDistribution< TFixedImage, TTransform >::JacobianValueType
protected

Definition at line 154 of file itkComputeDisplacementDistribution.h.

◆ NonZeroJacobianIndicesType

template<typename TFixedImage, typename TTransform>
using itk::ComputeDisplacementDistribution< TFixedImage, TTransform >::NonZeroJacobianIndicesType

Definition at line 82 of file itkComputeDisplacementDistribution.h.

◆ NumberOfParametersType

template<typename TFixedImage, typename TTransform>
using itk::ComputeDisplacementDistribution< TFixedImage, TTransform >::NumberOfParametersType
protected

Definition at line 161 of file itkComputeDisplacementDistribution.h.

◆ Pointer

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

◆ ScalesType

template<typename TFixedImage, typename TTransform>
using itk::ScaledSingleValuedNonLinearOptimizer::ScalesType

Definition at line 73 of file itkScaledSingleValuedNonLinearOptimizer.h.

◆ Self

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

Standard ITK.

Definition at line 47 of file itkComputePreconditionerUsingDisplacementDistribution.h.

◆ Superclass

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

◆ TransformJacobianType

template<typename TFixedImage, typename TTransform>
using itk::ComputeDisplacementDistribution< TFixedImage, TTransform >::TransformJacobianType
protected

Typedefs for support of sparse Jacobians and AdvancedTransforms.

Definition at line 159 of file itkComputeDisplacementDistribution.h.

◆ TransformPointer

template<typename TFixedImage, typename TTransform>
using itk::ComputeDisplacementDistribution< TFixedImage, TTransform >::TransformPointer

Definition at line 69 of file itkComputeDisplacementDistribution.h.

◆ TransformType

template<typename TFixedImage, typename TTransform>
using itk::ComputeDisplacementDistribution< TFixedImage, TTransform >::TransformType

Definition at line 68 of file itkComputeDisplacementDistribution.h.

Constructor & Destructor Documentation

◆ ComputePreconditionerUsingDisplacementDistribution()

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

◆ ~ComputePreconditionerUsingDisplacementDistribution()

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

Member Function Documentation

◆ Compute() [1/2]

template<typename TFixedImage, typename 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<typename TFixedImage, typename TTransform>
void itk::ComputePreconditionerUsingDisplacementDistribution< TFixedImage, TTransform >::Compute ( const ParametersType & mu,
double & maxJJ,
ParametersType & preconditioner ) const

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

◆ ComputeJacobiTypePreconditioner()

template<typename TFixedImage, typename TTransform>
void itk::ComputePreconditionerUsingDisplacementDistribution< TFixedImage, TTransform >::ComputeJacobiTypePreconditioner ( double & maxJJ,
ParametersType & preconditioner )

◆ GetConditionNumber()

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

◆ GetMaximumStepLength()

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

◆ GetRegularizationKappa()

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

◆ ITK_DISALLOW_COPY_AND_MOVE()

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

◆ itkOverrideGetNameOfClassMacro()

template<typename TFixedImage, typename TTransform>
itk::ComputePreconditionerUsingDisplacementDistribution< TFixedImage, TTransform >::itkOverrideGetNameOfClassMacro ( ComputePreconditionerUsingDisplacementDistribution< TFixedImage, TTransform > )

Run-time type information (and related methods).

◆ itkStaticConstMacro()

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

◆ New()

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

Method for creation through the object factory.

◆ PreconditionerInterpolation()

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

Interpolate the preconditioner, for the non-visited entries.

◆ SetConditionNumber()

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

Set/get kappa for condition number.

◆ SetMaximumStepLength()

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

Set/get maximum step length delta.

◆ SetRegularizationKappa()

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

Set/get kappa for regularization.

Member Data Documentation

◆ m_ConditionNumber

template<typename TFixedImage, typename TTransform>
double itk::ComputePreconditionerUsingDisplacementDistribution< TFixedImage, TTransform >::m_ConditionNumber {}
protected

◆ m_MaximumStepLength

template<typename TFixedImage, typename TTransform>
double itk::ComputePreconditionerUsingDisplacementDistribution< TFixedImage, TTransform >::m_MaximumStepLength {}
protected

◆ m_RegularizationKappa

template<typename TFixedImage, typename TTransform>
double itk::ComputePreconditionerUsingDisplacementDistribution< TFixedImage, TTransform >::m_RegularizationKappa {}
protected


Generated on 1774142652 for elastix by doxygen 1.15.0 elastix logo