-
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
- CenterCrop한 이후에 Histogram Equalization을 하면 더 잘 될 것 같다
- Face Recognition with OpenCV
- Cascade Classifier with OpenCV
- [OPENCV] 파이썬(PYTHON)으로 얼굴 검출 (FACE DETECTION) 맛보기
- ImageAnalysis.pdf (파일 첨부)
- 히스토그램, 누적 분포
선규/주영
머리가 짧은 여성은 얼굴만 따오면 좀 더 객관적으로 판단할 수 있지 않을까선규- 주영님 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 메시지에 gitmoji 사용하기
- 어떤 이모티콘을 사용해야 될지 모르겠으면 물어봐주세요.
- 좋은 커밋 메시지 위한 영어 사전
- gitmoji를 사용한 레포지토리 예시: typer
※ 이러한 규칙은 보통 CONTRIBUTING.md로 명시됩니다. contributing.md이 궁금하시다면 아래 참고하시고, README.md와 같이 한글로 작성하여 저희 repo에도 추가할 예정입니다.'부스트캠프 AI Tech 4기 > Daily Tasks & Time Log' 카테고리의 다른 글
2022-11-02 (수) Daily Tasks & Time Log (0) 2022.11.02 2022-11-01 (화) Daily Tasks & Time Log (0) 2022.11.01 2022-10-28 (금) Daily Tasks & Time Log (0) 2022.10.28 2022-10-27 (목) Daily Tasks & Time Log (0) 2022.10.27 2022-10-26 (수) Daily Tasks & Time Log (0) 2022.10.26