HeYStRanGeR
article thumbnail

(23.03.14)

 

weakly + semi 합해서 segmentation 하는 방법론 떠오르는게 있어서 정리해두고, 비슷한 논문이 있는지 찾아봤는데

역시나 이미 논문이 있다..

semi, weakly 선행 연구에 대해서 논문에 잘 설명되어있어서 내용 정리하는 느낌으로 적어보았다.

논문에서 제안하는 방법론의 그림과 글의 내용이 뭔가 맞지 않아서 이해한게 맞는지 모르겠다..

 

 

논문 제목: Learning pseudo labels for semi-and-weakly supervised semantic segmentation

- https://www.sciencedirect.com/science/article/pii/S003132032200406X

 


 

우선, segmentation에서 사용되는 semi-supervised learning과  weakly-supervised learning에 대해 전체적으로 정리해본다.

 

 

Semi-supervised learning

: small cluster of labeled data + massice unlabeled data 로 model을 학습시키는 것이다.

 

아래와 같은 로드맵으로 진행된다. 

1. labeled data에 대해 augmentation

2. unlabeled data로 self-supervision exploration

3. labeled set -> unlabeled set으로 knowledge transforamtion

 

1 -> mixup, cutmix 등이 있다.

2 -> contrastive learning으로 model을 pre-train 하거나 (image-level or pixel-level) / semi-supervised learning 진행하는 동안 consistencty regularization (ex. UDA)

3 -> self-training strategy

          (labeled set으로 학습하고, unlabeled set으로 pseudo labels 생성)

          (co-training, mean-teacher, multi-teacher)

 

 

 

WSSS (Weakly supervised semantic segmentation)

: image-level label을 가지고서, segmentation(pixel-level-classification)을 하는 것이다. 

WSSS는 주로 CAM을 기반으로 해서, seed regions select 하는 SEC pipeline을 사용하는 추세이다. 

(IRNET, SEAM 등등)

 

 

 

 

SWSSS

semi + weakly     supervised      semantic segmentation ====> SWSSS

 

기존의 SWSSS 방법론 roadmap

1. limited strong annotations + massice weak annotations -> strongly labeled data에 overfits될 가능성있음

2. applying WSSS methods directly (based on CAM), only learned by image-level label) -> CAM-style pseudo lables는 부정확함

3. focus on segmentation model design -> 부정확한 pseudo labels로 model degeneration 발생

 

 

pseudo labels prediction을 improving하여 SWSSS를 해결해보자!!

(few pixel-level labeled data + massive image-level labeled data)

 

본 논문에서 제안하는 방법론의 road map

 

 

1. image-level labels의 도움을 받아 class-aware cross entropy(CCE) loss 제안

pixel-level에 overfitting되는 것을 막고자.

 

 

2. progresssive cross training (PCT) method 제안

-----> hybrid-Net + pseudo-Net     으로 구성되는데, 이 둘은 구조는 같지만, weights를 공유하지는 않는다.

두 network의 input batches는 동일하다.

 

hybrid-Net을 먼저 보면, hybrid supervision으로 학습한다. hybrid supervision은 pixel-level labels와 image-level labels 이다.

- strongly (pixel-level) labeled data에 대해서는 ground truth와 비교하여 CCE loss(segmentation loss)에 의해 supervised 학습한다. (segmentation loss)

- weakly (image-level) labeled data에 대해서는 hybrid-Net prediction이 max-pooling layer를 거쳐서 cls loss (multi-label classificaion loss) 에 의해 supervised 학습한다.

-> pixel-level supervision이 있긴하지만, 더 많은 pixel-level supervision이 필요하다!!

 

pseudo-Net은 hybrid-Net의 predictions가 pseudo labels로 사용된다. 

(hybrid's predictions는 image-level labels masking 되었다가 one-hot 형태의 pseudo labels가 된다)

- pseudo-Net의 predictions 중에서 좋은 predictions를 찾기 위해서 dynamic evaluation 을 제안한다. pseudo-Net에서는 strongly (pixel-level) labeled data에 대해서 hybrd-Net's predictions(pseudo labels)과 비교하여 CCE loss로 supervised 학습한다. 그렇기 때문에 strongly labeled data의 ground truth는 pseudo-Net을 mIoU로 evaluate하기 위해 사용된다. dynamic evaluation 을 통해서 J 를 업데이트한다. (momentum update 방식 적용) J는 P2H training에서 사용된다.

- weakly (image-level) labeled data에 대해서는 hybrid-Net's predictions(pseudo labels)과 비교하여 CCE loss에 의해 supervised 학습한다.  => H2P training (hybrid-to-pseudo)

 

그리고 여기서 다시, hybrid-Net는 weakly labeled data에 대해서 pseudo-Net's predictions인 x^_pw와 비교하여 CCE loss로 supervised 학습한다. CCE loss에 w가 곱해지는데, w는 dynamic evaluation을 통해 업데이트한 J를 사용하여 계산해준다.  => P2H training (pseudo-to-hybrid)

 

3. 최종 hybrid-Net predictions를 downstream의 retraining step으로 가져간다. 이 pseudo lables로 fully supervised 학습한다!!!

 

(관련 식은 논문에~~)

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90
profile

HeYStRanGeR

@HeYStRanGeR

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!