일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- python
- Deep learning
- Unsupervised learning
- keras
- Explainable AI
- Interpretability
- 백준
- 설명가능한 인공지능
- 코딩테스트
- 메타러닝
- 기계학습
- AI
- xai
- 딥러닝
- 설명가능한
- Score-CAM
- Cam
- Class activation map
- Artificial Intelligence
- SmoothGrad
- 코딩 테스트
- cs231n
- 시계열 분석
- meta-learning
- Machine Learning
- coding test
- 머신러닝
- 인공지능
- grad-cam
- GAN
- Today
- Total
iMTE
Combinational Class Activation Maps for Weakly Supervised Object Localization 내용 정리 [XAI-18] 본문
Combinational Class Activation Maps for Weakly Supervised Object Localization 내용 정리 [XAI-18]
Wonju Seo 2021. 8. 25. 17:58논문 제목 : Combinational Class Activation Maps for Weakly Supervised Object Localization
논문 주소 : https://openaccess.thecvf.com/content_WACV_2020/html/Yang_Combinational_Class_Activation_Maps_for_Weakly_Supervised_Object_Localization_WACV_2020_paper.html
주요 내용 정리
1) 기존에 weakly supervised object localization (WSOL) 연구에서 class activaiton map (CAM)을 사용 할 때, highest probability class로 부터 획득된 CAM을 사용하여 localization을 하여 semi label을 생성한 방법 대신, 저자는 highest probability class부터 lowest probability class로 부터 획득된 CAM들을 사용하여 좀 더 object를 더 잘 highlight 하는 CAM을 생성해내고, 이를 통해서 localizaiton 성능을 향상시키는 것에 포커싱 하였다. 또한, Non-local modules을 추가하여, 기존에 high-level feature maps만 사용하는 것 대신, low 부터 high level feature map을 사용하는 방법을 제안하였다.
주요 아이디어는 밑의 그림을 보면 알 수 있다.
위의 그림처럼 기존 CAM은 highest probability class로부터 생성된 하나의 heatmap을 고려하는데, 저자가 제안하는 NL-CCAM 방법은 여러 class의 heatmap으로 부터 좀 더 localized가 된 CAM을 생성해내는 것이다. 위 그림에서 보면 제안된 NL-CCAM이 CAM보다 더 ground truth bounding box에 가까운 bounding box를 만들어 낼 수 있으며, 덜 background region에 highlight 된 모습을 볼 수 있다.
이 논문의 아이디어중 하나는 lowest probability class로 생성된 heatmaps으로 부터 이 background region에 highlight 된 부분을 제거하는 것이다. 이는 lowest probability class는 discriminative object에 대해 큰 activation 값을 갖기 보다는 background region에 포커싱이 되어야하기 때문이다.
2) 먼저, CAM 관련된 식은 다음과 같다.
$$c_1 = argmax_c (\sum_n w_{n,c} F^n)$$
위 식에서 $c_1$은 highest probability를 갖는 class label, $w_{n,c}$는 n 번째 feature map의 GAP 이후의 값에 대한 class $c$에 대한 weight, $F^n$은 n 번째 feature map $f^n$의 GAP 결과 값이다.
여기서, 1st map $M^{c_1}$과 kth map $M^{c_k}$는 다음과 같다.
$$M^{c_1} = \sum_n w_{n,c_1}f^n$$
$$M^{c_k}= \sum_n w_{n,c_k}f^n$$
그리고, 최종 localization map은 다음과 같다.
$$M^{ccam}=\sum_k g(k) M^{c^k}$$
저자는 여러개의 CAM을 조합하기 위해서 두가지 방법을 제안하였다.
(1) polynomial funciton
위 식은 polynomial function을 사용하여 $k$ class에 해당하는 CAM에 서로 다른 weight을 주고 최종 localization map을 만드는 것을 의미한다. ($\eta$는 함수의 차수, $p$는 총 foreground activation map의 갯수를 의미한다. 이 논문에서 $p$는 middle point로 정해졌다.)
(2) Top-i & bottom-j function
위 식은 $i$개의 high probability classes와 $j$개의 low probablity classes를 고려하여 최종 localization map을 만드는 것을 의미한다.
마지막으로, 이 논문에서 제안하는 non-local module 이다. 먼저, 전체적인 overview는 밑의 그림과 같다.
위 그림에서 저자는 낮은 수준의 convolutional layer 부터 높은 수준의 convolution layer를 사용하여 low level feature (edge, textures)와 high level feature (objects)를 고려하도록 하였다.
특정 layer에서 획득된 feature maps $x\in \mathbb{R}^{C\times H \times W}$에 세 개의 feature spaces로 1 x 1 convolution layer를 사용하여 projection을 한다. ($f(x)$, $g(x)\in \mathbb{R}^{C'\times H \times W}$, $h(x)\in \mathbb{R}^{C\times H\times W}$)
다음으로, $f(x)$와 $g(x)$를 $\mathbb{R}^{C'\times HW}$로 reshape하고, $h(x)$를 $\mathbb{R}^{C\times HW}$로 reshape 한다.
다음으로 attention matrix를 다음과 같이 정의하고, final attention을 1 x 1 convolution layer와 batch normalization layer를 통과시켜 획득한다.
$$\alpha=Softmax(f(x)^T g(x))$$
$$z=BN(k(h(X)\otimes\alpha))$$
그리고 final output y를 획득한다. (skip connection을 사용한 것이다.)
$$y = z+x$$
저자는 attention을 사용함으로써 spatial relationships을 추출하고, 여러 level의 feature maps을 사용하여 low 부터 high에 해당하는 정보를 얻도록 설계하였다.
3) 실험 결과를 확인해보자. 제안된 NL-CCAM은 기존의 방법 보다 더 나은 Top-1 error를 보여주었음을 알 수 있다.
또한, localization errors에서도 기존 방법 대비 더 나은 성능을 보여주었다.
Ground truth를 알았을 때의 localization error도 제안된 방법이 낮다는 것을 보여주었으며, combination 방법에 따른 성능에서 ILSVRC datasets에서는 top-1 & bottom-10이, CUB-200-2011 datasets에서는 Quadratic($\eta$=2)가 가장 좋은 성능을 보여주었다.
다음으로, abalation test에서는 CUB-200-2011에서 가장 좋은 성능을 보여준 모델을 사용 했을 때, 모든 방법을 사용 할 때 성능이 가장 좋았음을 보여주었다.
시각적인 결과를 확인해보면, CAM에 비해서 background region이 덜 highlight 되어있다는 것을 확인 할 수 있으며, high probability는 object에 low probabilty는 background에 highlight가 된다는 것을 알 수 있다. 또한, bounding box도 ground truth에 매우 근사해지는 것을 알 수 있다.
+
저자는 두가지 방법 (Combinational CAM 과 non-local module)을 사용하여 기존 CAM 방법대비 더 좋은 성능을 보였다. 개인적으로는 더 많은 연산이 필요하게 될 텐데, 이에 대한 inference time에 대한 계산과, CAM 이외 (CAM 방법은 구조 자체를 GAP을 사용해야하기 때문에, 성능 저하를 초래할 수 있으며, 다양한 task에서 사용되기 어렵다.)의 Grad-CAM과 같은 최근 방법에 대한 검증을 하는게 필요하다고 생각한다.