본문 바로가기

인공지능 AI/논문리뷰 and 재구현

(논문리뷰) Particular object retrieval with integral max-pooling of CNN activations 설명 및 정리

<Introduction>

 

Image retrieval task에 대한 최근 SOTA는 Bag-of-Words model (locally invariant한 feature와 large visual codebook)에 의한 접근이였다. 또한 local, global representation들을 이용하여 접근한 연구도 이뤄졌는데 이는 CNN의 중간 layer activation을 feature vector로 사용한 접근이다. 여기서 global max-pooling에 의한 convolution layer activation을 이용하여 image representation을 만들어서 이미지를 서로 비교하는데 global representation만 이용하는 것은 local 위치 정보도 필요로 하는 geometric-aware model에는 좋지 않았다. 

 

해당 논문에서는 global representation뿐만 아니라 local representation도 함께 이용하여 접근한다.
크게 Filtering (Initial Ranking) & Re-ranking stages 두 단계로 이루어진다.

 

1. Faster RCNN에서 RoI 영역을 생성하는 것과 같이 feature map에서 multiple region을 만들어서 복수 개의 image representation들을 만든다. (R-MAC)
2. 위에서 생성된 image representation들을 이미지별로 비교해서 이미지 유사도를 계산하여 query이미지에 대한 ranking을 수행한다.

3. Localization approach를 통해 image들을 re-ranking한다.


<Initial Ranking : R-MAC>

 

먼저, 첫번째 단계인 Initial Ranking단계에서 R-MAC이라는 기법을 통해 image의 representation들을 만드는데 이 부분을 설명하기 앞서 MAC 기법에 대해 간단하게 소개하겠다.


<MAC>

 

MAC과 R-MAC기법 모두 image의 representation, 정확히는 image를 특정 vector로 표현하기 위한 기법이다.

어떤 image가 있을때 image의 properties(features)들을 얻기 위해서 FC layer보다 CNN layer를 이용하는게 효과적임을 이전 연구들에서 밝혀냈다. 따라서 image에서 CNN layer를 통해 feature map들을 생성한다. 생성되는 feature map의 개수는 CNN에서 output layer의 channel개수이고 예를들어 K개의 feature map이 생성되었다고 가정하자.

MAC기법에서는 이 K개의 feature map을 k size vector로 수렴시키는 method이다.

 

식 1. MAC (Maximum Activations of Convolutions)

 

위 식은 MAC기법을 구현하기 위한 식이다. Xi는 i번째 feature map을 뜻하고 각 feature map에 max-pooling연산을 통해 k size vector로 수렴시킨다.

 

예를들어, image에 CNN layer를 거쳐 HxWxK의 feature map이 생성되었다고 가정하자. 즉, HxW의 feature map이 K개 생성된 상황이다. 이때 각 HxW feature map들을 max-pooling연산을 통해 1개의 value로 수렴시킨다. 그러면 최종적으로 HxWxK의 feature map은 1xK 의 vector로 수렴시킬 수 있다.

이렇게 image representation을 위 방법을 통해 K size vector로 만들고 난 후 서로 다른 image끼리 유사도를 비교할때 각 이미지의 K size vector간의 cosine similarity를 통해 유사도를 계산한다.

 

K size vector의 각 value들은 HxW feature map을 1개의 value로 수렴시킨 것이기 때문에 이게 뜻하는 바는 각 feature map에서 global representation을 뽑아서 K size vector를 만든 것이라 생각할 수 있다.

따라서 이는 image전체의 global 정보를 통해 vector를 만든 것이라서 local 정보를 전혀 반영하지 못한다.

이렇게 MAC 기법을 통해 image retrieval모델을 만들 경우, query이미지와 shape이 비슷하거나 background들이 비슷하면 높은 rank에 매겨질 가능성이 높다. 따라서 이 한계점을 극복하기 위해 나온 것이 R-MAC기법이다.


<R-MAC>

 

MAC기법에서는 아래 그림과 같이 HxW size의 feature map을 1개의 value로 수렴시켰다.

Figure 1. MAC에서의 Max pooling

 

이렇게 global representation만을 이용해서 image간의 유사도를 구하는 것에는 많은 한계점들이 존재했고 따라서 local representation을 이용하는 R-MAC기법이 나오게 됐다.

R-MAC에서는 HxW size의 feature map에서 여러 size의 R region을 생성하고 해당 영역에서 Max pooling 연산을 통해 local representation들을 생성한다. 

Figure 2. R-MAC에서의 Max pooling

Figure 2를 보면 이전처럼 전체 HxW에서 max value를 추출하지 않고 특정 region R에서 max value를 추출하는 것을 확인할 수 있다. region R의 개수는 Figure 3에서와 같이 R의 크기에 따라 결정된다.

Figure 3. sample regions from feature map

서로 다른 R의 크기에 따라 만들어질 수 있는 region의 개수가 달라진다. 위 그림에서 x는 생성될 수 있는 region의 center를 표시한 것이다. 예를 들어, Figure 4에서처럼 4x4 feature map이 있는데 R의 크기를 3x3으로 설정한다면 4개의 region이 생성될 수 있다.

FIgure 4. sample regions from 4x4 feature map

 

따라서 만약 feature map에서 n개의 region이 생성될 수 있다고 가정한다면, HxWxK의 feature map은 n개의 K size vector로 수렴시킬 수 있다. 이를 식으로 나타낸다면 아래와 같다.

식 2. R-MAC (Regional maximum activation of convolutions)

어떤 R에 대해 K size vector가 생성되고 이때 R은 n개의 region이 존재하므로 결국 n개의 K size vector가 생성된다.

이렇게 n개의 K size vector가 생성되면 이들을 모두 더하고 l2-normalization을 취함으로써 K size vector로 만든다.

이후 ranking하는 작업은 MAC에서와 같이 query이미지에서 R-MAC에 의해 생성된 K size vector와 cosine similarity를 비교해서 ranking하게 된다.


<Re-ranking : Object Localization>

 

Initial Ranking단계에서 R-MAC을 통해 ranking을 수행하는 것은 local, global representation정보를 이용해서 ranking하는 것과 같다. Re-ranking단계에서는 더 세밀한 local representation정보만을 이용해서 다시 ranking한다.

 

Initial Ranking단계에서는 R-MAC을 통해 n개의 K size vector를 생성하고 이들을 결합하여 유사도를 구했다.
Re-ranking단계에서는 n개의 K size vector를 모두 이용해서 유사도를 구하지 않고 n개 region중 query이미지와 가장 유사한 영역을 먼저 선택하고 그 영역에 대해서만 다시 유사도를 구한다. 즉, query이미지와 이미지 전체의 유사도를 구하는 것이 아니라 query이미지와 가장 유사한 영역 R'을 찾고 해당 영역에 대한 K size vector만 이용해서 유사도를 구하는 것이다.

Figure 5. Region R'

Figure 5에서 왼쪽은 query 이미지이고 오른쪽은 DB에 있는 어떤 image이다. 그림에서 bounding box는 query이미지와 가장 유사한, 즉 cosine similarity가 높게 측정된 영역 R'이다. 이렇게 먼저 R'을 찾아서 해당 영역에 대해서만 consie similarity를 다시 구해서 re-ranking한다. 이러한 영역 R'을 찾는 식은 아래와 같다.

식 3. Region R'

fR은 특정 영역 R에서의 K size vector를 의미하고 (식 2) q는 query image의 MAC feature vector이다.

식 3을 통해 query image와 가장 유사한 영역 R'을 찾고 해당 영역에서의 K size vector와 query image의 K size vector간의 cosine similarity를 기준으로 다시 ranking한다.


<Integral max-pooling>

 

stage-1에서의 R-MAC기법과 stage-2에서 region R'을 찾는과정 모두 임의의 영역 R에 대해 feature vector를 계산한다.
이때 n개의 영역 R에 대한 feature vector를 그때그때 max pooling연산을 통해 구하는 것은 cost가 상당히 크다.
따라서 해당 논문에서는 R-MAC기법으로 feature vector를 구하는 것 대신 Integral matrix를 제시한다.

Figure 6. Integral Matrix

Integral Matrix는 위 그림과 같이 구한다. Integral matrix에서 각 pixel에서의 value는 original image에서 좌측 상단 pixel부터 해당 pixel까지 사각형을 그리고 사각형 내에 있는 모든 value를 누적한 값이다. 

예를들어, Figure 7에서 (2, 2)에 해당하는 10이라는 값은 original image에서 (0, 0)~(1, 1)까지 사각형을 그려서 해당 사각형 내에 있는 값을 모두 더한 것이다. (1+2+3+4) 

 

해당 논문에서는 위와 같은 integral matrix을 확장시켜서 max pooling값을 approximate할 수 있다고 한다.

확장시킨 integral matrix는 아래와 같다.

식 4. Integral Max pooling

어떤 영역 R에서 max pooling을 통해 max value를 추출하는 것은 영역 R내에 있는 모든 pixel들을 alpha제곱하고 모두 더한 후 다시 alpha제곱근을 구하는 것으로 approximate시킬 수 있다.

Figure 6에서 예를들면, 파란색 bounding box 영역에서 max value는 4이다.

이 4라는 값은 아래와 같이 approximate할 수 있다.

따라서 식 4를 통해 Integral matrix 만들면 그때그때 영역 R에서의 max value를 찾을 필요 없이 해당 pixel값이 구하고자 하는 max value를 approximate하고 있으므로 바로바로 구할 수가 있다.


이상으로 Image retrieval논문에 대한 설명을 마쳤습니다.

해당 논문과 Faster R-CNN 논문을 재구현하여 개인 프로젝트를 진행해봤습니다.

프로젝트는 tattoo image dataset에 대해 object detection을 수행하고

어떤 query이미지가 주어졌을때 image retrieval을 수행해서 DB에 있는 image중 top k개의 image가 검색결과로 나오는 프로젝트입니다. 해당 프로젝트에 대한 자세한 코드와 성능은 아래에서 확인하실 수 있습니다.

https://github.com/Ganghee-Lee/CNN-Image-retrieval

 

Ganghee-Lee/CNN-Image-retrieval

Contribute to Ganghee-Lee/CNN-Image-retrieval development by creating an account on GitHub.

github.com


<성능 - Object detection : Faster RCNN>

 

Object detection 성능


<성능 - Image retrieval>

Query : geometric tattoo

 

Query : tiger tattoo

 

Query : rose tattoo

 


그림 출처)

https://kr.mathworks.com/help/images/ref/integralimage.html

arxiv.org/abs/1511.05879