梁姍姍,曾鴻為,何杰,張軍,袁進
(1.中山大學電子與信息工程學院,廣州 510006;2.中山大學中山眼科中心,眼科學國家重點實驗室,廣州 510000)
視網膜是眼睛最重要的部分之一,其病變會導致視力下降甚至失明。多數視網膜病變會導致視網膜形態學改變,因此觀測和分析其形態變化對臨床診斷具有重要意義[1-2]。視網膜是緊貼在脈絡膜內面的薄膜。它由視覺細胞構成,有感受光刺激的作用,視信息在視網膜上形成視覺神經沖動,沿視路將視信息傳遞到視中樞形成視覺,在頭腦中建立起圖像。視網膜在組織學上共分為10層:神經纖維層(nerve fiber layer,NFL)、神經節細胞層(ganglion cell layer,GCL)、內叢狀層(inner plexiform layer,IPL)、內顆粒層(inner nuclear layer,INL)、外叢狀層(outer plexiform layer,OPL)、外顆粒層(outer nuclear layer,ONL)、內節段髓(inner segmental medulla,ISM)、內節段橢球體(inner segment ellipsoid,ISE)、外節段(outer segment,OS)、視網膜色素上皮層(retinal pigment epithelium,RPE)[3]。視網膜形狀的變化往往就表現為這十層膜結構的形態的變化。
光學相干斷層掃描技術(optical coherence tomography,OCT)是近年來發展較快的一種極具發展前途的新型層析成像技術,由于其低損、高分辨率、非侵入性等特點,已被廣泛應用到眼科的臨床診斷中,成為繼CT,MRI后又一重大技術突破[4]。在臨床分析中,對視網膜OCT圖像的分層處理一般采用5~9層的劃分模式。視網膜積液往往預示視網膜發生了病變,如糖尿病性黃斑水腫、視網膜炎等。醫生可以通過分析視網膜積液區域的分布和積液塊的大小來診療眼底病變情況,分割視網膜中可能出現的積液區域有益于疾病診斷和治療。傳統的分割方法是靠醫生或者專業人士手動分割,這種方式耗時長、主觀性強。隨著計算機的普及以及圖像處理算法的發展,計算機輔助醫生進行醫療診斷成為一種炙手可熱的方法[5]。
圖像分割常見的方法有3類:一種是基于灰度閾值的傳統分割方法[6-7],它們通常只能進行簡單的視網膜層分割,分割的方法只是根據像素點的值,缺失大量信息,精度低;還有基于圖論的方法,如采用稀疏重建和圖搜索的方式[8]對視網膜OCT圖像中的黃斑區域進行分割,這類方法有計算速度快、分層靈活的特點,但同時也更易受到噪聲的干擾;另一類方法是基于機器學習的方法,如利用隨機森林[9]、支持向量機[10-11]和一些其他機器學習手段[12]完成對視網膜層的分割,這類方法有分割精度高、受噪聲影響小的特點,也有研究人員[13]在使用機器學習方法的同時加入傳統的邊界提取算法來更好地獲得分割層的邊界。
Devalla等[14]結合殘差結構可以提供更好的網絡梯度信息流的優勢和在DeepLab中提到的膨脹卷積概念,提出了DRUNet體系架構。該網絡由一條下采樣路徑和一條上采樣路徑組成,每條路徑包括一個標準卷積模塊和兩個殘差卷積模塊,兩條路徑呈對稱分布,通過跳級連接實現互連。最后,使用softmax激活函數應用于此輸出層,以獲得各像素的類概率。在臨床應用中,分割的準確度和速度對醫生的診療都有重要影響,所以不斷提高精度與速度一直是醫學圖像分割領域深度學習的著力點。DRUNet網絡在自然圖像分割任務上有很好的表現,而本文旨在改進編碼與解碼的方式,在減少參數量的同時達到提高分割的準確率和加快處理速度的目的。
本文設計了一種基于DRUNet的改進型輕量級的適用于小樣本醫學圖像分割任務的全卷積神經網絡,選擇使用深度學習的方法來完成分割任務的原因在于視網膜O CT圖像中各區域之間灰度差距小,依靠傳統閾值判決的方式難以獲得較好的分割,而卷積神經網絡在提取圖像高級語義和低級特征方面有著較傳統算法獨有的優勢。本文搭建的網絡是一個帶有膨脹卷積[15]和殘差結構[16]的網絡,并且在輸出端采用了多尺度分層特征提取[17]來幫助恢復視網膜各層的邊界。經實驗可知,所設計的網絡較普通的U-Net訓練更快且對比發現分割視網膜各區域效果良好。
從不同下采樣程度的特征圖恢復到原圖大小時所形成的分割結果其邊界精細程度是不同的。在淺層的特征圖中,包含有更多的細節信息(局部特征);在深層特征圖中,包含有更多的上下文信息(全局特征),因此如果考慮將不同深淺層的特征進行多尺度融合,得到的分割效果可能更好。本文提出的網絡繼承了DRUNet的結構,并結合多尺度分層特征提取的優勢,對上采樣網絡進行了改進。在DRUNet中,僅僅使用了殘差模塊和膨脹卷積,殘差模塊可以加速訓練時的梯度流動,加快收斂;而膨脹卷積可以在同樣的數據規模中獲得更大的感受野,即考慮更多上下文的關聯。但是在恢復原圖尺寸的時候只是有類似U-Net架構中的跳級連接。本網絡添加的多尺度特征提取,將其與最終上采樣結果融合再獲得輸出的方法便于網絡進一步考慮分割目標的深層抽象特征和淺層邊界信息,可以避免產生積液區域的分割空洞和形成更為精確的邊界。
一個輸入圖像首先經過Standard Block(由兩個3×3的卷積層)和3個Residual Block(由Standard Block在輸入端和輸出端跨接一個1×1的卷積層得到)進行編碼,從每個Block輸出都會做一次2×2的最大池化,然后再通過兩個Residual Block和一個Standard Block進行解碼,相同尺度的Block彼此跳接,對下采樣中3個模塊輸出的上采樣采用步長分別為1,2和4的轉置卷積,最后在深度方向拼接后送入輸出層(圖1)。這樣做的好處是便于網絡融合多層級的特征,有利于恢復掃描圖像中的邊界。
對比兩個網絡結構發現:本網絡并不如U-Net深,僅進行3次下采樣。因本網絡采用了膨脹卷積,使得網絡不用進行很多下采樣也可獲得足夠的感受野。另外,網絡中兩個較深的層采用了殘差結構來加速梯度的流動,并在跳接結構的基礎上加入了多尺度特征提取。再對比兩個網絡的規模,經統計發現U-Net總共有58 825個可訓練參數,而本網絡總可訓練參數僅為52 649個。可見添加殘差結構和多尺度分層特征提取后,網絡總參數還是比U-Net少,網絡更加精簡。
本實驗數據來自杜克大學的一項關于視網膜OCT圖像分割的項目[18]。OCT圖像大小不一,但基本都被裁剪為496×768,標簽為8×768的二維數組。經對圖像和標簽對應進行適當裁剪,最終獲得110張尺寸為288×560的灰度圖和對應的標簽,其中包括32張不含積液的樣本和78張含積液的樣本。本文分配90張OCT圖像供訓練,其余20張用于測試,訓練集和測試集中均包含帶積液和不帶積液的樣本。同時對圖像進行隨機水平翻轉、隨機平移、隨機旋轉、錯切變換和隨機縮放以擴充數據集。
在兩個采樣路徑中,除最后一層輸出外,其余層均進行Batch Normalization[19],并采用ELU函數[20]激活。使用帶有Nesterov動量(動量=0.9)的隨機梯度下降對整個網絡進行端到端訓練。初始學習率為0.1(當驗證損失在兩個連續的時期內未能改善時學習率縮小10倍),損失函數采用輸出結果與標簽的交叉熵。利用Keras的數據生成器,實時不斷生成進行隨機操作后的數據并饋入網絡進行訓練,受限于內存大小,每批次僅生成并饋入2張OCT圖像,進行50輪迭代。整個訓練及測試過程在2 GHz雙核Inter?CoreTMi7-3667U CPU上進行。

圖1 改進的DRUNET網絡結構,沿用了DRUNET的基礎結構,同時將下采樣路徑中每一模塊的輸出分別上采樣到原圖像大小,對下采樣中3個模塊輸出的上采樣采用步長分別為1,2和4的轉置卷積,加入多尺度分層特征提取,在深度方向拼接后送入輸出卷積層Figure 1 The network of optimized DRUNET,which follows the infrastructure of DRUNET.Output in down-sampling path is upsampled to the same scale of original images.Deconvolution with stride of 1,2,4 are respectively used in the three module outputs in down-sampling path,incorporating multi-scale feature extraction,the feature maps will reach output layer after being concatenated in channels
觀察網絡的訓練過程發現:與U-Net的對比,本工作中所提出網絡的精確率達到95%時經過10輪訓練,U-Net達到相同精度需要進行30輪以上,且最終穩定情況下精確率也較U-Net高1.25%(圖2)。此外,Loss下降速度也明顯快于單純的U-Net,U-Net的Loss下限也不如改進型DRUNet。實驗表明本文所提出的網絡更加適用于訓練,學習效率更高。
接下來分別以不帶有積液的層分割和帶有積液的分割為例,觀察兩個網絡的分割結果。先討論不帶有積液的層分割:經過本文所提出的改進型DRUNet處理后的圖像較U-Net得到了更好的分割,待分割的各視網膜層的整體可見性也很好(圖3)。再看帶有積液的分割:U-Net對視網膜各層的分割不如改進型DRUNet;在積液區域,U-Net分割得到的結果出現了很多空洞(圖4),而這在積液區域通常是不會發生的,積液常為成塊存在,因此改進型DRUNet分割的結果更加貼近于真實值。
表1和表2統計了不帶積液樣本和帶積液樣本中各類別的精確率、Dice系數、交并比(IoU),這里統計了前8個 類別。

圖2 改進型的DRUNet與U-Net訓練過程準確度和損失曲線Figure 2 Comparison of training accuracy and loss between DRUNet and U-Net

圖3 不帶積液的分割結果對比圖,本文所提出的改進型DRUNet層次分割優于傳統U-NetFigure 3 Comparison of segmentation results on samples without effusion,the proposed optimized DRUNet outperforms original U-Net

圖4 帶積液的分割結果對比圖,在積液區域,U-Net分割得到的結果出現了很多空洞,而這對于積液區域通常是改進型DRUNet分割的結果更加貼近于真實值Figure 4 Comparison of segmentation results on samples with effusion,U-Net shows many cavities in effusion area,while the segmentation result of DRUNet is closer than true label

表1 不帶積液樣本的分割結果統計Table 1 Comparison of segmentation results on samples without effusion
對于一個特定的類別,屬于該類別的像素點稱為正樣本,否則為負樣本,假設T P(Tr u e Positive)表示實際為正樣本被模型正確預測為正的樣本數;TN(True Negative)表示實際為負樣本,被模型正確預測為負的樣本數;FP(False Positive)表示實際為負樣本,被模型錯誤預測為正的樣本數;FN(False Negative)表示實際為正樣本,被模型錯誤預測為負的樣本數。精確率定義為Precision=(TP+TN)/(TP+TN+FN+FP);Dice系數定義為Dice=2×TP/(2×TP+FP+FN);交并比定義為IOU=1/2×[TP/(FP+FN+TP)+TN/(FN+FP+TN)]。
NFL,GCL-IPL,INL,OPL分割情況U-Net不如改進型DRUNet,尤其在INL和OPL這類較難的分割對象中,U-Net表現也不如改進型DRUNet(表1)。對帶積液的樣本進行分割,發現除ISE和OS,RPE外,其余各類別改進型DRUNet的性能均較U-Net好(表2)。總體來看,帶積液的樣本分割時,改進型DRUNet各指標均優于傳統U-Net,而層分割時改進型D R U Ne t 整體性能也更優于U-Net。

表2 帶積液樣本分割結果統計Table 2 Comparison of segmentation results on samples with effusion
本文提出了一種改進型DRUNet結構,它是一個帶有膨脹卷積和殘差結構的網絡,并且在輸出端采用了多尺度分層特征提取來幫助恢復視網膜各層的邊界,通過跟U-Net的對比可以發現,該網絡處理后的圖像得到很好的分割,待分割的各視網膜層的整體可見度較好,而U-Net中出現了層次分割不準確,某些層中有錯誤的散斑分割現象。更主要的是,除了分割精度,本文提出的網絡結構參數量小,交叉熵損失下降速度均明顯優于U-Net,具有廣泛的應用前景,可以實現對視網膜OCT圖像較好的分割,具有強大的臨床應用潛力。
但通過結果可以看到,進行層分割時,不同層的分割結果往往差異很大,如何設計約束使得在保持原有較好的層分割的同時,完成對更加模糊的層的分割,是另一個亟待解決的問題,同時在有積液的OCT圖像中,積液區域出現的不確定性、不同程度積液在OCT圖像中表現出的差異等問題仍然不能被很好地解決,所以這個網絡仍然有一定的優化空間。且由于樣本數據量較少,模型的表現受到一定的限制,尚缺乏足夠的外部驗證測試模型的泛化能力。將進一步與相關眼科醫生展開合作獲取更多數據,完善模型同時推進臨床實驗,開展外部測試。