호기심 많은 분석가

[BoostCamp] Week12_Lec1. Segmentation 본문

Coding/BoostCamp

[BoostCamp] Week12_Lec1. Segmentation

DA Hun 2021. 10. 26. 10:01
 

부스트캠프

개발자의 지속 가능한 성장을 위한 학습 커뮤니티

boostcamp.connect.or.kr

📔개인학습

Competition Overview(EDA&Metric)

1. COCO Dataset

1-1. COCO Format

info, license, images, categories, annotations

  • info에는 data set에 대한 high-level의 정보가 포함되어 있음
    • 생산일, Contributor, 간단한 설명 등
  • images에는 data set의 image 목록 및 각각의 width, height, file_name(path), id 등을 포함
  • categories에는 class 정보가 입력 됨

  • annotations의 밑에 있는 segmentation에는 각 class에 해당되는 pixel의 x, y 좌표들이 포함되어 있음

1-2.DataLoader - segmentation

Segmentation에서 필요한 image 및 target에 대한 이해

  • Shape of Images : (batch, 3, height, width)
  • Shape of targets : (batch, height, width)
  • 타겟을 맞추는 데 채널의 정보는 필요 없으므로 삭제

CustomDataLoader

데이터로더에 필요한 인자로는

  • data_dir : 데이터셋 경로 (train.json)
  • mode : 생성될 객체의 용도가 train인지 test인지 분기
    • mode=='train' → (images, masks, image_infos)
    • mode=='test' → (images, image_infos)
  • transform :
    • image size 조절 및 data format 변환 등의 전처리 작업
    • numpy(8, 512, 512, 3)-(배치, height, width, 채널)인 데이터를 ToTensorV2를 이용해서 tensor(8, 3, 512, 512)로 변환

2. EDA

배경까지 포함해서 11개 Class, 플라스틱과 플라스틱 백(비닐봉지) - 페이퍼와 페이퍼 펙처럼 매우 유사한 클래스가 있으니 주의해야 함

  • 비닐봉투안에 다른 제품이 담겨있어도 플라스틱 백으로 표기된다. → 유의해야하고 이런 것을 EDA를 통해 확인해야 함, 아래와 같은 케이스도 존재

  • 색으로 클래스를 구분하는 것이 가능할까?
    • 흰색 비닐봉투 안에 흰색 페이퍼 백(종이상자)이 있을 경우 구분이 가능할까? 시도해봄직한 문제
  • 이번 테스크는 줌으로 확대해서 찍다보니 배경이 종이상자인 경우도 있다. 이것은 어떻게 구분할까?
  • 매우 작은 크기의 오브젝트가 레이블링 된 경우도, 돌멩이가 같이 레이블링 된 경우도 존재한다. 이러한 경우 노이즈로 제거하거나, 돌멩이 부분을 백그라운드로 다시 레이블링하는 게 성능 향상에 도움이 될 수 있다. 이러한 점들을 고려해볼 것

→ 이번 마스터님은 함께 데이터를 보며 EDA를 하는 법, 가설까지 러프하게 세워주셔서 굉장히 색달랐다.

3. 평가 Metric

3-1. mIoU

  • 빨간 색은 GT와 Predict의 빨간색 합집합이 3개, 교집합이 1개 이므로 0.333
  • 이렇게 모든 클래스에 대해 구한 뒤 평균을 도출한 것이 Mean IoU

4. Baseline

4-1. torchvision.models.segmentation.fcn_resnet50

  • 기존 모델과 클래스 갯수가 다르기 떄문에 model.classifier[4] = nn.Conv2d(512, 11, kernel_size=1)로 수정해줘야함
  • best_loss를 저장하는 부분을 mIoU로 바꿔준다면 더 좋은 성능 향상을 이끌어내지 않을까?
  • 결과값들을 시각화시켜 제대로 출력이 되고 있는 지 확인 필수!
    • 원인 파악 후 해결책을 고민해보자