微動脈瘤是糖尿病視網膜病變的初期癥狀,消除該病灶可在早期非常有效地預防糖尿病視網膜病變。但由于視網膜結構復雜,同時眼底圖像的成像由于患者、環境、采集設備等因素的不同會存在不同的亮度和對比度,現有的微動脈瘤檢測算法難以實現該病灶的精確檢測和定位,為此本文提出嵌入SENet(squeeze-and-excitation networks)的改進YOLO(you only look once)v4自動檢測算法。該算法在YOLOv4網絡基礎上,首先通過使用一種改進的快速模糊C均值聚類算法對目標樣本進行先驗框參數優化,以提高先驗框與特征圖的匹配度;然后,在主干網絡嵌入SENet模塊,通過強化關鍵信息,抑制背景信息,提高微動脈瘤的置信度;此外,還在網絡頸部增加空間金字塔池化結構以增強主干網絡輸出特征的接受域,從而有助于分離出重要的上下文信息;最后,在Kaggle數據集上進行模型驗證,并與其他方法進行對比。實驗結果表明,與其他各種結構的YOLOv4網絡模型相比,所提出的嵌入SENet的改進YOLOv4網絡模型能顯著提高檢測結果(與原始YOLOv4相比F-score提升了12.68%);與其他網絡模型以及方法相比,所提出的嵌入SENet的改進YOLOv4網絡模型的自動檢測精度明顯更優,且可實現精準定位。故本文所提出的嵌入SENet的改進YOLOv4算法性能較優,能準確、有效地檢測并定位出眼底圖像中的微動脈瘤。
引用本文: 高瑋瑋, 單明陶, 宋楠, 樊博, 方宇. 嵌入SENet的改進YOLOv4眼底圖像微動脈瘤自動檢測算法. 生物醫學工程學雜志, 2022, 39(4): 713-720. doi: 10.7507/1001-5515.202203022 復制
引言
糖尿病視網膜病變(簡稱“糖網”,diabetic retinopathy,DR)是一種血管疾病,是糖尿病患者致盲的首要原因[1],主要由視網膜微血管因葡萄糖水平升高受損而引起[2],是一種進展性疾病,以微小的紅色病變——微動脈瘤(microaneurysms,MAs)開始。隨著時間的推移,病灶的大小會隨之增大,并逐步擴散至整個視網膜[3]甚至發展為更為嚴重的病灶,如視網膜內出血等,進而影響患者視力[4]。因此,若能通過治療及時阻止MAs的生長,可以有效預防糖網的病程發展[5]。此外,由于MAs是最早發生在視網膜上的病變,因此及時治療MAs是糖網治療中最有效且成本最低的方法。使用激光治療MAs時需要確定其在視網膜上的確切位置[2,6],由于MAs體積小(直徑在10~100 μm),尤其是在早期該病灶肉眼幾乎不可見,故為盡早發現病灶以便進行及時治療,研究人員提出了許多自動檢測算法。
MAs自動檢測算法一般可分為基于物理模型、基于分類器和基于深度學習的方法。基于物理模型的方法主要是根據微動脈瘤的灰度分布結構進行數學建模,如Zhang等[7]提出了一種基于特征轉移網絡和局部背景抑制的MAs檢測方法,可以降低噪聲;高瑋瑋等[8]利用數學形態學擴展極小值變換后獲得微動脈瘤候選區域,進而根據尺寸信息獲取真正的MAs。基于分類器的方法主要是先提取MAs候選區,再對候選區進行分類,如Orlando等[9]首先采用中值濾波去除眼底圖像中的MAs,再經過形態學膨脹得到糖網背景圖像,將原圖與糖網背景圖像相減得到MAs的候選區,然后對候選區提取傳統特征和深度特征用于MAs分類;Dashtbozorg等[10]采用局部收斂濾波(local convergence filters,LCFs)實現眼底圖像增強與MAs候選區提取,再結合LCFs響應特征與灰度特征值進行精確檢測。基于深度學習的檢測方法主要是搭建端到端的深度神經網絡,如Xia等[11]提出了一種基于深度卷積編碼器解碼器的MAs檢測模型;趙學功等[12]提出了基于卷積神經網絡的MAs檢測方法;Rohan[13]提出了一種基于YOLO(you only look once)的MAs自動檢測算法。
然而,上述方法除基于YOLO的方法外均集中于檢測MAs的存在,并不能夠精確定位MAs在視網膜圖像上的位置,這使得眼科學家很難直接使用檢測模型的結果來治療MAs,所以目前這項工作仍由眼科學家手動完成。而基于YOLO的MAs自動檢測算法雖然在一定程度上實現了對于MAs的定位及檢測,但由于YOLO網絡模型結構復雜,容易出現過擬合等問題,其檢測、定位精度及速度并不高。基于此本文提出了嵌入SENet(Squeeze-and-Excitation networks)的改進YOLOv4(improved YOLOv4,YOLOv4-Pro)用于實現眼底圖像中MAs的自動檢測及定位。該方法在YOLOv4網絡模型的基礎上結合MAs病灶尺寸較小的特點,首先利用改進的快速模糊C均值(improved and fast fuzzy c-means,IFFCM)聚類算法[14]對目標樣本進行先驗框參數優化,提高先驗框與特征圖的匹配度以提高定位精度;在此基礎上,為提升檢測精度,進一步結合SENet注意力機制和空間金字塔池化結構(spatial pyramid pooling,SPP)對YOLOv4算法進行優化。在完成YOLOv4網絡結構優化的基礎上,利用該網絡模型檢測視網膜上MAs的存在,并精確定位MAs在視網膜上的位置。
1 實驗材料及設備
實驗采用Kaggle糖網數據集用以訓練和測試所提出的YOLOv4-Pro算法對于眼底圖像中MAs(具體形態如圖1所示)的自動檢測及定位性能。Kaggle糖網數據集由EyePACS(視網膜病變篩查免費平臺)提供,于2015年在Kaggle上公開,共有35 126幅訓練圖像和53 576幅測試圖像,來源于44 351位患者,左右眼各一幅,圖像的分辨率在433 × 289像素~5184 × 3456像素之間[15]。眼科醫師基于國際標準對每幅眼底圖像進行了糖網病患病程度的5級分級:0為健康圖像,1為輕微病變圖像,2為中度病變圖像,3為重度病變圖像,4為增生性病變圖像。但由于本文研究的是所提出模型對于MAs病灶的自動檢測及定位性能,故需對該數據集進行處理以滿足本研究的需求,具體為利用文獻[8]所述方法并輔以眼科醫師的幫助對數據集進行預處理以獲取MAs圖像及注釋文件。由于Kaggle糖網數據集的分布不平衡,在這一階段去除了大量圖像(幾乎90%的圖像不包含任何病變),最后只剩下5 519幅包含MAs的眼底圖像。對于這5 519幅眼底圖像,均生成了注釋文件。生成注釋文件后,整個數據集(5 519幅圖像)按90/10的比例進行劃分,5 000幅用于訓練,519幅用于測試。此外,為充分驗證所提出改進網絡的檢測性能,對原本包含519幅眼底圖像的測試集另增加100幅健康眼底圖像進行擴充,即實際測試時測試集包含619幅眼底圖像。

此外,實驗系統配置為:Intel Core i5-10300H處理器,32.00 GB運行內存,RTX2060獨立顯卡,6 GB顯存。深度學習框架為Pytorch。另外,安裝Cuda10.0和Cudnn7.51進行GPU加速運算。
2 方法
YOLOv4目標檢測網絡[16]是在YOLOv3基礎上,對其三部分構成——骨干特征提取網絡、頸部特征融合網絡和分類回歸的預測輸出部分進行改進得來。主干網絡在DarkNet-53的基礎上融合CSPNet(cross stage partial network)思想,形成CSPDarkNet-53,降低網絡計算量的同時仍可保證準確率;頸部采用融合特征金字塔網絡(feature pyramid networks,FPN)和SPP的路徑聚合網絡(path aggregation network,PANet),解決了FPN網絡由淺層向深層傳遞時淺層特征丟失的問題;檢測頭仍然使用YOLOv3檢測頭[17]。YOLOv4在一定程度上解決了對小目標不敏感的問題,但在眼底圖像MAs的自動檢測問題上,直接使用YOLOv4網絡檢測效果依然并不理想。由圖1可看出,MAs相對于整幅圖像占比較小,故針對所需檢測病灶的特征,需對YOLOv4算法進行改進,具體為:首先采用IFFCM聚類算法進行目標框優化以提高先驗框與目標數據集的匹配度;在此基礎上,通過在主干網絡中嵌入SENet結構來提高網絡對于密集小目標缺陷的置信度;此外,還在網絡頸部增加SPP模塊以實現豐富檢測頭信息特征表達能力的目標。改進后的網絡YOLOv4-Pro結構具體如圖2所示。

2.1 改進的YOLOv4算法
2.1.1 IFFCM算法優化先驗框
YOLOv4算法先驗框是通過K-均值聚類算法在PASCAL_VOC數據集上聚類得到的,故當使用它對眼底圖像進行MAs的自動檢測時會在計算交并比(Intersection over Union,IoU)時篩選出不合適的邊界框,從而影響模型檢測目標的性能,故有必要針對眼底圖像數據集優化先驗框。
采用文獻[14]所提出的IFFCM聚類算法對Kaggle糖網數據集的先驗框進行聚類分析。該聚類算法與K-均值聚類算法(硬聚類)相比,合理結合了聚類技術中軟、硬聚類技術的各自優勢,利用K-均值聚類算法的聚類結果對FCM算法的聚類中心進行初始化,同時利用中值濾波技術優化FCM算法的準則函數,不僅有效抑制了噪聲對聚類結果的影響,而且提高了算法效率。
采用IFFCM聚類算法對收集到的數據集進行聚類,優化了初始點的選擇,能顯著降低誤差,以獲得更適合目標數據集的先驗框大小,從而提高網絡檢測精度。利用該聚類算法對YOLOv4網絡模型的先驗框參數進行優化,并將該優化后的網絡模型稱為YOLOv4-IFFCM。
2.1.2 嵌入SENet結構改進主干網絡
在眼底圖像中利用原始YOLOv4對相對密集的小目標MAs進行檢測時往往會誤檢或漏檢,這是由于置信分布不平衡造成的。因此,為了使網絡能學習全局特征,提高對密集小目標病灶的檢測精度,需對各個通道的權值進行標定[18]。
SENet[19]是一種利用全局信息選擇性強調信息特征并抑制無用特征的網絡,它通過讓網絡根據損失(loss)去學習特征權重而獲取每個特征圖的重要程度,然后依據該重要程度給每一個特征通道賦予一個權重值,從而讓神經網絡去重點關注某些特征圖,使得有效的特征圖權重大,無效或效果小的特征圖權重小,使模型達到更好的效果。在YOLOv4網絡深層的頸部和頭部,特征圖表現的語義信息較主干網絡更豐富,感受野更大,但SENet難以從特征信息高度融合的小尺度特征圖中有效區分重要特征;而YOLOv4主干網絡中的特征圖語義信息雖不豐富,但富含目標在中、淺層的紋理信息和輪廓信息,這些信息對小目標的檢測極其重要,因此選擇在主干網絡中的CSP模塊嵌入SENet,具體如圖2中紅色及黃色虛線框內所示。將嵌入SENet改進主干網絡的YOLOv4算法稱為YOLOv4-SENet,該模型在大量減少參數的情況下,同時保留了全局信息故可增強模型的魯棒性。
2.1.3 增加SPP模塊優化頸部網絡
在原始YOLOv4中,在主干網絡后加入了SPP模塊,利用其對主干網絡最后的特征層經過三次卷積后的結果使用四種不同尺度的池化核(分別為1 × 1、5 × 5、9 × 9、13 × 13)進行池化層處理。最大池化層在保持特征圖平移不變性的同時擴大感受野,而SPP結構則將使用不同大小池化核得到的特征圖局部區域感受野和接近全局的感受野信息進行特征融合,這種融合不同尺度感受野的操作能有效豐富特征圖的表達能力,增強主干網絡輸出特征的接受范圍,分離出重要的上下文信息,從而有效提升模型的檢測性能。
在原始YOLOv4中,SPP模塊位于特征圖大小為13×13的主干網絡之后,將提取出的特征信息送入特征圖大小為13 × 13的檢測頭進行預測。鑒于此,為豐富輸入到26 × 26和52 × 52尺度的檢測頭的特征圖特征信息以實現更好的檢測效果,選擇在YOLOv4第一次上采樣后和第二次上采樣后加入SPP模塊,改進后的YOLOv4頸部如圖2中的藍色虛線框內所示,并將增加SPP模塊改進網絡頸部的YOLOv4算法稱為YOLOv4-SPP。
2.2 MAs自動檢測方法
利用所提出的YOLOv4-Pro算法對眼底圖像中MAs進行自動檢測需經過網絡模型的訓練及測試。在模型訓練階段,為提高模型泛化能力,需對眼底圖像進行在線數據增強[20]。在線數據增強,除mosic數據增強外,還包括隨機旋轉、水平翻轉、豎直翻轉、中值濾波、平滑濾波,調整飽和度(0.9至1.3倍)、曝光度(0.9至1.3倍)等。為保證預測結果的精度,同時避免過多的先驗框帶來過大的運算量,聚類中心數仍為9,其寬和高分別為(4,4)、(7,8)、(8,10)、(9,9)、(9,13)、(11,15)、(11,17)、(17,19)、(19,27)。
對于網絡模型的訓練采用帶動量因子的小批量隨機梯度下降法(mini-batch stochastic gradient decent,MSGD)。MSGD[21]是介于全批量梯度下降法和隨機梯度下降法之間的折中方法,可以減少隨機梯度下降法中的雜亂樣本數量,又比全批量梯度下降法更高效。為使梯度穩定更新,采用動量(momentum)作為優化器對其進行梯度下降[22]。為了增強模型魯棒性,采用L2正則化來防止過擬合的出現。此外,學習率的大小對隨機梯度下降法的性能影響較大,直接決定了參數移動到最優值時的速度。故訓練開始時設置較大的學習率,可使模型快速收斂;隨著訓練迭代次數的增加,應逐漸降低學習率,以找出最優解[23]。
對于網絡的超參數選擇在PASCAL_VOC預訓練權重的基礎上進行設定[24]。訓練epoch在區間[5,60]以5為步長進行取值,并根據損失不再下降而選擇為60。momentum動量參數常用值為0.55、0.9、0.99,經實驗驗證0.9最優。對于L2正則化權重衰減系數,若其取值過大會把所有的參數最小化從而造成欠擬合現象;若其取值過小則可能無法避免過擬合問題[25],故該系數設為0.9。對于學習率衰減方式,經驗證YOLOv4-Pro在進行眼底圖像MAs的自動檢測時分段衰減方式效果最佳(初始學習率設為0.001,經測試發現在30個epoch時衰減為初始學習率1/10時效果最佳)。此外,批大小(batchsize)的設置對網絡訓練尤為重要:若batchsize過小,會導致訓練迭代損失不收斂且訓練速度慢;若batchsize過大,則會導致網絡收斂到局部最優點。鑒于此,同時結合數據集以及硬件設備性能,將該值設為2,每個epoch迭代800次,故整個網絡訓練過程迭代48 000次。
YOLOv4-Pro網絡訓練過程的損失函數變化如圖3所示,訓練損失收斂值為0.037。訓練完畢后,即得到了確定的網絡模型,可以用于對新輸入的樣本進行MAs的自動檢測。

3 結果與分析
3.1 評價指標
在目標檢測任務中,通常使用召回率(recall,)和精確率(precision,
)以及綜合考慮召回率與精確率的指標F-score對網絡性能進行評價。因此為評價所提出網絡模型對于MAs的檢測性能,基于病灶區域水平定義了上述指標,具體計算公式分別如式(1)~(3)所示[26]:
![]() |
![]() |
![]() |
式中TP為成功預測的正例,TN為成功預測的負例,FP為被誤判為正例的負例,FN為被錯誤預測為負例的正例。除此之外,還采用每檢測一張圖像所用的時間t來評價網絡模型的檢測速度。
此外,為評價所提出模型對于病灶的準確定位能力,基于病灶區域水平定義了IoU(“預測的邊框B”和“真實的邊框A”的交疊率)與平均精度(average precision,AP,為不同R下的P值的均值,即P-R曲線的積分),用以評價所提出模型對MAs的定位能力。
3.2 實驗結果及分析
為驗證所提出的改進之處是否能夠提升YOLOv4網絡的性能,結合Kaggle糖網數據集,針對MAs檢測任務,對實驗內容(流程如圖4所示)進行了設計。在模型訓練階段,首先對訓練樣本進行數據增強,其次采用增強后的數據集訓練原始YOLOv4網絡,同時為了改進網絡模型對邊界框的預測準確率,對收集到的所有樣本標注采用IFFCM聚類獲取先驗框的初始大小,然后將先驗框參數應用于不同網絡結構改進的YOLOv4算法,最后經過訓練迭代,得到不同的檢測模型。在模型測試階段,將測試樣本作為輸入分別使用各算法模型檢測,判斷圖像中是否存在MAs,若存在則輸出病灶種類及位置,并比較不同模型的性能。

首先,為驗證IFFCM聚類算法優化先驗框參數對YOLOv4網絡檢測性能的影響,采用Kaggle糖網數據集分別訓練優化前后的YOLOv4網絡即YOLOv4與YOLOv4-IFFCM,并測試檢測性能,得到實驗結果為:YOLOv4-IFFCM的為81.23%,較YOLOv4的
(77.29%)提升了近4%,即采用IFFCM算法優化先驗框能使其更適合Kaggle糖網數據集的框定(IFFCM算法與K-均值聚類算法的具體聚類效果如圖5所示,其中K-均值聚類算法為原始YOLOv4網絡所采用的獲取先驗框參數的聚類算法),從而使網絡檢測性能得到較為明顯的提升。

在優化先驗框的基礎上,繼續采用消融實驗即圖4所示實驗流程,對比分析后續不同改進結構的YOLOv4算法分別在Kaggle糖網數據集上對MAs的自動檢測性能, 在訓練過程中的變化如圖6所示,檢測性能見表1。由表1發現,每種網絡改進策略均在不同程度上提高了Baseline(僅采用IFFCM優化先驗框的YOLOv4網絡,即YOLOv4-IFFCM)的檢測性能,尤其是先驗框、主干網絡和頸部皆改進的YOLOv4-Pro,
較YOLOv4-IFFCM提升了8.74%,較原始YOLOv4提升得更為明顯(為12.68%)。此外還應注意到,雖然SENet模塊和SPP模塊的加入增加了模型計算量,但由于后處理優化算法Matrix NMS的使用使得運算開銷得以減少,故最終平均一幅圖像檢測時間 t 并未發生明顯變化(僅增加了0.006 9 s)。


由以上實驗結果發現,所提出的對于YOLOv4的三點改進用于Kaggle糖網數據集上的MAs自動檢測,有效提升了網絡性能。該網絡模型對于MAs的具體檢測效果如圖7所示。由圖7發現,該網絡模型可以實現對眼底圖像中MAs的準確檢測。

此外,為進一步驗證所提出的算法對于MAs的檢測性能,將該方法與文獻[8](傳統圖像處理方法)、文獻[12](卷積神經網絡)、文獻[13](YOLO網絡)對眼底圖像中MAs的自動檢測性能進行了對比,具體結果如表2所示。由表2可見,深度神經網絡方法即文獻[12-13]以及文中所提出的YOLOv4-Pro算法的均優于傳統算法。傳統算法的F-score較低,是因為傳統算法容易受到參數限制,在復雜環境中提取的MAs病灶候選區易存在較多干擾,最終會成為FP,從而導致P值較低進而影響了F-score。而深度神經網絡具備更強的擬合性能,且隨著深度網絡的發展,檢測結果更為精確(YOLOv4-Pro的F-score明顯優于前兩種深度神經網絡),但是深度神經網絡也可能存在過擬合現象,從而導致部分MAs會檢測不出,因此文獻[12-13]的召回率R會低于傳統算法,而YOLOv4-Pro則在一定程度上克服了這個問題。由此可見,所提出的嵌入SENet的改進YOLOv4算法能準確、有效地檢測出眼底圖像中的MAs,即檢測性能更優。

由于表2只體現了所提出的YOLOv4-Pro能有效地檢測MAs的存在,并不能反映所提出算法對于MAs的精確定位能力,故采用IoU以及AP來評估其精確定位能力,并與文獻[13]進行對比,結果見表3。由表3可見,所提出的模型YOLOv4-Pro可以精確定位88.92%(AP)的MAs,且定位精度為84.71%(IoU),明顯優于文獻[13]。故所提出的嵌入SENet的改進YOLOv4算法對于眼底圖像中MAs的定位性能更優。

4 結論
本文提出了一種嵌入SENet的改進YOLOv4算法,可準確、有效地檢測并定位出眼底圖像中的MAs。該算法在YOLOv4網絡模型的基礎上,首先利用IFFCM算法對目標樣本進行先驗框參數優化以提高先驗框與特征圖的匹配度;在此基礎上,為提升檢測任務中對于小目標——MAs的檢測精度,進一步結合SENet注意力機制和空間金字塔池化模塊對YOLOv4網絡結構進行了改進;最后在以Kaggle糖網數據集為測試對象的基礎上,采用消融實驗分析驗證了所提出的嵌入SENet的改進YOLOv4網絡模型能夠有效提升MAs的自動檢測及定位性能。在此基礎上,將該方法與基于YOLO、基于深度卷積神經網絡的算法以及傳統圖像處理方法進行了對比,發現所提出的嵌入SENet的改進YOLOv4網絡模型在MAs的自動檢測精度方面明顯更優。此外,還將所提出的模型對MAs的定位性能與其他方法進行了對比,發現其在具有更高檢測性能的基礎上,定位精度也更高。該研究工作解決了檢測視網膜上MAs的存在并找到其精確位置的問題,所提出的模型輸出可直接用于眼科醫生治療MAs,不需要醫生手動干預,有助于實現完全自動化的MAs檢測過程,進而有效引導和幫助眼科醫生治療和消除MAs,從而有效遏制糖網的進一步發展和惡化。
重要聲明
利益沖突聲明:本文全體作者均聲明不存在利益沖突。
作者貢獻聲明:高瑋瑋負責算法實現及論文撰寫,單明陶負責模型改進,宋楠負責病灶標注指導,樊博負責病灶標注,方宇負責算法指導。
引言
糖尿病視網膜病變(簡稱“糖網”,diabetic retinopathy,DR)是一種血管疾病,是糖尿病患者致盲的首要原因[1],主要由視網膜微血管因葡萄糖水平升高受損而引起[2],是一種進展性疾病,以微小的紅色病變——微動脈瘤(microaneurysms,MAs)開始。隨著時間的推移,病灶的大小會隨之增大,并逐步擴散至整個視網膜[3]甚至發展為更為嚴重的病灶,如視網膜內出血等,進而影響患者視力[4]。因此,若能通過治療及時阻止MAs的生長,可以有效預防糖網的病程發展[5]。此外,由于MAs是最早發生在視網膜上的病變,因此及時治療MAs是糖網治療中最有效且成本最低的方法。使用激光治療MAs時需要確定其在視網膜上的確切位置[2,6],由于MAs體積小(直徑在10~100 μm),尤其是在早期該病灶肉眼幾乎不可見,故為盡早發現病灶以便進行及時治療,研究人員提出了許多自動檢測算法。
MAs自動檢測算法一般可分為基于物理模型、基于分類器和基于深度學習的方法。基于物理模型的方法主要是根據微動脈瘤的灰度分布結構進行數學建模,如Zhang等[7]提出了一種基于特征轉移網絡和局部背景抑制的MAs檢測方法,可以降低噪聲;高瑋瑋等[8]利用數學形態學擴展極小值變換后獲得微動脈瘤候選區域,進而根據尺寸信息獲取真正的MAs。基于分類器的方法主要是先提取MAs候選區,再對候選區進行分類,如Orlando等[9]首先采用中值濾波去除眼底圖像中的MAs,再經過形態學膨脹得到糖網背景圖像,將原圖與糖網背景圖像相減得到MAs的候選區,然后對候選區提取傳統特征和深度特征用于MAs分類;Dashtbozorg等[10]采用局部收斂濾波(local convergence filters,LCFs)實現眼底圖像增強與MAs候選區提取,再結合LCFs響應特征與灰度特征值進行精確檢測。基于深度學習的檢測方法主要是搭建端到端的深度神經網絡,如Xia等[11]提出了一種基于深度卷積編碼器解碼器的MAs檢測模型;趙學功等[12]提出了基于卷積神經網絡的MAs檢測方法;Rohan[13]提出了一種基于YOLO(you only look once)的MAs自動檢測算法。
然而,上述方法除基于YOLO的方法外均集中于檢測MAs的存在,并不能夠精確定位MAs在視網膜圖像上的位置,這使得眼科學家很難直接使用檢測模型的結果來治療MAs,所以目前這項工作仍由眼科學家手動完成。而基于YOLO的MAs自動檢測算法雖然在一定程度上實現了對于MAs的定位及檢測,但由于YOLO網絡模型結構復雜,容易出現過擬合等問題,其檢測、定位精度及速度并不高。基于此本文提出了嵌入SENet(Squeeze-and-Excitation networks)的改進YOLOv4(improved YOLOv4,YOLOv4-Pro)用于實現眼底圖像中MAs的自動檢測及定位。該方法在YOLOv4網絡模型的基礎上結合MAs病灶尺寸較小的特點,首先利用改進的快速模糊C均值(improved and fast fuzzy c-means,IFFCM)聚類算法[14]對目標樣本進行先驗框參數優化,提高先驗框與特征圖的匹配度以提高定位精度;在此基礎上,為提升檢測精度,進一步結合SENet注意力機制和空間金字塔池化結構(spatial pyramid pooling,SPP)對YOLOv4算法進行優化。在完成YOLOv4網絡結構優化的基礎上,利用該網絡模型檢測視網膜上MAs的存在,并精確定位MAs在視網膜上的位置。
1 實驗材料及設備
實驗采用Kaggle糖網數據集用以訓練和測試所提出的YOLOv4-Pro算法對于眼底圖像中MAs(具體形態如圖1所示)的自動檢測及定位性能。Kaggle糖網數據集由EyePACS(視網膜病變篩查免費平臺)提供,于2015年在Kaggle上公開,共有35 126幅訓練圖像和53 576幅測試圖像,來源于44 351位患者,左右眼各一幅,圖像的分辨率在433 × 289像素~5184 × 3456像素之間[15]。眼科醫師基于國際標準對每幅眼底圖像進行了糖網病患病程度的5級分級:0為健康圖像,1為輕微病變圖像,2為中度病變圖像,3為重度病變圖像,4為增生性病變圖像。但由于本文研究的是所提出模型對于MAs病灶的自動檢測及定位性能,故需對該數據集進行處理以滿足本研究的需求,具體為利用文獻[8]所述方法并輔以眼科醫師的幫助對數據集進行預處理以獲取MAs圖像及注釋文件。由于Kaggle糖網數據集的分布不平衡,在這一階段去除了大量圖像(幾乎90%的圖像不包含任何病變),最后只剩下5 519幅包含MAs的眼底圖像。對于這5 519幅眼底圖像,均生成了注釋文件。生成注釋文件后,整個數據集(5 519幅圖像)按90/10的比例進行劃分,5 000幅用于訓練,519幅用于測試。此外,為充分驗證所提出改進網絡的檢測性能,對原本包含519幅眼底圖像的測試集另增加100幅健康眼底圖像進行擴充,即實際測試時測試集包含619幅眼底圖像。

此外,實驗系統配置為:Intel Core i5-10300H處理器,32.00 GB運行內存,RTX2060獨立顯卡,6 GB顯存。深度學習框架為Pytorch。另外,安裝Cuda10.0和Cudnn7.51進行GPU加速運算。
2 方法
YOLOv4目標檢測網絡[16]是在YOLOv3基礎上,對其三部分構成——骨干特征提取網絡、頸部特征融合網絡和分類回歸的預測輸出部分進行改進得來。主干網絡在DarkNet-53的基礎上融合CSPNet(cross stage partial network)思想,形成CSPDarkNet-53,降低網絡計算量的同時仍可保證準確率;頸部采用融合特征金字塔網絡(feature pyramid networks,FPN)和SPP的路徑聚合網絡(path aggregation network,PANet),解決了FPN網絡由淺層向深層傳遞時淺層特征丟失的問題;檢測頭仍然使用YOLOv3檢測頭[17]。YOLOv4在一定程度上解決了對小目標不敏感的問題,但在眼底圖像MAs的自動檢測問題上,直接使用YOLOv4網絡檢測效果依然并不理想。由圖1可看出,MAs相對于整幅圖像占比較小,故針對所需檢測病灶的特征,需對YOLOv4算法進行改進,具體為:首先采用IFFCM聚類算法進行目標框優化以提高先驗框與目標數據集的匹配度;在此基礎上,通過在主干網絡中嵌入SENet結構來提高網絡對于密集小目標缺陷的置信度;此外,還在網絡頸部增加SPP模塊以實現豐富檢測頭信息特征表達能力的目標。改進后的網絡YOLOv4-Pro結構具體如圖2所示。

2.1 改進的YOLOv4算法
2.1.1 IFFCM算法優化先驗框
YOLOv4算法先驗框是通過K-均值聚類算法在PASCAL_VOC數據集上聚類得到的,故當使用它對眼底圖像進行MAs的自動檢測時會在計算交并比(Intersection over Union,IoU)時篩選出不合適的邊界框,從而影響模型檢測目標的性能,故有必要針對眼底圖像數據集優化先驗框。
采用文獻[14]所提出的IFFCM聚類算法對Kaggle糖網數據集的先驗框進行聚類分析。該聚類算法與K-均值聚類算法(硬聚類)相比,合理結合了聚類技術中軟、硬聚類技術的各自優勢,利用K-均值聚類算法的聚類結果對FCM算法的聚類中心進行初始化,同時利用中值濾波技術優化FCM算法的準則函數,不僅有效抑制了噪聲對聚類結果的影響,而且提高了算法效率。
采用IFFCM聚類算法對收集到的數據集進行聚類,優化了初始點的選擇,能顯著降低誤差,以獲得更適合目標數據集的先驗框大小,從而提高網絡檢測精度。利用該聚類算法對YOLOv4網絡模型的先驗框參數進行優化,并將該優化后的網絡模型稱為YOLOv4-IFFCM。
2.1.2 嵌入SENet結構改進主干網絡
在眼底圖像中利用原始YOLOv4對相對密集的小目標MAs進行檢測時往往會誤檢或漏檢,這是由于置信分布不平衡造成的。因此,為了使網絡能學習全局特征,提高對密集小目標病灶的檢測精度,需對各個通道的權值進行標定[18]。
SENet[19]是一種利用全局信息選擇性強調信息特征并抑制無用特征的網絡,它通過讓網絡根據損失(loss)去學習特征權重而獲取每個特征圖的重要程度,然后依據該重要程度給每一個特征通道賦予一個權重值,從而讓神經網絡去重點關注某些特征圖,使得有效的特征圖權重大,無效或效果小的特征圖權重小,使模型達到更好的效果。在YOLOv4網絡深層的頸部和頭部,特征圖表現的語義信息較主干網絡更豐富,感受野更大,但SENet難以從特征信息高度融合的小尺度特征圖中有效區分重要特征;而YOLOv4主干網絡中的特征圖語義信息雖不豐富,但富含目標在中、淺層的紋理信息和輪廓信息,這些信息對小目標的檢測極其重要,因此選擇在主干網絡中的CSP模塊嵌入SENet,具體如圖2中紅色及黃色虛線框內所示。將嵌入SENet改進主干網絡的YOLOv4算法稱為YOLOv4-SENet,該模型在大量減少參數的情況下,同時保留了全局信息故可增強模型的魯棒性。
2.1.3 增加SPP模塊優化頸部網絡
在原始YOLOv4中,在主干網絡后加入了SPP模塊,利用其對主干網絡最后的特征層經過三次卷積后的結果使用四種不同尺度的池化核(分別為1 × 1、5 × 5、9 × 9、13 × 13)進行池化層處理。最大池化層在保持特征圖平移不變性的同時擴大感受野,而SPP結構則將使用不同大小池化核得到的特征圖局部區域感受野和接近全局的感受野信息進行特征融合,這種融合不同尺度感受野的操作能有效豐富特征圖的表達能力,增強主干網絡輸出特征的接受范圍,分離出重要的上下文信息,從而有效提升模型的檢測性能。
在原始YOLOv4中,SPP模塊位于特征圖大小為13×13的主干網絡之后,將提取出的特征信息送入特征圖大小為13 × 13的檢測頭進行預測。鑒于此,為豐富輸入到26 × 26和52 × 52尺度的檢測頭的特征圖特征信息以實現更好的檢測效果,選擇在YOLOv4第一次上采樣后和第二次上采樣后加入SPP模塊,改進后的YOLOv4頸部如圖2中的藍色虛線框內所示,并將增加SPP模塊改進網絡頸部的YOLOv4算法稱為YOLOv4-SPP。
2.2 MAs自動檢測方法
利用所提出的YOLOv4-Pro算法對眼底圖像中MAs進行自動檢測需經過網絡模型的訓練及測試。在模型訓練階段,為提高模型泛化能力,需對眼底圖像進行在線數據增強[20]。在線數據增強,除mosic數據增強外,還包括隨機旋轉、水平翻轉、豎直翻轉、中值濾波、平滑濾波,調整飽和度(0.9至1.3倍)、曝光度(0.9至1.3倍)等。為保證預測結果的精度,同時避免過多的先驗框帶來過大的運算量,聚類中心數仍為9,其寬和高分別為(4,4)、(7,8)、(8,10)、(9,9)、(9,13)、(11,15)、(11,17)、(17,19)、(19,27)。
對于網絡模型的訓練采用帶動量因子的小批量隨機梯度下降法(mini-batch stochastic gradient decent,MSGD)。MSGD[21]是介于全批量梯度下降法和隨機梯度下降法之間的折中方法,可以減少隨機梯度下降法中的雜亂樣本數量,又比全批量梯度下降法更高效。為使梯度穩定更新,采用動量(momentum)作為優化器對其進行梯度下降[22]。為了增強模型魯棒性,采用L2正則化來防止過擬合的出現。此外,學習率的大小對隨機梯度下降法的性能影響較大,直接決定了參數移動到最優值時的速度。故訓練開始時設置較大的學習率,可使模型快速收斂;隨著訓練迭代次數的增加,應逐漸降低學習率,以找出最優解[23]。
對于網絡的超參數選擇在PASCAL_VOC預訓練權重的基礎上進行設定[24]。訓練epoch在區間[5,60]以5為步長進行取值,并根據損失不再下降而選擇為60。momentum動量參數常用值為0.55、0.9、0.99,經實驗驗證0.9最優。對于L2正則化權重衰減系數,若其取值過大會把所有的參數最小化從而造成欠擬合現象;若其取值過小則可能無法避免過擬合問題[25],故該系數設為0.9。對于學習率衰減方式,經驗證YOLOv4-Pro在進行眼底圖像MAs的自動檢測時分段衰減方式效果最佳(初始學習率設為0.001,經測試發現在30個epoch時衰減為初始學習率1/10時效果最佳)。此外,批大小(batchsize)的設置對網絡訓練尤為重要:若batchsize過小,會導致訓練迭代損失不收斂且訓練速度慢;若batchsize過大,則會導致網絡收斂到局部最優點。鑒于此,同時結合數據集以及硬件設備性能,將該值設為2,每個epoch迭代800次,故整個網絡訓練過程迭代48 000次。
YOLOv4-Pro網絡訓練過程的損失函數變化如圖3所示,訓練損失收斂值為0.037。訓練完畢后,即得到了確定的網絡模型,可以用于對新輸入的樣本進行MAs的自動檢測。

3 結果與分析
3.1 評價指標
在目標檢測任務中,通常使用召回率(recall,)和精確率(precision,
)以及綜合考慮召回率與精確率的指標F-score對網絡性能進行評價。因此為評價所提出網絡模型對于MAs的檢測性能,基于病灶區域水平定義了上述指標,具體計算公式分別如式(1)~(3)所示[26]:
![]() |
![]() |
![]() |
式中TP為成功預測的正例,TN為成功預測的負例,FP為被誤判為正例的負例,FN為被錯誤預測為負例的正例。除此之外,還采用每檢測一張圖像所用的時間t來評價網絡模型的檢測速度。
此外,為評價所提出模型對于病灶的準確定位能力,基于病灶區域水平定義了IoU(“預測的邊框B”和“真實的邊框A”的交疊率)與平均精度(average precision,AP,為不同R下的P值的均值,即P-R曲線的積分),用以評價所提出模型對MAs的定位能力。
3.2 實驗結果及分析
為驗證所提出的改進之處是否能夠提升YOLOv4網絡的性能,結合Kaggle糖網數據集,針對MAs檢測任務,對實驗內容(流程如圖4所示)進行了設計。在模型訓練階段,首先對訓練樣本進行數據增強,其次采用增強后的數據集訓練原始YOLOv4網絡,同時為了改進網絡模型對邊界框的預測準確率,對收集到的所有樣本標注采用IFFCM聚類獲取先驗框的初始大小,然后將先驗框參數應用于不同網絡結構改進的YOLOv4算法,最后經過訓練迭代,得到不同的檢測模型。在模型測試階段,將測試樣本作為輸入分別使用各算法模型檢測,判斷圖像中是否存在MAs,若存在則輸出病灶種類及位置,并比較不同模型的性能。

首先,為驗證IFFCM聚類算法優化先驗框參數對YOLOv4網絡檢測性能的影響,采用Kaggle糖網數據集分別訓練優化前后的YOLOv4網絡即YOLOv4與YOLOv4-IFFCM,并測試檢測性能,得到實驗結果為:YOLOv4-IFFCM的為81.23%,較YOLOv4的
(77.29%)提升了近4%,即采用IFFCM算法優化先驗框能使其更適合Kaggle糖網數據集的框定(IFFCM算法與K-均值聚類算法的具體聚類效果如圖5所示,其中K-均值聚類算法為原始YOLOv4網絡所采用的獲取先驗框參數的聚類算法),從而使網絡檢測性能得到較為明顯的提升。

在優化先驗框的基礎上,繼續采用消融實驗即圖4所示實驗流程,對比分析后續不同改進結構的YOLOv4算法分別在Kaggle糖網數據集上對MAs的自動檢測性能, 在訓練過程中的變化如圖6所示,檢測性能見表1。由表1發現,每種網絡改進策略均在不同程度上提高了Baseline(僅采用IFFCM優化先驗框的YOLOv4網絡,即YOLOv4-IFFCM)的檢測性能,尤其是先驗框、主干網絡和頸部皆改進的YOLOv4-Pro,
較YOLOv4-IFFCM提升了8.74%,較原始YOLOv4提升得更為明顯(為12.68%)。此外還應注意到,雖然SENet模塊和SPP模塊的加入增加了模型計算量,但由于后處理優化算法Matrix NMS的使用使得運算開銷得以減少,故最終平均一幅圖像檢測時間 t 并未發生明顯變化(僅增加了0.006 9 s)。


由以上實驗結果發現,所提出的對于YOLOv4的三點改進用于Kaggle糖網數據集上的MAs自動檢測,有效提升了網絡性能。該網絡模型對于MAs的具體檢測效果如圖7所示。由圖7發現,該網絡模型可以實現對眼底圖像中MAs的準確檢測。

此外,為進一步驗證所提出的算法對于MAs的檢測性能,將該方法與文獻[8](傳統圖像處理方法)、文獻[12](卷積神經網絡)、文獻[13](YOLO網絡)對眼底圖像中MAs的自動檢測性能進行了對比,具體結果如表2所示。由表2可見,深度神經網絡方法即文獻[12-13]以及文中所提出的YOLOv4-Pro算法的均優于傳統算法。傳統算法的F-score較低,是因為傳統算法容易受到參數限制,在復雜環境中提取的MAs病灶候選區易存在較多干擾,最終會成為FP,從而導致P值較低進而影響了F-score。而深度神經網絡具備更強的擬合性能,且隨著深度網絡的發展,檢測結果更為精確(YOLOv4-Pro的F-score明顯優于前兩種深度神經網絡),但是深度神經網絡也可能存在過擬合現象,從而導致部分MAs會檢測不出,因此文獻[12-13]的召回率R會低于傳統算法,而YOLOv4-Pro則在一定程度上克服了這個問題。由此可見,所提出的嵌入SENet的改進YOLOv4算法能準確、有效地檢測出眼底圖像中的MAs,即檢測性能更優。

由于表2只體現了所提出的YOLOv4-Pro能有效地檢測MAs的存在,并不能反映所提出算法對于MAs的精確定位能力,故采用IoU以及AP來評估其精確定位能力,并與文獻[13]進行對比,結果見表3。由表3可見,所提出的模型YOLOv4-Pro可以精確定位88.92%(AP)的MAs,且定位精度為84.71%(IoU),明顯優于文獻[13]。故所提出的嵌入SENet的改進YOLOv4算法對于眼底圖像中MAs的定位性能更優。

4 結論
本文提出了一種嵌入SENet的改進YOLOv4算法,可準確、有效地檢測并定位出眼底圖像中的MAs。該算法在YOLOv4網絡模型的基礎上,首先利用IFFCM算法對目標樣本進行先驗框參數優化以提高先驗框與特征圖的匹配度;在此基礎上,為提升檢測任務中對于小目標——MAs的檢測精度,進一步結合SENet注意力機制和空間金字塔池化模塊對YOLOv4網絡結構進行了改進;最后在以Kaggle糖網數據集為測試對象的基礎上,采用消融實驗分析驗證了所提出的嵌入SENet的改進YOLOv4網絡模型能夠有效提升MAs的自動檢測及定位性能。在此基礎上,將該方法與基于YOLO、基于深度卷積神經網絡的算法以及傳統圖像處理方法進行了對比,發現所提出的嵌入SENet的改進YOLOv4網絡模型在MAs的自動檢測精度方面明顯更優。此外,還將所提出的模型對MAs的定位性能與其他方法進行了對比,發現其在具有更高檢測性能的基礎上,定位精度也更高。該研究工作解決了檢測視網膜上MAs的存在并找到其精確位置的問題,所提出的模型輸出可直接用于眼科醫生治療MAs,不需要醫生手動干預,有助于實現完全自動化的MAs檢測過程,進而有效引導和幫助眼科醫生治療和消除MAs,從而有效遏制糖網的進一步發展和惡化。
重要聲明
利益沖突聲明:本文全體作者均聲明不存在利益沖突。
作者貢獻聲明:高瑋瑋負責算法實現及論文撰寫,單明陶負責模型改進,宋楠負責病灶標注指導,樊博負責病灶標注,方宇負責算法指導。