ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 2022-10-31 (월) Daily Tasks & Time Log
    부스트캠프 AI Tech 4기/Daily Tasks & Time Log 2022. 10. 31. 22:57

    Daily Tasks

    •  데일리스크럼 참여 (10:00 ~ 10:10)
    •  피어세션 참여 (16:00 ~ 17:00)
    • CV 기초대회
      •  dataset.py 수정 및 팀에 공유

     

    Time Log

    08:30 ~ 09:20 네이버 스퀘어 공간 제공 이벤트 관련 설문 조사 작성

    09:30 ~ 09:55 주말동안 level 1 프로젝트 repository 업데이트 내역 및 규칙 작성, Slack 공유

    10:00 ~ 10:25 데일리스크럼

    10:25 ~ 12:00 dataset.py 수정

    • 마스크 착용 상태, 성별, 나이 중 하나에 맞게 단순 필터링된 데이터셋
    • 복합적인 필터(마스크 미착용 & 남성 & 60대 이상)를 입력받아 그에 해당하는 이미지만 포함하는 데이터셋
    • 모든 데이터셋에 동일하게 첫 번째로 적용되는 transform과 마지막에 적용되는 transform 정의

    12:00 ~ 13:00 점심식사

    13:00 ~ 16:00 dataset.py 수정 및 공유

    • transform이 잘 되는지 확인하기 위해 __getitem__에서 원본 이미지와 ToTensor 하기 전의 이미지도 같이 return 하도록 수정
    • ToTensor 이후 이미지로 원상복구 가능한지 확인: 가능
    • Normalize 이후 원상복구 가능한지 확인: 비슷하게는 가능하나 완벽히 동일하지는 않음

    16:00 ~ 16:50 피어세션 참여

    18:00 ~ 18:30 저녁식사

    18:30 ~ 19:40 블로그 작성 및 정리

    20:00 ~ 20:50 필라테스

     

     

    데일리스크럼

    장원

    • 7주차 일정 확인 및 공유
      • 내일 오피스아워 Azure ML
      • 대회 종료는 목요일 7시
      • 이번주는 스페셜 피어세션 있음
      • 금요일은 랩업리포트 작성 위주로 (워드파일로 취합 후 PDF로 내보내서 제출)
    • 주말동안 작업한 level 1 프로젝트 repository 업데이트 내역과 이용 규칙 공유 (본문 하단에 기입)
      • github repo 관련 내용 
      • 베이스라인 코드를 template에 옮기는 작업을 각자 하면 비효율적이니 일단 주영님 코드를 가져다 쓰자
    • 데이터를 쉽게 늘릴 수 있게 dataset 코드 작성한 뒤 Slack으로 먼저 공유하고 테스트코드와 함께 GitHub에 추가할 예정

    주영

    • 잘못된 라벨을 잡는 것이 모델 개선보다 빠를 수 있겠다
    • [공유] 잘못된 label 찾아보기
    • 틀렸거나, 맞췄는데 확률이 좀 낮게 예측한 데이터들 약 1,000개를 확인
      • 마스크는 명확한데, 성별이 애매한 경우가 많음
        • 마스크를 쓰면 남자인지 여자인지 어려우니, 그 폴더 들어가서 normal 이미지를 확인
      • 57세인데 70대인 것 같은 경우가 있었고, 30대인데 20대 같이 동안인 경우가  많았고. 나이가 있으신 분들이 좀 많이 나옴.
    • 얼굴 디텍션해서 얼굴을 제외한 부분을 다 지워보자 그러면 augmentation을 할 필요가 없지 않을까? Kaggle에 마스크 착용 얼굴을 판별하는 YOLOv7이 있어서 이걸 사용해서 얼굴만 잘라서 시도해볼 예정

    세준

    • 주말에 강의 수강
    • 모델링. 모델을 직접 만들어서
      • 사진 안에서 얼굴을 가지고 3가지를 분류해야 하는데, 공통된 것은 얼굴 관찰이다보니, 어쨋든 얼굴을 가져와서 성별/나이/마스크를 분류해야 하니, 공통된 부분
      • ImageNet이랑 비슷한 분류를 하려고 하면 pretrained model을 가지고 하고, 다른 분류라면 가져다 쓰지 않는 것이 좋을 수도 있다는 내용을 들어서

    선규

    • 주말에 강의 수강하며 베이스라인 코드를 수정해보고 있다가, 장원님 slack을 보고 pytorch-template에 베이스라인 코드를 넣는 작업을 했었음. 일단 장원님 의견대로 주영님 코드를 먼저 써볼 예정

    태환

    • transform을 안하고 주입을 하니, 라벨이 한 쪽으로 쏠렸었다.
      • Resize, Normalization, ToTensor

     

     

    피어세션

    장원
    • 데이터를 자유롭게 늘릴 수 있는 dataset.py (data.py) 작성
    주영
    • 마스크를 쓴 얼굴만 Crop하는 YOLOv7 모델을 가져왔는데, 얼굴을 잘 못 따는 경우가 있었음.
    • 어떤 폴더는 마스크 쓴 이미지 1개만 남아있는 경우도 있어서 Detection이 제대로 작동해야 쓸 수 있겠구나 싶어서 바로 폐기
    • 장원님 dataset을 이용해서 앙상블 기법 사용해보려고 함
    • 기상청 AI 예고센터 꽃가루 예고하는 모델이 있었음. 잘 안됐었는데, 모델 고도화할때 데이터 통계치를 원본 데이터와 같이 input으로 주니까 잘 되더라는 내용을 들었었음. 핵심: 추가적인 정보를 넘겨준다 / 통계치 히스토그램 Histogram Equalization
    • ImageAnalysis.pdf (파일 첨부)
      • 히스토그램, 누적 분포

    ImageAnalysis.pdf
    4.11MB

    선규/주영
    머리가 짧은 여성은 얼굴만 따오면 좀 더 객관적으로 판단할 수 있지 않을까
    선규
    • 주영님 clone해서 에러를 해결하고 나서 별로 돌려보지 않았음. ResNet18, ResNext 돌려봤는데, 거의 다 성능이 잘 나와서 모델을 바꾸는 것보다는 데이터를 만지는 것이 더 좋을 것 같다.
    • 에러는 config를 계속 업데이트했는데, template은 업데이트를 하지 않아서 발생한 문제
    • EfficientNet B0 파라미터수가 적고, B4 이후 급증하는데 성능 개선이 별로 없는데 B7을 써서 오래 걸렸던 것 같다. B4를 써볼 예정
    세준
    • 이미지가 가운데 있어서 CenterCrop을 활용, 테스트셋에도 적용할 예정
    • ResNet18 기반 커스텀 모델인데 8번째 epoch부터 train loss는 줄어드는데, val loss는 늘어나기 시작해서 오버피팅 같아서 중단했었음
      • 주영) 어떤 논문 저자는 오버피팅인지 판단하려면 300번은 돌려봐야 한다.
      • 주영) 모델이 작으면 파라미터수가 적으니 epoch 조금만 돌려도 오버피팅되긴 하지만, ResNet18은 어느 정도 되서 8번으로는 오버피팅되긴 이르지 않나 싶다
    태환
    • gender-age 묶어서 했던 것이 성능이 괜찮게 나왔는데 주영님보다는 안 좋길래, 오버피팅된 것 같아서 아예 3개를 mask-gender-age 하나로 묶어서 시도해볼 예정

     

     

     

    주말동안 작업한 level 1 프로젝트 repository 업데이트 내역과 이용 규칙

    repo 업데이트
    • First commit 메시지에 gitmoji 넣기
    • pytorch-template 가져오기
    • conda 환경 파일(environment.yml) 추가   →  아래 setup.sh에서 환경 파일을 읽어서 알아서 생성합니다
    • 서버 셋팅 스크립트(setup.sh) 추가           →  sh setup.sh  또는 ./setup.sh 하시면 실행됩니다.
    규칙
    • main에 푸시하지 않기. main에서 branch를 뽑아서 작업해주시고, main으로의 병합은 PR(Pull Requests)로 하겠습니다. PR 보내시고 저한테 알려주세요. 제가 리뷰해서 Merge하겠습니다.
    • 일관된 코드 포맷을 위해 black, isort를 사용합니다. (boostcamp conda 환경에 포함되어 있습니다)
      • commit 하기 전에 터미널에서 black . && isort . 를 실행시키면 됩니다.
      • VSCode에서 파일 저장하면 알아서 black과 isort를 사용하도록 설정하는 방법도 있습니다. 참고 링크
      • (추후 pre commit hook을 설정할 예정입니다. 뭔지 궁금하시면 참고 블로그)
    ※ 이러한 규칙은 보통 CONTRIBUTING.md로 명시됩니다.  contributing.md이 궁금하시다면 아래 참고하시고, README.md와 같이 한글로 작성하여 저희 repo에도 추가할 예정입니다.

    댓글

Designed by Tistory.