ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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.

Designed by Tistory.