Kaggle競賽銀牌-APTOS 2019 Blindness Detection

此作品為大學專題並參與Kaggle大數據競賽榮獲銀獎

此作品榮獲2020元智大學人工智慧競賽技術與應用組優等

比賽簡介

糖尿病視網膜病變,此疾病為視網膜血管因病變導致血管的滲漏,造成視網膜組織傷害,以致所看到的影像變成模糊、扭曲或部份喪失。此疾病是導致成年人失明的三大主因之一。

這項競賽由APTOS : Asia Pacific Tele-Ophthalmology Society所舉辨,APTOS為亞太地區一群傑出的遠程眼科專家於2016年5月創立,匯集臨床醫師、研究人員、技術人員相互交流合作,促進眼科學的進展。APTOS欲透過人工智慧的力量,幫助醫療資源貧乏地區的人民預防此種疾病。header

資料集

比賽資料集 - APTOS 2019 Blindness Detection

這些圖像從多個診所使用各種相機收集而來。圖像可能包含偽影、失焦、曝光不足或過度曝光。

  • 3662 Training set (有標籤)
  • 1928 Public test set (無標籤,用於比賽期間的Public Leaderboard)
  • 20GB Private test set (隱藏的資料,用於結算比賽成績的Private Leaderboard)

本此比賽主辦方所提供的資料庫根據以下等級,臨床醫生根據0至4的等級評估每張圖像中糖尿病視網膜病變:

病變程度類別 眼底鏡照 症狀
0-NO DR 0 健康的眼睛
1-Mild DR 1 僅限微動脈瘤
2-Moderate DR 2 微動脈瘤視網膜內出血
3-Severe DR 3 大量視網膜內出血念珠菌感染視網膜內微血管異常增長但沒有PDR現象
4-Proliferative DR 4 以下兩種情況之一:新生血管形成玻璃體/視網膜前出血

擴增資料集-2015 Diabetic Retinopathy Detection

2015在Kaggle由California Healthcare Foundation贊助舉辦的另一場糖尿病視網膜病變檢測競賽所提供的資料庫,擁有與本次競賽相同的分類標籤與眼底鏡圖片。可作為本次競賽的擴充資料使用。

  • 35126 Training set (有標籤)
  • 53576 Training set (有標籤)

資料分析

本次比賽的訓練數據集非常不平衡。沒有DR的圖像相較於具有嚴重DR條件的圖像多十倍。因此我們需要對此資料集進行擴充。

資料分析

訓練前處理

資料增強

為確保我們的網路在訓練資料時不會產生過度擬合(Over-fitting)的現象,我們使用了資料增強(Data augmentation)技術,實作方式即是每張圖像傳入神經網路訓練前,對其進行隨機的旋轉、調整大小、比例尺寸,或者改變亮度色溫、翻轉等處理。如此操作可以提升資料多樣性,避免網路過度擬合,且增強網路的泛化能力。

前處理

遷移式學習

這次競賽我們選用了來自Google的EfficientNet ,利用ImageNet的pretrain weight預先對2015和2019年的資料集做遷移式學習,再用訓練完的weight對2019年的資料做fine-tune,以保證模型收斂能確實符合本次競賽。

基於EfficientNet使用遷移式學習所得到準確度

Model bs/ep/sz CV LB
EfficientNet b4 64/10/224 0.9381 0.813
EfficientNet b5 32/10/260 0.9454 0.817

(bs: batch size, ep: epoch, sz: input size, CV: cross validation, LB: Leader Board)

K-fold

K-fold是常用的交叉驗證(Cross validation)方法。如Fig. 4-3,做法是將資料隨機平均分成5個集合,然後將其中一個集合當做驗證資料,剩下的4個集合做為訓練資料,如此重複進行直到每一個集合都被當做驗證資料為止。以訓練完的這五個模型對資料進行預測,最後將這五次預測結果取平均來作為最終的預測答案。

前處理訓練流程圖

前處理與訓練流程圖

訓練後處理

TTA(Test Time Augmentation)

模型若僅進行一次預測的結果不一定能得到正確答案,針對測試資料做影像加強,包括不同區域裁剪和更改縮放程度等,並對不同版本的圖像進行預測,能得到多個結果,最後進行平均輸出作為最終結果,如此能夠提高結果的穩定性與精確度。在加入TTA後,LB分數有了顯著的上升

基於EfficientNet b4的模型,使用TTA前後對比

Model bs/ep/sz post process LB
EfficientNet b4 64/10/224 - 0.805
EfficientNet b4 64/10/224 TTA 0.813

Model Ensemble

訓練多組模型,將預測結果做平均,以降低模型的bias、variance,提升預測準確度及穩定度,進行多組實驗後我們決定選用EfficientNet b4、EfficientNet b5進行Ensemble。

Model Ensemble前後對比

Model bs/ep/sz CV LB
EfficientNet b4 64/10/224 0.9381 0.813
EfficientNet b5 32/10/260 0.9454 0.817
Ensemble b4&b5 0.822

後處理與預測流程圖

後處理與預測流程圖

競賽成果

此競賽全球共2943隊參加,本隊獲得本次競賽銀牌第19名(Top1%)

Leader board Rank Score
Public 88 0.822879
Private 19 (Final standings) 0.929524

競賽成果

此作品參與2020元智大學人工智慧競賽技術與應用組,榮獲優等

競賽成果2

GUI 設計

在競賽過程中,設計出一套精確的模型,為了使模型達到最佳效益,我們著手設計使用者介面並結合模型,讓偵測糖尿病視網膜病變能夠具體化,且讓使用者在介面操作上能夠快速上手。

GUI2