5.1 選擇配準(zhǔn)組件
執(zhí)行配準(zhǔn)時(shí),必須仔細(xì)選擇幾個(gè)組件,如第2章所述。組件必須在參數(shù)文件中指定。 例如:
(Transform "BSplineTransform")
(Metric "AdvancedMattesMutualInformation")
. . .
在表5.1中給出了需要指定的組件的列表,并提出了一些建議。 “配準(zhǔn)”組件在第2章中沒(méi)有提及。配準(zhǔn)組件用于連接所有其他組件,并實(shí)現(xiàn)了配準(zhǔn)的多分辨率方面。 所以,可以說(shuō)實(shí)際上實(shí)現(xiàn)了圖2.2的塊方案。 此外,第二章中沒(méi)有明確提及“重新采樣器”組件。它僅用于在配準(zhǔn)后生成變形的運(yùn)動(dòng)圖像。 目前,elastix中只有一個(gè)Resampler可用:DefaultResampler。 因此,該組件不再進(jìn)一步討論。
5.2 所有參數(shù)概述
elastix的所有可用組件的列表可以在以下位置找到:http://elastix.isi.uu.nl/doxygen/modules.html
可以在elastix網(wǎng)站上找到可以為每個(gè)elastix組件指定的所有參數(shù)的列表:
http://elastix.isi.uu.nl/doxygen/parameter.html
在該站點(diǎn),您可以找到如何指定參數(shù)以及默認(rèn)值。 我們?cè)噲D提出合理的默認(rèn)值,雖然默認(rèn)值在所有情況下一定不會(huì)奏效。 維基上可以找到成功的參數(shù)文件集合:http://elastix.bigr.nl/wiki/index.php/Parameter_file_database
這可能會(huì)讓您開(kāi)始使用您的特定應(yīng)用程序。
5.3 重要參數(shù)
按照與2.3節(jié)相同的順序,我們將討論每個(gè)組件的重要參數(shù),并解釋表5.1中提出的建議。
5.3.1 Registration
只需使用MultiResolutionRegistration方法,因?yàn)槎喾直媛适且粋€(gè)好主意。 如果您仍然認(rèn)為您不需要所有這些多分辨率,您可以隨時(shí)將NumberOfResolutions設(shè)置為1。您不必設(shè)置其他任何內(nèi)容。 第5.3.7節(jié)更詳細(xì)地討論了決議的數(shù)量。
5.3.2 Metric
AdvancedMattesMutualInformation通常適用于單模和多模式圖像。 它支持度量值和導(dǎo)數(shù)的快速計(jì)算,如果變換是通過(guò)利用其緊湊支持的B樣條曲線。 您需要設(shè)置直方圖箱的數(shù)量,這是計(jì)算聯(lián)合直方圖所需要的數(shù)量。 一個(gè)很好的價(jià)值取決于你的輸入圖像的動(dòng)態(tài)范圍,但以我們的經(jīng)驗(yàn)32通常是可以的:
(NumberOfHistogramBins 32)
5.3.3 Sampler(取樣)
RandomCoordinate采樣器與StandardGradientDescent和AdaptiveStochasticGradientDescent優(yōu)化器結(jié)合使用,這是推薦的優(yōu)化例程。 這些優(yōu)化方法可以與每次迭代隨機(jī)選擇的少量樣本一起使用,參見(jiàn)第2.7節(jié),這大大降低了配準(zhǔn)時(shí)間。 將NumberOfSpatialSamples設(shè)置為3000。不要低于2000。與在體素網(wǎng)格上繪制樣本的采樣器(如隨機(jī)采樣器)相比,RandomCoordinate采樣器避免了所謂的網(wǎng)格效應(yīng)[Th'evenaz and Unser,2008]。
第5.3.6節(jié)討論的隨機(jī)采樣器的一個(gè)重要選項(xiàng)是:
(NewSamplesEveryIteration "true")
其在每次迭代中強(qiáng)制選擇新樣本。
RandomCoordinate采樣器的一個(gè)有趣的選項(xiàng)是UseRandomSampleRegion參數(shù),與SampleRegionSize參數(shù)組合使用。 如果UseRandomSampleRegion設(shè)置為“false”
(默認(rèn)值),采樣器從整個(gè)圖像域中抽取樣本。 當(dāng)設(shè)置為“true”時(shí),采樣器隨機(jī)選擇一個(gè)體素,然后在該體素周圍的正方形鄰域中選擇剩余的樣本。 鄰域的大小由SampleRegionSize(物理坐標(biāo))決定。 3D圖像的示例:
(ImageSampler "RandomCoordinate")
(NewSamplesEveryIteration "true")
(UseRandomSampleRegion "true")
(SampleRegionSize 50.0 50.0 50.0)
(NumberOfSpatialSamples 2000)
在每次迭代中,隨機(jī)選擇50^3 mm的正方形區(qū)域。 在該地區(qū),根據(jù)均勻分布選擇了2000個(gè)樣本。 有效地獲得了一種局部相似性度量,有時(shí)會(huì)提供更好的配準(zhǔn)結(jié)果。 有關(guān)這種方法的更多信息見(jiàn)Klein el al. [2008]。 對(duì)于樣本區(qū)域大小,嘗試的合理值是≈圖像大小的1/3。
5.3.4 Interpolator(插補(bǔ))
在配準(zhǔn)期間,使用LinearInterpolator。 在我們目前的實(shí)現(xiàn)中,它比第一階B樣條內(nèi)插器快得多,即使它們?cè)诶碚撋鲜且粯拥摹?/p>
我們建議使用更高質(zhì)量的三階B樣條插值來(lái)生成產(chǎn)生的變形運(yùn)動(dòng)圖像:
(ResampleInterpolator "FinalBSplineInterpolator")
(FinalBSplineInterpolationOrder 3)
5.3.5 Transform(轉(zhuǎn)變)
這個(gè)選擇取決于手頭的應(yīng)用。對(duì)于您希望沒(méi)有非剛性變形的同一患者的圖像,您可以考慮剛性變換,即選擇EulerTransform。如果要補(bǔ)償比例差異,請(qǐng)考慮仿射變換:AffineTransform。這兩個(gè)轉(zhuǎn)換需要旋轉(zhuǎn)中心,可以由用戶設(shè)置。默認(rèn)情況下固定圖像的幾何中心,這是推薦的。需要設(shè)置的另一個(gè)參數(shù)是Scales。量表為變換參數(shù)μ的每個(gè)元素定義了在優(yōu)化期間使用的縮放值??s放用于將μ的元素置于相同的范圍內(nèi)(對(duì)應(yīng)于旋轉(zhuǎn)的參數(shù)通常具有比對(duì)應(yīng)于平移的參數(shù)小得多的范圍)。我們建議讓elastix自動(dòng)計(jì)算:(AutomaticScalesEstimation “true”)。在做非剛性變換之前,始終要先進(jìn)行剛性或仿射變換,以獲得良好的初始對(duì)齊。
對(duì)于非剛性配準(zhǔn)問(wèn)題,elastix具有BSplineTransform。 B樣條非剛體變換由控制點(diǎn)的統(tǒng)一網(wǎng)格定義。 該網(wǎng)格由網(wǎng)格節(jié)點(diǎn)之間的間距定義。 間距定義網(wǎng)格是多么密集,或者您可以模擬的轉(zhuǎn)換的位置。 對(duì)于每個(gè)分辨率級(jí)別,您可以定義不同的網(wǎng)格間距。 這就是我們所說(shuō)的多網(wǎng)格。 一般來(lái)說(shuō),我們建議從粗糙的B樣條網(wǎng)格開(kāi)始,即更全面的變換。 這樣,較大的結(jié)構(gòu)首先匹配,原因與為什么要開(kāi)始一個(gè)剛性或仿射變換相同的原因。 在以后的分辨率中,您可以逐步細(xì)化轉(zhuǎn)化; 這個(gè)想法是,您隨后匹配較小的結(jié)構(gòu),達(dá)到最終精度。 最終網(wǎng)格間距用以下指定:
(FinalGridSpacingInPhysicalUnits 10.0 10.0 10.0)
數(shù)量與圖像中的尺寸一樣多。 大多數(shù)醫(yī)療圖像的間距是以毫米為單位。 也可以以體素單位指定網(wǎng)格:
(FinalGridSpacingInVoxels 16.0 16.0 16.0)
如果最終的B樣條網(wǎng)格間距選擇為高,則不能匹配小結(jié)構(gòu)。 另一方面,如果網(wǎng)格間距非常低,則可以匹配小結(jié)構(gòu),但是您可能允許轉(zhuǎn)換具有太多的自由度。 這可能導(dǎo)致不規(guī)則的變換,特別是對(duì)于圖像的均勻部分,因?yàn)樵诳梢砸龑?dǎo)配準(zhǔn)的區(qū)域中沒(méi)有邊緣(或其他信息)。 懲罰或正則化術(shù)語(yǔ),見(jiàn)公式(2.2),可以幫助避免這些問(wèn)題。 由于這取決于所需的精度,因此很難推薦最終網(wǎng)格間距的值。 但是我們可以嘗試:如果您對(duì)較大的結(jié)構(gòu)感興趣,可以將其設(shè)置為32個(gè)體素,您可以下調(diào)到16或8個(gè)體素以便匹配較小的結(jié)構(gòu),甚至可以達(dá)到4。最后的選擇可能需要一些正規(guī)化術(shù)語(yǔ),除非你仔細(xì)地逐漸改進(jìn)網(wǎng)格間距。
要指定多格式調(diào)度,請(qǐng)使用GridSpacingSchedule命令:
(NumberOfResolutions 4)
(FinalGridSpacingInVoxels 8.0 8.0)
(GridSpacingSchedule 6.0 6.0 4.0 4.0 2.5 2.5 1.0 1.0)
GridSpacingSchedule定義所有分辨率級(jí)別的乘法因子。 結(jié)合最終網(wǎng)格間距,確定所有分辨率級(jí)別的網(wǎng)格間距。在二維圖像的情況下,上述計(jì)劃指定6×8 = 48像素分辨率的0級(jí)網(wǎng)格,通過(guò)32和20像素,在最后的8級(jí)像素分辨率。 GridSpacingSchedule的默認(rèn)值使用了2的冪次方案: (GridSpacingSchedule 8.0 8.0 4.0 4.0 2.0 1.0 1.0 1.0)(用于2D圖像)。
作為旁注:在(2.1)中最小化的參數(shù)的數(shù)量由μ的大小確定,即在通過(guò)控制點(diǎn)網(wǎng)格間隔的B樣條變形變換的情況下。 如果您將間距加倍,則3D圖像的參數(shù)數(shù)量將增加8倍。 對(duì)于2563圖像和16個(gè)體素的網(wǎng)格間距,這將導(dǎo)致大約(256/16)3×3≈12.000個(gè)參數(shù); 對(duì)于8個(gè)像素的網(wǎng)格間距,這幾乎是100.000個(gè)參數(shù)。 參數(shù)的數(shù)量可以直接關(guān)系到內(nèi)存消耗和配準(zhǔn)時(shí)間,具體取決于具體的實(shí)現(xiàn)。
在大多數(shù)文獻(xiàn)中,立體(3階)B樣條用于圖像配準(zhǔn)。 當(dāng)然,其他spline orders也是可能的。 您可以嘗試使用BSplineTransformSplineOrder選項(xiàng)。 支持1,2和3 次。 較低的次將減少計(jì)算時(shí)間,但可能導(dǎo)致較不平滑的變形。 對(duì)于1次,嚴(yán)格來(lái)說(shuō),變形場(chǎng)不再是可微分的。
作為B樣條變換的替代方案,elastix包括SplineKernelTransform,它實(shí)現(xiàn)了薄板樣條類型的變換。 有關(guān)此轉(zhuǎn)換的更多信息,請(qǐng)參見(jiàn)第2.6節(jié)和第6.4節(jié)。
最后,在每個(gè)參數(shù)文件中包含以下行是明智的:
(HowToCombineTransforms "Compose")
到elastix版本4.2,默認(rèn)情況下,如果此行被省略,使用“Add”用于向后兼容。 從elastix版本4.3,默認(rèn)值已更改為“Compose”,這在大多數(shù)應(yīng)用程序中更好。 參見(jiàn)2.6節(jié),方程(2.18)和(2.19)進(jìn)行說(shuō)明。
5.3.6 Optimiser(優(yōu)化)
StandardGradientDescent方法,參見(jiàn)方程(2.21)和(2.23)提供了執(zhí)行快速注冊(cè)的可能性,參見(jiàn)Klein et al[2007]。 關(guān)鍵思想是您使用每次迭代中新選擇的體素(樣本)的隨機(jī)子集來(lái)計(jì)算成本函數(shù)導(dǎo)數(shù)。 使用參數(shù)NumberOfSpatialSamples指定要使用的樣本數(shù),請(qǐng)參見(jiàn)第5.3.3節(jié)。 通常,2000-5000就夠了。 告訴優(yōu)化器在每次迭代中選擇新的樣品是非常重要的:
(NewSamplesEveryIteration "true")
StandardGradientDescent方法的缺點(diǎn)是您需要調(diào)整增益因子ak的參數(shù),請(qǐng)參見(jiàn)第5.3節(jié)。 方程(2.22)需要一個(gè)步長(zhǎng)ak的選擇,它在elastix方程(2.23)中定義。 圖5.2給出了一些例子。
參數(shù)α和A定義了函數(shù)的衰減斜率。 對(duì)于參數(shù)α,我們建議值為0.6。 對(duì)于A,使用的順序?yàn)?0:
(SP alpha 0.6)
(SP A 50.0)
這將參數(shù)a(在elastix中稱為SP_a)作為調(diào)整的最重要參數(shù)。 這是一個(gè)重要的參數(shù),它可能意味著成功的一個(gè)好的選擇和失敗,如果沒(méi)有! 如果a設(shè)置得太高,則迭代求解算法(2.22)變得不穩(wěn)定,您可能會(huì)使圖像變形超出識(shí)別。 如果一個(gè)設(shè)置太低,你將永遠(yuǎn)不會(huì)使其達(dá)到最佳狀態(tài),或者可能會(huì)停在非常小的附近局部最佳狀態(tài)。 圖5.2說(shuō)明了這一點(diǎn)。
a一個(gè)很好的選擇取決于用于配準(zhǔn)的成本函數(shù):為MSD提供一個(gè)很好的結(jié)果的a與為MI提供良好結(jié)果的a不一樣。 最后,還取決于您在固定圖像和運(yùn)動(dòng)圖像之間所期望的變形量。 所以再次建議很難給予。 一般來(lái)說(shuō),,我們建議您考慮數(shù)量級(jí),如果a = 10太小,嘗試a = 100而不是a = 11。對(duì)于互信息,歸一化相關(guān)系數(shù)和歸一化的相互信息,您可以從a = 1000左右開(kāi)始。對(duì)于均方差的度量,可以嘗試小于1的值。 a選擇的方式太大,可能會(huì)遇到“運(yùn)動(dòng)圖像緩沖區(qū)外的地圖太多”的錯(cuò)誤信息。 此錯(cuò)誤也可能有其他原因。 elastix網(wǎng)站的常見(jiàn)問(wèn)題提供了有關(guān)此錯(cuò)誤消息的更多信息。
對(duì)于每個(gè)分辨率,您可以指定不同的SP_a值,但是對(duì)于每個(gè)分辨率,可能會(huì)更容易地以相同的值開(kāi)始。
(SP_a 1000.0 1000.0 1000.0)
或等效地:
(SP_a 1000.0)
與優(yōu)化器相關(guān)的最后一個(gè)重要選項(xiàng)是最大迭代次數(shù):
(MaximumNumberOfIterations 500)
在StandardGradientDescent的情況下,不僅最大值也是最小值,因?yàn)榇藘?yōu)化器沒(méi)有實(shí)現(xiàn)其他停止條件。 一般來(lái)說(shuō),迭代越多,配準(zhǔn)結(jié)果越好。 但是,當(dāng)然,更多的迭代需要更多的時(shí)間。 500是一個(gè)好的開(kāi)始。 如果計(jì)算時(shí)間不是問(wèn)題,請(qǐng)使用2000。 如果您匆忙,您可以嘗試下200次迭代。 對(duì)于小的2D圖像和剛性配準(zhǔn),甚至更少的迭代就足夠了。 使用更多迭代的一個(gè)好處是,更廣泛的SP_a給出了好的結(jié)果。 調(diào)節(jié)SP然后變得更容易。
你厭倦了調(diào)整a了嗎?
開(kāi)始使用AdaptiveStochasticGradientDescent優(yōu)化器。 此優(yōu)化器與StandardGradientDescent非常相似,但會(huì)自動(dòng)估計(jì)SP_a的正確初始值。更多細(xì)節(jié)見(jiàn)Klein et al [2009]。 實(shí)際上,該優(yōu)化器可以在許多應(yīng)用程序中使用其默認(rèn)設(shè)置。 用戶必須指定迭代次數(shù):
(Optimizer "AdaptiveStochasticGradientDescent")
(MaximumNumberOfIterations 500)
有一些可選的額外的參數(shù),如SigmoidInitialTime和MaximumStepLength,這在文獻(xiàn)[Klein et al,2009]中有解釋。 除了自動(dòng)計(jì)算步長(zhǎng)之外,該優(yōu)化器還實(shí)現(xiàn)了一種自適應(yīng)步長(zhǎng)機(jī)制,這通常使優(yōu)化有點(diǎn)更強(qiáng)大。 這個(gè)優(yōu)化器的唯一缺點(diǎn)是,在自由度很大(μ大的情況下)估計(jì)a是相對(duì)耗時(shí)的時(shí)間,但是我們正在解決這個(gè)問(wèn)題[Qiao et al,2014]。
5.3.7 Image pyramids(圖像金字塔)
FixedImagePyramid和MovingImagePyramid具有相同的選項(xiàng)。 下面關(guān)于FixedImagePyramid的描述同樣適用于MovingImagePyramid。
使用FixedSmoothingImagePyramid,因?yàn)樗粫?huì)丟棄有價(jià)值的信息,而且由于您沒(méi)有使用FullSampler,所以下采樣不會(huì)隨時(shí)保存。 盡管對(duì)于大圖像和許多分辨率級(jí)別,它可能消耗相當(dāng)多的內(nèi)存。 必須設(shè)置兩個(gè)參數(shù)以定義多分辨率策略:分辨率數(shù)(NumberOfResolutions)和每個(gè)分辨率中使用的特定下采樣計(jì)劃(FixedImagePyramidSchedule)。 如果僅設(shè)置NumberOfResolutions,則將使用默認(rèn)計(jì)劃,將固定圖像在每個(gè)維度中平滑2倍,從最后一個(gè)分辨率的σ= 0.5開(kāi)始。 那個(gè)計(jì)劃通常很好。 如果您有高度各向異性的數(shù)據(jù),您可能需要在最大間距的方向上模糊較少。
一般來(lái)說(shuō)3 resolutions是一個(gè)很好的起點(diǎn)。 如果固定和運(yùn)動(dòng)的圖像最初是遠(yuǎn)離的,您可以將分辨率級(jí)別的數(shù)量增加到例如5或6。這樣,圖像更加模糊,并且更注意配準(zhǔn)大型主導(dǎo)結(jié)構(gòu)。
金字塔計(jì)劃定義了每個(gè)方向x,y,z和每個(gè)分辨率級(jí)別的模糊量(以及使用FixedRecursiveImagePyramid的情況下的下采樣)。 可以指定如下:
(NumberOfResolutions 4)
(FixedImagePyramidSchedule 8 8 4 4 2 2 1 1)
在這個(gè)例子中,使用了2D圖像的4個(gè)分辨率。 在分辨率0時(shí),圖像在每個(gè)方向上的σ= 8/2體素模糊(σ是金字塔計(jì)劃值的一半)。 在1級(jí)使用σ= 4/2,最后在最后一級(jí)4級(jí),原始圖像用于配準(zhǔn)。 指定的固定和移動(dòng)圖像金字塔具有相同的時(shí)間表可以用一個(gè)命令:(ImagePyramidSchedule 4 4 2 2 2 1 1 1 1)
對(duì)于具有3個(gè)分辨率級(jí)別的3D圖像,其中在z方向上執(zhí)行較少的平滑。
5.4 Masks(面具,掩蓋)
有時(shí)候,您有興趣只對(duì)齊圖像的一部分。 關(guān)注這一部分的一個(gè)可能性是裁剪圖像。 然而,裁剪僅將感興趣區(qū)域(ROI)限制為正方形(2D)或立方體(3D)。 如果您需要不規(guī)則形狀的ROI,您可以使用掩碼。 掩碼是填滿0和1的一個(gè)二進(jìn)制圖像。 如果使用掩碼,則只對(duì)掩碼內(nèi)部的圖像部分進(jìn)行配準(zhǔn),即掩碼為1。
你可以/應(yīng)該使用掩碼
- 當(dāng)您的圖像包含沒(méi)有真正意義的人造邊緣時(shí)。配準(zhǔn)可能會(huì)對(duì)齊這些人造邊緣,從而忽略有意義的邊緣。 超聲圖像中的圓錐光束邊緣是這樣的人造邊緣的示例。
- 當(dāng)圖像包含您的ROI附近的結(jié)構(gòu),可能會(huì)影響您的ROI內(nèi)的配準(zhǔn)。 這是例如匹配肺數(shù)據(jù)的情況。 通常情況下,您對(duì)肺部感興趣,而不是肋骨是否對(duì)齊。 然而,肋骨是例如在CT中可以對(duì)相似性度量具有強(qiáng)烈影響的結(jié)構(gòu),特別是如果您使用MSD度量。 在這種情況下,肋骨框架可以以與肋骨框架在肺邊界附近的血管結(jié)構(gòu)為代價(jià)完全對(duì)準(zhǔn)。 在這種情況下,如果您使用擴(kuò)張的肺分割作為掩碼,它將幫助您。
掩碼可用于固定和運(yùn)動(dòng)圖像。 固定圖像掩碼足以將注冊(cè)聚焦在ROI上,因?yàn)閺墓潭▓D像中抽取樣本。 當(dāng)您的運(yùn)動(dòng)圖像包含ROI附近的廢話灰色值時(shí),您只需要為運(yùn)動(dòng)圖像使用掩碼。
如果您使用掩碼來(lái)防止人為緣故障,您還需要設(shè)置參數(shù):
(ErodeMask "true")
如果沒(méi)有,那么當(dāng)執(zhí)行多分辨率時(shí),由于平滑步驟,來(lái)自人造邊緣的信息將流入您的ROI。 如果ROI周圍的邊緣有意義,例如 在肺的例子中,你應(yīng)該將它設(shè)置為false,因?yàn)檫@個(gè)邊緣將有助于引導(dǎo)配準(zhǔn)。
在繪制樣品時(shí)elastix彈出的常見(jiàn)異常是:“在合理的時(shí)間內(nèi)找不到足夠的圖像樣本。 也許掩碼太小了。“這樣做的可能原因是你的固定圖像掩碼太小了。 有關(guān)詳細(xì)信息,請(qǐng)參閱常見(jiàn)問(wèn)題。
5.5 故障排除
5.5.1 常見(jiàn)錯(cuò)誤
常見(jiàn)問(wèn)題解答中收集了一些常見(jiàn)的混淆和疑問(wèn)來(lái)源,可以在這里找到
http://elastix.isi.uu.nl/FAQ.php
5.5.2 不好的初始對(duì)準(zhǔn)
當(dāng)兩個(gè)圖像之間的初始對(duì)齊非常糟糕時(shí),您無(wú)法啟動(dòng)非剛性配準(zhǔn)。 有時(shí)使它正確可能是麻煩的。 什么因素可以幫助你做到正確?
- 從具有低自由度的轉(zhuǎn)換開(kāi)始,即平移,剛性,相似性或仿射變換。 有時(shí),圖像真的很遠(yuǎn),并且沒(méi)有重疊開(kāi)始(注意:物理空間中圖像的位置由原點(diǎn)和體素間距決定;參見(jiàn)第2.2節(jié))。 然后,將一個(gè)解決方案添加到您的參數(shù)文件中:
(AutomaticTransformInitialization "true")
該參數(shù)有助于自動(dòng)估計(jì)上述轉(zhuǎn)換的初始對(duì)準(zhǔn)。 支持三種方法:將固定和運(yùn)動(dòng)圖像的中心對(duì)齊的默認(rèn)方法,對(duì)齊重心的方法以及簡(jiǎn)單地對(duì)齊圖像來(lái)源的方法。 可以通過(guò)將以下一行添加到參數(shù)文件中來(lái)選擇一種方法:
(AutomaticTransformInitializationMethod "GeometricalCenter")
(AutomaticTransformInitializationMethod "CenterOfGravity")
(AutomaticTransformInitializationMethod "Origins")
請(qǐng)注意,“Origins”目前僅適用于仿射變換。
- 您需要一個(gè)良好的多分辨率策略,即相當(dāng)多的分辨率級(jí)別。 這樣一來(lái),大部分的平滑化正在發(fā)生,模糊所有的細(xì)節(jié),從而將配準(zhǔn)集中在主要的結(jié)構(gòu)上。
- 使用更多的迭代。
- 采取更大的步驟。 將參數(shù)a設(shè)置得高,以使得變形的轉(zhuǎn)換組件在每次迭代中需要幾個(gè)體素的步長(zhǎng),最多可達(dá)10個(gè)。也許它會(huì)工作,在這種情況下,您將獲得對(duì)齊的速度很快,但是步長(zhǎng)a仍然是 很大,所以你馬上再次離開(kāi)對(duì)準(zhǔn)。 如果發(fā)生這種情況,您應(yīng)該讓序列ak = a /(A + k)^α相對(duì)較快地衰減。 這可以通過(guò)設(shè)置a和A稍低一點(diǎn)來(lái)實(shí)現(xiàn),參見(jiàn)圖5.1。
- 如果您需要找到大的旋轉(zhuǎn),您可能需要為旋轉(zhuǎn)采取更大的步驟,但不需要為變形。 這可以通過(guò)修改比例參數(shù)來(lái)實(shí)現(xiàn),參見(jiàn)第5.3.5節(jié):
(Scales 10000.0)
您可以將其設(shè)置為較低以采取較大的旋轉(zhuǎn)步長(zhǎng)。 如果設(shè)置為1.0,則為旋轉(zhuǎn)方向轉(zhuǎn)動(dòng)大的步數(shù)(但旋轉(zhuǎn)在徑向中定義)。 如果你把它設(shè)置得很高(> 10^6),你根本不會(huì)旋轉(zhuǎn)。 你可能不需要低于1000.0。 請(qǐng)注意,AutomaticScalesEstimation選項(xiàng)通常工作正常,因此不需要指定Scales。
5.5.3 內(nèi)存消耗
臨床圖像的典型尺寸隨著時(shí)間的推移而增加。 因此,內(nèi)存效率將會(huì)更加成為一個(gè)問(wèn)題。 小圖像elastix消耗≈100 MB的內(nèi)存,對(duì)于較大的圖像對(duì)(256^3)和一些常見(jiàn)的組件,消耗可以是大約1-1.5 GB。 使用非常大的圖像(400^3及以上),內(nèi)存消耗可能會(huì)升高到舊版32位Windows系統(tǒng)的2 GB以上的限制。 或者您正在使用筆記本電腦。 或者你正在另一個(gè)消耗消費(fèi)的主程序中使用elastix。 大圖像怎么辦?
- 給自己買一個(gè)擁有大內(nèi)存的全新電腦。 現(xiàn)在計(jì)算機(jī)和操作系統(tǒng)都將是64位,所以你可以實(shí)際解決這么多的內(nèi)存。
- elastix中的圖像在內(nèi)部默認(rèn)情況下表示為一堆浮動(dòng)類型的體素。 您可以將其修改為簡(jiǎn)短圖像:
(FixedInternalImagePixelType "short")
(MovingInternalImagePixelType "short")
這樣,您可以節(jié)省用于存儲(chǔ)固定和移動(dòng)圖像的內(nèi)存量以及它們的多分辨率金字塔。 這將以犧牲精確度為代價(jià),但可能不是有害的。 這個(gè)選項(xiàng)對(duì)于elastix和transformix都是有用的。
- 更改配準(zhǔn)過(guò)程中使用的插值器。 在使用B樣條內(nèi)插的情況下,請(qǐng)注意,它將內(nèi)部的系數(shù)圖像存儲(chǔ)在雙重類型中。 您還可以指定浮動(dòng)版本:
(Interpolator "BSplineInterpolatorFloat")
這可以節(jié)省你的另一個(gè)內(nèi)存大小的短圖像。 此選項(xiàng)僅適用于elastix。 為了節(jié)省更多的內(nèi)存,請(qǐng)使用LinearInterpolator。 - 更改重新采樣圖像時(shí)使用的插值器:
(ResampleInterpolator "FinalBSplineInterpolatorFloat")
這個(gè)選項(xiàng)對(duì)于elastix和transformix都是有用的。 然而,對(duì)于elastix,它將只會(huì)在配準(zhǔn)結(jié)束時(shí)為您節(jié)省一些內(nèi)存。 - 在配準(zhǔn)期間使用下采樣圖像。 這可能不會(huì)太大地影響配準(zhǔn)準(zhǔn)確性。 配準(zhǔn)后,您可以使用transformix將所得到的變換應(yīng)用于原始的全尺寸運(yùn)動(dòng)圖像。 有關(guān)詳細(xì)信息,請(qǐng)參閱常見(jiàn)問(wèn)題。