[11주차] 회고 - Wrap-up Report

Soonyoung Hwang·2022년 12월 14일
0

네이버 부스트캠프

목록 보기
12/14

11주차 회고로는, Object Detection Project에 대한 Wrap-up report의 summary 및 소감으로 대체한다.


  1. 목표
    재활용품 Object Detection을 통해, OD Task를 이해, 구현하고 개선시킨다.

  2. 진행사항
    1) EDA
    EDA를 통해 데이터 클래스별 특징, 분포에 대해 이해 하였다. 초기 EDA를 통해, 1) 작은 물체에 대한 학습이 조금 더 힘든 것 2) Battery class가 가장 적은 것 3) 이미지별 Annotation 갯수 차이가 큼 등에 대해 확인하였고, Mislabel 된 것들에 대해 데이터 정제를 했다.
    2) 프레임워크
    Detectron2, MMDetection, Hugging Face 프레임워크에 대해 조사를 하고 아래와 같은 이유 때문에 MMDetection을 선택했다. a. 자유도가 충분히 좋다. (Neck, Backbone 선택이 간편하다.) b. 팀원 중 한명이 사용해봤다 = 익숙하다 c. 1-stage, 2-stage 기준 많은 SOTA 들이 구현되어있다. d. 공식 페이지 github에 가장 친절하게 설명이 되어있다.
    3) 모델
    2-stage model인 Faster RCNN을 baseline으로 삼고 내 모델을 구현했고, 이 모델을 계속해서 발전해나갔다.

  3. 모델
    초록색 표시는 선택된 것, -혹은 노란색 표시는 고려되었으나 선택되지 않은 것 이다. 빨간색표시는 고려되지 않은 것 이다.

    Model - Cascade RCNN이 Faster RCNN보다 좋은 결과를 보여서 선택했다.
    Backbone - ResNet, Swin Transformer, ConvNext를 비교 후 Swin Transformer (Large)를 선택했다.
    Neck - FPN/NASFPN/BiFPN은 큰 성능차이가 나지 않아서 단순하고 안정적인 FPN을 선택했다.
    Optimizer는 가장 무난한 Adam대신 AdamW를 선택했다.
    Loss는 따로 설정을 크게 해주지 않았다. 각 cls loss, bbox loss 들 마다 최적의 값이 설정되어있다고 가정을 했다.
    Visualization Tool은 협업을 위해 Wandb를 사용했다.
    성능향상을 위해, Pseudo Labeling / Ensemble (with 1-stage) 를 진행했다.

  1. 한계 및 배운점
    1) ConvNext가 성능이 너무 안 좋아서 사용하지 못 했는데, 1등팀은 이것을 해결하기 위해 논문을 보고 적당한 optimizer를 통해 예민한 ConvNext를 사용가능한 수준까지 끌어올려서 좋은 성능을 내었다. 써보고 안 된다고 포기하지 말고, 원인을 파악해서 고치는 습관이 필요하다
    2) 기존 라이브러리의 Mosaic은 visualization 해본 결과, 사용하지 못할 수준이었다. Customize를 해서 사용했는데, 좋은 접근이었다고 생각한다.
    3) Augmentation이 backbone 모델마다 다른 성능을 보였다. 예를 들어 Mosaic는 CNN기반 backbone에는 좋은데, transformer 기반 backbone에는 성능하락이 나타났다. 이것 또한, 1등팀의 발표를 보고 배운 점이다. 단순히 mosaic가 안되는 것에 실망하지 말고, 원인을 파악했어야 한다.
    4) 체계적인 실험이 매우 중요하다. 분류대회와 달리, 한번 돌리면 10시간은 돌려야 눈에 보이는 결과가 나온다. 체계적인 방향을 잡지 못해서 최고 좋은 성능을 냈던 모델의 성능향상을 시키지 못했었다.
    5) Github를 통해 많은 협업 방법들을 배웠다. 이것을 좀 더 자유롭게 다룰 수 있게 계속해서 사용해야한다.
    6) Visualization을 통한 결과분석이 mAP성능 향상에 큰 도움이 되지 않았다.
    7) Fold별 데이터편차가 심했다. 같은 모델로 서로 다른 fold를 돌렸을 때, 성능차이가 컸다. 앞으로 실제 데이터에 대해서도 주목할만한 부분이다.
    8) 개인적으로 데이터에 대한 아쉬움이 이번에도 있었지만... 역시 1등 팀은 데이터에 대한 불만 보다는 주어진 상황에서 최고의 해답을 찾아갔다. 존경스럽다.
profile
https://github.com/soonyoung-hwang

0개의 댓글