徐子和 楊麗 龔研 王培培 劉俊彤 盧小杰
摘要:糖尿病性視網(wǎng)膜病變是一種難以診斷、高風險的致盲性疾病。針對人工對圖像特征提取困難、分類準確性差、耗費時間長的問題,采用卷積神經(jīng)網(wǎng)絡(luò)構(gòu)建糖尿病性視網(wǎng)膜病變自動分類器具有重要的臨床價值。方法:本文針對已收集好的彩色眼底圖像,通過對圖像的清洗、擴增、歸一化構(gòu)建糖尿病性視網(wǎng)膜病變數(shù)據(jù)集。利用VGG16與FCN的優(yōu)點將其結(jié)合,將全連接層改造為卷積層,構(gòu)建新的糖尿病性視網(wǎng)膜病分類模型。將ImageNet充分訓練好的VGG16網(wǎng)絡(luò)模型參數(shù)作為本文模型初始化參數(shù),送入已改造的神經(jīng)網(wǎng)絡(luò)模型提取特征,最后輸出分類結(jié)果。結(jié)果:實驗結(jié)果表明,本文提出的深度學習分類方法的準確率與損失值均優(yōu)于傳統(tǒng)同類別的卷積神經(jīng)網(wǎng)絡(luò)分類算法,對臨床診斷參考有重要的意義。結(jié)論:本文利用的方法對解決數(shù)據(jù)分布不均衡和過擬合的問題有一定的促進作用,具有較好的魯棒性。
關(guān)鍵詞:糖尿病視網(wǎng)膜病變;圖像識別;卷積神經(jīng)網(wǎng)絡(luò);深度學習
中圖分類號:TP391? ? ? 文獻標識碼:A
文章編號:1009-3044(2022)03-0001-03
開放科學(資源服務(wù))標識碼(OSID):
糖尿病已成為繼心腦血管疾病、腫瘤之后另一個嚴重危害我國人民健康的重要慢性非傳染性疾病[1]。I型、II型糖尿病患者因糖尿病視網(wǎng)膜病變而致盲的比例分別為86%、33%[2-4]。因此,若不及時對糖尿病性視網(wǎng)膜病變進行有效診斷和預防,糖尿病患者失明的風險將隨著病程和年齡的增長而大大提高。
隨著人工智能的發(fā)展,深度學習開始走進醫(yī)療領(lǐng)域。卷積神經(jīng)網(wǎng)絡(luò)對復雜數(shù)據(jù)的表示能力有助于其識別傳統(tǒng)分類器難以區(qū)分的復雜疾病[5-8]。深度學習在皮膚癌檢測、乳腺癌檢測、血管檢測等領(lǐng)域取得了重大突破的同時,在糖尿病視網(wǎng)膜病變的分期和檢測中也取得了不錯的效果[9-11]。因此,應(yīng)用深度學習算法對糖尿病性視網(wǎng)膜病變的分級診斷是有意義的,也順應(yīng)了當今醫(yī)療信息化與智能化的發(fā)展,更為解決此類疾病的診斷的難題帶來了希望。
1數(shù)據(jù)集的搭建與預處理
1.1數(shù)據(jù)集簡介
本文利用Kaggle網(wǎng)站中的35172張眼底圖像數(shù)據(jù)集。數(shù)據(jù)集根據(jù)實際病變程度進行劃分為5個等級,從癥狀的輕到重對應(yīng)0~4的編號。各個等級與病變的對應(yīng)如表1所示。數(shù)據(jù)集每個等級對應(yīng)的數(shù)量分布關(guān)系分布如圖1所示。
各個病變等級對應(yīng)的圖像如圖2所示,圖a代表健康的無視網(wǎng)膜病變的圖像,由此類推,圖a至圖e分別代表病變由淺至深的五個等級。
1.2數(shù)據(jù)集預處理
1.2.1數(shù)據(jù)清洗與篩選
在訓練之前,本文先對數(shù)據(jù)集進行相關(guān)的清洗與預處理操作。針對數(shù)據(jù)集的實際情況,通過對比標準規(guī)范的圖像,剔除不符合要求的相關(guān)圖像如圖3所示。如亮度過暗的(圖a)、曝光過高(圖b)的圖像。
1.2.2數(shù)據(jù)擴充
對數(shù)據(jù)進行合理擴增如圖4所示。對清洗后的圖像進行剪裁,剪裁后的圖像(圖a)能夠更好地突出特征,便于后期對圖片像素進行充分地讀入。對圖片旋轉(zhuǎn)90度(圖b),旋轉(zhuǎn)180度(圖c)后與原數(shù)據(jù)集合并,從而將數(shù)據(jù)集擴充至原來的三倍。數(shù)據(jù)集擴充將樣本少的數(shù)據(jù)集向樣本多的數(shù)據(jù)集靠攏,解決了數(shù)據(jù)不平衡的問題。
1.2.3數(shù)據(jù)歸一化
數(shù)據(jù)歸一化是為了在訓練的過程中可以加速網(wǎng)絡(luò)的收斂、達到更好訓練效果而對樣本的統(tǒng)計特性進行歸納統(tǒng)一,本文采用線性函數(shù)轉(zhuǎn)化方法,具體轉(zhuǎn)化方法為公式(1):
[y=x-minValuemaxValue-minValue? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (1)]
上式中[x]、[y]分別為轉(zhuǎn)換前、后的值,[maxValue]、[minValue]分別為樣本的最大值和最小值[12]。
2訓練模型設(shè)計
2.1卷積神經(jīng)網(wǎng)絡(luò)
卷積神經(jīng)網(wǎng)絡(luò)是為圖像分類而發(fā)展起來的,只要輸入的信號滿足多層次結(jié)構(gòu)、特征局部性和平移不變性三個特性均可以采用卷積神經(jīng)網(wǎng)絡(luò)。在圖像處理中,卷積運算為公式(2)和(3):
[? ? gx,y=m=j,n=jm=i,n=ifx+m,y+nhm,n? ? ? ? ? ? ?2]
[? ? ? ? ? ? ? ? g=f*h? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?3]
其中[x,y]為中心像素的坐標,[x=1,2,……,h,y=1,2,……,w],[ h]為圖像的高度,[w]為圖像的寬度。卷積需要遍歷整個圖像。[f]為原始圖像矩陣,[g]為運算出的新圖像矩陣。[h]為卷積核,卷積核大小為[(i-j×i-j)],[*]為運算符。由此可看出,卷積運算即濾波運算,所以卷積核也被稱為濾波器。
2.2 深度學習訓練模型設(shè)計
VGGNet探索了卷積神經(jīng)網(wǎng)絡(luò)的深度和其性能之間的關(guān)系,通過反復地堆疊3×3的小型卷積核和2×2的最大池化層,成功地構(gòu)建了16~19層深的卷積神經(jīng)網(wǎng)絡(luò)。FCN為全連接卷積神經(jīng)網(wǎng)絡(luò),用于圖像的分割。FCN將CNN中末尾的全連接層改為卷積層,使整個網(wǎng)絡(luò)模型能接收任意大小的輸入圖像尺寸,避免了由于尺寸不同帶來的重復存儲和復雜計算的問題[13-14]。
2.2.1 網(wǎng)絡(luò)模型
VGG16網(wǎng)絡(luò)結(jié)構(gòu)復雜,模型參數(shù)繁多,從頭開始訓練必然會導致網(wǎng)絡(luò)訓練不充分、模型難以收斂等情況。本文預先利用已經(jīng)在VGG16網(wǎng)絡(luò)上預先訓練的ImageNet數(shù)據(jù)集參數(shù)作為網(wǎng)絡(luò)的初始化參數(shù)。再利用VGG16網(wǎng)絡(luò)進行本文數(shù)據(jù)集的特征提取。VGG16網(wǎng)絡(luò)模型特征提取框架及各個層數(shù)如圖5所示。
2.2.2 圖像自動分類
全連接層的作用是將經(jīng)過多個卷積層和池化層的圖像特征圖中的特征進行整合,獲取圖像特征具有的高層含義,用于圖像分類[14]。針對糖尿病性視網(wǎng)膜病變圖像中病變區(qū)域難以檢測和提取的問題,本文將VGG16網(wǎng)絡(luò)與FCN網(wǎng)絡(luò)的優(yōu)點進行融合。先用VGG16網(wǎng)絡(luò)充分提取數(shù)據(jù)集中圖像的特征,再利用FCN的特點將全連接層改造為7×7和1×1的卷積層用于圖像的分類。輸入尺寸為224×224×3的圖像,經(jīng)過特征提取框架得到尺寸為7×7×512的圖像,空間尺寸縮小了32倍,輸出神經(jīng)元個數(shù)高達138357544。而經(jīng)過一個全連接層改造后的卷積層則只需要進行一次前向傳播,大大共享了計算資源,使得計算更加高效。因此,全連接層改造為卷積層后,可以在一次前向傳播中讓更大的圖像進行充分卷積。為了防止過擬合,在卷積層Fc1以及Fc2后均引入了Dropout層,并在之后添加relu線性修正單元,解決梯度彌散。圖像自動分類器如圖6所示。
3實驗結(jié)果與分析
本文實驗方法的實現(xiàn)基于Python3.5平臺,使用深度學習框架tensorflow,數(shù)據(jù)預處理及增強使用pillow庫,利用一塊顯存為11G的NVIDIA GeForce RTX 2080Ti顯卡訓練100個epoches得到訓練模型。輸入圖像尺寸統(tǒng)一設(shè)定為224×224,為了驗證訓練模型效果,本文將數(shù)據(jù)集按照5:1的比例劃分為訓練集和測試集,訓練集和測試集互不交叉。
對于圖像分類,判斷分類模型的性能通常采用圖像分類的準確率和損失值。準確率acc表示為測試集中被正確分類的圖像個數(shù)num除以測試集中圖像的數(shù)量sum[15],即:
[acc==numsum? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?4]
損失值計算本文采用多分類交叉熵作為損失函數(shù)。交叉熵描述兩個概率分布的距離,令p(x)為真實值,q(x)為預測值,則p交叉熵為:
[Hp,q=-pxlogqx? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(5)]
在神經(jīng)網(wǎng)絡(luò)分類任務(wù)中,輸出的并不一定是概率,更多的是實數(shù)。則利用softmax函數(shù)將神經(jīng)網(wǎng)絡(luò)前向傳播的結(jié)果變?yōu)楦怕史植肌TO(shè)神經(jīng)網(wǎng)絡(luò)輸出的結(jié)果為[y1,y2],[y3……yn],則經(jīng)過softmax輸出的結(jié)果為:
[softmaxyi=y'i=yij=1nyj? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (6)]
根據(jù)上述原理,繪制出訓練模型的準確率以及損失值圖像,如圖7所示。由圖可以看出,在VGG16模型中訓練集的acc基本保持在0.735左右,測試集acc保持在0.738左右。損失值方面,訓練集的loss迅速下降,測試集loss維持在0.8左右,最低可在0.6。acc與loss均小幅震蕩則表明網(wǎng)絡(luò)已經(jīng)收斂。
本文結(jié)果與使用同一數(shù)據(jù)集在未改造的VGG16模型上分類結(jié)果進行對比,結(jié)果如表2所示??梢钥闯霰疚奶岢龅姆椒ù蟠筇岣吡藴蚀_率。
4 總結(jié)
本文利用卷積神經(jīng)網(wǎng)絡(luò)方法對糖尿病性視網(wǎng)膜圖像進行分類。為了提高分類的準確率,加快模型收斂速度,本文在經(jīng)典VGG16模型上將FCN與VGG模型融合進行改造。首先引入ImageNet訓練參數(shù)作為初始訓練權(quán)重,接著經(jīng)過深度學習提取框架進行特征提取,最后將提取的特征經(jīng)過改造后的全連接層進行分類。本文提出的提取方法大大提高了傳統(tǒng)VGG16分類方法的準確率,對比其他分類算法也有不同程度的提升,優(yōu)于普通醫(yī)生的分類效率與準確率。但在圖像處理與清洗,模型優(yōu)化上還有提升空間,因此在后續(xù)的工作中將設(shè)計圖像處理算法以突出局部病變的特征,并將各個模塊整合成系統(tǒng)用于糖尿病性視網(wǎng)膜圖像的自動分類。
參考文獻:
[1] 楊文英.中國糖尿病的流行特點及變化趨勢[J].中國科學:生命科學,2018,48(8):812-819.
[2] 孫艷麗,張駿.維生素D水平與2型糖尿病視網(wǎng)膜及黃斑病變的相關(guān)研究[J].中國生化藥物雜志,2016,36(8):141-144.
[3] 陳霞琳,汪迎,張凱,等.糖尿病性視網(wǎng)膜病變相關(guān)危險因素分析[J].臨床眼科雜志,2013,21(4):35-37.
[4] 羅院生.從視網(wǎng)膜圖像到糖尿病視網(wǎng)膜病變診斷[D].成都:電子科技大學,2017.
[5] Convolutional Nets and Fully Connected CRFs[C]//International Conference on Learning Representations, 2015.
[6] Esteva A,Kuprel B,Novoa R A,et al.Dermatologist-level classification of skin cancer with deep neural networks[J].Nature,2017,542(7639):115-118.
[7] Sabouri P,GholamHosseini H.Lesion border detection using deep learning[C]//2016 IEEE Congress on Evolutionary Computation (CEC).July 24-29,2016,Vancouver,BC,Canada.IEEE,2016:1416-1421.
[8] 馬文婷.面向眼科醫(yī)學圖像的病變檢測研究[D].北京:北京交通大學,2018.
[9] Wang D Y,Khosla A,Gargeya R,et al.Deep learning for identifying metastatic breast cancer[EB/OL].2016
[10] Liu Y,Gadepalli K,Norouzi M,et al.Detecting cancer metastases on gigapixel pathology images[EB/OL].2017:arXiv:1703.02442[cs.CV].https://arxiv.org/abs/1703.02442
[11] Networks.[J]. IEEE Transactions on Medical Imaging, 2016, 35(11):23692380.
[12] 李瓊,柏正堯,劉瑩芳.糖尿病性視網(wǎng)膜圖像的深度學習分類方法[J].中國圖象圖形學報,2018,23(10):1594-1603.
[13]Karen S, Andrew Z. Very deep convolutional networks for large-scale image recognition. In: Bengio Y, Lecun Y, eds. 3rd International Conference on Learning Representations. San Diego: Conference Track Proceedings, 2015. https://arxiv.org/abs/1409.1556
[14] Shelhamer E,Long J,Darrell T.Fully convolutional networks for semantic segmentation[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2017,39(4):640-651.
[15] 蘇炯銘,劉鴻福,項鳳濤,等.深度神經(jīng)網(wǎng)絡(luò)解釋方法綜述[J].計算機工程. https://doi.org/10.19678/j.issn.1000-3428.0057951
[16] 丁蓬莉,李清勇,張振,等.糖尿病性視網(wǎng)膜圖像的深度神經(jīng)網(wǎng)絡(luò)分類方法[J].計算機應(yīng)用,2017,37(3):699-704.
【通聯(lián)編輯:唐一東】