張戰成,張大龍,羅曉清
(1. 蘇州科技大學電子與信息工程學院,江蘇蘇州215009; 2. 江南大學物聯網工程學院,江蘇無錫214122)
(*通信作者電子郵箱cimszhang@163.com)
肺癌是所有癌癥中的頭號癌癥。在所有惡性腫瘤中,有著13%的高病發率和19.5%的高死亡率[1]。肺癌晚期的五年生存率僅有16%,但是如果可以在早期確診,五年生存率可以提高到70%左右[2]。肺癌早期的表現為結節形式,肺部結節是肺內呈不規則和近圓形的病灶區域。在這些病灶區域中,有30%左右表現為陽性,因此肺結節檢測對肺癌早期的發現至關重要。低劑量CT(Computed Tomography)是篩查肺結節有效手段,由于放射科醫生每天需要閱讀大量的CT 圖像,再加上其主觀因素的影響,放射科醫生標記肺結節的準確率也僅為74.9%[3]。基于機器學習技術輔助醫生進行肺結節的標識和定位,可以大大減少醫生的工作量。基于醫學影像庫中醫生已經標注的數據,設計目標檢測算法,自動進行肺結節檢測和識別是人工智能技術和醫學影像技術交叉融合的典型應用。
傳統的肺結節檢測主要分為結節檢測(定位)和假陽性的去除(分類)兩個步驟。其中結節檢測是提取候選病變區域(Candidate lesion regions)即感興趣區域(Region Of Interest,ROI)。提取候選病變區域是為了快速找出疑似病變的區域,縮小范圍,保證下一步的分類精度,但是難以避免會有許多假陽性的區域[4]。完成了候選區域的定位后,下一步就是對所選區域進行結節的分類即假陽性的去除。其中,設計有效的特征提取算法和分類器是影響肺結節良惡性判別精度的關鍵技術。
Lakshmi等[5]基于面積、堅固度、離心率、等效直徑、周長、長軸長度、短軸長度、最小強度、最大強度和平均強度等特征設計了一種基于特征的分類器來去除非結節候選者,來達到結節分類的目的。Choi 等[6]在提取候選區域結節后,選擇2D幾何特征、基于2D 灰度的統計特征、3D 幾何特征、基于3D 灰度的統計特征這4 種類型特征來對候選區域結節進行分類。文獻[5-6]使用人工構造特征來對肺結節進行檢測,但是人工構造的特征不具有魯棒性,難以解決肺結節形態特征多樣性的問題。Setio 等[7]選用多視角卷積網絡進行肺結節檢測,設計3 個候選結節檢測器(大結節、半實性結節、實性結節)通過卷積神經網絡學習具有區別能力的特征。van Ginneken 等[8]使用Overfeat 網絡作為卷積神經網絡的特征提取器,來獲得肺部CT 圖片中結節的特征,將Overfeat 網絡的最后一層用SVM 替換,實現對結節的分類。苗光等[9]使用改進的2D Unet 網絡來預測候選病變區域,然后通過3D 卷積神經網絡進行假陽性的去除。文獻[7-9]雖然使用了卷積神經網絡來學習結節特征,有效地解決了人工構造特征不具有魯棒性的問題,但是卷積網絡學習的特征對醫師來說不具有可解釋性,當醫師看到模型預測的結果時,整個模型的判別過程中的研判準則是不可見的。由于醫師審閱肺部CT圖像時,會根據紋理(Texture,Tex)、細致度(Subtlety,Sub)、毛刺征(Spiculation,Spi)、圓度(Sphericity,Sphe)、邊界(Margin,Mar)、分葉征(Lobulation,Lob)、內部結構(Internal Structure,IS)以及鈣化(calcification,Cal)等表征語義特征來對肺結節定位和分類。Chen 等[10]以感興趣區域作為輸入,通過卷積神經網絡(Convolutional Neural Network,CNN)的特征提取器、堆疊降噪自動編碼器(Stacked Denoising AutoEncoder,SDAE)的特征提取器和隨機Haar 特征來對紋理、細致度、鈣化、內部結構、分葉征、邊界、圓度、毛刺征等語義特征進行自動評級,發現這些語義特征和肺結節的分類之間有較好的回歸關系。但如何將這些語義特征用于肺結節的檢測,或對檢測結果進行語義解釋暫未見報道。本文提出了一種帶有語義特征得分的肺結節檢測模型,通過Faster R-CNN(Region-CNN)[11]的共享卷積層對肺結節進行定位和分類,并輸出陽性結節的語義特征的描述,在提高肺結節識別和定位精度的同時,方便醫生基于語義特征對結節進行復核。
目前在目標檢測領域中,主流的元架構(Meta Architecture)模型有Faster R-CNN、單步多框檢測(Single Shot multibox Detector,SSD)[12]、基于區域的全卷積網絡(Regionbased Fully Convolutional Networks,R-FCN)[13]等。在使用相同的特征提取器網絡(Feature Extractor,如VGG16、ResNet-101、MobileNet、Inception V2、Inception V3、Inception ResNet V2[14]等)下,Faster R-CNN 模型的準確率最高[15],因此本文選用Faster R-CNN 作為肺結節檢測的網絡模型,完成結節的定位與分類任務。
在這些元架構中,首先使用特征提取器網絡從輸入圖像中獲得多維特征,因此特征圖提取器中卷積的大小和參數的數量將直接影響到元架構的性能。文獻[15]比較了主流的特征學習網絡,結果顯示,由殘差網絡(Residual Network)[16]和Inception 網絡[17]組合而成的Inception ResNet V2 網絡可以大大提高元架構的性能。隨著網絡深度的增加,模型會出現梯度消失和網絡退化的問題,殘差網絡通過短鏈接可以很好地解決這問題。同樣地隨著網絡深度的增加,卷積核數量也勢必增加,卷積參數量也會相應增加,Inception 網絡使用1×1 的小卷積來代替原有的卷積核,從而達到加快訓練速度的目的。因此本文選取Inception Resnet V2 網絡作為Faster R-CNN 的特征提取器網絡。
傳統的Faster R-CNN 由3 個子網絡構成:特征提取器網絡、區域建議網絡(Regional Proposal Network,RPN)和Fast RCNN。與Faster R-CNN 不同,本文模型不僅改進了RPN,而且還在改進的RPN 和Fast R-CNN 中各加入了語義特征網絡。具體流程如圖1 所示,本模型以肺部CT 圖像作為輸入,通過特征提取器網絡對圖像進行特征的提取,輸出一系列特征圖。在改進的RPN 中,以特征圖作為輸入,使用滑動窗口在特征圖上進行滑動操作,得到若干個錨盒(Anchor),然后對錨盒進行邊框回歸、前背景分類、語義特征得分,最后得到帶有語義特征得分的感興趣區域。在Fast R-CNN 中,以特征圖和帶有語義特征得分的感興趣區域作為輸入,經過ROIPooling,對感興趣區域的位置和語義特征得分進行微調,并完成結節良惡性的分類。

圖1 本文模型的肺結節檢測流程Fig. 1 Flow chart of pulmonary nodule detection in the proposed model
1.1.1 改進的RPN
改進的區域建議網絡將特征提取器網絡中最后一層特征圖(Feature map)作為該網絡的輸入,通過1×1 的卷積核在特征圖上的每個像素點進行滑動,產生一系列的滑動窗口。對每一個滑動窗口,按照面積比為0.25、0.5、1、2,長寬比為0.5、1、2 的組合生成12 個錨盒(Anchor),如表1 所示,每個像素點的大小為1×1,面積為1,面積比為錨盒面積與像素點面積之比,具體示意圖如圖2 所示。在LICD/IDRI 數據集中,一共標注了7 371 個結節,其中大于3 mm 的結節有2 669 個,小于3 mm 的結節有4 702 個。在大于3mm 的結節中,大部分集中在3~20 mm,因此肺結節檢測屬于小目標檢測。針對小目標檢測,本文在與Faster R-CNN 的9 個錨盒的基礎上增加了面積比為0.25的3個錨盒,防止出現漏檢的情況。
本文最后一層特征圖的維度為17×17×1 088,通過滑動操作后,每個特征圖上都有3 468(17×17×12)個錨盒。然后根據錨盒與真實框的IOU(Intersection Over Union)大小,將IOU 大于0.7 的當作正樣本,把IOU 小于0.3 的當作負樣本,按照正負樣本1∶1的比例,選取128個正樣本和128個負樣本。

表1 1個像素點中12個錨盒的大小Tab. 1 Sizes of 12 anchor boxes in 1 pixel

圖2 1個像素點中12個錨盒的示意圖Fig. 2 Schematic diagram of 12 anchor boxes in 1 pixel
1.1.2 語義特征網絡
本文分別在改進的RPN 和Fast R-CNN 中增加了語義特征網絡,在改進的RPN 中,使用三層卷積核對語義特征進行學習。具體訓練過程中的參數如表2 所示,以錨盒為輸入,依次使用3×3×512、3×3×512、1×1×1 024 三個卷積核,在卷積操作中,將Padding 設置為SAME,不會改變卷積前后特征圖的大小,最后輸出為1×1×96(12×8)的特征值。其中“12”代表12個錨盒,“8”代表8個語義特征的預測得分。

表2 RPN中的語義特征網絡Tab. 2 Semantic feature network in RPN
在Fast R-CNN 中,語義特征網絡的輸入為改進的RPN 的輸出即若干個感興趣區域(ROI),使用3 個1×1×1 024 的卷積層進行特征學習,最后輸出為帶有8 個語義特征得分的全連接層。Fast R-CNN 中的語義特征網絡如圖3 所示,圖中ROI 經過與語義特征網絡后,8 個語義特征得分分別為5,1,6,4,4,1,1,5。

圖3 Fast R-CNN中的語義特征網絡Fig. 3 Semantic feature network in Fast R-CNN
本文模型的損失函數主要由肺結節類別損失、肺結節位置損失和肺結節8 個語義特征得分的損失3 部分組成,3 個損失的計算公式:



在肺結節位置損失和語義特征得分損失中,R是smooth L1函數。計算公式為:

相比smoothL2 函數,smoothL1 函數可以有效地防止梯度爆炸問題的出現,更具有魯棒性。具體計算公式為:

式(5)中,在肺結節位置損失中x=ti-,在語義特征損失中x=ci-。
在訓練時,由于肺部CT 圖像的大小為512×512,為了提高模型的梯度下降速度即提升模型的收斂速度,本文使用了min-max歸一化方法。在訓練之前,本文使用了遷移學習中的部分遷移,具體方法是將在COCO 數據集上訓練好的網絡參數遷移到本模型中。本文在訓練時,使用聯合訓練法,讓改進的RPN 和Fast R-CNN 實現卷積層的權值共享,單獨訓練語義特征網絡。具體訓練方法如下:
步驟1 用COCO 數據集上訓練好的模型初始化,訓練改進的RPN 和RPN 中的語義特征網絡,但是在反向傳播時,語義特征網絡只傳播到表2 中錨盒的位置,不會影響RPN 和特征提取器網絡中的卷積層參數。
步驟2 用COCO 數據集上訓練好的模型初始化,使用上一步RPN 產生的區域建議作為輸入,訓練Fast R-CNN 和Fast R-CNN 中的語義特征網絡。同樣在反向傳播時,語義特征網絡只傳播到圖3 中ROI 的位置,不會影響Fast R-CNN 和特征提取器網絡中的卷積層參數。
步驟3 用步驟2 訓練好的特征提取器網絡來初始化改進的RPN 和語義特征網絡,但是此時只訓練改進的RPN 和語義特征網絡,不訓練特征提取器網絡。此時改進的RPN 和Fast R-CNN共享了特征提取器網絡的卷積層。
步驟4 固定特征提取器網絡和RPN,將RPN 輸出的區域建議作為Fast R-CNN 和語義特征網絡的輸入,訓練Fast RCNN和語義特征網絡。
為了防止過擬合問題的出現,本文將原肺部CT圖進行了90°、180°、270°的水平翻轉和dropout 策略[18]。為了防止梯度出現大幅度變化的問題,本文使用了梯度閾值法(clip gradient),具體訓練參數如表3所示。

表3 參數設置Tab. 3 Parameter setting
本文網絡在Tensorflow 框架下進行訓練,處理器為Intel Core i7-6850K CPU @3.60 GHz*12,內存為11 GB,GPU 顯卡為1080Ti。在此配置環境下,訓練一次(90 000 步)花費的時間大約為9 h,每一步消耗的時間為0.6 s。
本文使用LICD/IDRI[19]作為測試和訓練的數據集。它是由美國密歇根大學、愛荷華大學、芝加哥大學、加利福尼亞大學、康奈爾大學威爾醫學院共同創建了肺部圖像數據庫聯盟(Lung Image Database Consortium,LIDC)[20]。為了進一步研究肺部疾病,美國衛生研究院在2004 年創建了圖像數據庫資源計劃(Image Database Resource Initiative,IDRI)。2011 年LIDC/IDRI 影像數據庫建立,這是當今世界最大的肺結節數據庫[21]。
LIDC/IDRI 數據集只對大于3 mm 的結節有9 個結節語義特征的得分,但是“惡性腫瘤(malignancy)”的語義特征與醫生診斷有關,因此本文不使用“惡性腫瘤”這個語義特征[22]。在剩下的8個語義特征中,除了“內部結構”的得分范圍在1~4分和“鈣化”的得分范圍在1~6分外,其他5個語義特征的得分范圍均在1~5。由于本數據集上肺部CT 圖片是經過切片后的2D圖片,部分圖片的語義特征不顯著,所以在LIDC/IDRI數據集上選取7 700張有準確的語義標注的CT 圖片。下文的實驗結果均通過10-折交叉驗證所得平均結果。
在肺結節定位中,本文使用了PASCAL VOC 數據集的評價指標即預測位置面積與真實位置面積的IOU,其中IOU 的閾值為0.5。在肺結節良惡性檢測中,由于肺結節分類(良性或者惡性)是個二分類問題,因此樣本可根據模型預測類別和真實類別的組合,將其分為真陽性(true positive)、假陽性(false positive)、真陰性(true negative)、假陰性(false negative)。最后使用了準確率、敏感性、特異性及AUC 這四個指標來衡量模型的檢測效果。其中:
1)準確率(Accuracy Rate,AR):模型正確分類的樣本數占總樣本數的比例。
2)敏感性(True Positive Rate,TPR):模型識別出的陽性樣本數(真陽性)占所有陽性樣本數(真陽性和假陰性的總和)的比例。
3)特異性(True Negative Rate,TNR):模型識別出的陰性樣本數(真陰性)占所有陰性樣本數(假陽性和真陰性的總和)的比例
4)AUC:它是ROC(Receiver Operating Characteristic)曲線下的面積。AUC的值越接近1,代表模型的檢測效果越好。
5)在8 個語義特征得分中,使用模型預測分數與醫生標注分數的平均絕對誤差和標準差作為評價標準。
在LIDC/IDRI 數據集中每張CT 圖片至少會被兩名放射醫生進行審閱并標注。即使面對同一個結節,由于放射醫生經驗的差異,得到8個語義特征的得分也會有所差異。如圖4所示,四位放射醫生在“毛刺征”語義特征中標注的分數分別為(5,2,3,4),本文方法預測的分數為3.56。由此可以看出語義特征的得分具有模糊性。

圖4 CT照片中的肺結節Fig. 4 Pulmonary nodules in CT photos
為了評價本文模型關于8 個語義特征的預測結果,本文使用放射醫生之間標注結果的差異作為對比的評估參考[23]。由表4 的語義特征結果的對比實驗中可以看出,醫生標注結果的差異為兩兩醫生之間標注分數的平均絕對誤差+標準差,同理本文的標注結果與醫生的差異形式同樣表現為標注分數的平均絕對誤差標準差。分析表4 可以得出,本文結果和醫生的誤差與醫生間的誤差非常接近,其中本文結果在“細致度”“圓度”“邊界”這3 個語義特征中表現突出。相較于Chen等[10]的結果,本文在“細致度”“分葉征”“邊界”“鈣化”“圓度”“紋理”的語義特征中預測中更為準確。
在肺結節定位對比中,將本文模型測試結果與Faster RCNN、Multi-View CNN 對比,對比實驗如表5 所示。由表5 可知,由于改進了Faster R-CNN 中的RPN,本文模型肺結節定位的精度比Faster R-CNN 提高了3.3%,比Multi-View CNN 提高了1.1%。

表4 肺結節8個語義特征得分結果的對比Tab. 4 Comparison of scores on 8 semantic features of pulmonary nodules

表5 不同模型中肺結節定位的檢測結果 單位:%Tab. 5 Detection results of pulmonary nodule localization in different models unit:%
表6列出了肺結節良惡性分類的對比結果。由表6可知,當肺結節定位精度提高時,肺結節良惡性分類的敏感性和準確率顯著提高。

表6 不同模型中肺結節良惡性分類的檢測結果 單位:%Tab. 6 Detection results of benign and malignant classification of pulmonary nodules in different models unit:%
進一步用ROC曲線綜合評估各模型的差異,如圖5所示,實線是本文模型的ROC 曲線及AUC 值,虛線圖形為Faster RCNN 的ROC 曲線及AUC 值,點線圖形為RUSBoost 的ROC 曲線及AUC 值。比較3 個AUC 值,發現本文模型結果優于Faster R-CNN 與RUSBoost。因此本文在Faster R-CNN 的基礎上加入語義特征得分的網絡時,不僅提高了肺結節的定位和分類效果,與此同時還對陽性結節伴有語義特征的得分。有了語義特征的得分,對模型預測出的陽性結節的定位更具有解釋性。

圖5 不同模型的ROC曲線及AUCFig. 5 ROC curves and AUC of different models
針對Faster-RCNN 檢測肺結節時缺少醫生普遍關注的語義特征問題,設計了嵌入語義特征網絡的肺結節檢測網絡,實現了對肺結節檢測的同時增加語義解釋。針對肺結節小目標檢測的問題,改進了Faster-RCNN 中RPN 的錨盒機制,使其更適合小目標檢測。提出的具有語義解釋的目標檢測模型可以很容易地擴展到醫學圖像中的其他檢測任務,對計算機輔助診斷具有重要作用。如何進一步使用3D 卷積核提高結節的分類精度和語義解釋的精度是下一步的工作。