-
Learning Deep Features for Discriminative Localization논문 리뷰/Vision 2021. 9. 7. 17:18
1. Introduction
- 최근 연구는 물체의 위치가 제공되지 않았음에도 CNN의 convolutional unit이 object detector처럼 행동한다는 것을 보여줌
- 그러나 이러한 능력은 분류를 위해 fully-connected 레이어를 거치며 사라짐
- Network in Nerwork (NIN), GoogLeNet은 fully-connected 레이어를 거치지 않는 대신 global average pooling 사용
- 높은 성능은 유지하면서 파라미터 수를 줄이기 위함
- Global average pooling은 오버피팅을 막기 위한 structural regularizer처럼 행동
- 본 연구는 global average pooling가 마지막 레이어까지 localization 능력을 유지하도록 해준다는 것을 보여줌
- 네트워크가 원래 그 목적으로 훈련되지 않았음에도 single forward-pass에서 차별적인 이미지 영역을 쉽게 식별해줌
1.1. Related Work
- 최근 연구들은 image-level label로 학습되었음에도 CNN이 object를 localize하는 능력이 있음을 보여줌
- 본 연구에서는 적절한 아키텍쳐를 이용하여 단순히 object를 localize하는 것을 넘어
이미지의 어떤 영역이 discrimination을 위해 사용되는지 정확히 식별하도록 일반화 시킴* Weakly-supervised object localization
- CNN을 사용한 weakly-supervised object localization을 탐색하는 연구 많았음
- 그러나 이러한 연구들은 end-to-end로 학습되지 못하고 object를 localize하기 위해 multiple forward pass를 요구하여
real-world dataset으로 확장하기 어려움-> 본 연구는 end-to-end로 학습되며 single forward pass로 object를 localize 할 수 있다!
- [16]은 object의 point를 localize 하기 위해 global max pooling 적용
- 그러나 위 연구의 localization은 object의 전체 범위를 결정하기 보다 object의 경계에 있는 point로 제한됨
-> 본 연구에서는 max와 average의 기능이 다소 유사하지만 네트워크가 모든 차별적인 영역을 식별할 때 average pooling의 loss가 max pooling에 비해 더 도움이 될 것이기 때문에 average pooling을 사용하면 object의 전체 범위를 식별하도록 권장할 것으로 기대!
* Global average pooling (GAP) vs Global max pooling (GMP)
- GAP loss는 네트워크가 object의 범위를 식별하도록 장려
- map의 평균을 낼 때, 모든 차별적인 부분을 찾아냄으로써 그 값을 극대화할 수 있기 때문
- GMP는 단 하나의 차별적인 부분만 식별하도록 장려
- 가장 차별적인 영역을 제외한 이미지 영역의 낮은 점수는 max를 수행하는 과정에서 영향이 사라짐
* 본 연구 정리
- 각 이미지에서 생성된 weighted activation map 즉, class activation map을 이용
- Global average pooling이 여기서 제안된 새로운 기술은 아니지만, 이것이 정확한 차별적인 localization을 위해 적용될 수 있다는 것은 새로운 접근 방식임
- 이 기술의 단순함이 다양한 컴퓨터 비전 task에서 빠르고 정확한 localization을 위해 쉽게 적용될 수 있을 것이라 기대
* Visualizing CNNs
- CNN의 특징을 잘 이해하기 위해 CNN에 의해 학습된 internal representation을 시각화 하려는 시도 많았음
- [30]은 deconvolutional network를 이용하여 각 unit을 활성화하는 패턴 시각화
- [34]는 scene을 인지하기 위해 학습된 CNN이 object detector도 학습함을 보여줌
즉 같은 네트워크가 single forward-pass에서 scene recognition & object localization 둘 다 수행 가능- 위 두 연구는 모두 fully-connected layer를 무시하고 convolutional layer를 분석한 결과
-> 본 연구에서는 fully-connected layer를 지우면서 성능을 유지함으로써 network의 처음부터 끝까지를 이해하겠다!
- [14]와 [4]는 다른 layer의 deep feature를 inverting함으로써 CNN의 visual encoding을 분석함
- 이러한 접근 방식은 fully-connected layer를 invert할 수 있었지만 이 정보의 상대적인 중요성은 강조하지 않고 deep feature가 보존 중인 정보만 표시
-> 본 연구에서는 이미지의 정확히 어떤 지역이 discrimination을 위해 중요한지를 강조할 수 있다!
2. Class Activation Mapping
- CNN에서 global average pooling을 이용하여 class activation maps (CAM)을 생성
- 특정 category의 CAM은 해당 category로 식별하기 위한 차별적인 이미지 영역을 나타냄
- Network in Network와 GoogLeNet과 유사한 network architecture
- Final output layer 전 convolutional feature maps에 global average pooling 수행
- 이걸 원하는 output을 생성하는 fully-connected layer를 위한 feature로 사용
- Convolutional feature maps에 output layer의 weight들을 projecting back 함으로서 이미지 영역의 중요도를 식별함
- Global average pooling은 마지막 convolutional layer의 각 unit의 feature map의 spatial average을 내놓음
- 이러한 값들의 weighted sum이 final output을 생성하기 위해 사용됨
- 유사하게, 마지막 convolutional layer의 feature map의 weighted sum 계산하여 class activation maps을 얻음
: 마지막 convolutional layer의 spatial location (x, y)의 unit k의 activation
: unit k에서 global average pooling을 수행한 결과
: unit k에서 class c에 해당하는 weight, 즉 class c에서 F_k의 중요도
: class c에서 softmax의 input
: class c를 위한 softmax의 ouput
: class c를 위한 class activation map,
즉 이미지가 class c로 분류되는 것을 이끄는 spatial grid (x, y)의 activation의 중요도를 직접적으로 나타냄
- 직관적으로, 이전 연구를 기반으로 각 unit이 receptive field 내의 일부 시각적 패턴에 의해 활성화될 것으로 예상됨
- 따라서 f_k는 이러한 시각적 패턴의 presence에 대한 map
- Class activation map은 단순히 다른 spatial location에 이러한 시각적 패턴의 presence에 대한 weighted linear sum
- Class activation map을 입력 이미지 사이즈로 upsampling하여 특정 category와 가장 관련이 있는 이미지 영역을 식별
- 한 이미지에서도 map을 생성할 때 category를 다르게 사용함에 따라 CAM이 강조한 지역도 달라짐을 보여줌
3. Weakly-supervised Object Localization
- ILSVRC 2014 benchmark dataset을 이용해 훈련한 CAM의 lacalization ability를 평가
- 분류 성능을 크게 하락시키지 않으면서 weakly-supervised object localization을 잘 하는 것을 보여주고자 함
3.1. Setup
- 인기있는 CNN에 CAM을 사용했을 때의 효과를 평가하기 위한 실험 진행
: AlexNet, VGGnet, GoogLeNet
- 각 네트워크에서 final output 전의 fully-connected layer 제거 & fully-connected softmax layer 후 GAP으로 대체
- fully-connected layer를 제거함으로써 파라미터 수를 굉장히 감소시킴 & 분류 성능 하락
- mapping resolution : GAP 전의 마지막 convolutional layer이 높은 spatial resolution일 때 localization 성능이 향상
- 이를 위해 몇몇 convolutional layer를 제거
- AlexNet : conv5 이후 layer 제거 & mapping resolution : 13 x 13
- VGGnet : conv5-3 이후 layer 제거 & mapping resolution : 14 x 14
- GoogLeNet : inception4e 이후 layer 제거 & mapping resolution : 14 x 14
- GAP 전에 3x3 size, stride 1, pad 1, 1024 unit의 convolutional layer 추가
- ILSVRC 1.3M training image로 fine-tune
: AlexNet-GAP, VGGnet-GAP, GoogLeNet-GAP
3.2. Results
* Classification
- Original CNN 모델들과 Network in Network (NIN), global max pooling (GMP)를 사용한 경우와 분류 성능 비교
- GAP 네트워크들이 몇몇 layer들을 지웠음에도 1~2% 정도 분류 성능 떨어짐
- AlexNet의 경우 성능 차이가 크게 나서 2개의 convolutional layer를 더 추가 : AlexNet*-GAP
- GAP 네트워크를 써도 분류 성능 대부분 보존된다는 결론
- GoogLeNet-GAP와 GoogLeNet-GMP도 유사한 분류 성능 보임
- 높은 분류 성능을 얻는 것은 높은 localization 성능을 위해서 중요함
- Localization 성능은 object category와 bounding box 위치를 정확하게 식별하는 것이 중요하기 때문
* Localization
- Localization을 하기 위해 bounding box를 생성하고 object category와 연관지어야함
- CAM으로부터 bounding box 생성하기 위해 heatmap을 segment하는 간단한 thresholding technique 이용
- CAM의 상위 20% max value 영역 segment
- Segmentation map의 가장 큰 connected component를 커버하는 bounding box 생성
- 위 figure에서 초록 box가 ground-truth box, 빨간 box가 CAM에 의해 예측된 boundging box
- GoogLeNet, NIN에 비해 GAP 모델이 좋은 성능 보임
- GoogLeNet-GAP은 가장 낮은 top-5 validation error인 43% 달성
- This is remarkable given that this network was not trained on a single annotated bounding box. (?)
- GoogLeNet-GAP이 분류 성능을 보존하면서 GoogLeNet보다 좋은 성능 보임
- 이는 GoogLeNet의 mapping resolution이 7 x 7이라 정확한 localization 힘들었을 듯
- GoogLeNet-GAP가 GoogLeNet-GMP보다 좋은 성능 보임
- [23]과 같이 CAM 대신 backpropagation을 쓴 경우보다 CAM 접근 방식이 좋은 성능 보임
- 본 연구와 weakly-supervised, fully-supervised CNN 방법들 비교
- ILSVRC test dataset에 대한 GoogLeNet-GAP 성능 평가
- bounding box selection 전략도 조금 수정
- Localization에 대해 본 연구 결과와 같은 아키텍처의 fully-supervised 네트워크와 비교했을 때 아직 갈 길이 멀었다..
(즉, weakly-supervised GoogLeNet-GAP vs fully-supervised GoogLeNet)
4. Deep Feature for Generic Localization
-
-
-
-
5. Visualizing Class-Specific Units
- [34]는 CNN의 다양한 레이어의 convolutional unit이 texture나 material과 같은 저차원 concept부터 object나 scene과 같은 고차원 concept까지 시각적 concept detector과 같은 역할을 하는 것을 보여줌
- 그러나 fully-connected layer를 거치며 다른 카테고리를 식별하기 위한 각 unit의 중요도를 식별하는 것은 어려움
- GAP과 ranked softmax weight를 이용하면 주어진 class에서 가장 차별적인 unit을 직접적으로 시각화 가능
--> class-specific units of a CNN
- ILSVRC 데이터셋으로 학습된 AlexNet*-GAP의 class-specific unit을 보여줌
- 주어진 class를 위한 unit의 랭크를 매기기 위해 softmax weight를 이용함
- 분류를 위해 object의 가장 차별적인 부분과 이러한 부분을 탐지하는 unit을 정확하게 식별할 수 있음
- 따라서 CNN이 차별적인 class-specific unit의 집합을 학습한다고 추론할 수 있음
- 이러한 class-specific unit의 조합은 CNN이 각 이미지를 분류하는 데 도움을 줌
6. Conclusion
- Class activation map (CAM) for CNNs with global average pooling
- 분류를 목적으로 학습된 CNN이 bounding box annotation 없이 object localization을 수행하는 것이 가능함을 보여줌
- CNN에 의해 탐지된 차별적인 object 영역을 강조함
- 이 접근 방식을 weakly supervised object localization on ILSVRC benchmark에서 평가
- global average pooling CNN이 정확한 object localization을 수행함을 보여줌
- CAM localization technique이 다른 visual recognition task에 일반화 된다는 것을 입증
- 즉, 이러한 technique은 generic localizable deep feature를 생성
- 다른 연구자들이 자신의 작업에 사용하는 CNN의 차별의 기초를 이해하는데 도움이 될 수 있음
본 논문 :
[16] : M. Oquab, L. Bottou, I. Laptev, and J. Sivic. Is object localization for free? weakly-supervised learning with convolutional neural networks. Proc. CVPR, 2015.
[30] : M. D. Zeiler and R. Fergus. Visualizing and understanding convolutional networks. Proc. ECCV, 2014
[34] : B. Zhou, A. Khosla, A. Lapedriza, A. Oliva, and A. Torralba. Object detectors emerge in deep scene cnns. International Conference on Learning Representations, 2015.
[14] : A. Mahendran and A. Vedaldi. Understanding deep image representations by inverting them. Proc. CVPR, 2015.
[4] : A. Dosovitskiy and T. Brox. Inverting convolutional networks with convolutional networks. arXiv preprint arXiv:1506.02753, 2015.
[23] : K. Simonyan, A. Vedaldi, and A. Zisserman. Deep inside convolutional networks: Visualising image classification models and saliency maps. International Conference on Learning Representations Workshop, 2014.
'논문 리뷰 > Vision' 카테고리의 다른 글
Pyramid Vision Transformer: A Versatile Backbone for Dense Predictionwithout Convolutions (1) 2021.08.09