Kaggle競賽銀牌-APTOS 2019 Blindness Detection
此作品為大學專題並參與Kaggle大數據競賽榮獲銀獎
此作品榮獲2020元智大學人工智慧競賽技術與應用組優等
比賽簡介
糖尿病視網膜病變,此疾病為視網膜血管因病變導致血管的滲漏,造成視網膜組織傷害,以致所看到的影像變成模糊、扭曲或部份喪失。此疾病是導致成年人失明的三大主因之一。
這項競賽由APTOS : Asia Pacific Tele-Ophthalmology Society所舉辨,APTOS為亞太地區一群傑出的遠程眼科專家於2016年5月創立,匯集臨床醫師、研究人員、技術人員相互交流合作,促進眼科學的進展。APTOS欲透過人工智慧的力量,幫助醫療資源貧乏地區的人民預防此種疾病。
資料集
比賽資料集 - APTOS 2019 Blindness Detection
這些圖像從多個診所使用各種相機收集而來。圖像可能包含偽影、失焦、曝光不足或過度曝光。
- 3662 Training set (有標籤)
- 1928 Public test set (無標籤,用於比賽期間的Public Leaderboard)
- 20GB Private test set (隱藏的資料,用於結算比賽成績的Private Leaderboard)
本此比賽主辦方所提供的資料庫根據以下等級,臨床醫生根據0至4的等級評估每張圖像中糖尿病視網膜病變:
| 病變程度類別 | 眼底鏡照 | 症狀 |
|---|---|---|
| 0-NO DR | ![]() |
健康的眼睛 |
| 1-Mild DR | ![]() |
僅限微動脈瘤 |
| 2-Moderate DR | ![]() |
微動脈瘤視網膜內出血 |
| 3-Severe DR | ![]() |
大量視網膜內出血念珠菌感染視網膜內微血管異常增長但沒有PDR現象 |
| 4-Proliferative DR | ![]() |
以下兩種情況之一:新生血管形成玻璃體/視網膜前出血 |
擴增資料集-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元智大學人工智慧競賽技術與應用組,榮獲優等

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





