《Medical Image Recognition,Segmentation and Parsing》一書的翻譯和學習。
該書由周少華老師撰寫,出版於2016年。周老師之前是西門子演算法的最高級別科學家,現回中科院計算所當教授了,對整個醫療領域的工業和學術屆都有著很深的理解。
Chapter 2:A Survey of Anatomy Detection
第二章:解剖目標檢測調研
2。1 介紹
在醫學影像中,檢測單個或者多個解剖目標(如解剖標誌點、組織),是非常重要又具有挑戰性的。這裡,我們將解剖標記點定義為人體掃描中,解剖結構上,有明顯灰度特徵的點,如肺頂、主動脈弓、恥骨聯合等。透過檢測解剖目標,就能確定人體的部位,進而進行後續的計算密集型任務,如計算機輔助診斷。解剖檢測還可以為解剖目標分割和影象配準提供初始化條件,以及輔助生成語義報告、最佳化器官的顯示等。該任務的挑戰性在於他需要處理因感測器噪聲、患者個體差異性、患者體動、病理情況、造影劑、部分掃描、窄掃描視野、軟組織間若對比度等因素導致的影像目標外觀的不一致性。
普通目標的檢測在計算機視覺中被廣泛研究。普通目標外觀的建模比較流行使用判別模型。區別於自然影象,醫學影象表現出更多的上下文資訊,如解剖目標數量是有限的(如一個個體影像中僅包含一個左心室),背景很單一,有很強的姿態先驗資訊等因此判別學習的方法需要能夠挖掘更多這類的上下文資訊,以減少模型學習複雜度。
本章將著重介紹基於判別學習方法的解剖目標檢測
。具體的,我們將介紹兩種主要的檢測方法,
基於分類的方法
和
基於迴歸的方法
,以及他們各自的學習複雜度。注意,本文並非針對自然影象中的普通目標(如人臉、車、行人等)的檢測。對於普通目標檢測,可參考Hjelmås and Low (2001), Yang et al。 (2002), Enzweiler and Gavrila (2009), and Geronimo et al。 (2010)。
目標檢測另一個關鍵是
搜尋策略
和它的
計算複雜度
。判別模型通常是不可微的,因此需要使用類似於窮舉的搜尋策略,導致其不適用於姿態變化大,
姿態引數為度很高的情況
(如3D物體的9維框),對於多目標任務更是難以適應。我們將調研各種搜尋策略,並分析他們的計算複雜度,且這些搜尋策略能夠利用解剖上下文資訊實現更有效的檢測。
第一章有提到,解剖上下文資訊可大致分為三類:單元\區域性上下文,成對\高階上下文,全域性上下文。區域性上下文表示單目標周圍的區域性規律。高階上下文表示兩個物體或多個物體之間的相互關係。全域性上下文則表示所有器官、畫素\體素之間的關係,它圖片視為一個整體。
本文提到的不同方法,本質上區別在
於線下模型學習複雜度
和
線上計算複雜度
之間的權衡有所不同,也表現在所使用的上下文資訊不同。然而這兩種複雜度之間沒有絕對的關係,也就是說,低的離線模型學習複雜度並不意味著一定需要高的線上計算複雜度。這些方法既具有低的學習複雜度,也能保證低的計算複雜度。
2。2節調研單目標的檢測方法,包括間隔空間學習(Marginal space learning, MSL),機率提升樹(Probabilistic boosting network, PBN),形狀迴歸機(Shape regression machine,SRM)等。2。3節將簡要的提到一些用於多目標檢測的方法,包括Active Scheduling, Submodular Optimization,迴歸森林,整合檢測網路(IDN), Context Integration等。這些方法在後面的章節中都會詳細講到:第三章:Active Scheduling;第四章:Submodular Optimization;第五章:迴歸森林;第六章:IDN;第十章:Context Integration。2。4節包括總結並指出未來的研究方向。
2.2 單解剖目標檢測方法
本章詳細介紹基於分類和基於迴歸的單目標檢測方法,並分析他們的離線模型學習複雜度和線上計算複雜度。
基於分類的方法進利用區域性資訊,基於迴歸的方法利用了全域性資訊
。
2.2.1 基於分類的檢測方法
基於分類的檢測方法的目標是,透過判別型分類器,將目標作為前景從背景中分離出來。它只會利用影象中的區域性特徵,然後以全圖搜尋的方式進行檢測,這種方式的計算複雜度不適用於解剖中姿態有變化的情況。下面提到的方法將嘗試解決這一問題。
2.2.1.1 Boosting檢測級聯
Viola and Jones (2001)提出的基於分類的經典目標檢測方法,使得2D正面人臉檢測任務達到實時,它透過全圖搜尋,對所有可能的平移引數、幾種離散剛性縮放尺度引數進行遍歷。該論文有三個貢獻:
(1)引入AdaBoost演算法用於特徵選擇;(2)使用積分圖實現快速的特徵評估;(3)訓練了一個boosting級聯實現避開背景,以更關注更像是人臉的區域。
值得注意的是,該論文並沒有對旋轉引數進行搜尋,其感興趣引數為
,且縮放為各向同性的(s為一個長度為1的向量)。
圖2。1(a)為檢測級聯結構,其目的是為了解決正負樣本不均衡的問題。因為負樣本太多,起到了主導作用,導致訓練一個能夠有效區分正負樣本的分類器變得很難。假設有N個級聯,判別檢測器
透過下式計算:
(2。1)
上式中
為第n個級聯的二分類器。通常
的複雜度會級聯數的增加而增加(前面以更簡單的特徵做判別,後面關注於更細微、複雜的特徵),而背景樣本通常就會在前幾級就被過濾了。
因為訓練中僅使用了局部上下文資訊,線上預測過程就需要透過全圖搜尋的方式,從整圖中尋找檢測目標。假設檢測器包含N個級聯,判斷到第n級所用時間為
,整個全圖搜尋的計算量為
,其中|t|為平移引數取值個數(如,t的最大取值為圖片的尺寸),|s|為縮放參數的取值個數,
為被過濾後傳遞到後面第n級檢測器的剩餘的引數取值數佔比。若定義判別一個樣本的平均耗時為
,總計算耗時為
。如果縮放為非各項同性的,則
。
圖2。1 (a)檢測級聯結構 (b)PBT
2.2.1.2 機率提升樹(PBT)
boosting級聯學習一串級聯的提升分類器。每一個級聯的分類器會抵抗更多的負樣本,同時也會丟失一小部分的正樣本。Tu (2005)提出一種機率提升樹,透過結合二叉決策樹和boosting方法,使得每一個節點成為一個AdaBoost分類器。使用這種方法,被錯分類的正樣本或負樣本將還有機會被正確的分類。PBT的示意圖如圖2。1(b),其後驗機率的計算如下:
(2。2)
式中n為總的樹結點數,
,經驗上,PBT演算法的學習和計算複雜度和boosting級聯演算法相當。
2.2.1.3 隨機決策森林
Criminisi et al。 (2009)使用隨機決策森林自動檢測和定位解剖結構。實際中,提出了採集的大範圍空間上下文視覺特徵:多個給定方向和偏移位置的區域的不同通道特徵特徵。訊號通道包括CT強度、3D梯度的幅度等。因為森林中分類器為並行結構的,且使用積分容積進行特徵提取,使用顯示卡運算單元進行加速,對513*513*513體素的處理時間僅2s,對九種CT下組織的檢測平均檢測誤差達28。2mm。
2.2.1.4 適應姿態變化的全圖搜尋策略
搭建一個能夠同時實現精確姿態估計的實時檢測器是很難的,只能對整個影象空間,對所可能的平移和姿態組合,進行全圖搜尋。
考慮在人體超聲心動圖和超聲體素中檢測左心室LV的任務。發現LV的設定是很重要的,只要知道了LV的設定,就能夠自動的顯示標準的2D影象用於診斷。因為LV可能出現在任意位置和任意方向,對於LV的姿態需要對9個引數進行搜尋。如果延用Viola and Jones (2001)的方法,整個計算時間為
,計算量隨著引數空間指數增加。而2D目標情況下計算量只有
。而且,體積旋轉和積分容積的計算量又是正比於畫素數量的,需要的額外計算量為
。最後,透過學習一個巨大的檢測去處理所有可能的變化情況,本身就是很難得,這樣的檢測器必然具有很高的運算複雜度,導致
也很大。
2.2.1.5 並行,金字塔和樹結構
一個替代的方案,是透過訓練一系列的二分類器解決不同姿態的問題。最簡單的方式就是採用並行結構(圖2。2),對每一種離散的姿態訓練一個分類器。檢測中,所有分類器都對每一次滑窗進行測試。整個的計算量正比於姿態數,大約為
,其中
為針對某一特定方向的特定分類器。如果近似認為
,則計算量變為原來的|r|倍,但是沒有旋轉影象和計算多個積分影象的開銷。缺點是對於並行結構,如果真是的姿態正好是幾種離散姿態的中間情況,多個分類器可能對同一個位置都有響應,那麼要精確的估計姿態,就需要額外的網路進一步確定結果。
為了減少用於多角度目標檢測的並行結構檢測器,Torralba et al. (2007)提出共享各個檢測器在不同角度下的視覺特徵
。因為
中主要的時間都用於計算影象特徵,特徵共享可以幫助節省總共
的時間。這種方法也可用於多目標的檢測。
為加速並聯結構,Li and Zhang (2004)提出使用金字塔結構,以從粗到精(coarse-to-fine)的形式(如圖2。2)實現對目標檢測。它包含從頂部的最粗到層到最精細層的多層結構。在金字塔的每一層,全範圍的平面外旋轉被分為多個子範圍,每一個獨立的檢測器用於檢測每一個子範圍。這樣就解決了離散姿態探測器存在的問題,不再依賴於姿態的個數。
圖2。2 用於不同姿態下目標檢測的各種結構。圓圈表示前景\背景二分類器。矩形框表示姿態多分類器。
為了更明確的區分各種不同的姿態,可以使用圖2。2中的樹形結構,使用多分類器作為一個區分器。在Jones and Viola (2003)中,多分類器用來確定目標的姿態,後面再對每一個姿態訓練二分類器。這種結構的計算量為
,其中M為多分類器。透過增加額外的多分類器的計算量,這也能解決對姿態數量線性依賴的問題。這種樹形結構中存在一個無法避免的冗餘:多分類器之後才通過後面的二分類器剔除背景,而這些背景patch在多分類器階段也會被用於做判斷姿態,這顯然是浪費運算量的。在Jones and Viola (2003)中,這種結構只有一個分支會被多分類器進行評估的,因此,多分類器產生的誤差對於檢測結果有很大的影響。
2.2.1.6 網路結構:機率提升網路(probabilistic boosting network ,PBN)
假設姿態引數
被離散表示為
,一個機率提升網路(PBN)利用基本全機率定理計算一個目標的機率:
——-(2。3)
式中
為是針對
引數的二分類器,檢測器
由級聯的提升二分類器組成,包含
級。機率
這一姿態機率透過多分類LogitBoost模型的輸出得到。PBN透過最小化均方誤差演算法(MMSE)估計姿態引數
:
。從離散引數集中估計可能的
,MMSE的估計結果會優於最大後驗估計(MAP),因為MMSE是可插值的。
全機率公式(2。3)可透過圖2。2中的樹形結構實現,但是會存在前面提到的計算冗餘。PBN使用兩種策略解決計算冗餘問題。首先,透過注意焦點機制,拋棄很多全北京的候選窗,即訓練一個具有100%檢測率的預濾波器,不考慮姿態的問題,但是會很大比率的剔除背景候選窗。第二,借鑑級聯結構分類器的思想,將最前面的多分類器分解成多個階段,每個階段的複雜度不斷提高。也就是將
的計算分解為多個階段,二LogitBoost演算法是一個加性提升模型,恰好方便實現。這就使得前面的多分類器具有兩個功能:姿態估計和背景去除(透過分層的方式分散
的計算開銷。
PBN的計算複雜度很難量化,但是可以肯定的是效率高於並行和樹結構。Zhang et al。 (2007)將PBN用於實時的3D超聲影象中的左心室檢測和2D影象中的左心房檢測。
2.2.1.7 邊緣空間學習(Marginal space learning,MSL)
目前位置回顧的都是檢測任務的有效計算框架。MSL則將學習和計算複雜度一起,分解複雜的學習和推理任務為一系列的簡單任務,簡單的數學推導顯示:
(2。4)
所以,MSL並非學習一個single-shot檢測器,而是學習三個檢測器,以逐漸增加維度的方式,學習邊緣空間,T檢測器
用於平移,TR檢測器
用於平移和旋轉,TRS檢測器
用於平移旋轉和縮放。三個檢測器都透過PBT學習。
圖3例舉了MSL方法用於檢測的流程圖,順序的使用三個檢測器進行檢測。比較MSL和級聯策略,主要的不同在於,MSL對全引數空間中的不同引數子集來訓練不同的檢測器,二級聯學習策略則是利用全訓練資料集中不同的子集訓練不同的檢測器。
圖2。3 MSL方法用於檢測的流程框圖
相比於全空間窮舉搜尋策略,MSL的計算複雜度大大減少。MSL的計算量大約為
,其中
和
分別是分別經過
和
之後保留下來的候選影象patch數量,且
,
。
Zheng et al。 (2008)中,使用MSL方法對3D心臟的腔室進行檢測。3mm解析度下,心臟CT體素大約為64x64x64的體素,對應著大約260000平移引數(每個畫素位置對應一個)。方向引數空間被離散化到解析度在0。2弧度,因而旋轉引數大約1000個。在兩體素搜尋尺寸以內,有大約1000個縮放參數。如果使用窮舉搜尋策略,一共有
g個引數要遍歷測試。如果使用MSL,只有大約
,引數量減少了大約6個數量級。
MSL演算法還大大減少了學習難度。學習TR檢測器時,只有那些通過了T檢測器的平移引數下的獲取的patch的聯合假設被使用。T檢測器的篩選引導,大大減少了負樣本數量,因此使得而分類器更容易學習。否則訓練過程會被大量的負樣本所主導,導致難以訓練出一個對正樣本有高檢測率的分類器。MSL的效果可見論文in Zheng et al。 (2009b),對於對2DMRI影像中的左心室的檢測,文中那MSL和全空間學習(full space learning,FSL)方法作比較,MSL在精度和速度兩方面都高於FSL。
MSL的另一個貢獻是使用易提取的特徵獲取目標的旋轉和尺度,且運算效率高。這是透過從體素中取樣少量點,然後對每一個取樣點提取少量區域性資訊,如畫素灰度和梯度。這樣目標的旋轉和尺度資訊被嵌入到這些參量點的分佈中,每一個獨立的特徵都是區域性定義的特徵。
在MSL方法中,三個子引數空間(平移、旋轉、尺度空間)都是獨立同分布取樣的,沒有考慮同一邊緣空間中個引數之間的相關性。如果探索子空間之間的相關性,這種約束MSL方法的計算複雜度能進一步幾個數量級。其他的MSL擴充套件包括2D MSL、利用PCA選擇主成分形變擴充MSL、聚合的MSL用於檢測3D超聲影象中的淋巴結、迭代MSL用於脊柱檢測。
2.2.1.8 機率層次判別框架
MSL一開始是用於檢測剛體。機率層次判別框架(PHD)(Zhou et al。, 2007a)類似於MSL,但是更適用於形變目標。它透過機率,將目標結構透過全域性、分割、關鍵點等多個層級的特徵整合到一起,並給出一個精確的針對於該目標的量化值。因為解剖結構的外形是一個高維引數,PHD框架透過檢測機率進行分層次的評估,迅速修剪搜尋空間,尋找目標的最佳的外形。
“皮層的視覺化處理是一個經典的分層次表達逐步複雜建模”,透過以一種簡單到複雜的形式實現層次性實現快速評估,即從簡單的模型開始,逐步增加複雜性,逐步增加計算量。每個模型使用判別提升學習實現,將目標主體從背景中分離出來。
PHD框架用於檢測各種形變解剖結構,比如從多普勒超聲心動圖中檢測標記點、三角形、四邊形、曲線,每個結構的檢測大約只要1s。
圖2。4 (a)M模式心動圖;(b-d)多普勒心動圖:(b)二尖瓣流入;(c)主動脈反流;(d)三尖瓣反流
2.2.1.0 多例項提升方法解決不精準標註
為訓練一個高效能目標檢測器,通常需要大量的標註,而標註通常很費時費力。多例項學習(Multiple instance learning,MIL)通常用於減小手動標註的負擔,適應不精確標註的情況。
MIL使用例項包作為訓練的輸入。正例項包包含至少一個正樣本,而負例項包則全是負樣本。在解剖目標檢測中,我們透過使用足夠大的外接矩形框,保證正樣本被框進去。這個過程產生的正例項包會包含一個或很少的正樣本。
Viola et al。 (2006)提出的多例項提升(MILBoost),透過使用AnyBoost框架(Mason et al。, 1999),結合MIL文獻中的損失函式, 尤其是結合分割和識別(ISR)規則,以及“Noisy-OR”規則。MILBoost在目標檢測任務上實現了效能的提升。
Swoboda et al。 (2013)提出了一種空間約束MILBoost。在上述方法的基礎上,引入了soft max損失函式,以更好的處理輸出飽和的問題。對比傳統的將例項視為獨立的包的方法,Swoboda et al。 (2013)探索了一種更好的利用醫學影像中空間上下文資訊的方式,即透過網格佈局的方式,將訓練例項以很大的相關性進行排列,併產生一個集中檢測相應map,使得最終的結果可信度更高。這是透過全體方差正則化實現的。實驗證明提出的方法,在小量標註甚至無標註的解剖標記點檢測任務上,比MILBoost及其他SOTA檢測演算法效能有顯著的提升。
2.2.2 基於迴歸的檢測方法
將檢測任務轉換為迴歸任務,透過利用更多的全域性解剖資訊。這種方法可以避免窮舉型低效搜尋,是一種效率更高的方式。
2.2.2.1 形狀迴歸機制(Shape Regression Machine,SRM)
SRM方法的思想是,透過學習一個迴歸函式R,預測一個任意引數
和目標引數
之間的差分向量。這種方法只需要掃一次影象就能實現檢測目的。
(2。5)
實際使用中,會在影象中稀疏的隨機取樣一些影象塊用於測試,分別取預測一個結果,對所有測試結果做融合得到更加魯棒的結果。價紹有
個隨機取樣的樣本
,對每個樣本
,都使用迴歸器預測一個結果,得到不同的
,都可以計算得到目標引數
:
(2。6)
一個簡單的融合策略就是直接去所有預測結果的均值:
(2。7)
圖2。5是從2D B型超聲心動圖頂檢視中檢測LV的方法。圖中包含四個心臟腔室,分別是左心室(LV)、右心室、左心房、右心房。為了清晰舉例,只考慮了平移引數。
圖2。5 (a)基於迴歸的檢測方法示意圖:學習的迴歸器預測差分向量;(b)基於迴歸和融合策略的魯棒目標檢測演算法:黃色點表示多個隨機的區域性塊分別預測的目標點位置,綠色點為這些黃色點融合的結果,紅色點為ground trurh。
採用平均的融合方法雖然高效,但是一些異常的結果容易導致整體結果變差。因此可以透過一個2分類器用於對所有的迴歸結果做一個篩選,並可得到一個置信分數。即對預測結果
,對影象patch
使用檢測器D做一個分類判別。如果D判別了它不是目標,就將它拋棄,否則將D的輸出
作為該結果的置信分數。最終的融合結果,以置信分數為加權係數做加權求和得到:
(2。8)
其中J 透過結合迴歸器和二值分類器,就能得到一個高效的醫學解剖結構檢測器。相比於單純使用迴歸器的情況,它只需要更少數量的隨機取樣patch數量就能達到更高的精度。整體計算量為 ,相比於分類的方法效率更高。Zhou et al。 (2007b)中使用加權迴歸方法,進一步提升演算法速度,比非加權迴歸演算法快7倍,比基於分類的方法快50倍。 對於多回歸引數的情況,SRM只需要將輸出設定為多維度即可。即對於迴歸函式R,輸入是影象patch,輸出為多維向量。基於影象的boosting嶺迴歸演算法,就是為這個目標提出的。 2.2.2.2 霍夫森林(Hough forest) Gall and Lempitsky (2009)提出霍夫森林用於目標檢測。霍夫森林中的每一個樹,都使用一系列的影象patch的 進行訓練,用於計算目標 存在機率。其中 為patch的外觀, 為patch的分類標籤, 為patch的偏移向量。為了對每個節點上的樣本進行劃分,使用熵去計算各類別標籤在被節點屬性劃分後劃分的純度,表示類別標籤的不確定性;使用到平均向量的總體平方距離表徵偏移向量的純度,表示偏移的不確定性。決策過程以最小化類別不確定性或偏移不確定性為目標。霍夫森林本質上是將回歸和分類結合到一起同時進行,當patch通過了分類器,則只執行迴歸。最終的檢測結果透過聚合霍夫投票得到。 2.2.3 基於分類 VS 基於迴歸的目標檢測 一個成功的基於機器學習的目標檢測方法需要在離線的學習複雜度和線上推理的計算複雜度之間做平衡。 學習複雜度 :在基於分類的方法中,主要的挑戰是對負樣本的出處理——正樣本之外全是負樣本。一張圖片通常只有一個正樣本,但是有無數個負樣本,學習過程容易被負樣本主導。在迴歸方法中,樣本不均衡問題更嚴重,因為需要將每個樣本和一個輸出的真值或向量關聯起來,而不是一個分類任務中的二元值。 推理的計算複雜度 :這和檢測時間相關。基於分類的方法中,全引數空間的窮舉搜尋非常耗時。在基於迴歸的方法中,時間大大降低。但是時間仍和模型的複雜度相關:模型越複雜推理速度越慢。僅管上述檢測任務中,迴歸器比二值分類器的學習複雜度高,但是因為迴歸的方法不需要窮舉搜尋,迴歸的方法推理的計算複雜度小很多。 (未完待續。。。)