Kaggle Data Science Bowl 2018 튜토리얼
머신러닝에서 수 많은 framework들이 존재합니다.
몇개월간 어떤 framework을 사용해서 어떤 식으로 data를 변환하고 data pipe-line을 구축해야하는지 정말 고민을 많이 하다가 찾아낸 방법으로 코드를 변경해서 구현을 해보았습니다.
참고 사이트(Kaggle)
Data Science Bowl 2018이란?
Data Science Bowl 2018은 다양한 세포 이미지들에서 핵을 찾는 competition입니다.
제공된 Data는 각 train dataset에선 2D 이미지(png)로 각 id별로 RGB 형태인 이미지와, mask가 그려진 label image data가 존재합니다.
또한 test data는 mask이미지는 없이 RGB 형태의 이미지만 존재합니다.
우리는 이 데이터들을 U-Net 알고리즘을 사용해서 Image Segmentation에 맞게 train을 시켜주고 label data가 없는 test data로 잘 mask가 씌어지는지 확인할 것 입니다.
이 튜토리얼에서는 제공된 CSV파일에 적혀져 있는 mask pixel 값을 참고 안하고 오직 mask된 image로만 label로 참고를 하게 됩니다.
하지만 이 방법 말고 csv파일을 mask를 그리는 경우는 해당 링크를 참고해주시기 바랍니다.
https://www.kaggle.com/kmader/nuclei-overview-to-submission
Training data
Training data는 각 Id 폴더 안에 세포 핵 들의 Image와 Mask가 폴더 안에 각각 존재합니다.
- train Image : 670
- train Mask : 670
Test data
Test data는 Id 폴더 안에 세포 핵 들의 Image가 폴더 내부에 존재합니다.
- Test Image :65
Validation data
Training data에서 "train_test_split"를 통해서 .1의 비율로 분할을 해주었습니다.
데이터셋 구조
|-- stage1_train
|-- bowlfile_id # 각각 폴더별로 ID
|-- images
|-- bowl_id.png
|-- mask # bowl ID
|-- bowl_id_mask1.png
|-- bowl_id_mask2.png
|-- bowl_id_mask3.png
...
...
|-- stage1_test
|-- bowlfile_id
|-- images # 질의 이미지 폴더
|-- bowl_id.png
...