顯著性是影象的突出部分,我們的大腦會特別關注這個部分。上圖突出了我們在看到一個場景或影象時會注意到的部分。例如,大家有沒有曾經在看廣告的時候被一些特別的內容吸引,為此我們還特意停下來多看了一會兒?這就是廣告的顯著性,即使讓我們可以一眼看到廣告,也會被他吸引。
01.安裝OpenCV
首先,您需要安裝OpenCV庫。如果已經安裝了pip,則可以透過執行以下命令來完成。
> pipinstall opencv-python> pip install opencv-contrib-python
我們可以透過以下命令驗證安裝是否成功。
> pythonPython 3.6.3 (v3.6.3:2c5fed8, Oct 3 2017, 18:11:49)Type "help", "copyright", "credits" or "license" for more information.>> import cv2>> cv2.saliency
02.靜態顯著性檢測
有很多種檢測顯著性的方法。在OpenCV中,為顯著性檢測提供的演算法分為三類:
顯著圖
03.光譜殘留
該演算法分析了輸入影象的對數譜,提取了影象在光譜域中的光譜殘差,並提出了一種構造顯著圖的快速方法,該顯著圖建議了原型物體的位置。
相似性意味著冗餘。對於旨在最小化冗餘視覺資訊的系統,它必須意識到輸入刺激的統計相似性。因此,在可以觀察到很大形狀相似性的不同對數譜中,值得我們注意的是跳出平滑曲線的資訊。我們認為,頻譜中的統計奇異性可能是影象中出現異常物件的異常區域的原因。
而且,如果繪製顯著圖,我們可以得到下面的輸出影象。
光譜殘留
參考:Hou, Xiaodi, and Liqing Zhang. “Saliency detection: A spectral residual approach.” Computer Vision and Pattern Recognition, 2007. CVPR‘07. IEEE Conference on. IEEE, 2007
04.細粒
人眼的視網膜由神經節細胞組成。有兩種型別的神經節細胞,在中心和偏心。中心位於黑暗背景包圍的明亮區域。偏心對明亮背景包圍的黑暗區域做出反應。該演算法根據中心上和中心外的差異計算顯著性。
中心神經節細胞和中心神經節細胞及其在視覺顯著性計算模型上的近似值
在我們的示例中,透過使用積分影象有效地實現中心圓度差,演示了一種以原始影象解析度實時生成視覺顯著性的細粒度特徵圖的方法。
而且,如果繪製顯著圖,大家將在下面得到輸出影象。
04.參考文獻
B. Wang and P. Dudek “A Fast Self-tuning Background Subtraction Algorithm”, in proc of IEEE Workshop on Change Detection, 2014