11 class: Background, General trash, Paper, Paper pack, Metal, Glass, Plastic, Styrofoam, Plastic bag, Battery, Clothing
background까지 포함하여 11개의 클래스로 segmentation하는 것이었습니다.
전체 이미지 개수 : 4091장
[train : 2617, valid : 655, test : 819]
이미지 크기 : (512, 512)
11 class
[Background, General trash, Paper, Paper pack, Metal, Glass,
Plastic, Styrofoam, Plastic bag, Battery, Clothing]
평가 방법 : mIoU
Label mask 생성시 annotation 정렬 순서에 따라 마스크가 비정상 적으로 표시되는 경우가 있었습니다. annotation끼리 독립적이지 않은 경우가 있었습니다. 따라서 크기가 큰 annotation순으로 그려서 해결하였습니다.
[원본/개선전/개선후/변경부분]
투명한 물체 뒤에 비치는 물체까지 레이블링 되어 있는 경우가 있었습니다. 주최측에서는 일반쓰레기봉투 안의 내용물은 레이블링 되지 않도록 수정했다고 전달받았습니다.
투명해서 배경과 구분이 안되는 물체
배경과 색깔이 비슷한 경우
아래 예시처럼 배경이 플라스틱인 경우가 존재했습니다.
프로젝트 후반부에 각자 코드를 합치면서 충돌이 아주 많이 났는데 이를 접하면서 git에 조금 더 익숙해졌습니다.
팀원분이 SOTA모델인 Multi-sclae OCRnet 공식 github을 저희 데이터에 맞도록 수정해주셨습니다. 이를 보며 오픈소스를 사용하는 방법을 배울 수 있었습니다.
copy paste 논문의 공식 깃헙을 참고하여 적용해봤습니다. 오픈소스사용하는 것을 연습할 수 있었습니다.
detection때에 비해서 segmenation 모델마다의 특성과 FCN으로부터 이후 모델들이 어떻게 발전했는지 학습하고 정리하는 시간을 가졌습니다.
저번대회와 다르게 mmdetection/segmentation 라이브러리를 사용하기보다 torch기반의 스크립트로 작업하였습니다. 저번대회에서 detection을 공부하기보단 라이브러리를 공부하는 느낌을 받았던 것에 비해 디버깅하는 과정이 좀 더 수월했습니다.
사실 이번 대회 2주차즈음에 번아웃이 왔습니다. 끊임없이 진행되는 캠프 특성도 원인이었지만, 방향성을 잡지 못해서 더 그랬던 것 같습니다. 내가 AI 분야에서 엔지니어/리서처, 어떤 분야의 산업, CV/NLP/Recsys .. 등 어떤 분야를 집중할 것인지 내가 어떤 직무를 좀 더 잘할 수 있을 지 고민해볼 것입니다.
copy paste를 하기위해서 오픈소스를 사용했는데, 원래 제가 하고 싶었던 것은 1. 적은 데이터수를 가지는 카테고리의 객체를 합성 2. 기존 물체를 가리지 않도록 background에 합성 두가지였습니다.
그런데 오픈소스를 기반으로 해당 기능을 추가하는 것이 더 어려웠습니다. 그래서 결국엔 기능을 추가하지 못했고(사실 더 열심히 했으면 가능했을 것 한데 번아웃이 오면서 의욕이 많이 없었습니다😂)
나중에 토론 게시판에 공유된 코드를 참고해서 1번을 만족하는 copypaste를 할 수 있었습니다.
그래서 처음부터 좋은 코드를 만들기보다는 최소한의 목적을 설정하고 이를 만족하는 '돌아가는' 코드를 만들어봐야겠다는 생각을 했습니다.
image reference
네이버 커넥트재단 - 재활용 쓰레기 데이터셋 / CC BY 2.0