paper:https://arxiv.org/abs/1711.08324
源碼:https://github.com/lfz/DSB2017
簡介
簡介——從CT掃描圖像進行自動診斷肺癌需要兩個步驟:檢測所有可疑的病變(肺結節)以及評估整個肺部惡性程度。
目前大多數的研究主要集中于第一步,但是很少研究在第二部分。由于結節存在不能明确的指明得了癌症以及結節的形态跟肺癌有着複雜的聯系,肺癌的診斷需要在每一個可疑的結節進行細緻分析以及整合所有結節的資訊。針對上述問題,我們提出了一個三維深度神經網絡(3D deep neural network)用于解決這些問題。該模型由兩個子產品組成:
- 用于結節檢測的3D region proposal network;
- 基于置信檢測(the detection confidence)選出top-5結節并評估其癌症可能性,最後将此機率與Leaky noisy-or模型相結合評估患者患癌的可能性。
這兩個子產品共享相同的骨幹網絡(backbone network),一個修改的U-net網絡。交替(alternately)訓練兩個子產品緩解了(alleviated)由于訓練集過少導緻的過拟合問題。提出的模型在Data Science Bowl 2017 compettion 取得了第一名,已經開源了。
介紹
肺癌是最為普遍和最為緻命的惡性惡性良性腫瘤之一,像其他癌症一樣,最好的方法就是早診斷早治療。是以定期檢查是有必要的。對于癌症的診斷,容量胸腔CT是一個普遍的成像工具。它顯示了所有的組織,根據組織對X光的吸收情況。肺的損害被稱為肺結節。結節通常具有與正常組織相同的吸收水準。但是擁有獨特的形狀。支氣管(bronchus)和血管(vessels)是連續的管道系統,粗的在根上和細的在分支上(指的是支氣管和血管),結節通常是球形的(spherical)和獨立的。經驗豐富的醫生大約花費10分鐘去徹底檢查一位病人,因為部分結節是小的和難以發現的。此外,有很多結節亞型(subtypes)和不同亞型的癌症機率不同。醫生根據結節的形狀可以評估結節的惡性程度。但是準确率的高低取決于醫生的經驗,以及不同醫生或許給出不同的預測。
計算機輔助診斷适用于此任務,因為電腦視覺模型可以以等品質的方式快速掃描任何地方,不受疲勞和情緒的影響。最近深度學習的進展已經開啟。深度學習的最新進展使計算機視覺模型能夠幫助醫生診斷各種問題,在某些情況下,這些模型在醫生面前表現出競争性。
與一般的計算機視覺問題相比,肺癌自動診斷有幾個困難。首先,結節檢測是一種比二維目标檢測更難的三維目标檢測問題。由于GPU記憶體有限,二維目标檢測方法直接推廣到三維場景面臨技術難題。是以,一些方法使用二維RPN網絡在單個二維圖像中提取,然後将它們結合生成三維proposals。更重要的是,标注3D資料通常要比标注2D資料困難得多,這可能會導緻深度學習模型由于過度拟合而失敗。其次,結節形狀多樣(圖1),結節與正常組織的差異不明顯。是以,在某些情況下,即使是經驗豐富的醫生也無法達成共識。第三,結節與癌症的關系比較複雜。結節的存在并不一定表明得了肺癌。對于多發結節的患者,應考慮所有結節,以推斷癌症的可能性。換句話說,不像經典的檢測任務和經典的分類任務,在這個任務中,一個标簽對應幾個對象。這是一個多執行個體學習(MIL)[11]問題,是計算機視覺中的一個難題。
為了解決這些困難,我們采取了以下政策。我們建構了一個3D RPN[12]來直接預測結節的邊界框。3D卷積神經網絡(CNN)結構使網絡能夠捕獲複雜的特征。為了解決GPU記憶體問題,采用了patch-based的訓練和測試政策。對模型進行端到端訓練,以實作高效的優化。資料增強被用來對抗過度拟合。檢測器的門檻值設定得很低,這樣所有可疑的結節都包括在内。然後選擇前5個可疑結節作為分類器的輸入。在分類器中引入了一個leaky noisy-or model[13],将前5個結節的分數結合起來。

圖1:DSB資料集中的mudles示例。上圖:整個切片。底部:放大圖像
在機率圖模型中,noisy-or model 是一種局部的因果機率模型[13]。它假設一個事件可以由不同的因素引起,而這些因素中的任何一個的發生都可以導緻事件以獨立的機率發生。這個模型的一個修改版本叫做leaky noisy-or module[13],假設事件有leaky probability即使沒有任何因素發生。noisy-or model 适合這個任務。首先,當一個病例出現多個結節時,所有的結節都有助于最終的預測。其次,一個高度可疑的結節可以解釋癌症病例,這是可取的。第三,當沒有惡性良性腫瘤可以解釋癌症病例時,癌症可以歸因于洩漏機率(leakage probability)。
分類網絡也是一種三維神經網絡。為了防止過度拟合,我們讓分類網絡共享檢測網絡的主幹(綁定兩個網絡的骨架參數),并交替訓練兩個網絡。廣泛的資料增強也被使用。
我們在這項工作中的貢獻總結如下:
1)據我們所知,我們為3D 目标檢測提出了第一個容量的(volumetric)單級端到端CNN。
2 )我們建議将噪聲門(nosiy-or gate)內建到神經網絡中網絡中解決多執行個體學習任務CAD。
我們在Data Science Bowl 2017年驗證了該方法,并在1972個團隊中獲得了第一名。
論文的其餘部分如下所示。第二節介紹了一些密切相關的工作。提出的方法在後面的章節中詳細介紹。它由三個步驟組成:(1)預處理(第三節):将肺從其他組織中分離出來;(2)檢測(第四節):發現肺内所有可疑結節;(3)分類(SectionV):對所有結節打分,結合其癌症機率,得到患者整體的癌症機率。第一步是經典的圖像預處理技術和其他兩部分(指的是檢測和分類)通過神經網絡。本研究的結果在第六節中提出。第七節以讨論的形式總結全文。
相關工作
A.一般目标檢測
提出了多種目标檢測方法,并對其進行了深入的研究。這些方法大多是為二維目标檢測而設計的。一些最先進的方法有兩個階段(例如,Faster-RCNN[12]),其中在第一階段提出了一些邊界框(稱為proposal)(是否包含對象),而在第二階段進行類決策(proposal屬于哪一類)。最近的方法有一個單獨的階段,在這個階段中,邊界框和類機率同時被預測(YOLO[14]),或者類機率被預測從default box,而不是proposal(SSD[15])。一般來說,單級方法比較快,兩級方法比較準确。對于單類對象檢測,不再需要兩階段方法中的第二階段,方法退化為單階段方法。
将前沿的2D物體檢測方法擴充到3D物體檢測任務(如視訊中的動作檢測和體積檢測)是有局限性的。由于主流gpu的記憶體限制,一些研究使用2D RPN提取單個2D圖像中的建議,然後使用一個額外的子產品将2D提案結合到3D提案中[8,9]。類似的政策也被用于三維圖像分割[16]。據我們所知,3D RPN尚未用于處理視訊或容量資料。
B.結節檢測
結節檢測是典型的體積檢測任務。由于其臨床(clinical)意義重大,近年來受到越來越多的關注。該任務通常分為兩個子任務[17]:提出proposal和減少假陽性,每個子任務都吸引了大量的研究。第一個子任務的模型通常從簡單快速的3D描述符開始,然後用分類器給出許多proposals。第二個子任務的模型通常是複雜的分類器。2010年,Van Ginneken等人對六種傳統算法進行了全面的回顧,并在包含55次掃描的ANODE09資料集上對它們進行了評估。在2011-2015年期間,開發了一個更大的資料集LIDC[18,19,20]。研究人員開始采用CNN來減少假陽性的數量。Setio等[21]采用了多視圖CNN,而Dou等[22]采用了3D CNN來解決這一問題,并取得了比傳統方法更好的結果。Ding et al.[9]采用2D RPN制作每一片的結節提案,采用3D CNN減少假陽性樣本數量。2016年肺結核分析比賽(LUNA16)[23]舉行。基于標明的LIDC子集。在本次比賽的檢測軌迹中,大部分參賽者采用了[23]兩階段法。
C.多執行個體學習
在MIL任務中,輸入是一個執行個體包。如果任何一個執行個體被标記為正數,則袋子被标記為正數。如果所有的執行個體都被标記為負數,那麼這個包就被标記為負數。
許多醫學圖像分析任務是MIL任務,是以。在深度學習興起之前,一些早期的作品已經有了已經在CAD中提出了MIL架構。Dundar等[24]。引入凸包表示多執行個體特性。應用于肺栓塞和結腸癌的檢測。Xu等人從組織檢測中提取了很多貼片對它們進行映像處理,并将它們作為多執行個體來解決冒号問題癌症分類問題。
為了将MIL合并到深度神經網絡架構工作中,關鍵元件是将不同執行個體的in-formation組合在一起的層,稱為MIL池[26]。一些MPL示例有:最大池層[27]、平均池層[26]、log-sum-exppooling層[28]、廣義平均層[25]和noisy-or layer[29]。如果每個示例的執行個體數都是固定的,那麼也可以使用特性連接配接作為MPL[30]。MPL可以用于組合特性級别[27,28]或輸出級别[29]中的不同執行個體。
D.Noisy-or layer
噪聲或貝葉斯模型(Noisy-or layer Bayesian)被廣泛用于推斷肝病[31]和哮喘病例[32]等疾病的機率。Heckerman[33]基于噪聲門建構了一個多特征、多疾病診斷系統。Halpern和Sontag[34]提出了一種基于噪聲模型的無監督學習方法,并在快速醫學參考模型上進行了驗證。
上述所有研究都将noisy-or model納入貝葉斯模型。然而,noisy-or model和神經網絡的整合是罕見的。Sun等人在深度神經網絡架構中将其作為MPL,提高圖像分類精度。Zhang等[35]将其作為提高目标檢測精度的一種促進方法。
圖二:結節直徑的分布。(一)分布在DSB和LUNA資料集中。(b)的分布惡性良性腫瘤患者和健康患者 的最大結節直徑在DSB資料集中的人。
資料集和預處理
A.資料集
使用兩個肺掃描資料集對模型進行訓練,肺結節分析2016資料集(縮寫為LUNA)和Date Science Bowl 2017訓練集(縮寫為DSB)。LUNA資料集包括888個由放射科醫生标注的患者的1186個結節标簽,而DSB資料集隻包括每個受試者的二進制标簽,表明該受試者在掃描後的一年内是否被診斷為肺癌。DSB資料集包括1397、198、506人(case)在訓練、驗證和測試集。我們在訓練集中手工标注了754個結節,在驗證集中标注了78個結節。
LUNA結節與DSB結節有明顯差異。LUNA資料集有許多非常小的帶注釋的結節,這可能與癌症無關。根據醫生的經驗[36],結節小于6毫米通常不危險。然而,DSB資料集有許多非常大的結節(大于40mm)(圖1中的第五個樣本),DSB資料集中平均結節直徑為13.68mm, LUNA資料集中平均為8.31 mm(圖1)。2)。此外,DSB資料集在主支氣管上有許多結節(圖1中的第三個樣本),這在LUNA資料集中很少發現。如果網絡是經過訓練的僅在LUNA資料集上,很難檢測到在DSB資料集中的結節。缺了大結節就會導緻癌症以錯誤的癌症預測為大結節的存在是癌症患者的标志(圖2b)。應對這些問題是,我們從小于6毫米的地方移除小結節。LUNA标注并手工标注DSB中的結節。作者沒有肺癌的專業知識診斷時,可以選擇結節和手工标注增加相當大的噪音。下一階段的模型(癌症)分類)被設計成對錯誤的檢測是健壯的,這減少了對高度可靠的結節标簽的需求。
B.預處理
整個預處理過程如圖3所示。所有的原始資料首先轉換成Hounsfield Unit(HU),這是描述放射性密度的标準定量标度。每個組織都有其特定的HU值範圍,而這個範圍對于不同的人來說是相同的(圖3a)。
1 )掩模提取:CT圖像不僅包含肺,還包含其他組織,有些可能呈球狀,看上去像結節,為了排除這些幹擾因素,最友善的方法是提取肺掩模,忽略檢測階段的所有其他組織。對于每個切片,用高斯濾波器(标準差= 1像素)過濾二維圖像,然後以-600作為門檻值進行二值化(圖3b)。所有小于
或偏心率大于0.99(對應某些高亮度徑向成像噪聲)的二維連通分量均為移除。然後計算得到的二進制三維矩陣中的所有三維連通分量,隻保留不接觸矩陣角、體積在0.68 L到7.5 L之間的部分。
在這一步之後,通常隻剩下一個與肺對應的二進制成分(指的是肺部和其他組織區分開來了),但有時也會有一些分散注意力的成分。與這些分散注意力的成分相比,肺成分總是在圖像的中心位置。對于每一個切片,我們計算它到圖像中心(MinDist)和它的面積的最小距離。然後我們選擇所有的切片> 6000
的分量,計算平均值MinDist這些片。如果平均的MinDist高于62mm時,該元件被移除。剩下的然後将組成部分統一起來,表示lung mask(圖3.c)。
在某些情況下,肺的頂部切片外部世界相連,這使得上面描述的過程無法将肺與外部世界空間分開。是以,需要先将這些切片删除,才能完成上面的工作處理工作。
圖3:預處理過程。注意到結節貼在肺的外壁。(a)将圖像轉換為HU。(b)門檻值化圖像,(c)選擇與肺對應的連通域,(d)分割左 右肺,(e)計算每個肺的凸包。(f)放大和合并兩個掩模,(g)用掩模将圖像相乘,用組織亮度填充掩模區域,将圖像轉換 為UINT8,(h)裁剪圖像,修剪骨頭的亮度。
2)凸包和擴張:在肺的外壁有一些結節。它們不包含在前面步驟中獲得的mask中,這是不被允許的。為了使它們保持在mask内,一種友善的方法是計算mask的凸包。然而,直接計算面具的凸殼會包含太多不相關的組織(如心髒和脊柱)。是以肺面罩首先被分成兩部分(大約與左右相對應)肺)前凸殼計算采用以下方法。
mask将被反複地腐蝕,直到它被分解成兩個部分(它們的體積會相似),這兩個部分是左右肺的中心部分。然後将這兩個部件放大到原來的尺寸。它們與原始面罩的交彙處現在是兩個肺的mask(圖3 d)。對于每個掩模,大多數2D切片都用它們的凸包替換,以包含上面提到的那些結節(圖)。3 e)。合成的掩模進一步膨脹了10個voxels包括一些周圍的空間。得到一個完整的掩模通過統一兩個肺的口罩(圖3f)。
然而,一些肺下部的二維切片卻有新月形(圖4)。它們的凸包也可能包含在内許多不必要的組織。是以如果a的凸殼的面積。2D掩模比掩模本身的1.5倍大保留原掩模(圖4e)。
3)灰階歸一化:為了準備深度網絡的資料,我們将圖像從HU變換到UINT8。原始資料矩陣首先在[-1200,600]内剪切,然後線性變換為[0,255]。然後乘以上面得到的完整的掩模,掩模外面的所有東西都充滿了170,這是普通組織的亮度。此外,對于前一步中膨脹生成的空間,所有大于210的值也用170替換。因為周圍區域含有一些骨骼(高亮度組織),是以很容易被錯誤地歸類為鈣化結節(也是高亮度組織)。我們選擇将170把骨頭替換,使它們看起來像正常的組織(圖3g)。該圖像在所有三個次元中都被裁剪,是以每邊的邊緣都是10個像素(圖3h)。(我:盡可能的将肺部進行前景提取,為下一步肺結節檢測做鋪墊)
3D CNN FOR Nodule Detection
3D CNN被設計用來檢測可疑的結節。它是RPN的一個3D版本,使用一個修改過的U-net[37]作為骨幹模型。由于該任務隻需要分為兩類(結節和非結節),是以預測的proposals直接作為檢測結果使用,不需要額外的分類器。這類似于一級檢測系統YOLO[14]和ssd[15]。這種結節檢測模型簡稱為N- net,其中N代表結節。
A.patch-based input for training
對象檢測模型通常采用基于圖像的訓練方法:在訓練過程中,整個圖像被用作模型的輸入。然而,由于GPU記憶體限制,這對于我們的3D CNN來說是不可行的。當肺掃描的分辨率保持在一個很好的水準,即使是一個示例也會消耗超過主流的最大記憶體gpu。
為了解決這個問題,我們從肺掃描中提取小的3D patchs,分别輸入到網絡中。patch的大小為128×128×128×1(高×長×寬×通道,使用相同的符号在下面)。随機選擇兩種patch。首先,選擇70%的輸入,使它們包含至少一個結節。第二,30%的輸入是從肺掃描中随機抽取的,可能不包含任何結節。後者的輸入保證了足夠的負樣本的覆寫。
如果一個patch超出了肺掃描範圍,它将被填充為170,與預處理步驟相同。結節目标不一定位于斑塊的中心但是距離更新檔邊界的距離大于12像素(除了一些太大的結節)。
資料增強是用來緩解過度拟合問題的。這些更新檔随機從左到右翻轉,大小在0.8到1.15之間。其他的擴充,如軸交換和旋轉也被嘗試,但這是沒有重要意義改進了
B.Network structure
檢測器網絡由U-Net[37]骨幹和RPN輸出層及其結構如圖5所示。U-Net骨幹網絡使網絡能夠捕獲多尺度資訊,這是必要的,因為結節的大小變化很大。RPN的輸出格式使網絡能夠直接生成proposals。
網絡主幹具有前饋路徑和回報路徑(圖5a)。前饋路徑始于兩個3×3×3卷積層與24通道。然後緊接着是四個3 d殘差塊[38]交叉四3 d max pooling(池大小是2×2×2和,步長等于2)。每個三維殘差塊(圖5b)由三個殘差單元[38]組成。殘差單元的結構如圖5b所示。前饋路徑中的所有卷積核心有一個核心大小為3×3×3和1的填充。
回報路徑由兩個反卷積層和兩個組合單元組成。每個反卷積層的步長為2,核大小為2。每個組合單元連接配接一個前饋blob和一個回報blob,并将輸出發送到一個殘差塊(圖5c)。在左邊的組合單元中,我們将位置資訊作為額外的輸入引入(詳細資訊請參見第IV-C節)。特征映射相結合的單元大小32×32×32×131。緊随其後的是兩個1×1×1的卷積與通道64和15分别導緻的輸出大小32×32×32×15。
四維張量的大小輸出32×32×32×3×5。最後兩個次元分别對應anchors和回歸值。在RPN的啟發下,網絡在每個位置都有三個不同尺度的anchors,對應三個長度為10,30,60的邊框分别為毫米。是以有32×32×32×3 anchor boxes。五個回歸值(
)。第一個用sigmoid激活函數:,其他的不用激活函數。
C.位置資訊
proposal的位置也會影響是否為結節,是否為惡性的判斷,是以我們也會在網絡中引入位置資訊。對于每一個圖像patch,我們計算它對應的位置裁剪,與輸出特征圖(32 32 32 3)一樣大。位置裁剪有3個特征映射,對應于X、Y、Z軸的歸一化坐标。在每個軸上,每個軸上的最大值和最小值分别歸一化為1和-1,對應于分割後肺的兩端。
D.損失函數
用(Gx、Gy、Gz、Gr)表示目标結節的真實的邊界框(bounding box),用(Ax、Ay、Az、Ar)表示anchor的邊界框,前三個元素表示盒子中心點的坐标,最後一個元素表示邊的長度。通過聯合(IoU)來确定每個anchor box的标簽。對于IoU大于0.5和小于0.02的目标結節分别作為陽性和陰性樣本處理。其他的則在訓練的過程中被忽略。預測的機率和标簽anchor box分别用
和p表示。注意,p∈{ 0,1 }(0為負樣本,1為正樣本。對于box的分類loss被定義為:
Bbox回歸的标簽生成:
dx=Gx−AxAr
dy=Gy−AyAr
dz=Gz−AzAr
dr=log(GrAr)
總的回歸損失為:
其中S是smoothes L1-norm function。
最後網絡的訓練loss是:
L=Lcls+pLreg
這個方程表明,回歸損失隻适用于正樣本,因為隻有在這些情況下,p = 1。整體損失函數是一些標明anchor boxes的損失函數的平均值。我們使用正樣本平衡和硬負挖掘進行選擇(參見下一小節)
E.平衡正樣本
對于一個大結節,有許多對應的正錨盒。為了降低訓練樣本之間的相關性,在訓練階段隻随機選取其中一個樣本。
雖然我們已經從LUNA上切除了一些非常小的結節,但結節大小的分布仍然高度不規則。小結節的數目比大結節的數目大得多。如果采用均勻抽樣,經過訓練的網絡将會偏向小結節。這是不需要的,因為大結節通常比小結節更能顯示癌症。是以,大結節的采樣頻率在訓練集中增加,大于30mm和40mm的結節的采樣頻率分别比其他結節高2倍和6倍。
F.Hard negative mining(強制減少負樣本的數量)
負樣本比正樣本多得多。雖然大多數負樣本可以通過網絡進行分類,但也有少數樣本具有與結節相似的外觀,很難進行正确的分類。針對這一問題,采用硬負挖掘技術作為目标檢測的一種常用技術。我們在訓練中使用了一個簡單的線上版本的hard negative mining。
第一,通過将patch輸入到網絡中,我們獲得了輸出映射,它代表了一組具有不同可信度的proposed邊界框。第二,随機抽取N個負樣本形成候選池。第三,該池中的負樣本按其分類置信分數進行降序排序,選取最上面的n個樣本為hard negative。其他負樣品被丢棄,不包括在損失的計算中。使用随機選擇的候選池可以減少負樣本之間的相關性。通過調整候選池的大小和n值,可以控制hard negative mining強度。
G.Image splitting during testing
網絡訓練完成後,整個肺掃描可作為輸入,獲得所有可疑結節。因為網絡是完全卷積的,是以這樣做很簡單。但是對于GPU的記憶體限制是不可行的。即使網絡在測試中比在訓練中需要更少的記憶體,但需求仍然超過GPU的最大記憶體。為了克服這個問題,我們把肺掃描分割成幾個部分(208×208×208×1每一部分),分别處理它們,然後合并結果。我們将這些分割保持在一個較大的範圍内(32像素),以消除卷積計算中不需要的邊界效應。
這一步将輸出許多結節proposed {xi、yi、zi、ri、pi}其中xi、yi、zi代表提案的中心,ri代表半徑,pi代表信心。然後執行非最大抑制(NMS)[39]操作,以排除重疊建議。基于這些建議,另一個模型用于預測癌症機率。
V. CANCER CLASSIFICATION
然後根據所檢測到的結節,對發生癌症的機率進行評估。在N-Net中,每一個subject(案例)都會根據他們的信心分數選出五個proposals。作為一種簡單的資料增強方法,在訓練過程中,随機抽取建議。被選為結節的機率與它的置信分數成正比。但在測試過程中,前五個proposals被直接挑選出來。如果檢測到的proposal的數量小于5個,則使用幾個空白圖像作為輸入,是以仍然是5個。
由于訓練樣本的數量有限,建立一個獨立的神經網絡來實作這一點是不明智的,否則會發生過度拟合。另一種選擇是重用在檢測階段訓練的N-Net。
對于每一個選擇的候選框(proposal),我們都要剪切一個96*96*96*1個patch,它的中心是結節(注意這個patch比檢測階段的輸入要小),把它喂給N-Net,然後得到N-Net的最後一個卷積層,它的大小是。24*24*24*28。每個proposals的中央2*2*2個voxels被提取并進行了max-pooled,結果是一個128-D的特性(圖6a)。為了從單個病例的多個結節中獲得單分,我們探索了四種內建方法(見圖6b)。(接下來的A,B,C,D,方法)
A. feature combining method(特征組合方法)
首先,前5個結節的特征都被輸入到一個完全連接配接的層中,進而産生5個64-D特征。然後結合這些特性,通過max-pooling提供單個的64-D特性。然後将特征向量輸入第二個全連通層,激活函數為sigmoid函數,得到病例的癌症機率(圖6b左面闆)。
這種方法可能會有用,如果存在一些非線性互相作用的結節。缺點是在內建步驟中缺乏可解釋性,因為每個結節與癌症機率之間沒有直接的關系。
圖5:結節檢測網絡。(a)整體網絡結構。圖中的每個立方體代表一個4D張量。圖中隻顯示了兩個次元。立方體内的數字表示空間大小(Height=Width=Length)。立方體外的數字表示通道的數量。(b)殘差塊的結構。(c)在(a)中左合并單元的結構。右合并單元的結構相似,但沒有定位剪切。
B.MaxP method
所有前5個節點的特征都分别輸入到同一兩層感覺器中,包含64個隐藏單元和一個輸出單元。最後一層的激活函數也是sigmoid函數,它輸出是每個結節的癌症機率。然後将這些機率的最大值作為這種情況的機率。
與特征組合方法相比,該方法為每個結節提供了可解釋性。然而這種方法忽略了結節之間的互相作用。例如,如果一個病人有兩個同時具有50%癌症機率的結節,醫生會推斷總體癌症機率遠遠大于50%,但模型仍會給出50%的預測。
C.Noisy-or method
為了克服上述問題,我們假設結節是獨立的癌症病因,任何一個人的惡性惡性良性腫瘤都會導緻癌症。與最大機率模型一樣,每個結節的特征首先被輸入到一個雙層感覺器中,得到機率。最終的癌症機率為[13]:
Pi表示第i個結節的癌症機率
D.Leaky Noisy-or method
在噪聲方法和MaxP方法中存在一個問題。如果受試者患有癌症,但檢測網絡漏掉了一些惡性結節,這些方法會将癌症的原因歸為被檢測到但為良性的結節,這将增加資料集中其他類似良性結節的機率。顯然,這沒有道理。我們引入一個假想的假瘤,并将Pd定義為其癌症機率[13]。最終的癌症機率為:
Pd是在訓練過程中自動學習的,而不是手動調整。這個模型被用作我們的預設模型,叫做C- net (C代表case)。
圖6:案例分類器的說明。(a)得到proposals和proposals特征的流程。(b)不同的多節點資訊內建方法。
E.訓練步驟
用标準的交叉熵損失函數進行分類。由于記憶體的限制,預先生成每個病例的結節的邊界框。分類器,包括共享特征提取層(N-Net部分)和內建層,然後在這些預先生成的邊界框中進行訓練。由于N-Net較深,三維卷積核的參數比二維卷積核多,但分類樣本數量有限,模型往往會對訓練資料的拟合過度。
為了解決這個問題,采用了兩種方法:資料增強和交替訓練。3D資料增強比2D資料增強更強大。例如,如果我們隻考慮翻轉和軸交換,在2D情況下有8個變量,而在3D情況下有48個變量。具體地說,采用了以下的資料增強方法:(1)随機翻轉3個方向(2)在0.75和1.25之間随機調整大小,(3)以任何角度在三維中旋轉,(4)向3方向移動,随機距離小于半徑的15%。另一種常用的緩解過度的方法是使用一些适當的regulizer。在這個任務中,因為卷積層是由檢測器和分類器共享的,是以這兩個任務可以很自然地互相轉換。是以我們在檢測器和分類器上交替訓練模型。
訓練過程是相當不穩定的,因為批量大小隻有2 / GPU,還有很多訓練集的離群值。是以梯度剪裁是用于後期的訓練,即如果梯度向量的l2範數大于1,這将是标準化為1。(有點問題)
網絡中使用了批标準化(BN)[40]。但是在交替訓練中直接應用它是有問題的。在訓練階段,在批進行中計算BN統計量(激活的平均值和方差),在測試階段,使用存儲的統計量(運作的平均統計量)。替代訓練方案将使運作平均不适合分類器和檢測器。首先,它們的輸入樣本不同:分類器的patch尺寸為96,檢測器的patch尺寸為128。其次,貼片的中心一直是分類器的建議,但是圖像是随機裁剪的。是以,對于這兩個任務來說,平均統計資料是不同的,運作的平均統計資料可能位于中間點,并會在驗證階段影響它們的性能。為了解決這一問題,我們首先對分類器進行訓練,使BN參數适合于分類。然後在交替訓練階段,這些參數被當機,即在訓練和驗證階段,我們使用存儲的BN參數。
總之,教育訓練過程有三個階段:(1)把權重從訓練有素的探測器和訓練分類器在标準模式下,(2)訓練分類器與梯度剪裁,然後當機BN參數,(3)訓練網絡的分類和檢測交替梯度剪裁和BN存儲參數。這個訓練計劃對應一個表I中的A→B→E。
VI.結果
A.結節定位
由于我們的檢測子產品在訓練過程中忽略了非常小的結節,是以LUNA16評價系統不适合對其性能進行評價。我們對DSB的驗證集進行了性能評估。它包含198個病例的資料,并且有71個(7個小結節小于6毫米)的結節總數。自由響應工作特性曲線如圖7a所示。1/ 8,1 / 4,1 /2、1、2、4、8次掃描的平均召回率為0.8562。
我們還調查了在選擇不同的top-k數字時的召回情況(圖7b)。結果表明,k = 5足以捕獲大部分結節。
B.case classification
為了選擇訓練方案,我們重新安排了訓練集和驗證集,因為我們發現原始的訓練和驗證集有顯著差異。使用原訓練集的四分之一作為新的驗證集,其餘的與原驗證集結合形成新的訓練集。
VII.讨論
提出了一種基于神經網絡的肺癌自動診斷方法。一個3D CNN被設計用來檢測結節和leaky noisy-or model 評估每一個檢測到的結節的癌症機率,并将它們結合在一起。整個系統在一個基準競賽中在癌症分類任務上取得了很好的成績。
該方法在醫學圖像分析中具有廣泛的應用前景。許多疾病的診斷都是從圖像掃描開始的。圖中顯示的病變可能與疾病有關,但關系不确定,與本文所研究的癌症預測問題的情況相同。leaky noisy-or model 可以用來整合來自不同病竈的資訊來預測結果。它還減少了對高精度精細标簽的需求。
将三維CNN應用于三維目标檢測和分類面臨兩個難題。首先,當模型大小增長時,模型占用了更多的記憶體,是以運作速度、批處理大小和模型深度都是有限的。我們設計了一個較淺的網絡,用圖像塊代替整張圖像作為輸入。其次,三維CNN的參數個數明顯大于二維CNN,結構相似,是以模型容易對訓練資料進行過度拟合。采用資料增強和交替訓練的方法來解決這一問題。
有一些潛在的方法來提高所提模型的性能。最直接的方法是增加訓練樣本的數量:1700個病例太少,不足以涵蓋所有結節的變異,而一個經驗豐富的醫生在他的職業生涯中會看到更多的病例。其次,合并結節的分割标簽可能有用,因為研究表明,分割和檢測任務的協同訓練可以提高兩項任務的性能。
雖然很多團隊在這次癌症預測比賽中取得了不錯的成績,這項任務本身對臨床有一個明顯的限制:不考慮結節的增長速度。
事實上,生長迅速的結節通常是危險的。要檢測生長速度,需要在一段時間内多次掃描患者,并檢測所有結節(不僅是大結節,也包括小結節),并将其按時間排列。雖然本文提出的方法對小結節的檢測精度不高,可以為此目的修改它。例如,可以添加另一個取消池層來合并更精細的資訊并減少anchor的大小。