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用戶定義的常數與規律性相似。
懲罰條款通?;谵D換的一階或二階空間導數。 一個例子是轉型的彎曲能量,這可以說是最常見的懲罰術語,見第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 <weight>)
被選擇,沒有其他參數。
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 <weight>)
請注意,由于某些技術限制,此度量必須指定為最后一個度量。 固定點和移動點集可以在命令行中指定:
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