超级棒的 图像显著性 计算 matlab 源代码
[Software] Saliency Map Algorithm : MATLAB Source Code
Below is MATLAB code which computes a salience/saliency map for an image or image sequence/video (either Graph-Based Visual Saliency (GBVS) or the standard Itti, Koch, Niebur PAMI 1998 saliency map). See the included readme file for details. I also have a newer, simpler version implementing only the Itti algorithm (see simpsal/readme.txt).
Please try it out and email me if you have any questions.
Download:
Please select one of the following to download:
- [gbvs.zip]
This package includes an implementation of the full GBVS algorithm. It also lets you compute an Itti, Koch, Niebur saliency map. It includes a function for computing the ROC score between eye-movements (provided as x,y fixation points) and a saliency map, and a function for displaying a saliency map overlayed on top of an image (as in the screenshot below).
Right after you download the zip file, you must change into the gbvs/ directory and run:>> gbvs_install
You only need to run that the first time. Afterwards, you can generate a saliency map as follows:
To load an image:>> img = imread('samplepics/1.jpg');
To compute a GBVS map:>> map = gbvs(img); % map.master_map contains the actual saliency map
To compute an Itti-Koch-Niebur map:>> map_itti = ittikochmap(img); % map_itti.master_map contains the actual saliency map
And you can visualize the saliency map on top of your image as follows:>> show_imgnmap( img , map );
- [simpsal.zip]
This is a radically simplified version of the code implementing only the Itti algorithm. See simpsal/readme.txt for details. This is useful if you want to edit something minimal for research purposes. More features are included in the GBVS package above.
Note 1: if you want the output saliency map to be the same size as the input image, call simpsal like this:>> map = simpsal(img);
>> mapbig = mat2gray(imresize( map , [ size(img,1) size(img,2) ] ));
Note 2: If you are looking for a very quick & dirty saliency map, call simpsal with default_fast_param (e.g., simpsal(img,default_fast_param)).
The output of simpsal is not identical to that output by the Itti algorithm option from the GBVS package. simpsal is a bit faster and more accurate (in fixation predictions) than the Itti implementation above. Surprisingly, the first one is a more faithful reproduction of the original algorithm (exact mechanism of center surround subtraction and scale parameters and selection). However, they are identical in spirit and structure and vary only slightly in output. Graph-Based Visual Saliency is more accurate than both (see below). - Note: If you install GBVS, make sure you put it in a directory the full path to which does not contain spaces.
- Note: If you have trouble/run into an error running imshow, imresize, prctile, or mat2gray, try downloading stupidtools.zip and put the contents in the directory containing the saliency code.
Last updated March 15, 2011.
Copyright:
The Itti, Koch, Niebur algorithm is provided for educational use only and for copyright information on that please read this.
The GBVS algorithm can be used for any purposes, but only if it is fully cited/acknowledged.
Reference:
- See the
- by
- . A
- is also available.
Please cite use of this code as:
- J. Harel, C. Koch, and P. Perona, "Graph-Based Visual Saliency", Proceedings of Neural Information Processing Systems (NIPS), 2006. [pdf] |
- and/or - |
- J. Harel, A Saliency Implementation in MATLAB: http://www.klab.caltech.edu/~harel/share/gbvs.php |
Feel free to contact me via email with any questions.
Screen Shot:
My Interpretation of why GBVS is more predictive than Itti:
Two very trivial factors which greatly affect the measured prediction accuracy of saliency algorithms (up to 30% improvement in some cases) are (1) level of final blur (for instance, the width of a Gaussian blur kernel applied to the master map), and (2) extent of center bias (for instance, a global center bias multiplicatively applied to the master map). So, inherent variability in these two contributed to the reported performance gain the NIPS 2006 paper. However, even after controlling for these, there is a performance difference between GBVS and Itti. For instance, on a database of 200 face images you will find 0.841 mean ROC for GBVS and 0.812 mean ROC for Itti (NSS values 1.321 and 1.228 resp.) after optimizing for blur and center bias. Based on an inspection of many saliency maps, I believe that this remaining performance gain is due to long-range competition in the GBVS algorithm which is not captured accurately enough by the Itti algorithm.
-JH
unrelated p.s. Check out my other, lyrics, site.
出处: http://www.cnblogs.com/todototry/
关注语言: python、javascript(node.js)、objective-C、java、R、C++
兴趣点: 互联网、大数据技术、大数据IO瓶颈、col-oriented DB、Key-Value DB、数据挖掘、模式识别、deep learning、开发与成本管理
产品:
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。