https://dspace.mit.edu/handle/1721.1/123142
這篇論文主要是講多模配準的兩個損失函數MI和MIND,網絡結構還是voxelmorph。
摘要:
傳統的方法還是優化方法(optimization,只要是DL的方法都會這麼一說),所以很慢。
deep learning的方法是學習一個全局函數,加速配準過程。不過一般專注於單模配準。
引言:
不同的成像技術對體內組織有不同的反饋,所以才需要多模配準,來提供更多的信息。像MRI-T1可以區分腦部健康的組織,MRI-T2更容易反饋出一些高亮的異常結構,例如腫瘤。
圖1.1 MRI-T1和MRI-T2同一個病人的腦部掃描。不同的組織對比,MRI-T1要比MRI-T2更好,最明顯的是大腦皮層的輪廓。
多模配準之所以比單模配準更難,主要是因爲兩幅圖像中對應結構的強度之間的複雜關係。比如一副圖像中該組織結構是比較亮的,在另一個模態裏可能就呈現出暗的。傳統的方法在CPU上進行配準可能要十幾分鍾到一個小時不等(我接觸到GPU上也就幾分鐘),一般都是優化問題,也就是最小化misalignment並且最大化形變場的smoothness。
論文着重對比兩個損失函數mutual information(MI)和Modality-Independent Neighborhood Descriptor(MIND)。
背景:
2.1醫學圖像配準
最優化形變場:elastic registration、b-spline registration、discrete(non-differentiable)
2.2 基於學習的配準
基於學習的配準主要是學習一個全局的配準函數,大多數方法是監督學習,也就是需要ground truth deformations,gt很難獲取。所以纔有了無監督學習的方法,開創性的是voxelmorph
圖2.1 voxelmorph encoder-decoder model結果,每個矩形表示3D volume,裏面的數組表示channels,下面的數組表示空間分辨率。
圖2.2 整體的模型圖,voxelmorph學習一個變換來事的moving image 形變後與fixed image對齊,損失函數就是度量warped image和fixed image之間的相似性,並同時約束變換的光滑性。
voxelMorph最小化的cost function:
(2.1)
F和M就是兩幅輸入的圖像,是一個形變場,是用來度量之間的相似性,是deformation field 的正則項是正則項權重。可以使mean squared error 或者是cross-correlation。
VoxelMorph配準速度也就GPU上一秒左右,CPU上1分鐘左右,相同輸入在CPU上可能就需要用小時做單位了(應該是誇張了),VoxelMorph訓練的話就幾天時間。單模配準上VoxelMorph已經很有效了,但是多模還沒驗證,主要是他的損失函數是mean-squared-error和cross-correlation,這兩個損失函數也就是假設相應結構在兩幅圖像中是線性關係。
2.3 互信息Mutual Information
圖像配準的方法都是最大化兩幅圖像的相似性。而相似性的度量,大多數是比較像素強度,比如L2 norm,L1 norm和cross correlation。單在多模配準中不能簡單的假設兩幅圖像的強度關係是線性的。
一些傳統的多模配準已經有一些方法,較爲常見的比如mutual information(MI),一個經典的信息論方法,直觀的定義了一個分佈提供給另一個分佈的信息量。
(2.2)
概率是在圖像A中強度等於a的voxels比例,概率是在圖像B中強度等於b的voxels比例。這兩個概率可以通過爲兩幅圖構造一個像素強度直方圖來計算。是兩幅圖像A和B的強度的聯合分佈,也就是兩幅圖像對應像素分別等於(a,b)的概率。等式2.2也就等於兩個概率分佈和之間的Kullback-Leiber 散度,因此兩幅圖像最不相似,最大,由於表示兩幅圖像像素強度的分佈是獨立的,如果A和B對齊了,那麼和最接近,因爲它最大限度地增加了一張圖片與另一張圖片之間的信息量。
爲了實現這個,我們對強度進行分箱bin intensities,然後離散的方式計算KL散度。
在多模圖像配準中用負的互信息代替,因爲最大化互信息來配準兩幅圖像,MI的實現可分成global mutual information和local mutal infromation分別對應image和patches的計算。互信息在傳統配準中使用的比較多,但在基於學習的配準中使用的並不多。
2.4 MIND
另外的一個loss function就是模態獨立鄰域描述子(Modality Independent Neighbourhood Descriptor,MIND),MIND是一個描述每個voxel周圍局部模式的特徵。這是通過觀察中心patch和固定距離外的patch之間的相似性來計算的。基於MIND的相似函數背後的假設是,即使在不同的圖像模態下,voxel周圍的local patterns也應該是相似的,因此我們希望最小化我們所配準的兩幅圖像之間的MIND特徵差異。
MIND由一個距離向量和path size來參數化,爲了計算基於MIND的損失函數,我們希望看到6鄰域patch與中心patch的相似性.
圖2.3 用於計算的6鄰域patch視圖,由參數 path size和distance 來參數化。
首先定義來作爲圖像patches之間的相似性度量
(2.3)
是image,和是image中的兩個locations,是patch大小爲的voxel到patch中心的位移集合。因此,計算以和爲中心的兩個圖像patch之間的均方差,patch的大小爲p×p×p。隨後是MIND的定義
(2.4)
是image,是image中的location,是distance vector。是local variance的評估。我們讓MIND成爲的一個Gaussian function,也就是當patches不相似低響應,相似是高響應。
爲了構建用於配準基於MIND的loss function,我們取我們希望對齊的兩幅圖像的MIND之間絕對差異的平均值:
(2.5)
A B分別是fixed image 和wared image,R是長度爲d的六個位移向量,在x,y,z方向各有兩個。MIND在傳統的圖像配準中已經能夠很好的使用了,但是在基於學習的配準方法中還沒有比較好的運用。
方法
3.1 Mutual Information的可微性
如果要又在DL反向傳播中,必須要可微分,每個體素應該連續地貢獻到一個範圍內的直方圖容器中,而不是隻貢獻到它所處的容器中。我們使用Parzen windowing方法計算,給定一組n個樣本,每個樣本貢獻到與其距離函數
(3.1).
我們將使用參數爲高斯函數作爲權重函數W:
(3.2)
爲了計算兩幅圖像A和B的MI,我們需要計算每幅圖像的強度分佈,以及兩幅圖像的聯合分佈。圖像A 的強度分佈是,爲了計算聯合分佈將每個樣本視爲兩幅圖像中對應位置的一對強度:
(3.3)
爲了利用(2.2)計算兩幅圖像的互信息,我們對k個等間距強度bin中心處的和進行評估,在所有對bin中心。參數k決定了每幅圖像直方圖中bin的數量,影響了這種互信息近似的準確性。
圖3.1 描述兩幅圖像A,B聯合分佈
圖3.1 描述在bins,兩幅圖像A,B聯合分佈,每個在熱圖中的(i,j)的square表示圖像A的強度爲i且圖像B的強度爲j的體素所佔的比例,使用上面描述的Parzen窗口近似。左邊描述的是還沒有配準的兩幅圖像分佈,右邊描述的是使用基於MI損失已經配準好的分佈。直觀地看,配準後兩幅圖像的MI較大,因爲熱圖上的亮點更集中,這意味着一幅圖像的體素強度提供了另一幅圖像對應體素強度的更多信息。
Mutual information有兩種global 和local。Global mutual information計算的是兩幅圖像的mutual information,local mutual information計算單是兩幅圖像對應patches的mutual information平均值。
global MI-base loss function:
(3.4)
local MI-base loss function:
(3.5)
是patches的集合,之所以MI都是負的,因爲兩幅圖對齊的時候MI最大,而一般loss都是最小化,所以加了一個負號。
global MI是基於整個圖像的強度分佈。所以,假設兩個體素具有相同的強度但在空間上彼此遠離,global MI會把他們看做是一樣的。爲了讓我們只考慮在空間上接近的體素,我們需要使用local MI來代替。因爲local MI能夠捕捉空間信息,我們直觀地期望local MI表現得更好,但可能會以過擬合爲代價。
3.2 Vectorized MI
要在VoxelMorph中使用global和local MI,必須以向量化vectorized的方式實現它們。向量化vectorized操作比循環操作運行速度快得多,而且由於每次通過網絡的一對圖像都必須計算MI損失,我們只能使用向量化操作來實現MI,否則體素形態將不能及時訓練。
3.2.1 Vectorized Global MI
爲了計算兩幅圖像A和B的global MI,我們首先計算矩陣和,每個都有shape num_voxels×num_bins,表示每個體素對每個強度bin的貢獻,如式(3.2)所示.這可以通過首先對圖像進行重塑reshaping和tiling平鋪,使其具有num_voxels×num_bin維數,減去bin中心的強度,然後進行element-wise操作來計算高斯函數。然後沿着0軸計算分佈和,以及沿着0軸計算和的均值。計算聯合分佈,我們簡化,其中n是每張圖像中的體素數,因爲這將準確地給我們公式(3.3)中的總和。
算法1、global MI 的僞代碼
3.2.2 Vectorized local MI
爲了計算兩幅圖像A和B的局部MI,我們首先將每幅圖像rehsape爲大小爲p×p×p的patch。然後我們進一步reshape得到數組和,每個num_patch x p3大小,其中num_patch =。注意,這個實現意味着patches不會重疊。爲了得到重疊的patches,我們可以創建每個圖像的多個副本,並重新reshape它們以創建offset patches,但爲了節省內存,我們沒有創建重疊的patches。一旦我們得到和,我們將第一個維度視爲batch size,並繼續進行與global MI相同的計算,只是現在所有的東西都是批處理的。
3.3 Vectorized MIND
爲了在VoxelmMrph中使用基於MIND的loss function,我們需要實現MIND向量化的方式。給定一幅圖像A,MIND由一個高斯函數計算,該高斯函數是A的一箇中心patch和它的六個固定距離的相鄰patch中的一個之間的平均平方差。爲了用向量化的方式來做這件事,我們首先在六個方向中的一個方向將圖像A移動d個距離,然後減去原始圖像A。然後取每個副本的元素平方,對patch大小p×p×p進行卷積,使kernel一致等於。這樣得到的圖像中,x位置的值是在所選方向上移動了d的patch與以x爲中心的patch之間的平方差。爲了計算均方差上的高斯函數,我們只需應用element0wise的操作,如squaring和dividing。爲了計算基於MIND的loss function,我們需要計算在六個方向上的每一個方向都計算MIND特徵,然後計算兩幅圖像MIND的絕對差,在所有n個voxels和六個方向上取平均。
實驗:
41.數據集
14,000 MRI-T1 :ADNI, OASIS , ABIDE, ADHD200 , MCIC , PPMI, HABS, and Harvard GSP.
6000 train, 3000 validate, and 5000 test images
預處理仿射空間歸一化,腦組織提取。利用FreeSurfer,在分割過程中,採用人工質量控制來捕獲較大的誤差
MRI-T2:ADNI
T1->T2 atlas
雖然我們的方法是無監督的,因此不需要分割,但我們使用分割精度作爲一個代理來評估圖像配準精度,因此我們需要對我們的T2 atlas進行分割,以評估我們的方法。T2掃描沒有分割,但是所有的T1掃描都分割,所以我們取同一個病人的T1掃描並將其與T2掃描進行仿射配準。然後,我們用仿射變換warpT1掃描的segmentation ,得到T2掃描的segmentation。仿射關係通過ANTs-MI計算,使用傳統的優化方法最大化MI來計算多模配準。由於兩次掃描都來自同一對象,我們期望仿射配準會相當準確。因爲我們沒有T2 segmentations,所以沒有辦法對它進行評估,但是我們可以可視化resulting segmentation。從圖4.1上看到腦室在T2上表現的非常好,並且海馬體也覆蓋的差不多。最後一步就是確保T2已經與所有的T1仿射對齊了,這樣模型就變得比較容易訓練。
圖4.1 左邊:原始的T1掃描和風格,仿射變換到T2掃描。右側:T2掃描覆蓋T1變換的分割。上面兩個是腦室,下面兩個是海馬體。
4.2 評價度量
4.3 baseline
Symmetric Normalization (SyN) ,Advanced Normalization Tools (ANTs) software