6.1 度量
6.1.1 使用多个指标和/或图像进行图像配准
到目前为止,我们将图像配准视为找到一个固定图像和一个运动图像之间的空间关系的问题,使用一个相似性度量来定义拟合。 有时,需要组合多个度量,或多个固定和运动图像,或两者。 所有这三个概括都可用于elastix:
多指标 在这种情况下,配准成本函数定义为:
与ωi的权重。 这样,每个子度量Ci都使用相同的固定和运动图像。 这样就
可以在注册过程中同时优化MSD和MI。
elastix应该像这样被调用:
elastix -f fixed.ext -m moving.ext -out outDir -p parameterFile.txt
多图像 在这种情况下,配准成本函数定义为:
通过这种方式,可以使用所有通道的单一类型的成本函数来同时配准所有通
道的多光谱输入数据。
elastix应该像这样被调用:
elastix -f0 fixed0.ext -f1 fixed1.ext -f<>... -m0 moving0.ext -m1 moving1.ext -m<>... -out outDir -p parameterFile.txt
两者 在这种情况下,配准成本函数定义为:
这是elastix支持最常用的配准方式。 这将例如可以用MI配准两个肺CT数据集,同时配准裂缝分割与卡帕统计量变得可能。 与仅使用单个频道相比,这两个可以帮助彼此获得更好的配准。
所有三种情况都使用多度量登记方法,该方法在参数文件中选择:
(Registration "MultiMetricMultiResolutionRegistration")
参数文件的其他部分应如下所示:
(FixedImagePyramid "FixedSmoothingImagePyramid" "FixedSmoothingImagePyramid" ...)
(MovingImagePyramid "MovingSmoothingImagePyramid" "MovingSmoothingImagePyramid" ... )
(Interpolator "BSplineInterpolator" "BSplineInterpolator" ...)
(Metric "AdvancedMattesMutualInformation" "AdvancedMeanSquareDifference" ...)
(ImageSampler "RandomCoordinate" "RandomCoordinate" ...)
(Metric0Weight 0.125)
(Metric1Weight 0.125)
(Metric2Weight 0.125)
etc
配准多光谱数据的另一种方法是使用下面描述的α互信息测量。
6.1.2 α互信息
α互信息度量计算真实的多信道α互信息。 它不使用高维联合直方图,而是依靠k-最近邻图来估计α-MI。 详细信息请见Staring et al[2009]。 在参数文件中指定:
(Registration "MultiResolutionRegistrationWithFeatures")
(FixedImagePyramid "FixedSmoothingImagePyramid" "FixedSmoothingImagePyramid")
(MovingImagePyramid "MovingSmoothingImagePyramid" "MovingSmoothingImagePyramid")
(Interpolator "BSplineInterpolator" "BSplineInterpolator")
(Metric "KNNGraphAlphaMutualInformation")
(ImageSampler "MultiInputRandomCoordinate")
// KNN specific
(Alpha 0.99)
(AvoidDivisionBy 0.0000000001)
(TreeType "KDTree")
(BucketSize 50)
(SplittingRule "ANN_KD_STD")
(ShrinkingRule "ANN_BD_SIMPLE")
(TreeSearchType "Standard")
(KNearestNeighbours 20)
(ErrorBound 10.0)
有关可用参数的完整列表,请参见doxygen文档→elx :: KNNGraphAlphaMutualInformationMetric。
6.1.3 罚款条款
本段要求扩展和修改。
为了规范变换Tμ,经常会在成本函数中加上惩罚项P(μ)它成为了:
其中γ1,γ2用户定义的常数与规律性相似。
惩罚条款通常基于转换的一阶或二阶空间导数。 一个例子是转型的弯曲能量,这可以说是最常见的惩罚术语,见第6.1.4节。
相似性度量的导数通常涉及运动图像的空间导数的计算:∂Im/∂x,以及转换到其参数的导数:∂T/∂μ。 在ITK中,最后一个导数使用transform-> GetJacobian()实现,即转换参数μ的导数称为“雅可比”。
惩罚条件通常由变换的第一和第二阶空间导数组成,ITK中定义的变换类不支持空间导数∂T/∂x和∂2T/∂x2的计算,和他们的导数μ。 最初,我们创建了非泛型类,它们将互信息和所提及的惩罚条款(elastix版本4.3及更早版本中的MattesMutualInformationWithRigidityPenalty组件)组合起来。 然而,在2010年,我们创建了一个更高级的ITK转换版,实现了这些空间衍生产品。 此外,我们创建了一个利用这些功能的弯曲能量正则化类,参见第6.1.4节。 我们也重新实施了刚性惩罚条款,见6.1.5节; 然而,它目前还没有使用这些空间衍生物。 更多详细信息可以在Staring and Klein [2010a]中找到。
这一切都意味着elastix可以将任何相似性度量与任何可用的惩罚项(目前为弯曲能量和刚性惩罚项)组合。
6.1.4 弯曲能量损失
弯曲能量损失项在2D中定义为:
其中P是点数xi的数量,波形符号表示变量和评估项之间的给定点之间的差异。 正如你所看到的那样,它会惩罚转变的尖锐偏差(例如,没有高压缩,然后是附近的高扩张)。 如果遇到诸如折叠等问题,您可以使用它来正规化非刚性转换。 在我们目前的实施中,这个术语的计算时间相对较大。
它在elastix中使用
(Metric "AnySimilarityMetric" "TransformBendingEnergyPenalty")
(Metric0Weight 1.0)
(Metric1Weight )
被选择,没有其他参数。
6.1.5 刚性罚款
在ITK中找不到的一些更先进的指标可用于elastix:Staring et al.[2007a]描述的刚性惩罚项P^rigid(Tμ; IM)。 在参数文件中指定:
(Metric "AnySimilarityMetric" "TransformRigidityPenalty")
// normal similarity metric parameters
...
// Weights
(Metric0Weight 1.0)
(Metric1Weight 0.1)
// Rigidity penalty parameters:
(OrthonormalityConditionWeight 1.0)
(PropernessConditionWeight 100.0)
(MovingRigidityImageName "movingRigidityImage.mhd")
可以在doxygen文档→elx :: TransformRigidityPenalty中找到可用参数的完整列表。 另见第6.1.3节。
6.1.6 DisplacementMagnitudePenalty:倒置变换
DisplacementMagnitudePenalty是一个成本函数,惩罚||Tμ(x) - x || ^2。 您可以使用它来反转变换,通过将转换设置为反转为初始变换(使用-t0),设置(HowToCombineTransform“Compose”),并使用此度量运行elastix,使用原始的固定图像集作为固定( -f)和移动(-m)图像。 之后,您可以手动将最后一个参数文件中的初始变换设置为“NoInitialTransform”,瞧,您有逆变换! 严格来说,您还应该更改尺寸/间距/原点/索引/方向设置以匹配运动图像。 选择它:
(Metric "DisplacementMagnitudePenalty")
注意,反转变换在概念上非常类似于以这种方式执行图像配准。 因此,相同的选择是相关的:优化算法,多分辨率等...
请注意,在Metz et al[2011]中描述和评估了该过程。
6.1.7 对应点:帮助配准
elastix中的大部分相似性度量是基于固定和运动图像的相应特征。 然而,可以基于点对应来进行配准。 因此,在elastix4.4中,我们引入了一种使已知对应关系最小化两个点集的距离的度量。 它被定义为:
其中P分别是固定和运动图像点集的点数xi和xF i,xMi对应点。 该度量可以用来帮助在一个困难的图像配准任务,如果完全自动执行失败。 用户可以手动点击相应的点(或者可能自动提取),并且将elastix设置为不仅基于强度最小化,还考虑到某些位置已知对应。 Scp的衍生物读取:
在elastix中,可以使用以下方式选择此度量:
(Metric "AnySimilarityMetric" "CorrespondingPointsEuclideanDistanceMetric")
(Metric0Weight 1.0)
(Metric1Weight )
请注意,由于某些技术限制,此度量必须指定为最后一个度量。 固定点和移动点集可以在命令行中指定:
elastix ... -fp fixedPointSet.txt -mp movingPointSet.txt
6.1.8 VarianceOverLastDimensionMetric:对齐时间序列
这个度量在Meta et al[2011]中解释。 示例参数文件可以在wiki参数文件数据库中找到,参数par0012。
该度量应用于估计动态成像数据(时间序列)中的运动。随着时间的推移强度的方差被测量。 支持二维到四维成像数据。
6.2 图像采样器
RandomSparseMask 如果固定图像掩码是稀疏的(即由许多零组成),随机采样器的这个变体是有用的。
6.3 插值
ReducedDimensionBSplineInterpolator 这是正常的B样条内插器的一个变体,它在最后一维中使用了第0个阶样条。 当您不必在最后(时间)维度内插时,这节省了对齐时间序列的时间。 其参数文件数据库的参数par0012说明了其用法。
6.4 变换
DeformationFieldTransform 该变换用作围绕现有变形场矢量图像的包装。 它通过内插变形场图像来计算变换。 转换参数文件中的相关标签如下所示:
(Transform "DeformationFieldTransform")
(DeformationFieldFileName "deformationField.mhd")
(DeformationFieldInterpolationOrder 1)
(NumberOfParameters 0)
变形场图像的像素类型应该是浮点元素的向量。 它可能是一个变形字段,例如这是transformix -def all 的结果! 由于该变换没有任何参数(μ具有零长度),因此将其用于配准是没有意义的。 它可以用作初始转换(由选项-t0提供)或作为transformix的输入。
SplineKernelTransform 作为B样条变换的替代方案,elastix包括一个SplineKernelTransform,它实现了一个薄板样条变换; 可参见第2.6节。此转换需要使用命令行选项“-ipp ipp.txt”指定的固定图像地标(控制点)列表,使用与transformix使用的-def文件格式相同的输入点文件( 见第4.2节)。 请参阅网站上的doxygen文档以获取其参数列表。
在配准期间优化运动图像地标,并可在参数“TransformParameters”中的TransformParameters.txt文件中找到。 有关参数的排序,请参见第2.6节。
WeightedCombinationTransform 这是一个变换,被建模为用户指定变换的加权组合:
BSplineTransformWithDiffusion 这种变换实现了Staring et al.[2007b]描述的工作。
BSplineStackTransform 该转换模型定义了一组独立的B样条变换。 其使用情况在Metz et al[2011]。 示例参数文件可以在wiki参数文件数据库中找到,参数par0012。
6.5 优化方法
Conjugate gradient —ConjugateGradientFRPR
CMAEvolutionStrategy
FiniteDifferenceGradientDescent
Full search
Quasi Newton
RegularStepGradientDescent —RSGDEachParameterApart
SimultaneousPerturbation