董沛君,陶青川
(四川大學電子信息學院,成都610065)
手術器械是醫生在外科手術中為患者進行治療的必備工具,不僅被要求性能良好,其準確性和完整性更是確保一臺手術安全順利進行的關鍵因素之一。一直以來,手術器械的管理都是醫院醫療器械規范化管理中的一項重要工作,其中,手術器械的包裝檢查更是手術器械管理中的關鍵步驟,該步驟保證器械在經過滅菌處理程序后到正式被用到手術過程之前保持無菌性,且確保包裝中的器械滿足手術所需的準確性和完整性。手術器械的管理工作在醫院一般都由專門部門負責,這項工作長期以來都是由人工完成的,手術器械種類繁多,部分器械相似度較高,所以該工作工作量大且重復性高,造成大量人力浪費,且極易造成漏檢和錯誤分類的情況。
隨著人工智能的發展與應用越來越廣泛,更多的研究者開始關注手術器械的檢測分類問題,希望由機器代替人類完成這項工作,降低人工成本的同時達到高效準確的效果。近年來,圖像目標識別、檢測和分類技術在科研活動和實際生產中也得到了越來越廣泛的應用,大大節約了人力成本,提高了生產效率。陸續有很多學者將深度學習應用到醫療健康領域的研究應用中,如鄭欣、田博等人將圖像分割算法應用到宮頸細胞簇團檢測中[1],張冠宏等人將圖像分割算法應用到視網膜血管分割任務上[2],楊凱等人也將圖像分割算法應用于細胞核分割的研究中[3],深度學習的加入,使診斷效率和準確率得到了大幅提升,加快了醫療健康領域的發展步伐。但是在醫療器械工具方面,目前人工智能的應用和發展還比較緩慢。在對手術器械進行裝包的時候,常將其置于顏色極其相近的包裝盒中,在研究手術器械智能化管理的過程中發現,這樣會加大器械的分割識別難度,另外,現實環境中光照不均和陰影遮擋等因素的存在,也會對識別結果產生嚴重干擾,因此,手術器械包裝管理自動化的實現難度較大。
為了解決上述問題,本文提出了一種基于Deep?Lab V3+網絡模型[4]的深度學習卷積神經網絡分割識別算法,對原DeepLab V3+網絡進行優化改進,實時分割相機拍攝到的圖片,進而實現對手術器械高效準確的自動分割識別,滿足需求的同時降低醫療成本。
本文手術器械分割識別算法主要是在DeepLab V3+網絡的基礎上進行改進后實現的。首先使用平臺上安裝的工業相機采集不同背景下的手術器械圖片,用labelme對圖像中的器械進行標記,制作成滿足訓練條件的樣本標簽并建立數據集,然后修改網絡參數,將數據集放到網絡中進行訓練,當訓練到一定步數時,觀察損失值的變化,當其收斂到一定程度時,結束訓練。最后,用平臺上的相機隨機拍攝臺面上的器械得到RGB圖像,輸入訓練好的網絡模型對其進行分割識別,看是否能達到預想的分割結果。
由Google團隊開發的DeepLab系列網絡框架,是目前語義分割任務中應用最為廣泛的網絡模型,該系列網絡大大提升了模型在語義分割任務上的性能,使語義分割在科研和生產中得到更加廣泛的應用,提升了檢測識別的精度和效率。其中DeepLab V3+是一種用于語義分割的典型網絡框架,該網絡在DeepLab V1、V2及V3系列[5-7]之后提出,結合了前DeepLab系列及SegNet和PSPNet等網絡的特點,并采取了新的改進措施,在語義分割任務中取得了較好的表現。
DeepLab V3中引入了圖像級別的帶膨脹卷積的空間金字塔池化層,通過在不同膨脹率上進行池化操作來獲取更加詳細的上下文信息。但是這樣的操作并不能充分恢復下采樣的過程中損失的細節信息,會使分割結果邊緣模糊,不夠精確。所以,DeepLab V3+則在DeepLab V3的基礎上添加了解碼模塊[8],構建了一個帶有空洞卷積的空間金字塔池化編碼-解碼結構,其網絡模型結構如圖1所示。DeepLab V3+的編解碼結構可以恢復圖片的原始分辨率,從而有效解決了DeepLab V3僅通過采樣恢復特征圖時導致細節信息丟失的問題,使得邊緣細節信息能夠較好地被保留,分割結果更加精確。同時基礎網絡也由DeepLab V3的ResNet101換成了Xception網絡,加快了網絡的計算速度,實現了準確率和運算時間的綜合性能最優化[9]。
DeepLab V3+網絡的整體編解碼模型如圖1所示,該網絡的編碼器部分由Xception和ASPP模塊兩部分組成,提取底層特征,其中Xception為提取特征骨干網,是由輸入流、中間流和輸出流組成的DCNN網絡。ASPP則為含不同空洞卷積擴張率的多尺度金字塔特征提取模塊,利用骨干網得到的高級語義特征圖進行并行多尺度語義信息提取,生成多尺度特征圖,在編碼器尾部將多尺度的高級語義特征圖在通道維度上進行組合,通過1×1的卷積進行通道降維[10]。DeepLab V3+的解碼器部分采用的是級聯解碼器,而非一步到位。先用1×1的卷積核對編碼過程中提取到的低層次的特征信息進行通道降維,以便其和編碼器輸出的特征圖四倍上采樣之后的通道數保持一致進行融合,然后將融合后的結果通過一個常規的3×3卷積來提取特征,最后經過一個四倍雙線性插值上采樣之后輸出語義分割圖。

圖1 DeepLab V3+編碼-解碼模型結構
然而,將手術器械數據集放在DeepLab V3+原網絡中進行語義分割訓練時,雖然能分割出手術器械的基本輪廓,但是在可視化結果圖中可以看到,存在邊緣不夠平滑、細節不夠清晰等問題,分割結果與器械的實圖有較大出入,無法分辨形狀相似的器械,對后面的模板匹配結果的精確度影響較大。分析實驗過程可以知道,出現這種情況是因為在編碼時,卷積下采樣過程中存在圖像的有用信息丟失的情況,如一些邊緣的點、線、角度等細節信息,導致了內部數據結構丟失和空間層級化信息丟失,且這種操作導致的信息丟失是不可逆的。經過卷積次數越多,得到的特征圖就越抽象,在解碼的上采樣過程中,雙線性插值上采樣方法只能將圖像平滑放大,并不能增加圖像信息,并不能恢復下采樣過程中的損失。
在整個手術器械識別過程中,語義分割后的結果要用于與平臺拍攝的RGB圖像進行比對裁剪,然后進行模板匹配識別。該過程對實時性要求較高,語義分割的速度要能實時跟上圖片的拍攝速度,但是Deep?Lab V3+網絡的實時性達不到系統要求,導致模板匹配速率慢,工作效率低下。
故為了提高網絡在手術器械數據集上的語義分割性能,實現分割精確度與分割速率的雙重提高,本文對DeepLab V3+網絡框架做了以下改進。
1.3.1 將ASPP模塊中的3×3空洞卷積進行2D分解
在編碼端,ASPP模塊利用骨干網得到的高級語義特征圖以不同擴張率的空洞卷積進行并行多尺度采樣,生成多尺度特征圖。在這個過程中,ASPP模塊的3×3卷積會學到一些冗余信息,且參數數量較多,在訓練中造成資源浪費,增加計算成本。本文將3×3的卷積分解成3×1和1×3的卷積,如圖2所示,保持其空洞率不變,改進后的卷積參數量比原本的3×3卷積減少了33.33%,從而大大減少了計算量,在保證提取有效語義信息的同時提高了運算速率。

圖2 改進后的ASPP模塊
1.3.2 使用深度可分離卷積替換普通卷積
本文在解碼器部分,采用3層深度可分離卷積替換原本的普通3×3卷積,對深度信息和空間信息去耦,以逐步獲取精細的分割結果[11]。
深度可分離卷積將原始卷積拆分為逐通道卷積和逐點卷積兩部分[12]。逐通道卷積的一個卷積核只負責一個通道,一個通道也只被一個卷積核卷積,逐通道卷積完全是在二維平面內進行的,卷積核的數量與上一層的通道數相同。逐點卷積的運算則與常規卷積運算類似,其卷積核尺寸為1×1×M(M為上一層的通道數),逐點卷積是將上一步得到的多個特征圖在深度方向上進行加權組合,生成新的特征圖。
與傳統卷積相比,深度可分離卷積將深度信息和空間信息進行拆分處理[13],并且融合了不同尺度的底層特征信息,實現了對空間信息和深度信息的去耦,相較于普通卷積,深度可分離卷積對每個通道使用不同的卷積核,對每一個通道的特征都進行了學習,得到的特征信息更全面,保留了更多重要邊緣特征信息,有效減少了上采樣過程中的信息丟失,提高了分割預測結果精確度。此外,深度可分離卷積與普通卷積相比,參數數量也大量減少,進一步減少冗余計算,提高運算速率。
在本次實驗中,由于網上沒有公開的符合實驗要求的手術器械圖像數據集,因此需要實驗人員自己拍攝制作數據集。我們使用搭建的平臺上安裝的工業相機從成90°角度的兩個方向拍攝手術包裝盒里的手術器械,然后用Photoshop對圖像中的器械進行標記提取得到二值圖,再編寫程序對圖像中手術器械部分的灰度值進行修改制作成滿足訓練條件的樣本標簽并建立數據集。未來增強算法的泛化能力,使分割結果更加精確,實驗中圖片的拍攝是在不同背景和光照條件下進行的,而且為了防止因為樣本單一導致過擬合問題,本實驗采取了旋轉、翻轉等方法對數據集進行了擴充。本文中的數據集總共包括1500張圖片,其中隨機抽取1300張作為訓練集,200張作為驗證集。
我們在對語義分割結果進行評價的時候,有一些常用的評價指標,主要包括均交并比(Mean Intersec?tion over Union,MIoU)、像素精度(Pixcal Accuracy,PA)、召回率(Recall)和運行時間,通過這些數值我們可以更直觀地對語義分割性能進行評估。
IoU(Intersection over Union)是模型所預測的目標區域與標注數據集中所標注的真實區域的交并比,MIoU則是計算不同類別的IoU然后加權求平均得到,計算方法如下所示。

式中:pii表示真實值為i,被預測為i的數量;pij表示真實值為i,被預測為j的數量;p ji表示真實值為j,被預測為i的數量;K表示除背景外的樣本種類數量。
PA為分類預測正確的像素點數占像素點總數的比例,計算方法如下所示。

Recall是所有被正確預測為正樣本的樣本數量與真實的正樣本的總數量的比值,計算方法如下所示。

理想情況下,像素精度和召回率都是越高,說明分割效果越好,但是像素精度和召回率是成負相關的,二者相互制約。所以為了找到二者的最佳組合,我們引入F值對像素精度和召回率進行調和平均,計算方法如下所示。

算法的運行時間也是我們衡量其分割性能的一項重要指標,本文中指的是計算機處理一批(batchsize=8)圖片所需要的時間。
2.3.1 實驗參數設置
本文的分割數據集是自己制作的手術器械圖片數據集,硬件配置采用GPU顯卡為NVIDIA GTX 1080TI,內存8GB,Intel Core i5-6500處理器;實驗在Tensor?Flow 1.11.0,Python 3.6,Win10環境下進行。學習率設置為0.001,batchsize設置為8,訓練步長為5萬步。
2.3.2 分割性能對比
分別用改進后的DeepLab V3+網絡和原本的Dee?pLab V3+網絡訓練自己制作的數據集,隨機拍攝4張圖片在兩個模型上進行測試,可視化對比結果如圖3所示。從圖3可以看出,改進后的網絡保留了更多的邊緣信息,細節清晰,分割效果更好。

圖3 算法效果圖對比
此外,本文還從通過MIoU、PA、Recall、F值和運行時間等數值定量對改進后的DeepLab V3+網絡和原網絡進行了對比,對比結果如表1所示。從表中可以看出,本文的語義分割算法要明顯優于原本的DeepLab V3+網絡,可以在高準確率的前提下達到實時分割識別的目的,更加符合系統的實用要求。

表1 算法性能對比
本文提出了一種基于改進DeepLab V3+網絡的手術器械分割識別算法。將ASPP模塊中的3×3空洞卷積進行2D分解,減少了參數數量,并且在解碼端使用深度可分離卷積替換普通卷積,提升分割精確度的同時也提高了處理速度。將訓練結果應用到手術器械識別系統中,通過實驗可以看到,識別準確率很高,實用性較強,滿足系統的設計要求。
本文的語義分割模型兼顧了分割準確率和分割速率,但是本文算法對圖片中手術器械的完整性要求較高,當目標有遮擋,或多個目標重疊時,無法完成正確的分割識別,因此,通過局部特征實現對手術器械的分割識別,是以后研究的重要方向。