Posts [부스트캠프 AI Tech / P Stage1] Day1 TIL
Post
Cancel

[부스트캠프 AI Tech / P Stage1] Day1 TIL

[P Stage 1 - 이미지 분류] TIL


문제 정의

  • 전염성이 강한 코로나 19 바이러스의 확산을 막기 위해 마스크 착용 여부에 대한 분류기 제작 필요성이 대두됨
  • 사람 얼굴 이미지를 통해 마스크를 쓰고있는지, 쓰지 않았는지, 정확히 쓴 것이 맞는지 분류하는 모델이 필요함

Metrics

  • Accuracy
  • F1-Score

추후 metrics에 대해 다시 다루기로 한다. (링크달기)

데이터 정의

  • 입력데이터: 이미지 데이터 / size: (384, 512)
  • 출력데이터: 레이블(0~17)
  • 총 데이터 수: 31500개
    • 학습 데이터: 18900개 (60%)
    • public test 데이터: 6300개 (20%)
    • private test 데이터: 6300개 (20%)

데이터셋 구조

Train Dataset(학습용)

  • images 폴더
  • train.csv 파일
images
  • 000001_female_Asian_45 폴더 * 2700개
    • 파일 7개
      • incorrect_mask.jpg
      • mask1.jpg
      • mask2.jpg
      • mask3.jpg
      • mask4.jpg
      • mask5.jpg
      • normal.jpg
train.csv 데이터 형식
  • id,gender,race,age,path
  • 000001,female,Asian,45,000001_female_Asian_45
이미지 설명
  • incorrect_mask.jpg: 마스크를 제대로 착용하지 않음
  • mask1.jpg ~ mask5.jpg: 색, 모양이 다른 마스크 착용
  • normal.jpg: 마스크 미착용
특이점
  • 시작: [000001,female,Asian,45,000001_female_Asian_45]
  • 마지막: [006959,male,Asian,19,006959_male_Asian_19]
  • 총 2700개 (중간에 비어있는 숫자 있음)
  • 001498-1_male_Asian_23 이렇게 생긴 폴더도 존재함
  • 파일 7개 중에서 없는 파일도 존재하므로, 데이터 처리 시, 고려대상임

Evaluation Dataset(제출용)

  • images 폴더
  • info.csv 파일

image 폴더 내부 구조

  • cbc5c6e168e63498590db46022617123f1fe1268.jpg
  • 이미지 파일만 들어있음

info.csv 데이터 형식

  • ImageID,ans
  • cbc5c6e168e63498590db46022617123f1fe1268.jpg,0
  • 뒤의 숫자는 전부 0으로 되어있으나, 고쳐져야함
  • 총 21601줄(21600개의 데이터)

GPU V100 서버를 할당받았다. 😀 Ubuntu 18.04 ~ 앞으로 열심히 개발하자 매일매일 개발로그 도전!


레이블링

  • 데이터셋에 데이터의 정보가 주어져있고, 레이블링이 되어있지 않음
  • 레이블링 기준이 있으므로, 이를 바탕으로 데이터셋 (이미지 혹은 csv 파일)을 조작해놓는 것이 편할 것
1
2
3
4
5
6
7
8
    def label_images(tup, ind):
        ret = 0
        if tup[1] == 'female': ret += 3
        age = int(tup[3])
        if age >= 30 and age < 60: ret+=1
        elif age >= 60: ret += 2
        ret += int(ind)
        return ret
  • 이렇게 csv 파일을 읽는 것을 참조하여, 인덱스를 반환하고, 반환한 인덱스를 파일 이름 뒤에 붙여주는 형식으로 했다.
  • csv 파일에 레이블을 추가하고, csv 파일을 기준으로 이미지 파일을 탐색하는 방법이 정석? 같지만 나는 일단 split으로 폴더 구조를 최대한 유지하기로 했다.
  • 왜냐면 일단 원래 있던 VGG 11 code를 통해 결과를 확인하는게 우선인 것 같아서!
  • 여러 다른 백본을 사용한 결과를 빠르게 확인하고, 잘되는 백본을 사용해서 최적화하려고 한다.
  • 5일차까지는 여러 백본을 실험해보는 것에 초점을 둔다.
This post is licensed under CC BY 4.0 by the author.