[부스트캠프 AI Tech] Level2 Segmentation 대회 개인 WarpUp Report

Mattaaa·2022년 5월 13일
0

[부스트 캠프 Pstage-2] - Semantic Segmentation

Public LB Score 0.7337
Private LB Score 0.7455 (9등)


[나의 목표]

  • 적어도 사용한 모델에 대해서는 알아보자

  • Semantic Segmentation Task 사용되는 여러 방법론들을 공부하자

  • 대회결과가 전부는 아니지만 상위권에 도전해보자 !


[내가 시도했던 것 들]

공통된 Validation Set 사용

  • EDA 결과 Class Imbalance 문제가 발견되어 Stratified K-Fold 를 사용하여 Set Split
  • 하루 한정된 LB 제출 기회를 효율적으로 사용하기 위해, 팀 내부적으로 평가지표 설정이 필요하였음.
  • Split 된 각 Fold 를 공통된 모델로 학습 후 LB에 제출하여 Validation mAP 와 LB Score 가 가장 유사한 Set 을 내부 평가 지표로써 사용

BackBone 의 변경

MMSegmentation 의 Baseline 에는 비교적 가벼운 BackBone 들로 Model 이 구현 되어있었다.

따라서 ,이를 Swin Transformer Large , ConvNeXt XLarge 와 같은 무거운 Model 로 변경을 시도해보았다.

그 결과 기존 Model 들의 성능에 비해 비약적인 향상을 이끌어 낼 수 있었다.

Augmentation

이전 Classification Task 에서는 Horizontal Flip 을 제외한 여러가지 Augmentation 을 사용하였을 때, 오히려 결과가 나빠지는 경향이 있었다.

이번 Obejct Detection Task 에서는 우선 데이터를 더욱 증강 시키기 위하여, RandomRotate 와 Vertical Flip 까지 추가해보았다. Rotate 와 Flip 등을 통하여 이미지 형태가 바뀌어도 Detection 결과에 영향은 전혀 가지 않을 것으로 판단 하였기 때문이다.

또한, Train Image 의 밝기가 다양했기 때문에 밝기에 따른 일반화 성능을 끌어올리고자, HueSaturationValue, RandomGamma, CLAHE 를 사용하였다.

마지막으로 초점이 흐린 Image에 대비하여 Blur, GaussianNoise, MotionBlur 를 사용하였다.

해당 Augmenation 을 적용 시킨 결과, 약 0.04 의 mIOU 향상을 이끌어 낼 수 있었다.

[Ensemble]

  • 처음엔 이전 대회와 같이 어느정도 성능이 나오는 모델들 전체를 Hard Voting으로 Ensemble 하려 하였음. → LB Score가 오히려 하락하는 문제 발생.
  • 각 모델의 Class 별 mIOU 를 분석 후, 서로 시너지를 낼 수 있는 모델들로만 Ensemble (Battery의 경우 Swin 모델의 mIOU 는 ↓, ConvNext의 경우 mIOU ↑)

[회고]

  • 이전 대회에선 무작정 많은 모델을 Ensemble 할 시, Score가 올라갔으나 이번엔 아니였음.

    • 단일 모델 최고 mIOU → 0.71
    • 전체 Ensemble Score → 0.70
  • 따라서, 어느정도 각 모델의 Class 별 정확도를 기반으로 Ensemble 함이 바람직하다는 것을 알게됨.

  • 현재 SOTA 를 달성한 SwinV2-G 기반 UperNet을 사용하지 못해본 것이 아쉬움.

  • 역시나 BackBone 의 성능이 대부분의 결과를 좌지우지함.
    → 동일 모델에서 BackBone 에 따라 성능이 매우 차이남.
    UperNet with Swin_T (0.61)
    UperNet with Swin L (0.66)

0개의 댓글