趙寅霜,姚善化
(安徽理工大學(xué) 電氣與信息工程學(xué)院,安徽 淮南 232001)
肺結(jié)節(jié)屬于常見的呼吸系統(tǒng)問題,被認(rèn)為是原發(fā)性的肺癌指標(biāo)。肺癌的致死率和發(fā)病率在所有癌癥中均位居首位[1],盡早地診斷出肺結(jié)節(jié)對肺癌的早期診斷具有重要意義。計(jì)算機(jī)斷層掃描技術(shù)(Computed Tomography,CT)[2]被廣泛運(yùn)用于肺部疾病的檢查中,在早期肺癌的篩查和及時(shí)的診斷中提供了不少幫助。但CT切片圖像數(shù)量隨著CT機(jī)掃描圖像的質(zhì)量增加而增加,且肺結(jié)節(jié)的體積普遍較小、形狀各異、邊緣模糊,還會(huì)與組織血管相粘,無疑給醫(yī)生在審閱CT時(shí)增加了巨大的負(fù)擔(dān)[3],還會(huì)出現(xiàn)誤檢漏檢的問題。
基于深度學(xué)習(xí)的醫(yī)學(xué)圖像檢測算法在圖像特征提取上有過人能力,在醫(yī)學(xué)圖像檢測診斷中起到重要作用。在圖像檢測領(lǐng)域中,根據(jù)檢測階段的不同可以分為基于候選區(qū)域的兩階段算法和基于目標(biāo)回歸的一階段算法,兩階段算法有Faster RCNN[4]和Mask RCNN[5]等,一階段算法有YOLO系列[6]、SSD[7]和Centernet[8]等。Centernet算法與其他算法的突出點(diǎn)是采用了Archo-free的檢測機(jī)制,大大提高了速度和精度,在檢測領(lǐng)域中展現(xiàn)出良好的效果。但是在檢測肺部CT圖像時(shí),對于結(jié)節(jié)檢測精度不高,容易錯(cuò)檢漏檢,難以達(dá)到預(yù)期效果。針對上述問題,提出了改進(jìn)的Centernet的檢測方法,探究在肺結(jié)節(jié)檢測領(lǐng)域的可行性和有效性。
CenterNet算法是一種采用了Anchor-free機(jī)制的一階段檢測算法,不僅在速度上優(yōu)勢于其他單階段或兩階段的預(yù)錨框網(wǎng)絡(luò),而且針對尺寸過小的小目標(biāo)難以匹配先驗(yàn)框的問題有了很好地處理,對小目標(biāo)檢測具有一定的優(yōu)勢[9]。在檢測過程中,CenterNet會(huì)把目標(biāo)物體當(dāng)成一個(gè)點(diǎn)來檢測,將目標(biāo)中心點(diǎn)作為一個(gè)關(guān)鍵點(diǎn),然后以中心點(diǎn)為原點(diǎn)來預(yù)測目標(biāo)的中心點(diǎn)偏移量offset、寬高size,最后會(huì)回歸到預(yù)測框,通過此過程來完成圖像檢測工作。對于它的主干網(wǎng)絡(luò),原始網(wǎng)絡(luò)使用了3種主干網(wǎng)絡(luò)來用于目標(biāo)檢測,分別為Resnet-18、DLA-34、Hourglass-104,3種網(wǎng)絡(luò)各有優(yōu)缺,根據(jù)需要選擇。該算法基于Anchor-free,不存在選擇超參數(shù)的問題,而且還消除了NMS后處理過程,大大減少了計(jì)算量和訓(xùn)練時(shí)間。Centernet目標(biāo)檢測算法結(jié)構(gòu)如圖1所示。
圖1 CenterNet網(wǎng)絡(luò)結(jié)構(gòu)圖
(1)
式中:σ為目標(biāo)尺寸自適應(yīng)的標(biāo)準(zhǔn)差,若兩個(gè)同類別目標(biāo)的高斯核重合時(shí),則取計(jì)算值最大的那一個(gè)。
(2)
CenterNet檢測算法的Loss函數(shù)主要由3部分組成:中心點(diǎn)預(yù)測分支損失函數(shù)Lk、尺寸預(yù)測分支損失函數(shù)Lsize和中心點(diǎn)偏置預(yù)測分支損失函數(shù)Loff,三者線性組合得到
Ldet=LK+λregLsize+λoffLoff
(3)
中心點(diǎn)預(yù)測分支損失函數(shù)Lk采用了Focal Loss函數(shù):
(4)
超參數(shù)選擇為λreg=0.1;λoff=1;α=2;β=4。
尺寸預(yù)測分支損失函數(shù)為:
(5)
中心點(diǎn)偏置預(yù)測分支損失函數(shù)為:
(6)
選擇Resnet-50網(wǎng)絡(luò)作為改進(jìn)的CenterNet檢測網(wǎng)絡(luò)的主干網(wǎng)絡(luò)提取網(wǎng)絡(luò),原因是考慮到對肺結(jié)節(jié)CT圖像檢測的精度和速度的要求,相對于Resnet-18、DLA-34、Hourglass-104三種網(wǎng)絡(luò),Resnet-50網(wǎng)絡(luò)可以很好地平衡速度和精度。針對肺結(jié)節(jié)的形態(tài)、大小、位置等特征,將以ResNet-50為主干的CenterNet檢測網(wǎng)絡(luò)進(jìn)行改進(jìn):
1)引入坐標(biāo)注意力機(jī)制(Coordinate Attention,CA)[10],提升目標(biāo)結(jié)節(jié)的位置信息敏感性,使其更加精準(zhǔn)識別結(jié)節(jié)區(qū)域位置;
2)引入空洞空間池化金字塔(Atrous Spatial Pyramid Pooling,ASPP)[11],減少主干網(wǎng)絡(luò)在下采樣過程中特征信息的損失;
3)借鑒FPN[12]的構(gòu)造思想,將主干網(wǎng)絡(luò)的編碼網(wǎng)絡(luò)的圖像特征與解碼網(wǎng)絡(luò)圖像特征相融合,充分提取結(jié)節(jié)特征信息。
在肺結(jié)節(jié)CT圖像中,結(jié)節(jié)普遍體積較小、形狀各異、數(shù)量少,肺實(shí)質(zhì)上還存在著大量的血管、氣管等背景信息。在檢測網(wǎng)絡(luò)采樣過程中會(huì)層層積累大量無用信息,導(dǎo)致目標(biāo)結(jié)節(jié)的關(guān)鍵信息被忽略,目標(biāo)區(qū)域提取不準(zhǔn)確,降低檢測精度。在頂層網(wǎng)絡(luò)引入坐標(biāo)注意力機(jī)制CA,可以很好地提取到結(jié)節(jié)的位置和方向信息,從而更加準(zhǔn)確地提取結(jié)節(jié)的區(qū)域位置,降低了非目標(biāo)背景信息的干擾,提升檢測性能。坐標(biāo)注意力機(jī)制的示意圖如圖2所示,主要有坐標(biāo)信息嵌入模塊、坐標(biāo)注意力生成模塊和坐標(biāo)注意力輸出模塊[13]。
圖2 坐標(biāo)注意力機(jī)制
首先,坐標(biāo)信息嵌入,為了避免2D全局池化引入導(dǎo)致位置信息損失,將通道注意力分解成兩個(gè)并行的1D特征編碼,再用兩個(gè)1D的池化核(H,1)、(1,W)來編碼水平方向和垂直方向特征。假設(shè)輸入肺結(jié)節(jié)圖像特征X,那么第c維特征輸出為
(7)
(8)
通過不同方向的集成特征,形成一對方向可知的結(jié)節(jié)特征圖,可以允許注意力模塊捕捉單方向上的長距離關(guān)系,同時(shí)保留另一個(gè)方向的空間信息,幫助定位。
其次,是坐標(biāo)注意力生成,將兩個(gè)方向的結(jié)節(jié)特征圖進(jìn)行拼接,再使用1 × 1卷積變換函數(shù)F進(jìn)行特征轉(zhuǎn)化:
f=δ(F([zh,zw]))
(9)
gh=σ(Fh(fh))
(10)
gw=σ(Fw(fw))
(11)
最后,是坐標(biāo)注意力輸出,經(jīng)過如上步驟過后,輸出的關(guān)于肺結(jié)節(jié)特征X的坐標(biāo)注意力:
(12)
在用ResNet-50主干網(wǎng)絡(luò)下采樣過程中,每一次下采樣都會(huì)導(dǎo)致特征圖分辨率下降,加上CT影像上的肺結(jié)節(jié)比例都比較小、特征不清晰,很容易導(dǎo)致部分特征細(xì)節(jié)丟失、上下文信息不足。通過在第3次下采樣后引入空洞金字塔模塊ASPP,獲得不同感受野的上下文信息,它的模塊結(jié)構(gòu)圖如圖3所示。
圖3 空洞金字塔模塊
ASPP主要采用不同空洞率空洞卷積并行的進(jìn)行特征采樣,可以多尺度多比例采取圖像特征信息。采樣處理過程首先將經(jīng)過ResNet-50第3級殘差網(wǎng)絡(luò)處理過的肺結(jié)節(jié)圖像分別輸入到一個(gè)1 × 1卷積、3個(gè)3 × 3空洞卷積和1個(gè)空洞池化層,分別采取到不同感受野的結(jié)節(jié)特征圖信息,最后將這些肺結(jié)節(jié)特征圖拼接起來,通過1 × 1卷積調(diào)整通道數(shù)后輸出。對于空洞卷積的空洞率設(shè)置,根據(jù)結(jié)節(jié)特征圖像的大小最終設(shè)置為1、3、5,從而獲得適當(dāng)?shù)母惺芤?,可以多尺度提取圖像特征;空洞池化層主要作用是把結(jié)節(jié)特征圖壓縮后,采用1 × 1卷積來深度提取特征,再通過上采樣操作把特征圖恢復(fù)到原圖的大小,滿足其他采樣的特征圖拼接要求,最終將拼接后輸出具有多感受野結(jié)節(jié)特征圖信息作為第4級殘差網(wǎng)絡(luò)輸入,豐富上下文信息。
在CenterNet網(wǎng)絡(luò)不斷下采樣,小目標(biāo)的像素點(diǎn)信息會(huì)逐漸減少,甚至在采樣過程中出現(xiàn)小目標(biāo)像素點(diǎn)信息不斷消失的情況。對于小結(jié)節(jié)來說,本身所具有的特征像素很少,在采樣過程中會(huì)不斷丟失信息,最終采樣的信息會(huì)大量缺失,導(dǎo)致在上采樣過程會(huì)在這些缺失信息的小目標(biāo)特征上進(jìn)行推理,出現(xiàn)漏檢、誤檢的問題,相應(yīng)地準(zhǔn)確率會(huì)下降。針對此問題借鑒了FPN結(jié)構(gòu)原理如圖4所示,將每次殘差輸出的特征與反卷積處理后的特征進(jìn)行特征融合,實(shí)現(xiàn)淺層特征信息的復(fù)用,再結(jié)合ASPP模塊的處理,更加豐富了小結(jié)節(jié)特征信息,降低了結(jié)節(jié)特征細(xì)節(jié)的遺漏幾率。
綜合以上的模塊機(jī)制,可以得到改進(jìn)CenterNet檢測網(wǎng)絡(luò)整體結(jié)構(gòu)如圖5所示,在最后一階的上采樣與橫向連接合成后,再用1 × 1卷積來消除特征重疊現(xiàn)象。
圖5 改進(jìn)的CenterNet網(wǎng)絡(luò)模型
3.1.1 實(shí)驗(yàn)數(shù)據(jù)集
數(shù)據(jù)集采用公開數(shù)據(jù)集LUNA16肺部CT影像數(shù)據(jù)集。LUNA16數(shù)據(jù)集是肺結(jié)節(jié)檢測數(shù)據(jù)集LIDC-IDRI的子集,不同點(diǎn)就是LUNA16數(shù)據(jù)集刪除了在CT掃描中切片厚度大于3 mm和小于3 mm的CT切片圖像,最終的數(shù)據(jù)集保留了888個(gè)低劑量的肺結(jié)節(jié)CT圖像。對于這些CT圖像,由4名放射科醫(yī)生對結(jié)節(jié)的位置和大小進(jìn)行標(biāo)注,總計(jì)標(biāo)注了1 186個(gè)結(jié)節(jié),直徑大小范圍為3 ~ 30 mm之間。
3.1.2 數(shù)據(jù)增強(qiáng)
運(yùn)用CenterNet檢測網(wǎng)絡(luò)需要采用大量的數(shù)據(jù)集訓(xùn)練。但LUNA16原始數(shù)據(jù)集只有888個(gè)病例圖片,數(shù)據(jù)量遠(yuǎn)遠(yuǎn)不夠。為了提高模型的泛化能力,增加訓(xùn)練的數(shù)據(jù)量,將原始CT圖像進(jìn)行隨機(jī)改變圖像亮度、圖像翻轉(zhuǎn)、增加噪聲、隨機(jī)旋轉(zhuǎn)、隨機(jī)平移等處理進(jìn)行數(shù)據(jù)集擴(kuò)充,最終擴(kuò)充了7 116個(gè)CT切片圖像,并且隨機(jī)分配4 127個(gè)數(shù)據(jù)給訓(xùn)練集,剩余2 989個(gè)分別給訓(xùn)練集和測試集。
為了觀察改進(jìn)的CenterNet檢測模型在檢測肺結(jié)節(jié)上的性能變化,使用平均精度(Average Precision,AP)PA作為衡量改進(jìn)算法的性能指標(biāo):
(13)
(14)
(15)
首先需要計(jì)算查準(zhǔn)率(Precision)P和召回率(Recall)R,查準(zhǔn)率表示在所有識別的結(jié)果中識別正確結(jié)果的比例;召回率是指識別正確的結(jié)果占數(shù)據(jù)集中所有要識別出總數(shù)的比例。PT表示實(shí)際是正例結(jié)果被預(yù)測為正例的樣本數(shù),PF表示實(shí)際為負(fù)例結(jié)果預(yù)測為正例的樣本數(shù),NF表示實(shí)際為正例結(jié)果預(yù)測為負(fù)例的樣本數(shù)。
訓(xùn)練過程使用搭載Windows11操作系統(tǒng)的計(jì)算機(jī),處理器Intel i5-12490F,顯卡NVIDIA GeForce 3060ti(8 GB顯存),內(nèi)存大小為16 GB。網(wǎng)絡(luò)訓(xùn)練環(huán)境為Pytorch 1.8.0深度學(xué)習(xí)訓(xùn)練框架。輸入圖像大小為512 × 512,訓(xùn)練輪數(shù)epoch為200,批次大小batch_size設(shè)為10,初始學(xué)習(xí)率設(shè)為0.000 125,最后學(xué)習(xí)率為0.000 012 5。200次訓(xùn)練結(jié)束后,分別將原始的CenterNet網(wǎng)絡(luò)與改進(jìn)后的CenterNet網(wǎng)絡(luò)進(jìn)行對比,是改進(jìn)前后的網(wǎng)絡(luò)訓(xùn)練總損失函數(shù)曲線如圖6所示,虛曲線是原始網(wǎng)絡(luò)的總損失函數(shù)曲線,實(shí)曲線是改進(jìn)后的總損失函數(shù)曲線,改進(jìn)后的網(wǎng)絡(luò)損失函數(shù)相對于原始損失值加快了收斂速度,且損失值有了降低,最終損失函數(shù)值從原始模型的0.41降至改進(jìn)模型的0.28,并且在第140次迭代訓(xùn)練時(shí)趨于穩(wěn)定狀態(tài)。
圖6 原始模型與改進(jìn)模型總損失函數(shù)對比
在設(shè)置閾值IOU=0.5,最大框數(shù)maxdet=100條件下,得到改進(jìn)模型P-R(Precision-Recall)曲線如圖7所示,曲線圖以召回率(Recall)為橫軸,精度(Precision)為縱軸,在曲線圖上可以看出曲線的折點(diǎn)趨近坐標(biāo)(1,1),說明模型的性能相對較好,魯棒性較高。
圖7 改進(jìn)模型的P-R曲線
在平均精度PA和平均召回率RA方面,將原始CenterNet算法與改進(jìn)后的CenterNet算法進(jìn)行比較,在采取同樣的數(shù)據(jù)集和實(shí)驗(yàn)環(huán)境情況下,平均精度值PA提高了6.8%,平均召回率RA提高了9.1%,參數(shù)變化如表1所示。
表1 原始模型與改進(jìn)算法結(jié)果對比
改進(jìn)后的算法性能上有了明顯的提高,在檢測肺結(jié)節(jié)上比原始網(wǎng)絡(luò)檢測效果精度更高。將改進(jìn)模型運(yùn)用到數(shù)據(jù)集檢測中,檢測結(jié)果如圖8所示,對多樣性結(jié)節(jié)檢測的平均置信度達(dá)到90%以上,改進(jìn)模型對多樣性結(jié)節(jié)有較好的檢測識別能力,具有一定的泛化能力。
孤立結(jié)節(jié) 貼壁結(jié)節(jié) 粘連血管結(jié)節(jié) 磨玻璃樣結(jié)節(jié) 空洞樣結(jié)節(jié)
提出了基于CenterNet網(wǎng)絡(luò)基礎(chǔ)上的改進(jìn)算法,以達(dá)到對CT圖像中肺結(jié)節(jié)檢測的目的,為了平衡精度和速度選擇Resnet-50作為主干網(wǎng)絡(luò),首先在主干網(wǎng)絡(luò)頂層引入坐標(biāo)注意力機(jī)制來提高結(jié)節(jié)區(qū)域位置的敏感性,提高區(qū)域提取精度;然后,在第3次采樣過后融入ASPP結(jié)構(gòu)來豐富訓(xùn)練的上下文信息;最后采用FPN結(jié)構(gòu)將采樣解碼信息與采樣編碼信息融合復(fù)用,提升訓(xùn)練性能。經(jīng)過200次迭代之后,平均精度提升了6.8%,平均召回率提高9.1%,對于各類肺結(jié)節(jié)可以精確定位目標(biāo)和識別,表明CenterNet算法在結(jié)節(jié)檢測中具有一定的可行性和有效性。該實(shí)驗(yàn)是在2D圖像下進(jìn)行的,還存在一定的局限性,下一步工作目標(biāo)將是對3D CT圖像的進(jìn)行研究。