/ PAPER-REVIEW

CAM: Learning Deep Features For Discriminative Localization

안녕하세요 AiRLab 박주희입니다. 오늘 소개할 논문은 Learning Deep Features For Discriminative Localization 으로 CAM이라고도 불리며,CVPR2016 에서 소개된 논문입니다.


Introduction

CNN은 이미지 레벨의 라벨 교육만 받았음에도 object를 localization하는 능력이 뛰어납니다. 이 논문에서는 단순히 object를 localization 하는것을 넘어 이미지의 어떤 영역이 차별화 되어 사용되고 있는지를 정확히 파악하는 능력을 Weakly-Supervised Object Localization과 Visualizing CNNs을 통해 generalize 할 수있다는 것을보여줍니다. 또한 GAP를 사용한 CAM (Class Activation Map)이라는 방법을 제시하여 이미지를 차별화 하였습니다. 방금 언급한 내용들을 밑에서 더 자세히 설명을 해 보도록 하겠습니다.

Weakly-Supervised Object Localization

앞선 연구들에서는 실제로 Localization 능력을 평가하지 않았고, end-to-end로 train하지 않았으며 Object Localization을 위해 네트워크의 multiple forward pass가 필요 했습니다. 이 때문에 실제 데이터 셋으로 확장되기 어려웠고 이 논문에서는 end-to-end로 train하고 single forward pass로 Object Localization 할 수있음을 보였습니다. 이 접근 방식과 가장 유사한 방식은 Global Max Pooling 인데 object 한 지점을 localize 하는 방법입니다. 이 방법은 object의 전체범위를 결정하기보다 경계선에 놓여있는 한 점에 한정 됩니다. 이와 비슷한 방법인 Global Average Pooling이 이 논문에서 처음 제시한 방법은 아니지만 더욱 정확한 discriminative localization에 적용 할수있다는 것이 이 논문의 핵심입니다. 여기서 이 기술의 단순성으로 빠르고 정확한 Localization을 위해 다양한 Computer Vision에 적용 될 것이라고 믿고 있습니다.

Visualizing CNNs

앞선 연구들에서는 fully-connected layer를 무시하고 전체적으로 불완전하며 Conv층만 분석을 했습니다. 이 논문에서는 fc층을 없애고 대부분의 성능을 유지하였는데 이로써 네트워크의 처음부터 끝까지 이해를 할 수있게 되었고 이 방식은 차별화되는 이미지의 영역을 정확히 강조 할 수 있습니다.

CAM (Class Activation Map)

error CNN에서 Global Average Pooling을 사용하여 CAM을 생성 합니다.
특정 카테고리에 대한 CAM은 해당 카테고리를 식별하기위해 CNN이 사용하는 차별화된 이미지 영역을 나타냅니다.

error 위 그림은 map 생성 절차입니다. Network In Network와 GoogleNet과 유사한 network의 아키텍쳐를 사용하여 주로 conv층으로 구성되며 최종 출력 직전의 conv feature map에 fc대신 GAP를 사용하였습니다. GAP는 마지막 conv layer에서 각 단위의 feature map의 spatial 평균을 출력합니다. 이 값의 가중합은 최종 출력 생성에 사용되는데 이와 유사하게 이 논문에서는 CAM을 얻기 위해 conv layer의 feature map의 가중치 합을 계산하게 됩니다.

error error Fk는 feature map을 의미하며, softmax의 식은 weight들과 Fk들과의 sum을 의미합니다.

error 이 그림은 MAP을 생성하기 위해 다른 클래스들을 사용할 때 단일 영상에 대한 CAM의 차이를 강조합니다. 다른 카테고리에 대한 차별적인 영역이 특정 이미지에 대해서도 다른 것을 관찰합니다.

이 논문에서는 GAP loss가 물체의 범위를 식별하도록 촉진한다고 믿는데 map의 평균을 구할 때 모든 낮은 activation이 특정 map의 출력을 감소시키기 때문에 물체의 모든 차별적인 부분을 찾아냄으로써 그 값을 최대화할 수 있기 때문입니다. (GMP는 차별적인 부분을 제외하고 모든 영상에 대한 점수는 최대값만 수행하기 때문에 score에 영향을 미치지 않습니다.)

Weakly-Supervised Object Localization 실험

논문에서는 classification과 localization에 대해 실험을 했습니다. 실험 설정은 다음과 같습니다.

기본적인 설정으로 fc layer를 GAP로 변경하였고 여러 conv layer를 제거함으로써 mapping resolution을 향상시켰습니다. 또한 AlexNet, VGGnet, GoogleNet을 각각 수정하여 AlexNet-GAP, VGGnet-GAP, GoogleNet-GAP네트워크를 만들었습니다.

Classification Results

error 전체적으로 conv layer를 제거하고 GAP를 사용한 네트워크들이 성능이 1-2%떨어진 모습을 볼 수있습니다. AlexNet*-GAP는 GAP전에 conv layer를 2개 더 추가한 네트워크입니다. localization에 대한 높은 성능을 얻기 위해서는 classification 성능이 중요한 것을 알 수있습니다.

### Localization Results error

Simple thresholding technique를 사용하여 heat 된 map의 부분을 찾는 방식을 사용하였습니다. (Simple thresholding technique 이란 Activation map에서 max 값을 찾아 그 20% 이상이 되는 영역을 찾고 labeling을 통해 가장 큰 덩어리를 찾고 그것을 둘러싼 bounding box를 찾는 방법입니다.)

error 이 테이블은 이전 연구인 backpropagation기법을 쓴 네트워크와 CAM을 적용한 네트워크를 비교한 것입니다.
GoogleNet-GAP가 가장 성능이 좋은 것을 볼 수 있습니다.

error Weakly-Supervised방식과 fully-supervised방식을 쓴 네트워크를 비교한 테이블입니다. GoogleNet-GAP(heuristics)가 37.1%로 CAM방법중 가장 성능이 좋지만 fully-supervised 방식을 쓴 AlexNet과 성능이 비슷하며 GoogleNet끼리 비교를 했을때는 약간의 성능 저하가 보입니다. 따라서 이 논문에서는 fully-supervised 네트워크와 비교를 하기에는 아직 무리가 있다고 판단을 하였습니다. 여기서 약간 다른 bounding box 선택 기법을 사용함으로써 GoogleNet-GAP방식에 비해 GoogleNet-GAP(heuristics) 가 5.8% 향상 되었는데 이 방식은 1등 예측 class와 2등 예측 class의 activation map으로부터 하나는 타이트하고 하나는 루즈한 bounding box를 총 두개 선택합니다. 그리고 3등 예측 class의 bounding box로부터 루즈한 박스를 고르는 방법으로 이는 classification의 accuracy와 localization의 accuracy사이에서 trade-off 관계입니다. 따라서 이 localization accuracy가 향상됨을 볼 수 있습니다.

결론

결론적으로 Learning Deep Features For Discriminative Localization은 CNN에서 GAP를 이용하여 bounding box annotation없이 object localization을 하는 CAM 이라는 기법을 제안한 논문입니다.