본문 바로가기
Paper Review

[논문리뷰] Saliency Detection: A Spectral Residual Approach (CVPR 2007)

by 3neutronstar 2021. 11. 15.

이번에는 CVPR 2007년에 accept 된 Saliency Detection: A Spectral Residual Approach 을 리뷰하려고 합니다. 자세한 내용은 원문을 참고해주세요. 

 

Introduction

 

Object recognition을 진행하는 과정 중에 있어서 첫 번째로 해야할 일은 object detection입니다. Object detection은 object를 background와 분리하여 recognition을 정확하게 하는데에 도움을 주는 역할을 한다고 할 수 있습니다.

하지만, 모르는 background에서 정확하게 salient region을 분리하는 방법이 있다면 좋지 않을까요?

 

기존 모델에서는 target을 바탕으로 특정 feature를 연관시킴으로서 추출하는 방법이 있었습니다. 이러한 방법은 training기반이므로 비싸고 모르거나 헷갈리는 visual pattern을 갖는 categories의 경우, general saliency detection system이 필요합니다.

 

인간의 시각 시스템은 두 단계의 처리 프로세스를 갖는다고 믿어진다고 합니다. 첫째는 병렬적이지만 빠르고 간단한 사전 주의(pre-attentive)프로세스이고, 다른 하나는 직렬적이지만 느린 complex attention process입니다. 이런 것중에서 pre-attentive process를 거쳤지만, 정확하게 무엇인지 인지되지 못한 것을 proto object라고 부른다고 합니다. 이런 것을 주어진 이미지에서 찾아내기 위해서 많은 시도들이 이어져왔지만, computationally demanding해서 비싸다고합니다. 또, 최근 method들은 target object의 특징을 얻는데에 집중해왔습니다. 이에 본 논문에서는 background의 property에 집중하고자 한다고 합니다.

 

Method

Spectral Residual Model

Information theory의 관점에 따르면 effective coding은 image information H(image)를 두 부분으로 분류할 수 있다고 합니다.

$$H(Image) = H(Innovation) + H(Prior Knowledge)$$

H(Innovation)은 novelty part, H(Prior Knowledge)는 redundant information인데, coding system에 의해 억압된다고 합니다. Image statistics에서 redundancy(중복)들은 통계적 불변 속성에 속하기 때문에 Natural image들에 이러한 속성들이 관련이 있기에 Natural image들은 random이 아니라고 믿어져왔고, predictable distribution이라고 합니다.

 

Log spectrum representation

 그래서 이러한 predictable distribution을 approximate하면 앞서 말씀드린 Innovation part를 예측하게 되는 것입니다. 그 방법은 Scale invariance입니다. 이 방법은 $1/f$ 방법을 사용하는데 이미지들의 ensemble의 푸리에 스펙트럼을 평균낸 크기가 다음의 분포를 따른다는 것입니다.

$$E{A(F)} \propto 1/f$$

Log-log scale로 보면 natural image들의 amplitude spectrum은 거의 일직선으로 추정되는 것을 확인하실 수 있습니다. (Figure 1)

하지만 log-log spectrum은 이론적으로 성숙하지만, 개별 이미지들을 분석하는데에 적합하지는 않다고 합니다. 

1. Scale-invariance 특성은 개별 이미지에 대해서 관찰하기 쉽지 않다고 합니다.

2. Sampling point가 적절하게 분배되지 않고, low frequency part는 log-log plane에 sparse하게 확장되어 noise문제가 발생합니다 (High freq part는 관찰하기 힘듬, figure 2)

Log에서도 유사한 특정을 갖는 것을 확인하였기에 이 또한 share similar trends를 다른 이미지들이 가질 것이라 생각해서 이를 평균을 취해보니 다음 이미지와 같았다고 합니다.

보시면 굉장히 유사하지만 특징적인 부분이 존재하는 것을 확인하실 수 있습니다.

 

From spectral residual to saliency map

중복된 시각 정보의 최소화를 위해서 통계적인 유사성을 확인할 필요가 있다고 합니다. 왜냐하면 유사성이라는 의미에는 중복을 내포하기 때문이죠. 그래서 유사한 모양을 갖지 않는 log spectra가 smoothed curve에서 튀어나온 부분임을 알 수 있었습니다. 

 

그래서 주어진 input image로부터 log spectrum $L(f)$를 구하는데 64px로 down-sampled image로부터 구한다고 합니다. (Visual scale에 따라 다르게)

 

만약에 log spectrum $L(f)$의 information이 이미 얻을 수 있다면 information은

$$H(R(f))=H(L(f)|A(f))$$

일 것이다. ($A(f)$는 일반적인 log spectra의 모양, $R(f)$는 input image의 통계적으로 singularity)

 

$R(f)$는 이 논문에서 Spectral Residual이라고 부르는 값이 된다. Figure 3의 값에서 처럼 average curve가 local linearity를 나타내고 이를 이용하여 local average filter 를 통해서 $A(f)$를 approximate하는 filter $h_{n}(f)$를 적용할 수 있게 된다. 실험적으로 kernel size는 3을 사용하고 $A(f)$를 input image로부터 구분해내는 것은 다음 식과 같고 kernel의 weight는 NxN torch.ones와 같은 matrix를 사용한다 (conv2d를 사용하는 경우 (1,1,n,n))

$$A(f)=h_{n}(f)*L(f)$$

 

이를 활용하여 Spectral Residual $R(f)$는 얻을 수 있고, $R(f)=L(f)-A(f)$를 통해서 얻을 수 있게 된다. 이후 inverse fourier transform을 통해 saliency map을 얻어낸다. Better visual effect를 위해서 Gaussian filter를 sigma 8을 사용하여 얻어낸다고 한다.

정리하면,

위의 식들과 같고, S가 Saliency map으로서 사용되게 된다. (g(x)는 가우시안 필터)

 

Detecting proto-objects in a saliency map

proto-object에 대한 표현은 threshold를 넘기는 값에 대해서만 저장하면 확인할 수 있다. Threshold는 적절하게 saliency map의 기댓값의 3배로 결정하여 사용하였다. Multi-object에 대해서도 잘 찾아내는 모습을 확인할 수 있습니다.

 

댓글