기다려주세요
도도동짱
전체 방문자
오늘
어제
  • 전체보기 (65)
    • Diary - Life (9)
    • Diary - IT (7)
    • Data Science (6)
    • CS & Programming (20)
    • Debugging (3)
    • Papers (10)
    • Project (3)
    • Lecture (7)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • Github
  • Instagram

공지사항

  • 김동혁입니다 :)

인기 글

태그

  • Transformer
  • GIT
  • 우분투
  • weakly supervised semantic segmentation
  • 회고
  • 리눅스
  • 투자
  • weakly supervised learning
  • 프로그래밍
  • 프로젝트
  • 취업
  • segmentation
  • gpt4
  • 개발
  • 에러
  • 파이썬
  • WSSS
  • polyp segmentation
  • joblib
  • 일상
  • ubuntu
  • numpay
  • 빅데이터
  • Deep learning
  • python
  • 알고리즘
  • 네이버 개발자 오픈클래스
  • Linux
  • 디버깅
  • attribution method

최근 댓글

최근 글

기다려주세요

Papers

[10분만에 논문 리뷰] CVPR2022: Out-of-Distribution Data를 이용한 Weakly Supervised Semantic Segmentation

2022. 11. 14. 14:30

CVPR 2022에 나온 WSSS 관련 논문인 Weakly Supervised Semantic Segmentation using Out-of-Distribution Data입니다. 저자가 한국 사람들이기도 하고, 최근에 OOD 개념에 대해 들어보기도 해서 관심이 생겨 읽어보았습니다. 

 

추가로 지금까지는 논문 내용을 그저 '정리'만 했는데, 이제는 내용을 모두 담지 않더라도 조금 더 분석적, 비판적으로 읽고 생각한 내용을 적어보려고 합니다.

 


Introduction

 

  • 본 논문에서는 '간단한 이미지 추가'만으로 WSSS 성능을 올릴 수 있었다고 합니다. 그 이미지는 바로 Out-Of-Distribution(이상치) 데이터입니다. 논문 첫 장부터 간단한 그림을 통해 어떤 novelty를 가지고 있는지 확인시켜줍니다.
  • WSSS 분야에서는 Foreground(분할할 오브젝트)와 background(배경)의 구분이 주요 관건입니다. 그래서 그 경계(Boundary)를 잡아내는 것이 중요합니다. image-level labeled data은 그 특성상 더더욱 그 경계를 혼동합니다. 이 논문에서는 오리-물, 딱따구리-나무, 눈썰매-눈, 기차-기찻길로 그 예를 들었습니다. 주로 두 object가 동시에 등장하기 때문이죠.
  • 여기서는 '기차'를 좀 더 잘 segmentation 하기 위해 '기차가 없는 기찻길'도 학습을 시키는 기법을 도입했습니다. 타 방법들에 비해서 레이블링 하는 과정도 단순합니다. 심지어는 class별로 '한 장'의 OOD 데이터가 있어도 2% 정도 성능을 높였다는 부분에서 흥미를 이끌어냈습니다.
  • 이 연구진들은 OOD 셋 중에서도 학습에 도움이 되는 hard-OOD data를 모으는 방법에 집중했습니다. 기존의 image-label 단계에서 시행할 수 있는 정도라 시간과 비용이 거의 안 들어간다는 점을 강조했습니다.

 

Method

Collecting the Hard OoD Data

Hard Ood data를 모으는 과정은 다음과 같습니다.

  1. 원하는 클래스들( C list )을 정한다.
  2. 다양한 출처에서 레이블링 되지 않은 데이터를 수집한다. (인터넷, Open dataset 등)
  3. C list에 속해있는 이미지들을 결정하고, 태그를 단다. (foreground images)
  4. (3)에서 수집되지 않은 data를 모은다.
  5. --- 여기까지는 Candidate OoD Data ---

6. (3)에서 얻은 데이터를 학습한 classifier로 Candidate Data를 추론하고, score에 따라 정렬한다.

7. score가 0.5 이상인 이미지들만 남긴다.

8. 그중에서 foreground class가 있는 이미지들을 수동으로 거른다. (miss, false positive annotations)

9. --- Hard OoD Data 완성 ---

1개의 클래스라면 쉬워 보이지만, 원하는 클래스가 여러 개라면 어느 정도 cost가 필요해 보입니다.

 

Leaning with Hard OoD Dataset

이 부분에서 classifier의 Loss 함수를 정의합니다. 수식이 좀 복잡해 제대로 이해했는진 모르지만, 크게 두 부분으로 나뉩니다.

 

classification loss

Classification loss에서는 in-distribution 입력값은 y 클래스 벡터 ( [0,1,0,...,0] )과의 binary cross entropy(BCE)를 계산하고, out-of-distribtion 입력값은 0 벡터 ( [0,0,0,...,0] )와의 BCE를 계산합니다.

 

distance loss

Distance loss에서는 in-data와 OoD 데이터를 K-means 알고리즘을 이용해 clustering 한 뒤, 해당 cluster와의 거리를 구합니다.

total loss (lambda는 스케일 조정을 위한 상수)

 

Training Segmentation Networks

CAM은 low-resolution 정도의 예측 (seed area)만 할 수 있기 때문에, 최근 연구들에는 CAM의 결과를 pseudo-mask로 복원하는 데에 집중을 하고 있습니다. 이 연구에서는 IRN 프레임워크를 (attention 맵을 사용한 기법) 사용했다고 합니다.

 

 

Experiments

  • In-Distribution: Pascal VOC 2012 데이터, Out-of-Distribution: OpenImages 데이터 사용
  • Classifier: ResNet-50 사용
  • Segmetation: DeepLab-v2 사용 (backbone은 ResNet-101, WideResNet-38)
  • 모든 Backbone은 ImageNet에 pre-trained 

 

Results

기존 방법에 W-Ood 기법을 적용했을 경우 성능 개선

 

mask 생성 능력 성능

 

Pascal 데이터에 대한 성능

 

기존 CAM 기법보다 덜 편향되고, Boundary에 집중한 결과 이미지

 

최종 segmentation 결과 이미지

 

epoch가 진행될수록 확실히 구분되는 In-Data와 Out-Data

 

 

Conclusion

결과적으로 OoD data를 얻어내기 위한 data collection pipeline을 잘 설계함으로써 WSSS 성능을 많이 높일 수 있었습니다. Future Work로는 OoD 이미지를 Classifier가 아닌 Segmentation 네트워크에 적용하는 것을 언급했습니다.

 


보통은 새롭게 설계한 Neural Network 구조를 공개하며 성능을 높이는 추세 같은데, 간단한 데이터 레이블링 및 전처리, loss 함수 정의를 통해 WSSS 성능을 끌어올린 것이 인상적이었습니다. Localization 해야 하는 클래스가 그리 많지 않다면, 시도해볼 만한 방법인 것 같습니다.

 

혹시나 잘못된 부분이 있다면, 얼마든지 태클해주시기 바랍니다!

 

 

Ref.

https://openaccess.thecvf.com/content/CVPR2022/html/Lee_Weakly_Supervised_Semantic_Segmentation_Using_Out-of-Distribution_Data_CVPR_2022_paper.html

 

CVPR 2022 Open Access Repository

Weakly Supervised Semantic Segmentation Using Out-of-Distribution Data Jungbeom Lee, Seong Joon Oh, Sangdoo Yun, Junsuk Choe, Eunji Kim, Sungroh Yoon; Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), 2022, pp. 16897

openaccess.thecvf.com

https://github.com/naver-ai/w-ood

 

GitHub - naver-ai/w-ood

Contribute to naver-ai/w-ood development by creating an account on GitHub.

github.com

 

저작자표시 동일조건 (새창열림)

'Papers' 카테고리의 다른 글

[10분만에 논문 리뷰] Max pooling을 더한 Vision Transformer를 이용한 WSSS  (0) 2022.12.16
[10분만에 논문 리뷰] CVPR2022: Multi-class Token Transformer를 이용한 Weakly Supervised Semantic Segmentation  (0) 2022.12.09
[10분만에 논문 리뷰] CVPR2022: C-CAM: Causal CAM for Weakly Supervised Semantic Segmentation on Medical Image  (0) 2022.11.07
[10분만에 논문 리뷰] Stepwise Feature Fusion: Local Guides Global  (0) 2022.10.31
[10분만에 논문 리뷰] ESFPNet, real-time lesion segmentation, 실시간 병변 탐지  (0) 2022.10.24
도도동짱
Working on it, Walking on IT
Designed By 정상우.

티스토리툴바