Boostcamp AI Tech

[Boostcamp Day-56] Semantic Segmentation 연구 동향

ju_young 2021. 10. 29. 13:08
728x90

WSSS


Pixel-level labeling이 image-level labeling보다 약 78배 오래걸림 -> 만드는 시간이 짧은 image-level label만 가지고 segmentation 하는 방법을 모색

1. Weak Supervision

테스트 시에 요구하는 output보다 학습 시에 더 간단한 annotation을 이용하여 학습


  • 가지고 있는 정보인 image level label을 활용하기 위한 classification 모델 학습
  • 학습한 classification 모델을 통해서 CAM, Grad-CAM, 혹은 attention 추출
  • 추출한 결과물은 pseudo mask로 segmentation 모델 학습에 이용
  • pseudo-mask의 결과가 좋지 않음

CAM & Grad-CAM


  • Classification 모델을 학습하면서 생성이 가능
  • 특정 class의 물체가 사진의 어떤 영역에 있는지 유추 가능

1. Image Feature


  • 모델은 학습 시에 고양이인지 강아지인지 구분 할 feature map을 생성
  • 각 feature map은 고양이인지 강아지인지를 구분하기 위한 정보를 담고 있음
  • 각 feature map은 다른 정보를 담고 있음
  • Feature map은 flatten/pooling되어 이미지가 어떤 class인지 판별하는데 쓰임
  • GAP(Global Average Pooling)의 결과물은 각 feature map의 공간적인 평균값으로 해당 feature map을 대표하는 값
  • Classifier는 GAP(또는 Flatten)된 feature vector의 각 원소에 class 별로 다른 weight를 주어서 점수를 매김

2. CAM


  • Classification을 통해서 학습한 중요도를 GAP 이전의 feature map에 곱함
  • 어떤 영역이 class인지 판단함에 있어서 중요했는지 알 수 있음
  • Score가 높은 영역이 중요한 영역
  • 마지막 레이어는 꼭 GAP을 가져야하기 때문에 일반적인 적용이 불가능
  • 마지막 레이어에서만 CAM을 만들 수 있기때문에 이전 레이어에서는 어떻게 활성화 되고 있는지 확인 할 수 없음

3. Grad-CAM


  • 특정 featue map에 변화가 있을 때, class score에도 변화가 크게 일어난다면 중요도가 높은 feature라고 생각할 수 있음
  • 변화량/변화량 = 기울기 = 미분값으로 중요도가 정해짐

  • k번째 feature map의 강아지 class에 대한 중요도 = $\frac{1}{n}\sum_{x,y}\frac{\partial y 강아지}{\partial f_k (x,y)}$ (N = 픽셀 수)

  • Object의 모습을 반영하기 보다는 동글동글한 모양으로 Sharp하지 않게 생성됨
    • 입력 이미지보다 작은 feature map을 통해서 CAM을 생성하기 때문
  • Sharp한 모양으로 만들기 위한 접근
    • 물체의 형태를 알 수 있는 정보를 제공
    • Transfer Learning을 이용
    • Self-supervised Learning을 이용
  • 특징적인에만 집중하는 경향이 있음 (타조의 경우 몸통보다는 머리에 집중)
    • 물체를 구별하기 위해 학습하기 때문에 CAM이 물체와 같은 모양을 할 이유가 적음
    • 다른 class임을 확실하게 알 수 있는 특징에 의존
    • 같은 class의 물체끼리 서로 다른 모습을 갖고 있기 때문에 공통적으로 보이는 특징에 의존
  • CAM 영역을 확장하기 위한 접근
    • 특징적인 영역을 지운 사진을 다시 학습하여 CAM을 얻음
      • Output별로 다른 모델을 학습해야함
      • Class 별로 필요한 Step이 다름
      • 과도한 step으로 인해 물체가 아닌 영역까지 mask가 생기는 현상이 발생
    • input 이미지의 random 영역을 지움
      • Input 이미지에서 random한 patch를 지워서 최대한 다양한 영역에서 특징을 뽑을 수 없도록 강제
      • 한 개의 네트워크로 Erasing과 비슷한 효과가 생김
    • 다양한 Receptive Field 사용
    • Mixup

 

728x90