Saliency Detection: A Spectral Residual Approach
Saliency Detection: A Spectral Residual Approach
- 題目:Saliency Detection: A Spectral Residual Approach
- 作者:Xiaodi Hou, Liqing Zhang
- 領域:顯著性目標檢測
- 類型:新視角, 新方法
概述
The ability of human visual system to detect visual saliency is extraordinarily fast and reliable. However, computational modeling of this basic intelligent behavior still remains a challenge. This paper presents a simple method for the visual saliency detection.
- Our model is independent of features, categories, or other forms of prior knowledge of the objects.
- By analyzing the log-spectrum of an input image, we
- extract the spectral residual of an image in spectral domain,
- and propose a
fast method to construct the corresponding saliency map in
spatial domain
核心貢獻
首先討論人類的視覺系統是如何實現顯著性檢測的?現在一般認為視覺系統的處理過程分為兩步:
- 第一步是並行的、簡單的預註意處理
- 第二步 是串行的、緩慢而又復雜的註意處理過程
在第一步的過程中,人們對眼前所出現的事物,總會有一些底層特征是突然冒出來的,比如方向、紋理、邊緣、亮度等,論文中用“pop up”一詞來表示這種行為,以目標檢測的角度來看,在第一步過程中突然冒出來的東西被看做是目標的候選物體,即這些東西可能就是我們想檢測的目標。相關文獻給這種候選物體起了一個專業的名字,叫proto object
。
為了找到這些proto objects
,人們提出了許多模型,比較有名的有Itti的基於生物視覺的模型等,但是這些模型作為一個預註意處理系統,花費的計算量偏大了。現在大多數模型都是在找目標物體的特征和性質,而沒有一個與物體類別無關的用來做顯著性檢測的模型。
這篇文章提出了一個圖像視覺顯著性的簡單計算模型,這個模型和Itti提出的模型是兩個截然不同的模型. Itti模型對於圖像視覺顯著性主要關註整幅圖片突出的部分,通過各種特征的融合提取顯著性圖,而這個模型一上來關註的點就不在一張圖片裏突出的地方,而是背景,觀察是否大部分圖片的背景在某個空間上都滿足什麽變化,最後剔除背景,自然就只剩下圖片突出的部分了,這篇文章之所以簡單,是因為它只需要5個公式就可以得到想要的結果,也沒有很復雜的公式變換,都是圖像處理基本的變換公式。
傳統的模型通過將特定的特征(例如一些顏色特征、亮度特征、紋理特征等等)與目標聯系起來,實際上將這個問題轉化為檢測特定類別的對象。由於這些模型是基於訓練的,擴展性成為了通用任務的瓶頸。面對不可預測、種類繁多的視覺模式,需要一個通用的顯著性檢測系統。換句話說,在實現顯著性設計時,應盡可能少地參考對象的統計知識。
如果要提出一個通用的顯著性檢測系統,那麽根據以往的模型,就必須找到目標通用的特征,但是這基本上是不可能的事,每個目標都有自己與眾不同的特性。既然這樣,那麽這裏就把問題轉化一下,目標通用特性提取不到,那就找一找背景的通用特性。
Most of the detection models focus on summarizing the?properties of target objects. However, general properties?shared by various categories of objects are not likely to exist. In this paper, we pose this problem in an alternative?way: to explore the properties of the backgrounds.
這就是文章創新的地方,敢於跳出已有理論的框架,從另外一個角度考慮問題,往往會有預料之外的收獲。
高效編碼是一種通用的框架,在此框架下,我們的視覺處理的許多機制可以相互關聯。Barlow提出的有效編碼假說要移除感知系統的冗余, 視覺系統的基本原理是抑制對頻繁出現的特征的反應,同時對偏離常規的特征保持敏感。因此,只能將未預料到的信號發送到後期處理。
感知系統的信息處理過程與外界信號的統計特性密切相關。初級感知系統的作用就是去除輸入信號的統計冗余。
也就是說,大腦之所以能夠對外界環境自適應,是因為復雜的外界刺激存在冗余,而大腦的神經元能夠有效地去除這些冗余,從而可以利用較少的資源盡可能有效地表達更多的信息。
從信息論的角度來看,有效編碼假說將圖像信息H(Image)分解為兩部分:
H(Innovation)
?表示突出的部分,H(Prior Knowledge)
?則表示應該被編碼系統抑制的冗余的信息, 在圖像統計領域,這種冗余對應於環境的統計不變性。通過去除圖像冗余信息,就可以獲得圖像與眾不同的部分,即顯著目標。
現在人們普遍認為自然圖像不是隨機的,它們服從高度可預測的分布。
自然圖像的統計特性具有變換不變性:即將圖像從原來的空間坐標變換到頻率坐標系中,圖像在空間中具有的統計特性在頻域中仍然保留,這種不變性恰好保證了采用能量譜來刻畫自然圖像空間相關性的可靠性。
在自然圖像統計的不變因子中,尺度不變性是最著名也是研究最廣泛的性質。這個性質也被稱為定律。?即大量自然圖像在某個頻率的幅度的平均值和該頻率成反比:
進一步還有以下規律:當頻率和平均幅頻響應都在log-log坐標下時是近似線性的,同時當只有幅頻響應取log坐標時,所有的圖像的幅頻響應曲線是類似的,下圖反映了自然圖像的log-log譜和log譜的區別。
可見,log-log曲線近似為一條直線,而log曲線基本符合法則。
盡管log-log譜在理論上已經成熟並得到了廣泛的應用,但它在單個圖像的分析中並不受歡迎,因為:
- 在單個圖像中不太可能發現尺度不變性
- 采樣點比例不均勻,低頻部分在log-log上分布稀疏,高頻部分集中,存在噪聲的影響(低頻部分數據跨度大,高頻部分數據匯集)
所以本文采用log譜表示圖像.
我們發現不同圖像的對數譜具有相似的趨勢,盡管每個圖像都包含統計奇點。
如圖, 分別超過1、10和100幅圖像上平均的平均譜曲線。這一結果表明平均log譜具有局部線性。因此,采用局部平均濾波器近似)的形狀是合理的。在我們的實驗中,平均濾波器的核n大小等於3。改變n的大小只會稍微改變結果(見圖5)。
平均頻譜近似為對輸入圖像進行卷積:
當100張圖片取平均時,發現那些尖峰的東西沒有了,曲線變得平滑了起來。於是作者認為這個平滑的曲線和之前充滿尖峰的曲線之間的關系可能和圖像中不顯著的和顯著的東西的關系存在某種聯系。
那麽會不會是說平滑的曲線就是背景所貢獻的,而那些小尖峰就是顯著性的物體所貢獻的?我認為可以這樣認為——顯著性的物體破壞了背景的平滑性,導致原本平滑的曲線上多了一些尖峰變得不再平滑。於是作者便著手去實驗這種想法,大致的思路是用一個圖片的幅頻響應曲線減去平均的曲線,得到的差稱為譜殘差,再將譜殘差通過傅裏葉反變換變換回去,看看都對應原圖中的哪些區域,這些區域是不是顯著性的區域,?這樣就可以驗證這個想法對不對了。經過實驗後發現還真是這麽回事兒。
相似性意味著冗余。對於一個旨在減少視覺冗余信息的系統,它必須知道輸入刺激的統計相似性。因此,在不同的log譜中,可以觀察到相當多的形狀相似性,值得我們註意的是平滑曲線中跳出來的信息(曲線滿足局部線性條件)。我們認為譜中的統計奇異點可能是圖像中異常區域出現proto-objects
的原因。因此,在不同的log譜中我們只需要關註其差異部分忽略相似部分。
核心公式
- 公式5表示傅裏葉變換的實部, 也就是幅度譜
- 公式6表示虛部, 也就是相位譜
- 公式7表示幅度譜的對數變換
- 給定輸入圖像,從高度(或寬度)等於64px的下采樣圖像中提取對數譜。輸入尺寸的選擇與visual scale有關
- 當圖像較小(粗糙), 細節特征被忽略, 視覺搜索在一個大的尺度上執行的
- 在精細的尺度上(大圖像),大的特征與圖像中微小但突然的變化相比變得不那麽具有競爭力
- 如果沒有一個緩慢的觀察過程,人是不可能感知圖像的細節(對應於傅裏葉譜中的高頻部分)。通過仿真實驗,發現64像素的輸入圖像的寬度(或高度)是一個很好的估計正常視覺條件的尺度
- 公式8表示頻域殘差, 也就是幅度譜對數與幅度譜經過均值濾波器平滑後的差值
- 這裏的幅度譜經過均值濾波器平滑, 實際上是用來近似大量數據平均後的幅度譜
- 平均log譜具有局部線性。因此,采用局部平均濾波器近似)的形狀是合理的
- 公式9表示最終的得到的空域顯著性圖
- 對進行傅裏葉逆變換,得到空間域的顯著性圖
- 為了得到更好的視覺效果,對顯著性圖做一次標準差為8的高斯模糊
- 利用傅裏葉反變換,我們可以在空域構造輸出圖像,稱為顯著性圖。顯著性映射主要包含場景中重要的部分。殘差譜的內容也可以解釋為圖像的非預期部分。因此,顯著性映射中每個點的值都要平方,以表示估計誤差
- 這裏得到的顯著性圖是概率圖
顯著性圖是proto-objects
的顯式表示,使用簡單的閾值分段來檢測顯著性圖中的proto-objects
。給定圖像的,得到目標映射:
閾值的選擇是?a trade-off problem between false?alarm and neglect of objects。
評測標準
定義了擊中率和誤警率.
- HR(擊中率)計算為所有手工標註者標註的結果與生成的顯著性圖像素乘積的均值. 這實際上是在計算真值的前景與預測結果前景的交集.
- FAR(誤警率)計算真值的背景與預測結果前景的交集.
該判據指出,最優顯著性檢測系統應在沒有手標簽者提示proto-objects
的區域響應較低,而在大多數標簽者對proto-objects
達成一致的區域響應較高。
和Itti的方法做了下比較:
由圖可以看出本文方法在計算時間上比Itti方法更快,而且準確度也得到提升。
參考代碼
clear; clc;
%% Read image from file
inImg = im2double(rgb2gray(imread(‘Spectral_Residual.png‘)));
%%inImg = imresize(inImg, 64/size(inImg, 2));
%% Spectral Residual
myFFT = fft2(inImg); % A(f),一個圖像的振幅,主要保存圖像低頻部分的信息
myPhase = angle(myFFT); % 圖像對應的相位圖,主要保存圖像高頻部分的信息
% 對低頻部分處理,即處理背景部分,使背景部分的振幅接近0,去掉背景,剩下的就是前景目標
myLogAmplitude = log(abs(myFFT)); % L(f) = log(A(f)),圖像振幅的log譜,log可以使振幅值區間變小
averageAmplitude = imfilter(myLogAmplitude, fspecial(‘average‘, 3), ‘replicate‘);
mySpectralResidual = myLogAmplitude - averageAmplitude;
%% to spatial domain
% 用殘差振幅(保存的低頻信號,且值接近0),替代圖像的原振幅(保存的低頻信號,且值較大),再結合相位圖,反傅裏葉變換到空域中。
saliencyMap = abs(ifft2(exp(mySpectralResidual + 1i*myPhase))).^2;
%% After Effect
saliencyMap = mat2gray(imfilter(saliencyMap, fspecial(‘gaussian‘, [10, 10], 2.5)));
imshow(saliencyMap);
參考鏈接
- 論文:?http://www.houxiaodi.com/assets/papers/cvpr07.pdf
- 作者主頁:?http://www.houxiaodi.com/
- 一些參考論文:?
- http://www.doc88.com/p-971854462585.html
- 筆記:
- 圖像顯著性論文(二)—Saliency Detection: A Spectral Residual Approach?https://blog.csdn.net/chenjiazhou12/article/details/39522467
- 閱讀圖像顯著性檢測論文三:Saliency Detection A Spectral Residual Approach?https://blog.csdn.net/xbcReal/article/details/53590039
- 【論文】Saliency Detection: A Spectral Residual Approach閱讀筆記?https://blog.csdn.net/jizhidexiaoming/article/details/80738160
- 一種簡單的圖像顯著性計算模型
Saliency Detection: A Spectral Residual Approach