의료영상의 자동분할은 의사의 진단에 도움이 될 수 있는 유용한 정보를 추출하는 중요한 단계다. 예를 들어, 망막 혈관을 분할하여 우리가 망막 혈관의 구조를 나타내고 폭을 측정할 수 있도록 할 수 있으며, 이는 망막 질환을 진단하는 데 도움이 될 수 있다. 이 포스트에서는 망막 혈관 영상에 적용되는 영상 분할을 수행하는 Neural baseline을 구현한다.
Size of Image | Num of Data | Channels of Input Image | Channel of Mask | Num of Train | Num of Val |
---|---|---|---|---|---|
584 x 565 | 20 | 3 | 1 | 16 | 4 |
id | Resize Shape | Learning Rate | Optimizer | Loss Function | Mean of dice score | Min of dice score | Max of dice score | Augment |
---|---|---|---|---|---|---|---|---|
1 | 512 | 0.001 | Adam | BCEWithLogitsLoss | 0.7744 | 0.6374(2) | 0.8217 | None |
2 | 592 | 0.001 | Adam | BCEWithLogitsLoss | 0.7789 | 0.6904(2) | 0.8211 | None |
3 | 592 | 0.001 | Adam | BCEWithLogitsLoss | 0.7805 | 0.7433(2) | 0.8261 | gray |
4 | 592 | 0.001 | Adam | BCEWithLogitsLoss | 0.7931 | 0.7650(2) | 0.8295 | gray+flip+rotate(45) |
- 512 512 채널 3 인풋으로 아무 aug없이 실험 진행 - 2 16 오버피팅 발생. 0.7743
- 592 592 채널 3 인풋으로 아무 aug없이 실험 진행 - 조금 더 좋음. 0.7789
- 더 나은 성능을 보인 이미지 크기(592)로 gray 로 변환 후 실험 진행 - 좀 더 좋음. 0.7805
- 더 나은 성능을 보인 인풋이미지(592 gray)로 rotate, flip 등 적용하여 실험 진행 - 가장 좋은 결과 도출.
id - 4
result in base U-Net
result in SA-Unet
SA-Unet 에서 적용한 augmentation을 그대로 가져와서 적용해 보았으나, (flip + rotate + gaussian noise + color jittering)
gray scale했을 때와 비슷한 결과가 나왔다. 최고 iou - 0.49 acc - 0.925 (근데 진동이 조금 심하다.)
augmentation을 적용해도 기존 Unet의 성능보다 한참 떨어진다. (논문 기준 base Unet의 acc - 0.9666)
그리고 현재 SA-Unet의 주요한 기능중 하나인 Dropbox 코드를 작성중이다.
그래프를 보면 iou값이 train에 비해 val에 대해 더 높게 나오는 것을 볼 수 있는데 이유를 모르겠다.
augmentation이 적용이 안되는 것인가도 확인해봤는데 잘 되는 것으로 확인했다.
모든 augmentation을 pytorch로 구현하여 적용하였다.
역시나 다른 점은 보이지 않는다.
실험 순서는 다음과 같다.
none -> +flip -> +randombrightly -> +randomcontrast -> +gaussianblur -> +randomrotation
iou accuracy loss 값이 아무것도 적용 안했을 때랑 크게 다른점이안보인다.
이것은 augmentation의 문제가 아니라고 이제 강하게 확신하여 SA-Unet을 파이토치로 구현 하던 것에만 몰두해야겠다.
하이퍼 파라미터에 대해서 크게 튜닝하지는 않았지만, flip rotation을 했을 때도 성능향상이 그리 있지 않으므로 그냥 좋은 모델을 구현해보면서 왜 잘나오나 알아봐야겠다.
(그리고 제일 괜찮았던 flip+rotation과 모든 augmentation을 적용한 모델로 혹시나 하는 마음에 테스트 해보았으나, 역시나 심각한 오버피팅 문제가 발견되었다.)