楊昆,羅萍,呂一品,閆惟娜,吳海濤,劉爽,薛林雁
(1.河北大學(xué) 質(zhì)量技術(shù)監(jiān)督學(xué)院,河北 保定 071002;2.河北大學(xué) 計量儀器與系統(tǒng)國家地方聯(lián)合工程研究中心,河北 保定 071002)
骨折是指骨結(jié)構(gòu)的連續(xù)性完全或部分?jǐn)嗔眩砂l(fā)生于所有年齡段.骨折可由暴力作用、積累性勞損或骨骼疾病等因素導(dǎo)致.大部分骨折表現(xiàn)為局部疼痛、腫脹及功能障礙,嚴(yán)重骨折和多發(fā)性骨折則會導(dǎo)致休克,危及生命.臨床上常用的骨折檢測方法有3種:X線檢查、計算機斷層掃描(computed tomography,CT)檢查、核磁共振成像(magnetic resonance imaging,MRI)檢查,每種檢查得到的圖像各有優(yōu)劣.其中X線檢查成本最低、應(yīng)用最廣,但是X線圖像經(jīng)常伴有輕微模糊、灰度分布不均勻、圖像信息缺失等缺點,在臨床診斷時極易出現(xiàn)偏差,造成漏診和誤診.
近年來,隨著計算機科學(xué)的發(fā)展和計算機硬件的不斷升級,計算機輔助診斷(computer-aided diagnosis,CAD)系統(tǒng)已經(jīng)廣泛應(yīng)用于醫(yī)學(xué)圖像的分析和處理[1].人工智能特別是深度學(xué)習(xí)算法的興起,使得研究人員利用卷積神經(jīng)網(wǎng)絡(luò)(convolution neural network,CNN)實現(xiàn)了乳腺癌[2]、腦瘤[3]和肺結(jié)節(jié)[4]等多種疾病的計算機輔助診斷.目前,深度學(xué)習(xí)算法也已經(jīng)廣泛應(yīng)用于不同部位的骨折圖像分析,包括牙齒[5]、肱骨[6]、肋骨[7]、髖關(guān)節(jié)[8]、大腿[9]、踝關(guān)節(jié)[10]等.這些研究不僅包括對骨折的判斷、定位識別及部位分類,也包括骨折風(fēng)險的評估.
然而,與其他部位相比,手部骨骼眾多,掌指骨骨折不僅易多發(fā)、并發(fā),而且目標(biāo)較小,給放射科醫(yī)生增加了大量的閱片工作,并且由于掌指骨骨折檢測多為小目標(biāo)檢測,所以對目標(biāo)定位與識別精度有較高的要求.本文提出了一種改進的Faster R-CNN掌指骨骨折檢測方法,實現(xiàn)了對手部骨骼X線圖像中的骨折部位的精準(zhǔn)識別和定位,并以獲得的相關(guān)掌指骨骨折的數(shù)據(jù)集對模型進行訓(xùn)練、驗證以及測試.
Faster R-CNN[11]是目標(biāo)檢測領(lǐng)域中一個卓越的神經(jīng)網(wǎng)絡(luò)模型,主要由區(qū)域生成網(wǎng)絡(luò)(region proposal network,RPN)和Fast R-CNN 2個模塊組成.其中,RPN是一個全卷積神經(jīng)網(wǎng)絡(luò)[12],代替了R-CNN和Fast R-CNN中的選擇性搜索(selective search,SS)算法[13],所獲得的圖像質(zhì)量較高,減少了時間的消耗,并且生成的區(qū)域特征可以與其他檢測模塊自由共享,不需額外轉(zhuǎn)換.Fast R-CNN[14]采用了感興趣區(qū)域池化(region of interest pooling,ROI pooling)對感興趣區(qū)域(region of interest,ROI)重新調(diào)整,輸入到全連接層中.錨框(anchor)機制是在Faster R-CNN中首次提出的,是RPN的重要組成部分.一般來說,目標(biāo)檢測大多是基于錨定的方法,通常在特征圖上的每個點附近設(shè)置一系列具有不同尺度的固定參考框,每個參考框用來檢測與其交并比(intersection over union,IOU)大于閾值的目標(biāo),不需要多尺度遍歷滑窗,大大減少了所消耗的時間.
本文所設(shè)計的網(wǎng)絡(luò)架構(gòu)基于Faster R-CNN,圖1顯示了新網(wǎng)絡(luò)的整體框架.首先,通過橫向連接和上采樣,從骨干網(wǎng)絡(luò)每個階段的最后一層建立一個具有5個不同尺度的特征金字塔(feature pyramid network,FPN);然后使用GA_RPN 模塊生成可學(xué)習(xí)和可變形的錨,并將FPN中的特征映射分別送入各自的RPN中,該網(wǎng)絡(luò)同時在每個像素位置提供對象建議;最后ROI Pooling層將任意感興趣區(qū)域中的特征轉(zhuǎn)換成具有固定空間范圍的特征映射,裁剪后的特征映射使用Fast R-CNN分類器進行分類預(yù)測和邊界框預(yù)測,以預(yù)測骨折位置和細(xì)化生成區(qū)域.
在目標(biāo)檢測領(lǐng)域中,無論單階段還是雙階段檢測器,都廣泛使用了錨框機制.常見的生成錨框的方式是滑動窗口方法.2019年Wang等[15]提出了一種新的錨框生成方法——導(dǎo)向錨定,該方法利用語義特征來引導(dǎo)錨定,預(yù)測可能存在感興趣對象的中心點以及不同位置的比例和縱橫比.實驗表明,在MS COCO數(shù)據(jù)集上使用導(dǎo)向錨定,將RPN的召回率提高9.1%,而錨點減少90%.
圖1 網(wǎng)絡(luò)整體框架Fig.1 Overall network framework
在掌指骨骨折X線圖像中,一般只有1處骨折,且骨折部位比較小,如圖1右上角輸入圖片所示.該圖片尺寸為617×749像素,而骨折處邊框的大小只有58×83像素,這意味著會產(chǎn)生大量無用的錨框.傳統(tǒng)的錨框是預(yù)先設(shè)定的,尺寸和比例固定,在檢測這種骨折時效率較低,而GA機制則是根據(jù)網(wǎng)絡(luò)觀察到的圖像特點靈活地生成任意尺寸和任意位置的錨框,效率明顯提高.在GA機制中,物體的位置和形狀可以用(x,y,w,h)形式的四元組來表示,假設(shè)要從給定的圖像I中圈出一個物體,那么其位置和形狀可以被視為以I為條件的條件分布,表示為
p(x,y,w,h|I)=p(x,y|I)p(w,h|x,y,I),
(1)
其中,(x,y)表示物體中心坐標(biāo);w表示寬度;h示示高度.
根據(jù)公式(1),設(shè)計了錨框生成模塊,如圖2所示.該網(wǎng)絡(luò)模塊包含NL和NS2個分支,分別用于檢測目標(biāo)的位置和形狀預(yù)測.假設(shè)給定一張圖片,首先提取特征映射,然后位置預(yù)測分支生成位置的可能圖,形狀預(yù)測分支生成與位置相關(guān)的形狀,通過選擇概率高于閾值的位置和形狀來生成錨點集合.同時,由于錨的形狀不同,不同位置的特征應(yīng)當(dāng)顯示不同范圍內(nèi)的可視內(nèi)容,因此同時設(shè)計了特征自適應(yīng)模塊,該模塊可以根據(jù)錨點的形狀對特征進行自適應(yīng).該模塊的工作過程為:首先形狀預(yù)測分支中輸出預(yù)測的一個偏移量,然后對其進行可變形卷積,在自適應(yīng)特征的基礎(chǔ)上進一步分類預(yù)測和邊界框預(yù)測.
特征金字塔網(wǎng)絡(luò)是Lin等[16]提出的一種用來處理目標(biāo)檢測中多尺度變化問題的網(wǎng)絡(luò)結(jié)構(gòu).圖1所示的FPN網(wǎng)絡(luò)構(gòu)架依賴于自上而下的路徑和橫向連接的方法.骨干網(wǎng)絡(luò)每個階段的最后一層輸出特征映射{C1,C2,C3,C4,C5}用來構(gòu)建金字塔結(jié)構(gòu),自上而下的路徑是通過對較低分辨率的特征圖進行上采樣生成較高分辨率的特征映射.P5由C5的1×1卷積運算生成,P2、P3、P4的生成依賴于C2、C3、C4的橫向連接,每個橫向連接都使用1×1 的卷積核,并通過元素累加的方式合并自上而下路徑和自下而上路徑空間大小相同的特征映射.最后生成的特征映射P2、P3、P4、P5分別與C2、C3、C4、C5具有相同的空間大小.通過這種方法,可以在原始二維圖像上增加一個維度深度,從而將自下而上和自上而下的方法相融合,獲得較強的語義特征,提高了掌指骨骨折檢測的準(zhǔn)確性.
圖2 導(dǎo)向錨定和特征調(diào)整的流程Fig.2 Process of guided anchoring and feature adjustment
一個目標(biāo)檢測器需要完成目標(biāo)分類和定位2個任務(wù),因此總體訓(xùn)練目標(biāo)可看作是多任務(wù)的訓(xùn)練和優(yōu)化,可以用公式(2)表示
Lp,u,tu,v=Lcls(p,u)+λ[u≥1]Lloc(tu,v),
(2)
其中,Lcls和Lloc分別為分類和定位的損失函數(shù);p為預(yù)測值;u為目標(biāo)值;tu為類u對應(yīng)的回歸結(jié)果;v為回歸目標(biāo);λ為調(diào)整多任務(wù)學(xué)習(xí)中的損失權(quán)重.
對于復(fù)雜的多任務(wù)損失計算,Kendall等[17]提出了一種通過網(wǎng)絡(luò)直接預(yù)測權(quán)重的方法,從預(yù)測不確定性的角度將貝葉斯框架引入深度學(xué)習(xí),并根據(jù)當(dāng)前每個損失分量的大小自動設(shè)置權(quán)重.對于一般的簡單組合損耗計算,可以通過調(diào)整超參數(shù)來實現(xiàn).由于在訓(xùn)練過程中,較少的離群值(outliers)貢獻了約70%的梯度,而更多的內(nèi)點(inliers)只貢獻了約30%的梯度,因此,需要平衡相關(guān)任務(wù)和樣本才能達到最優(yōu)收斂.Pang等[18]提出了Libra R-CNN,指出目標(biāo)檢測的不平衡分別存在于樣本層、特征層和目標(biāo)層,其中,樣本層是難易以及正負(fù)樣本的不平衡,特征層是低層與高層特征利用的不平衡,目標(biāo)層是分類和定位的不平衡.
為了解決分類和定位不平衡的問題,基于Balanced L1 Loss進行平衡學(xué)習(xí),其主要思想是提高重要部分的回歸梯度,從而重新平衡所涉及的樣本和任務(wù),在分類、整體定位和精確定位方面實現(xiàn)更均衡的訓(xùn)練.梯度公式設(shè)計如公式(3)
(3)
其中α控制著內(nèi)點梯度的上升,在不改變離群值的情況下提高了內(nèi)點的梯度.通過調(diào)整回歸誤差的上界,γ可以使不同的任務(wù)更加均衡.因此α和γ分別從樣本級別和任務(wù)級別控制平衡,2個因素相互加強,實現(xiàn)更均衡的訓(xùn)練.
在整個網(wǎng)絡(luò)模型中,分別使用帶有FPN的ResNet-50、ResNet-101、ResNeXt-50、ResNeXt-101作為主干網(wǎng)絡(luò),并在RPN模塊上應(yīng)用GA機制,在Pythorch v0.4.8、Cuda 10.1、Cudnn、NCCLv2.4.8、2 GPU Nvidia GeForce GTX 2080Ti環(huán)境下對網(wǎng)絡(luò)進行了訓(xùn)練和測試.設(shè)置一個小批量包含4張圖像,輸入圖像的尺寸被重新縮放到1 000×600像素,學(xué)習(xí)率設(shè)置為0.001,權(quán)重衰減設(shè)置為0.000 1,動量設(shè)置為0.9,進行了24個周期(epoch)的訓(xùn)練.
從河北大學(xué)附屬醫(yī)院骨外科收集了5 195張掌指骨骨折X線圖像,由2名高年資的臨床骨科醫(yī)師完成數(shù)據(jù)標(biāo)注,所有數(shù)據(jù)都轉(zhuǎn)換成VOC2007數(shù)據(jù)集的格式.隨機挑選了數(shù)據(jù)集中的4 675張作為訓(xùn)練集,520張作為測試集,為了取得更好的訓(xùn)練效果,對數(shù)據(jù)集進行了數(shù)據(jù)增強.
為了使模型具有更好的檢測性能以及在訓(xùn)練中有更快的收斂速度,首先在ImageNet公共數(shù)據(jù)集中對骨折檢測模型進行預(yù)訓(xùn)練,以初始化網(wǎng)絡(luò)模型的權(quán)重,在此基礎(chǔ)上通過微調(diào)網(wǎng)絡(luò)參數(shù)對掌指骨數(shù)據(jù)集進行訓(xùn)練和驗證.在訓(xùn)練階段,輸入經(jīng)人工標(biāo)注的X線圖像對網(wǎng)絡(luò)進行訓(xùn)練,根據(jù)訓(xùn)練結(jié)果計算損失函數(shù)并不斷更新相關(guān)網(wǎng)絡(luò)參數(shù),直到網(wǎng)絡(luò)合理收斂.在測試階段,輸入X線圖像,輸出具有診斷結(jié)果的目標(biāo)邊界框.
目標(biāo)檢測領(lǐng)域常用的評價標(biāo)準(zhǔn)包括準(zhǔn)確度(accuracy)、精確度(precision,P)、召回率(recall,R)、平均精度(average precision,AP)、平均精度均值(mean average precision,mAP)等.其中精確度和召回率是表征模型性能的2個不同維度的度量,精確度表示預(yù)測為正樣本中實際為正樣本的概率,召回率表示在實際為正樣本中預(yù)測為正樣本的概率.然而僅使用精確度或召回率評價模型性能都不完備,因此在本實驗中將精確度-召回率曲線(P-R曲線)下面積即平均精度作為衡量尺度.
首先,根據(jù)閾值的不同計算出不同的召回率及對應(yīng)的精確度,對于其中相等的召回率只需保留精確度最大的一組.然后以召回率為橫坐標(biāo),精確度為縱坐標(biāo)繪制出P-R曲線,因此計算出的曲線下面積就是平均精度.精確度、召回率和平均精度分別采用如下公式進行計算:
(4)
(5)
(6)
其中,TP、TN、FP和FN分別表示真陽性、真陰性、假陽性和假陰性的樣本量;R表示召回率;Ri表示第i個召回率;P(Ri+1)表示召回率為R時對應(yīng)的最大精確度.
為了驗證GA機制和Balanced L1 Loss的有效性和對網(wǎng)絡(luò)性能的改進效果,分別設(shè)計了GA模塊以及GA+Balanced L1 Loss模塊對網(wǎng)絡(luò)性能影響的消融實驗.在同一個訓(xùn)練集和測試集下,分別對4種主干網(wǎng)絡(luò)下的原始Faster R-CNN網(wǎng)絡(luò)、使用GA機制的Faster R-CNN網(wǎng)絡(luò)以及同時使用GA機制和Balanced L1 Loss的Faster R-CNN網(wǎng)絡(luò)進行訓(xùn)練和測試,根據(jù)測試結(jié)果的平均精度對比各個模塊對網(wǎng)絡(luò)性能的影響.
在訓(xùn)練集上對網(wǎng)絡(luò)進行訓(xùn)練,訓(xùn)練準(zhǔn)確度為97%~99%,模型的學(xué)習(xí)能力良好.隨著周期的增加,訓(xùn)練過程中損失函數(shù)的變化情況如圖3所示.其中,loss_rpn_cls表示經(jīng)過RPN階段生成的區(qū)域建議后,通過softmax方法對錨框進行前景背景區(qū)分的分類損失;loss_rpn_bbox是第1次邊界框回歸損失,利用Balanced L1 Loss函數(shù)對錨框回歸修正,進一步確定建議區(qū)域;loss_cls和loss_bbox是全連接層分類的2個損失,分別代表具體目標(biāo)分類預(yù)測的損失和對目標(biāo)邊界框二次回歸的預(yù)測損失函數(shù);loss是其余4個損失函數(shù)的總和.由圖3可以看出,在設(shè)定的24個周期的訓(xùn)練過程中,損失模型隨著周期的增加而理想地收斂.
消融實驗的平均精度的對比結(jié)果如表1所示.在原始的Faster R-CNN網(wǎng)絡(luò)構(gòu)架中加入GA機制后(GA_Faster R-CNN),在ResNet-50、ResNet-101、ResNeXt-101作為主干的網(wǎng)絡(luò)模型上的平均精度由原來的64.2%、64.8%、64.3%分別提高到67.5%、68.9%和68.2%,因此改進的Faster R-CNN的平均精度在這3種主干網(wǎng)絡(luò)模型上分別增加了3.3%、4.1%和3.9%.但是,ResNeXt-50網(wǎng)絡(luò)的平均精度卻由66.9%減小到66.1%.在此基礎(chǔ)上,在所有網(wǎng)絡(luò)中加入Balanced L1 Loss(GA_Faster R-CNN + Balanced L1 Loss),網(wǎng)絡(luò)的性能都進一步提高.并且,由圖4可以看出,以ResNet-101作為主干的網(wǎng)絡(luò)模型改進效果最好,其平均精度由原始網(wǎng)絡(luò)的64.8%提高到69.3%,增加了4.5%.
圖3 損失函數(shù)隨周期增加收斂Fig.3 Loss function converges with the increment of epoch
實驗結(jié)果表明,通過導(dǎo)向錨定使生成錨框的過程更精確,平均精度較Faster R-CNN提高了4.1%;用Balanced L1 Loss代替原本的損失函數(shù),平均精度進一步提高了0.3%~0.9%.最終在以ResNet-101為主干網(wǎng)絡(luò)的模型上取得69.3%的檢測精度.
表1 消融實驗AP值對比結(jié)果Tab.1 Comparison of APs in ablation experiment
圖4 消融實驗平均精度AP值對比結(jié)果Fig.4 Comparison of APs in the ablation experiment
由于信息缺乏、骨折大小差別較大、易與關(guān)節(jié)混淆等原因,掌指骨骨折檢測尤為困難,因此基于深度神經(jīng)網(wǎng)絡(luò)的掌指骨骨折檢測CAD系統(tǒng)對模型的靈活性和平衡性依賴較高.本文改進了Faster R-CNN網(wǎng)絡(luò)模型,通過導(dǎo)向錨定使生成錨框的過程更精確;通過FPN提取圖像特征使低分辨率強語義特征與高分辨率低語義特征相結(jié)合,從而豐富特征信息;通過將Balanced L1 Loss代替原本的損失函數(shù)使分類、整體定位和精確定位方面實現(xiàn)更均衡的訓(xùn)練,從而使模型的檢測精度進一步提升,最終在以ResNet-101為主干網(wǎng)絡(luò)的模型上取得69.3%的檢測精度.這一研究為微小骨折或隱匿性骨折的計算機輔助診斷提供了全新的技術(shù)手段,具有潛在的臨床應(yīng)用價值.