Public LB Score 0.7337
Private LB Score 0.7455 (9등)
적어도 사용한 모델에 대해서는 알아보자
Semantic Segmentation Task 사용되는 여러 방법론들을 공부하자
대회결과가 전부는 아니지만 상위권에 도전해보자 !
- EDA 결과 Class Imbalance 문제가 발견되어 Stratified K-Fold 를 사용하여 Set Split
- 하루 한정된 LB 제출 기회를 효율적으로 사용하기 위해, 팀 내부적으로 평가지표 설정이 필요하였음.
- Split 된 각 Fold 를 공통된 모델로 학습 후 LB에 제출하여 Validation mAP 와 LB Score 가 가장 유사한 Set 을 내부 평가 지표로써 사용
MMSegmentation 의 Baseline 에는 비교적 가벼운 BackBone 들로 Model 이 구현 되어있었다.
따라서 ,이를 Swin Transformer Large , ConvNeXt XLarge 와 같은 무거운 Model 로 변경을 시도해보았다.
그 결과 기존 Model 들의 성능에 비해 비약적인 향상을 이끌어 낼 수 있었다.
이전 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 향상을 이끌어 낼 수 있었다.
- 처음엔 이전 대회와 같이 어느정도 성능이 나오는 모델들 전체를 Hard Voting으로 Ensemble 하려 하였음. → LB Score가 오히려 하락하는 문제 발생.
- 각 모델의 Class 별 mIOU 를 분석 후, 서로 시너지를 낼 수 있는 모델들로만 Ensemble (Battery의 경우 Swin 모델의 mIOU 는 ↓, ConvNext의 경우 mIOU ↑)
이전 대회에선 무작정 많은 모델을 Ensemble 할 시, Score가 올라갔으나 이번엔 아니였음.
따라서, 어느정도 각 모델의 Class 별 정확도를 기반으로 Ensemble 함이 바람직하다는 것을 알게됨.
현재 SOTA 를 달성한 SwinV2-G 기반 UperNet을 사용하지 못해본 것이 아쉬움.