UNet에서 뇌종양을 검출해 보았다 (colab 환경)

히로시마 대학에서 사회 기반(토목)을 전공하고 있는 3학년입니다.
현재는 1년간 휴학해 건설계의 IT기업에서 인턴을 하고 있습니다.
이번에는 Semantic Segmentation의 UNet을 뇌의 MRI 화상의 데이터 세트를 학습시켜 가시화까지 실시했습니다.

이번 학습에 사용한 데이터 세트에 대해서



kagge에서 공개된 뇌의 MRI 데이터 세트( htps //w w. 꺄gぇ. 코 m / mateu sz buda / l g-m rise g 멘 타타 온 )를 사용했습니다.
UNet에서 뇌 종양을 감지합니다.

이전에는 PSPNet에서 학습하고 시각화까지 실시했습니다.

UNet이란?



U-Net은 2015년에 생물의학적 이미지 세그먼테이션을 위해 만들어진 모델입니다.
2014년에 발표된 FCN이 모델의 베이스가 되고 있어 논문에서는 트레이닝의 데이터 세트가 소량이라도 정확한 세그멘테이션을 할 수 있다고 되어 있다.
간단하게 모델의 개요를 설명하면
  • 다운샘플링과 업샘플링이 대조적이다.
  • 풀링 및 다운샘플링된 피쳐 맵과 동일한 크기의 업샘플링된 피쳐 맵이 채널에 연결됩니다.
  • 얕은 층에서 취할 수 있는 엣지등의 특징과 깊은 층에서 취할 수 있는 복잡한 특징·인식하고 싶은 물체의 특징을 연결에 의해 중첩하고 있습니다.



  • 이쪽이 이번 UNet에 대해 조사한 참고 자료입니다.
    htps : // 아 rぃ v. rg / pdf / 1505. 04597. pdf
    htps : // ぃb-아 rts. 하테나 bぉg. 코 m / 엔 try / 파페 r15_우네 t

    구현 정보



    htps //w w. 꺄gぇ. 코 m / 아무도 밥 003 / py와 rch-b 라이언 - m 리세 g 멘들 온 - 네 t
    구현에 대해서는 kaggle의 공개된 노트북을 참고로 했습니다!
    UNet에서 구현하는 몇 가지 예가 있으므로 더 이해를 깊게하고 싶은 분은 보면 재미있을지도 모릅니다.
    미세 조정하지 않으므로 약간의 학습 시간이 걸릴 수 있습니다.

    자신이 구현한 코드의 github 링크가 여기입니다 ( htps : // 기주 b. 코 m / 아키 토 후지 하라 / M 리 B )
    jupyter 노트북과 py 파일을 넣습니다.
    데이터세트, weight 파일 등은 다운로드하여 다음 구성으로 해 주십시오.

    MRI-Brain-UNet256-model/
    ┣ kaggle_3m(kaggle에서 다운로드한 데이터세트※ htps //w w. 꺄gぇ. 코 m / mateu sz buda / l g-m rise g 멘 타타 온 )
    ┣ log_output.csv (학습의 loss 기록)
    ┣ UNet_test.ipynb (추론 · 시각화)
    ┣ UNet_train.ipynb (학습)
    ┣ result_image (추론 결과를 시각화 한 이미지를 저장하는 파일)
    ┣ utils
    ┃ ┣ init.py(이 파일이 존재하는 디렉토리를 패키지가 된다.)
    ┃ ┣ data_augumentation.py (전처리)
    ┃ ┣ dataloader.py (pytorch dataloader 만들기)
    ┃ ┣ unet.py(모델)
    ┃ ┗unet256_show.py(가시화)
    ┗weights(weight 파일 저장)

    학습·추론 결과와 고찰



    시각화 된 이미지는 하늘색이 교사 데이터, 노란색이 추론 결과입니다.
    잘 추론할 수 있는 예
      
    잘 추론 할 수 없었던 예
      

    종양 부분과 정상 부분의 색의 농담이 뚜렷한 곳은 꽤 예쁘게 검출할 수 있었습니다. 농담이 적은 종양 부분은 이전에 시도한 PSPNet( htps : // 이 m/1998922 아키토/있어 ms/0bd1174bf0c5fd149b7f )보다 검출할 수 없는 이미지가 많은 인상이었습니다.

    이번 데이터 세트라면 색의 농담을 뚜렷하게 하는 전처리 등을 공부하고 도입하면 크게 정밀도가 개선할 것 같은 느낌이 듭니다.

    또, UNet의 논문에서는 data augmentation을 실장하는 것으로 정밀도가 크게 바뀐다고 써 있으므로 다양한 처리를 더해 보고 싶습니다.

    좋은 웹페이지 즐겨찾기