boostcampaitech3 / level2-semantic-segmentation-level2-cv-17

[2022.04.25 ~ 2022.05.12] Recycle Trash Semantic Segmentation Competition - 부스트캠프 AI Tech 3기
4 stars 2 forks source link

[Idea 공유] #2

Open Dongwoo-Im opened 2 years ago

Dongwoo-Im commented 2 years ago

Content

  1. Data 1-1. Class Imbalanced 1-2. Augmentation
  2. Model 2-1. smp (segmentation-models-pytorch) 2-2. torch.hub 2-3. mmsegentation
  3. Post-process 3-1. Dense-CRF
  4. Reference 4-1. A Survey on Deep Learning-based Architectures for Semantic Segmentation on 2D Images 4-2. Self-supervised Auxiliary Learning with Meta-paths for Heterogeneous Graphs 4-3. Auo-Seg-Loss
  5. Metric 5-1. miseval 5-2. confusion matrix
  6. Ensemble 6-1. 앙상블을 위한 후보 선정 아이디어
Dongwoo-Im commented 2 years ago

2-1. smp 라이브러리를 통해 timm의 모델을 가져와서 다양한 Encoder, Architecture를 실험할 수 있습니다. 현재 해당 라이브러리가 깔려 있는 상황이라 사용법만 익힌다면 바로 활용할 수 있으며, 추후 args로 관리하기에도 용이할 것으로 보입니다. mmseg처럼 최신 모델이 구현되어 있지는 않은 것 같습니다. Encoder : 467개 Architecture : Unet, Unet++, MAnet, Linknet, FPN, PSPNet, PAN, DeepLabV3, DeepLabV3+ Github: https://github.com/qubvel/segmentation_models.pytorch#examples

Dongwoo-Im commented 2 years ago

2-2. torch.hub는 어떤 모델이 있는지 파악하기 어렵고 segmentation 모델도 따로 구분되어 있지 않습니다. 그리고 사용하려면 cuda-toolkit, pytorch 업그레이드가 필요한 상황입니다. 물론 규범님이 올려주신 방법을 통해 업그레이드가 가능하지만 torch.hub의 장점이 뚜렷하지 않다고 판단하여 일단은 보류해도 될 것 같습니다. URL : https://pytorch.org/hub/research-models

hyoseok1223 commented 2 years ago

2-3. mmsegmentation의 단점이 다양한 custom실험을 하기에 불편하다는 점이라고 생각합니다. 따라서 mmsegmentation으로 우선 사용하기에 적절한 backbone, segmentor, head 등등의 세팅을 찾은 후에 github에서 같은 모델을 가져와 해당 세팅과 유사하게 구성한 후 custom 실험들을 적용하고, 하이퍼파라미터 튜닝등을 하는 것이 효율적일 수 있을 것 같습니다.

baekkr95 commented 2 years ago

3-1. Dense-CRF DeepLab 강의 중, bilinear interpolation 다음에 후처리 과정으로 CRF를 사용하면 더 디테일하게 예측 가능

Dongwoo-Im commented 2 years ago

4-1. A Survey on Deep Learning-based Architectures for Semantic Segmentation on 2D Images 멘토님 추천 논문 paper : https://arxiv.org/pdf/1912.10230.pdf

Dongwoo-Im commented 2 years ago

4-2. Self-supervised Auxiliary Learning with Meta-paths for Heterogeneous Graphs 멘토님 추천 논문 paper : https://proceedings.neurips.cc//paper/2020/file/74de5f915765ea59816e770a8e686f38-Paper.pdf

hyoseok1223 commented 2 years ago

1-1 Class Imbalanced 문제 해결을 위한 몇가지 아이디어

Dongwoo-Im commented 2 years ago

5-1. miseval mIoU도 조금 아쉬운 것 같고, f1 score, recall, precision의 경향성이 매우 유사하여 추가 Metric의 필요성을 느꼈습니다. miseval 라이브러리를 찾아서 DSC(DiceSimilarityCoefficient)를 loggigng 해봤는데, 강제로 CPU를 사용하다보니 valid 시간이 급격히 증가하여.. 삭제하였습니다. 혹시 gpu를 활용한 Dice metric 코드를 구하면 한 번 찍어봐도 좋을 듯 합니다. ref : https://github.com/frankkramer-lab/miseval

Dongwoo-Im commented 2 years ago

4-3. Auto-Seg-Loss Github 우연히 발견한 github인데 mmseg 기반 config를 참고하면 좋을 것 같아서 일단 공유합니다! github : https://github.com/fundamentalvision/Auto-Seg-Loss

Dongwoo-Im commented 2 years ago

6-1. 앙상블을 위한 후보 선정 아이디어 각 Class별로 성능이 좋은 모델을 앙상블하면 점수가 꽤 오를 것 같습니다. 후보 모델 선정을 어떻게 할지 고민해봤는데, 학습이 끝난 모델의 weights를 load해서 train 없이 전체 데이터로 valid 과정을 거치고, 이 valid 과정에서의 class별 IoU score로 후보 모델을 선정하면 좋을 것 같습니다.

baekkr95 commented 2 years ago

1_2. EDA & Augmentation

Dongwoo-Im commented 2 years ago

5-2. confusion matrix