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