코린이의 공부일기

[Boost Camp] Week5 Team Competition 최종 본문

BOOST CAMP_정리

[Boost Camp] Week5 Team Competition 최종

SOJUNG 2021. 9. 4. 02:21

 

 

드디어 Team competition이 종료 : -) 

 

모두 수고 많았습니다 (◍•ᴗ•◍)❤

 

 

 

 

-  Level 1 대회 주제 -

 

Image Classification

 

 

 

 

-  대회 개요 -

 

COVID-19의 확산으로 우리나라는 물론 전 세계 사람들은 경제적, 생산적인 활동에 많은 제약을 가지게 되었습니다. 우리나라는 COVID-19 확산 방지를 위해 사회적 거리 두기를 단계적으로 시행하는 등의 많은 노력을 하고 있습니다. 과거 높은 사망률을 가진 사스(SARS)나 에볼라(Ebola)와는 달리 COVID-19의 치사율은 오히려 비교적 낮은 편에 속합니다. 그럼에도 불구하고, 이렇게 오랜 기간 동안 우리를 괴롭히고 있는 근본적인 이유는 바로 COVID-19의 강력한 전염력 때문입니다.

감염자의 입, 호흡기로부터 나오는 비말, 침 등으로 인해 다른 사람에게 쉽게 전파가 될 수 있기 때문에 감염 확산 방지를 위해 무엇보다 중요한 것은 모든 사람이 마스크로 코와 입을 가려서 혹시 모를 감염자로부터의 전파 경로를 원천 차단하는 것입니다. 이를 위해 공공 장소에 있는 사람들은 반드시 마스크를 착용해야 할 필요가 있으며, 무엇 보다도 코와 입을 완전히 가릴 수 있도록 올바르게 착용하는 것이 중요합니다. 하지만 넓은 공공장소에서 모든 사람들의 올바른 마스크 착용 상태를 검사하기 위해서는 추가적인 인적자원이 필요할 것입니다.

따라서, 우리는 카메라로 비춰진 사람 얼굴 이미지 만으로 이 사람이 마스크를 쓰고 있는지, 쓰지 않았는지, 정확히 쓴 것이 맞는지 자동으로 가려낼 수 있는 시스템이 필요합니다. 이 시스템이 공공장소 입구에 갖춰져 있다면 적은 인적자원으로도 충분히 검사가 가능할 것입니다.

 

 

 

-대회 평가-

 

submission.csv 파일로 저장해서 제출

각 이미지들의 아이디 , (예측된)class 로 구성 

순위는 f1 score 기준

 

 

-제출 결과 -

 

Backbone 3개 + Retina Face Dataset (외부 public dataset 추가 X)

->accuracy = 78 % 

-> f1 = 0.73

 

 

 

 

-과정 & 결과-

 

우리 조는 backbone을 3개 만든 것 과 1개 만들어 두 가지로 실험을 진행했다.

 그러나 정확도나 f1 을 비교해봤을 때 결과적으로는 둘이 거의 똑같았다 

  나는 backbone에서 다른 팀원 분과 함께 Age부분을 맡았는데 거의 아시아인으로 구성된public data을 구하고 Cut_mix을 진행하여 남녀 비율도 비슷하게 구하고  마스크 한 사람(Cut_mix)/ 마스크 하지않은 사람

도 같은 비율로 생성하여 Traindata 을 늘렸다. 그치만 딱히 Validation f1 score 는 올라가지 않았다,, 

성별 backbone에서는 데이터 추가로 조금 오른걸로 아는데 이건 나이를 예측하는 거여서 그런지 그닥 !? 올라가지 않았고 오히려 efficientnet이나 mobilenet을 했었는데 resnet으로 모델을 바꿔서 사용하니 f1 score가 0.2정도 올라갔다.

구글링 해보았을 때 분류순위는 efficientnet이랑 mobilenet이 resnet보다 높아 사용했는데 멘토님께서 resnet을 사용해보라고 추천해주셔서 해보았는데 확실히 조금 오를 수 있었다.

마지막으로 조금 더 성능을 높이기 위해

Traindataset을 Ratina face을 적용하며(publicdata는 적용 X) 0.2정도 f1 score을 올릴 수 있었다.

최종적으로는 Team Competition을 시작하고 맨 처음 제출 보다 약 0.3정도 f1 score을 올릴 수 있었다.

 

최종적으로 제출한 모델   

3가지 backbone 공통

Ratina face data O ,5-fold-validation,loss function= focal +cross entropy+label smoothing

 

Mask 예측

model = efficient_net_b3a

Age 예측

model = Mobile_net

Gender 예측

model=efficient_net_b3a

 

 

 

-회고-

나는 약 2 주동안 프로그래밍면에서 정말 많이 성장했음을 느꼈다.

특히 이번 대회를 계기로 내가 어떤부분에서 부족하고 잘 모르는지 확연히 알 수 있었다.

pandas에 쓰이는 함수들도 내가 많이 모르고 있는 것도 알 수 있었고, 특히 데이터를 구성하는데에 있어서 

많이 미숙하단 걸 알 수 있었다. 이전 개인Competition에서도 backbone구성보다 labeling에서 시간을 너무 많이쓴 것처럼 이 부분에 대해서 보안할 필요가 있다고 본다. 특히 Level2로가면 이번 프로젝트보다 훨씬 더 심화된 과정일텐데 데이터를 처리하는 과정에서 어려움을 겪으면 큰일 일 것 같다! 

추가적으로 내가 어려워하는 부분을 목록화시켜 그 부분에 멘토님들께 방안들을 여쭈어보며 계획을  작성할예정이다.

이 부분이 정말 부스트캠프의 큰 장점인 것 같다. 

+ 마스터클래스 김태진님 특강을듣고 중요한 부분을 알게되었다. 주어진 Trainset을 절대 믿지 말라는 말씀이었다.

리더보드 1등한 조분을 피어세션 때 뵙게되었는데 그 분께서도 Trainset 18900개의 이미지를 하나하나 보고 labeling이 잘못된 부분을 고쳐 f1 score을 많이 올렸다고 하셨는데 마스터님과 같은 말씀을 하셨다. 

절대 대회에서 주어진 데이터를 100% 믿지말고 하나하나 찾아보는 과정도 중요함을 잊지 말자!

 

-계획(9월 7일 ~ )-

* git익숙하게 만들고 github 자주 활용하기

* 토이프로젝트 주제 선정 -> 다음 주차 포스팅에 작성

* 데이터시각화 ( ★★★) 

기본적인 Dataframe생성부터 구성까지 익숙하게 만들어보기

 

 

 

Comments