孟曉亮, 趙吉康, 王曉雨, 張立曄, 宋 政
(山東理工大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院, 山東 淄博 255000)
基于視覺的內(nèi)窺鏡手術(shù)作為一種具有代表性的微創(chuàng)手術(shù),在深度學(xué)習(xí)[1-2]時(shí)代受到越來越多的關(guān)注。與傳統(tǒng)的手術(shù)不同,微創(chuàng)手術(shù)在內(nèi)窺鏡相機(jī)的輔助下通過一個(gè)小的切口進(jìn)行,組織縫合需要使用專業(yè)的手術(shù)器械。然而,缺乏對手術(shù)技巧、手術(shù)質(zhì)量等有針對性的、客觀的反饋是內(nèi)窺鏡手術(shù)過程中存在的關(guān)鍵問題之一。手術(shù)過程中手術(shù)器械檢測與分割的準(zhǔn)確性對評估外科醫(yī)師的手術(shù)技能具有非常重要的意義[3]。
國外針對手術(shù)器械檢測與分割的研究相對較早,且近年來已有很多研究者將深度學(xué)習(xí)成功應(yīng)用于實(shí)際內(nèi)窺鏡手術(shù)中。Jin 等人[4]對手術(shù)過程中的手術(shù)器械進(jìn)行檢測,采用Faster-RCNN 算法框架,主干網(wǎng)絡(luò)使用VGG-16 卷積神經(jīng)網(wǎng)絡(luò),在內(nèi)窺鏡手術(shù)中實(shí)現(xiàn)了對手術(shù)器械的實(shí)時(shí)檢測,可以輔助評估外科醫(yī)師的操作技能。Mahmood等人[5]提出一種基于雙流殘差密集網(wǎng)絡(luò)(DSRDNet)的手術(shù)器械分割方法,利用殘差和密集的空間金字塔池化模塊優(yōu)化算法,精準(zhǔn)分割手術(shù)器械,減少因視野模糊等導(dǎo)致的人為失誤,并在公開可用的胃腸內(nèi)窺鏡數(shù)據(jù)集上進(jìn)行測試,取得了較好的實(shí)驗(yàn)結(jié)果。不過此類算法的參數(shù)量和運(yùn)算量較大,如果再添加額外的優(yōu)化模塊,會導(dǎo)致檢測和分割速度下降?;诖耍墨I(xiàn)[6]提出一種Anchor-free 的卷積神經(jīng)網(wǎng)絡(luò),通過沙漏網(wǎng)絡(luò)對內(nèi)窺鏡手術(shù)視頻進(jìn)行逐幀檢測并將手術(shù)器械建模,以點(diǎn)作為邊界框的中心點(diǎn)生成檢測框,在保證精度的同時(shí),檢測速度超過同時(shí)期以雙階段目標(biāo)檢測為代表的Anchor-based 類算法。但是該網(wǎng)絡(luò)只能生成手術(shù)器械的定位框而未實(shí)現(xiàn)對手術(shù)器械種類的識別,功能性上略有不足。
國內(nèi)對于深度學(xué)習(xí)在微創(chuàng)手術(shù)領(lǐng)域的研究起步較晚。2018 年,鄭騰輝等人[7]基于全卷積神經(jīng)網(wǎng)絡(luò)(FCN)實(shí)現(xiàn)了對手術(shù)器械和手術(shù)器械收納盒的圖像分割,識別目標(biāo)的準(zhǔn)確度可達(dá)到像素級,但是檢測目標(biāo)為手術(shù)器械收納盒中的靜態(tài)手術(shù)器械,因此實(shí)用性上有所欠缺。2019 年,Ni 等人[8]提出一種新的網(wǎng)絡(luò)Residual Attention U-Net(RAUNet)用于白內(nèi)障手術(shù)中的手術(shù)器械語義分割,該網(wǎng)絡(luò)通過編碼-解碼結(jié)構(gòu)獲取高分辨率的掩膜,同時(shí)關(guān)注高階和低階特征圖,從而在保證獲取重要特征的基礎(chǔ)上有效過濾干擾信息。2022 年,Ni 等人[9]為解決內(nèi)窺鏡手術(shù)中照明因素對手術(shù)器械的影響,提出了一種新的網(wǎng)絡(luò)Surgi-Net,通過添加金字塔注意力模塊捕捉多尺度特征,通過自蒸餾消除其他的干擾信息。文獻(xiàn)[10]提出一種改進(jìn)的DoubleUNet[11]分割方法,通過對圖像進(jìn)行預(yù)處理,并使用密集連接空洞空間卷積池化金字塔(DenseASPP)模塊[12]和Focal Tversky Loss 損失函數(shù)進(jìn)一步提取圖像特征。該方法可以輔助外科醫(yī)師切除結(jié)腸異常組織,從而降低息肉癌變的概率。
綜上所述,基于深度學(xué)習(xí)的手術(shù)器械檢測與分割得到很多研究者的關(guān)注。雖然RAUNet網(wǎng)絡(luò)已經(jīng)考慮手術(shù)器械反光的問題,但在實(shí)際的內(nèi)窺鏡手術(shù)中,除手術(shù)器械金屬材質(zhì)自身導(dǎo)致的反光問題外,組織器官之間的相互遮擋、光線影響以及陰影遮擋等問題[13]也需要被考慮。文獻(xiàn)[14]已經(jīng)證實(shí)通過對YOLO 算法的Neck 部分的下采樣進(jìn)行優(yōu)化和添加注意力機(jī)制,可以在保證模型輕量化的同時(shí)進(jìn)一步提高檢測的精度。但目前YOLO算法應(yīng)用于內(nèi)窺鏡手術(shù)的研究相對較少,且目標(biāo)檢測中存在的漏檢問題仍然有改進(jìn)的空間。
針對以上問題,本文提出一種改進(jìn)的YOLOv5s 手術(shù)器械檢測與分割方法。對于內(nèi)窺鏡圖像中存在的反光和陰影遮擋等問題,使用Gamma 校正算法優(yōu)化圖像亮度和對比度。通過添加CBAM(Convolutional Block Attention Module)[15]、動態(tài)卷積以及空間金字塔池化模塊以增強(qiáng)目標(biāo)特征信息的權(quán)重,進(jìn)一步提高手術(shù)器械檢測的準(zhǔn)確度并降低漏檢率。最后,在模型的Neck部分添加基于特征金字塔網(wǎng)絡(luò)(FPN)的語義分割分支,同時(shí)實(shí)現(xiàn)手術(shù)器械的檢測和語義分割功能,輔助外科醫(yī)師提高手術(shù)效率,減小手術(shù)難度。
本文基于YOLOv5s 算法框架,針對手術(shù)器械的檢測與分割問題進(jìn)行優(yōu)化,以實(shí)現(xiàn)內(nèi)窺鏡圖像中手術(shù)器械的檢測與分割[16],本文算法的整體網(wǎng)絡(luò)結(jié)構(gòu)如圖1 所示。在內(nèi)窺鏡圖像進(jìn)行訓(xùn)練之前,需要對圖像進(jìn)行圖像增強(qiáng)、圖像填充和錨框計(jì)算等預(yù)處理。在Backbone 部分,以YOLOv5s為基礎(chǔ),添加5 個(gè)Conv 模塊和C3 模塊,每一個(gè)Conv 模塊都包含一個(gè)1×1 的卷積核。對輸入的特征圖像進(jìn)行卷積操作,同時(shí)通過BatchNorm 正則化函數(shù)和SiLU 激活函數(shù)[17]進(jìn)行處理。C3 模塊中包含3 個(gè)標(biāo)準(zhǔn)的Conv 卷積層,對殘差特征進(jìn)行學(xué)習(xí)。特征信息進(jìn)入C3 模塊后分為兩個(gè)分支:一個(gè)分支使用多個(gè)Bottleneck 和3 個(gè)標(biāo)準(zhǔn)卷積層;另一個(gè)分支經(jīng)過一個(gè)卷積模塊。然后將兩個(gè)分支通過Concat 進(jìn)行連接。圖像輸入尺寸為640×640,每次經(jīng)過一個(gè)Conv 與C3 的組合模塊后,特征圖會變?yōu)樵瓉沓叽绲?/2,再經(jīng)過5 次卷積后,輸出20×20 的特征圖。在Neck 部分,采用PANet 框架,也稱為FPN+PAN。FPN 特征金字塔是一個(gè)自頂向下的過程,如輸入FPN 的特征圖尺寸為20×20,經(jīng)過2 倍上采樣后,特征圖尺寸變?yōu)?0×40。Conv 模塊輸出的40×40 特征圖經(jīng)過卷積核后,在Concat 模塊和經(jīng)過上采樣的特征圖融合,后續(xù)的Conv、C3 和Concat 模塊重復(fù)前述步驟。PAN 和FPN 相反,是一個(gè)自底向上的特征金字塔[18]。FPN 是自頂向下傳遞特征內(nèi)容,而PAN 是自底向上傳遞特征位置,通過組合可以有效融合兩者的優(yōu)點(diǎn),同時(shí)PAN 采用80×80的特征圖,經(jīng)過兩次Conv 與C3 的組合模塊后,分別輸出40×40 和20×20 的特征圖。
在基于深度學(xué)習(xí)的手術(shù)器械檢測中,圖像的亮度會直接影響模型訓(xùn)練的效果。內(nèi)窺鏡視頻中出現(xiàn)的手術(shù)器械本身多為金屬材質(zhì),在手術(shù)環(huán)境下極易出現(xiàn)反光或陰影遮擋等情況,從而影響目標(biāo)檢測的效果。因此,需要在模型訓(xùn)練前對圖像進(jìn)行預(yù)處理。本文采用Gamma 校正算法,對內(nèi)窺鏡圖像進(jìn)行預(yù)處理。
Gamma 校正算法的公式如式(1)所示:
如圖2 所示,紅色和藍(lán)色曲線分別代表灰度值過高和過低的情況,當(dāng)r<1 或r>1 時(shí),Gamma算法會對圖像灰度值進(jìn)行調(diào)整。對于圖像中灰度值較高的區(qū)域,經(jīng)過校正后灰度值會減小,使r的值接近于1;對于圖像中灰度值較低的區(qū)域,經(jīng)過校正后灰度值會增大,使r的值接近于1。
圖2 Gamma 校正算法曲線圖Fig.2 Graph of Gamma correction algorithm
原有算法特征圖信息中每個(gè)通道的權(quán)重相等,這會導(dǎo)致一些無用信息的比重偏大,而關(guān)鍵信息的比重偏小。因此,我們在Backbone 底部添加注意力機(jī)制模塊CBAM,通過學(xué)習(xí)的方式獲取每個(gè)通道的比重并生成權(quán)重。CBAM 可同時(shí)應(yīng)用空間和通道兩個(gè)不同的注意力維度。在語義分割部分,由于上采樣會導(dǎo)致部分語義信息丟失,因此,在語義分割頭的C3 部分加入CBAM,通過通道注意力模塊以減少重要信息的丟失,可防止由于單獨(dú)添加CBAM 模塊導(dǎo)致的網(wǎng)絡(luò)層數(shù)過多的問題。圖3 為CBAM 的結(jié)構(gòu)圖。
圖3 CBAM 結(jié)構(gòu)Fig.3 Structure of CBAM
另外,將Neck 部分的Conv 模塊更換為動態(tài)卷積ODConv 模塊[19]。注意力機(jī)制可賦予權(quán)重,通過注意力權(quán)重進(jìn)行學(xué)習(xí)可以提高CNN 網(wǎng)絡(luò)的準(zhǔn)確性并減少計(jì)算量。普通的動態(tài)卷積僅關(guān)注卷積核數(shù)量,而其他3 個(gè)參數(shù)(輸入通道數(shù)、輸出通道數(shù)、空間大?。┤菀妆缓雎?。本文使用的ODConv 模塊可通過對4 個(gè)維度的并行策略實(shí)現(xiàn)對內(nèi)核空間互補(bǔ)注意力的學(xué)習(xí),從而進(jìn)一步提高模型的準(zhǔn)確度。
YOLOv5s 使用的空間金字塔池化模塊是SPPF(Spatial Pyramid Pooling Fast),在保持SPP 效果的同時(shí)提高其速度。本文使用SPPCSPC 模塊[20](SPP-CSP-Concat),該模塊采用CSP結(jié)構(gòu)[21],通過保留SPP 不同尺度的最大池化層使模型視野進(jìn)一步擴(kuò)大,可解決特征重復(fù)提取的問題。同時(shí),可建立一條新的卷積分支,將原圖通過卷積核后,與通過最大池化層得到的特征圖進(jìn)行二次合并,可有效減少池化后的特征損失,從而進(jìn)一步提高檢測的準(zhǔn)確度。
圖1 中,在FPN 和PAN 的連接位置增加語義分割頭,使80×80 的特征圖繼續(xù)按照FPN 特征金字塔結(jié)構(gòu)的上采樣步驟進(jìn)行,實(shí)現(xiàn)語義分割功能[22]。在生成80×80 的特征圖后形成兩個(gè)分支,一個(gè)分支進(jìn)入PAN 模塊,另外一個(gè)分支繼續(xù)采用自頂向下的上采樣結(jié)構(gòu)實(shí)現(xiàn)語義分割。因此,本文模型可同時(shí)實(shí)現(xiàn)目標(biāo)檢測和語義分割。
本文數(shù)據(jù)集采用Cholec80,該數(shù)據(jù)集中包含大量的內(nèi)窺鏡手術(shù)視頻,我們選取Cholec80 中的20 個(gè)內(nèi)窺鏡手術(shù)視頻并按照一定的幀頻轉(zhuǎn)換成內(nèi)窺鏡圖像序列,將其中不存在手術(shù)器械或者手術(shù)器械較為模糊的圖像剔除。數(shù)據(jù)集包含4 000 幅圖像,其中3 000 幅圖像用于訓(xùn)練,1 000 幅圖像用于測試。本文將數(shù)據(jù)集中的手術(shù)器械分為7 類,分別標(biāo)注為Grasper、 Hook、 Clipper、 Scissors、 SpecimenBag、 Bipolar和Irrigator。
由于模型需要同時(shí)實(shí)現(xiàn)目標(biāo)檢測和語義分割功能,本文分別通過LabelImg 和Labelme 制作兩種不同格式的標(biāo)簽。目標(biāo)檢測標(biāo)簽設(shè)定為txt格式,語義分割標(biāo)簽設(shè)定為png 格式記錄掩膜,并對數(shù)據(jù)集通過Gamma 校正算法進(jìn)行調(diào)整優(yōu)化。通過實(shí)驗(yàn)發(fā)現(xiàn),如果數(shù)據(jù)集中不同類別手術(shù)器械的數(shù)量相對平均時(shí),Grasper 類型的手術(shù)器械識別的準(zhǔn)確度明顯低于其他6 類手術(shù)器械。因此,我們在數(shù)據(jù)集中提高了Grasper 類型的比例,將Grasper 類型的圖像數(shù)量提高至1 000 幅,其余6 類手術(shù)器械各為500 幅圖像。
圖4 為數(shù)據(jù)集樣本的部分圖像。由圖4(a)可以看出,數(shù)據(jù)集中手術(shù)器械受環(huán)境的影響較大,導(dǎo)致圖像中亮度分布不均,即使是同一幅圖像,手術(shù)器械的金屬部分反光強(qiáng)烈導(dǎo)致亮度過高,而周圍環(huán)境和手術(shù)器械的其余部分相對較暗。因此,通過Gamma 校正算法,可使數(shù)據(jù)集中的圖像亮度分布相對均勻,減少外界因素對目標(biāo)檢測的影響,如圖4(b)所示。圖4(c)為分割掩膜結(jié)果。
圖4 數(shù)據(jù)集樣本。 (a) 原圖; (b) Gamma 校正后結(jié)果;(c) 分割掩膜。Fig.4 Dataset sample. (a) Original image ;(b) Results after Gamma correction ;(c) Segmentation mask.
本文的模型訓(xùn)練在Windows 10 操作系統(tǒng)上進(jìn)行,模型由Python 編程語言實(shí)現(xiàn),編程軟件采用PyCharm。采用CPU 進(jìn)行模型訓(xùn)練相對緩慢,因此,我們通過GPU 對網(wǎng)絡(luò)框架進(jìn)行模型訓(xùn)練,GPU 的硬件配置如表1 所示。
表1 GPU 硬件配置Tab.1 Hardware configuration of GPU
3.3.1 模型衡量指標(biāo)
本文需要同時(shí)衡量目標(biāo)檢測和語義分割的效果。對于目標(biāo)檢測,本文選用mAP@0.5 和 損失作為模型的衡量指標(biāo);語義分割通過mIoU 進(jìn)行衡量。最后,通過測試集驗(yàn)證實(shí)際檢測和分割的效果。
3.3.2 目標(biāo)檢測效果分析
對于目標(biāo)檢測而言,召回率(Recall)和精確度(Precision)是衡量目標(biāo)檢測結(jié)果的兩個(gè)非常重要的指標(biāo)。AP 為通過計(jì)算每一個(gè)召回率對應(yīng)精確度的值并進(jìn)行平均得到的一個(gè)衡量標(biāo)準(zhǔn);mAP是將目標(biāo)檢測中所有種類的AP 取平均值的結(jié)果。本文將所提方法與其他目標(biāo)檢測算法的AP和mAP 進(jìn)行比較,結(jié)果如表2 所示。
表2 不同方法的AP 和mAP 比較Tab.2 Comparison of AP and mAP with different methods
由表2 可以看出,無論是在不同手術(shù)器械的單項(xiàng)AP 上還是整體的mAP 上,本文方法都要優(yōu)于其他方法。相較于YOLOv5s,優(yōu)化后算法在本文手術(shù)器械數(shù)據(jù)集上的mAP@0.5 提高了1.8%,達(dá)到了98.2%。在單階段檢測方法中,本文算法在mAP@0.5 上仍然具有優(yōu)勢,相較于目前流行的SSD 和RetinaNet 算法,mAP 分別高出3.2%和2.8%;相較于經(jīng)典的雙階段檢測方法Faster-RCNN,本文算法的mAP@0.5 提高了11.4%,驗(yàn)證了本文方法在AP 上的優(yōu)勢。
將本文所提方法和YOLOv5s 方法的損失曲線進(jìn)行對比分析,結(jié)果分別如圖5 和圖6所示。
圖5 本文所提方法的損失曲線Fig.5 Loss curve of the proposed method
圖6 YOLOv5s 方法的損失曲線Fig.6 Loss curve of the YOLOv5s method
從圖5 和圖6 可以看出,對于bounding box 檢測框損失,本文所提方法和YOLOv5s 方法都接近0.02。對于obj 目標(biāo)檢測損失,最終兩者在數(shù)值上比較接近。但在驗(yàn)證集val 的obj 損失曲線上, YOLOv5s 在降低到0.012 后緩慢回升,并在0.014 附近上下波動;而本文所提方法在降低到0.012 后,一直較為平穩(wěn)的維持在0.014 以下。從曲線和數(shù)據(jù)上可以看出,YOLOv5s 在測試集val 上的損失曲線更加平滑,當(dāng)epoch 為100 時(shí),訓(xùn)練集損失曲線也趨于平穩(wěn)。本文所提方法由于引入語義分割模塊,訓(xùn)練集train 的obj 損失曲線和測試集val 的損失曲線幾乎趨近于90°,在訓(xùn)練集train 最終損失值相差不大的情況下,本文所提方法的損失曲線下降速度最快,在進(jìn)入平穩(wěn)期后波動也最小,不會像YOLOv5s 一樣出現(xiàn)明顯的上下波動。在驗(yàn)證集val 上,本文所提方法的損失曲線無論是在訓(xùn)練的波動幅度還是最終損失值上都優(yōu)于YOLOv5s 方法,進(jìn)一步驗(yàn)證了本文方法的有效性和優(yōu)勢。
3.3.3 語義分割效果分析
mIoU 是評價(jià)語義分割效果的重要指標(biāo)[23]。本文通過添加基于FPN 網(wǎng)絡(luò)的語義分割頭實(shí)現(xiàn)了語義分割功能,目標(biāo)檢測算法的mIoU 通過矩形框計(jì)算。為更好地比較分析語義分割的效果,本文在相同條件下訓(xùn)練其他語義分割網(wǎng)絡(luò)并與本文方法進(jìn)行比較。由于目標(biāo)檢測部分已經(jīng)實(shí)現(xiàn)對于手術(shù)器械的分類功能,語義分割只需將手術(shù)器械和背景進(jìn)行區(qū)分即可,因此語義分割的類別這里只定義Instruments 和Background 兩類,將所提方法的mIoU 值與其他語義分割方法進(jìn)行比較,結(jié)果如表3 所示。
表3 不同方法的mIoU 值比較Tab.3 Comparison of mIoU with different methods
由表3 可以看出,本文方法在語義分割方面有著良好的表現(xiàn),mIoU 值達(dá)到了94.0%,遠(yuǎn)高于經(jīng)典分割網(wǎng)絡(luò)FCN。相較于Deeplabv3 和UNet圖像分割網(wǎng)絡(luò),本文方法的mIoU 分別高出2.2%和1.3%。相較于目前流行的語義分割網(wǎng)絡(luò)PSPNet,mIoU 提高了0.9%,進(jìn)一步驗(yàn)證了本文方法的有效性和優(yōu)勢。
3.3.4 檢測與分割結(jié)果
本文選取數(shù)據(jù)集中具有代表性的兩幀圖像進(jìn)行檢測與分割結(jié)果分析,結(jié)果如圖7 所示。
圖7 手術(shù)器械檢測與分割結(jié)果Fig.7 Detection and segmentation results of surgical instruments
由圖7(a)可以看出,本文方法能夠較好地實(shí)現(xiàn)手術(shù)器械的檢測和語義分割,在多個(gè)手術(shù)器械同時(shí)存在的情況下也能夠進(jìn)行準(zhǔn)確識別。但也會存在漏檢的情況,如圖7(b)所示,相較于被檢測出的Scissors 類型的手術(shù)器械,漏檢的手術(shù)器械在圖像中所占比例相對較小,且受到手術(shù)環(huán)境的遮擋,導(dǎo)致模型提取的特征信息不足,被檢測器誤認(rèn)為是背景信息,因此出現(xiàn)了漏檢現(xiàn)象。但是語義分割模塊卻能夠很好地識別該手術(shù)器械并進(jìn)行準(zhǔn)確地分割,在一定程度上彌補(bǔ)了目標(biāo)檢測的漏檢問題。
本文采用改進(jìn)的YOLOv5s 結(jié)合FPN 的方法實(shí)現(xiàn)了手術(shù)器械的檢測與語義分割功能。通過Gamma 校正算法,減輕反光和陰影等因素的影響;通過CBAM、動態(tài)卷積模塊、空間金字塔池化模塊和FPN 語義分割模塊,提高檢測與分割的準(zhǔn)確度,并降低漏檢率。實(shí)驗(yàn)結(jié)果表明,手術(shù)器械的檢測與語義分割效果良好,手術(shù)器械檢測的mAP@0.5 為98.2%,語義分割的mIoU 為94.0%。所提方法可輔助外科醫(yī)師提高手術(shù)效率,減小手術(shù)難度,實(shí)現(xiàn)術(shù)中精準(zhǔn)導(dǎo)航。