AUC_shuffled.m

function [score,tp,fp] = AUC_shuffled(saliencyMap, fixationMap, otherMap, Nsplits, stepSize, toPlot)
% saliencyMap is the saliency map
% fixationMap is the human fixation map (binary matrix)
% otherMap is a binary fixation map (like fixationMap) by taking the union of
% fixations from M other random images (Borji uses M=10)
% Nsplits is number of random splits
% stepSize is for sweeping through saliency map
% if toPlot=1, displays ROC curve if nargin < 6, toPlot = 0; end
if nargin < 5, stepSize = .1; end
if nargin < 4, Nsplits = 100; end score=nan; % If there are no fixations to predict, return NaN
if ~any(fixationMap)
disp('no fixationMap');
return
end % make the saliencyMap the size of fixationMap
if size(saliencyMap, 1)~=size(fixationMap, 1) || size(saliencyMap, 2)~=size(fixationMap, 2)
saliencyMap = imresize(saliencyMap, size(fixationMap));
end % normalize saliency map
saliencyMap = (saliencyMap-min(saliencyMap(:)))/(max(saliencyMap(:))-min(saliencyMap(:))); if sum(isnan(saliencyMap(:)))==length(saliencyMap(:))
disp('NaN saliencyMap');
return
end S = saliencyMap(:);
F = fixationMap(:);
Oth = otherMap(:); Sth = S(F>0); % sal map values at fixation locations
Nfixations = length(Sth); % for each fixation, sample Nsplits values from the sal map at locations
% specified by otherMap ind = find(Oth>0); % find fixation locations on other images Nfixations_oth = min(Nfixations,length(ind));
randfix = nan(Nfixations_oth,Nsplits); for i=1:Nsplits
randind = ind(randperm(length(ind))); % randomize choice of fixation locations
randfix(:,i) = S(randind(1:Nfixations_oth)); % sal map values at random fixation locations of other random images
end % calculate AUC per random split (set of random locations)
auc = nan(1,Nsplits);
for s = 1:Nsplits curfix = randfix(:,s); allthreshes = fliplr([0:stepSize:double(max([Sth;curfix]))]);
tp = zeros(length(allthreshes)+2,1);
fp = zeros(length(allthreshes)+2,1);
tp(1)=0; tp(end) = 1;
fp(1)=0; fp(end) = 1; for i = 1:length(allthreshes)
thresh = allthreshes(i);
tp(i+1) = sum((Sth >= thresh))/Nfixations;
fp(i+1) = sum((curfix >= thresh))/Nfixations_oth;
end auc(s) = trapz(fp,tp);
end score = mean(auc); % mean across random splits if toPlot
subplot(121); imshow(saliencyMap, []); title('SaliencyMap with fixations to be predicted');
hold on;
[y, x] = find(fixationMap);
plot(x, y, '.r');
subplot(122); plot(fp, tp, '.b-'); title(['Area under ROC curve: ', num2str(score)])
end

  main.m

clear;
clc;
smap_path='E:\Dataset180303\final_data\smap_Result1\';
gmap_path='E:\Dataset180303\final_data\image_resize_gt\'; smap_file=dir(smap_path); for j=3:length(smap_file)
disp(j-2);
gmap_name=strcat(gmap_path,num2str(j-2), '.jpg');
% gmap_name=strcat(gmap_path,smap_file(j).name);
smap_name=strcat(smap_path,num2str(j-2 + 0 ), '.jpg');
% smap_name=strcat(smap_path,num2str(j-2+ 0 ), '_SaliencyMap', '.jpg');
gmap=imresize(imread(gmap_name), [224, 224], 'bicubic');
smap=imresize(imread(smap_name), [224, 224], 'bicubic');
sal_map=mat2gray(smap);
if gmap==0
continue;
end if size(gmap,3)==3
gt_final_map=rgb2gray(gmap);
else
gt_final_map = gmap;
end
sal_map=imresize(sal_map,0.5);
gt_final_map=imresize(gt_final_map,0.5); threshold_value = graythresh(gt_final_map);
gt_final_map_bin = im2bw(gt_final_map, threshold_value); % c=calcAUCscore(sal_map,gt_final_map);
% [score,tp,fp] = AUC_shuffled(saliencyMap, fixationMap, otherMap, Nsplits, stepSize, toPlot)
[c,tp,fp]=AUC_shuffled(sal_map,gt_final_map_bin,gt_final_map);
idx=find(isnan(c));
c(idx)=0.5;
c = abs(c);
a(j-2,1)=mean(c);
end
% b(i-2,1)=mean(a);
% clear a;
% end
sAUC = mean(a);

  

显著性检测(saliency detection)评价指标之sAUC(shuffled AUC)的Matlab代码实现的更多相关文章

  1. 显著性检测(saliency detection)评价指标之NSS的Matlab代码实现

    calcNSSscore.m function [ score ] = calcNSSscore( salMap, eyeMap ) %calcNSSscore Calculate NSS score ...

  2. 显著性检测(saliency detection)评价指标之KL散度距离Matlab代码实现

    步骤1:先定义KLdiv函数: function score = KLdiv(saliencyMap, fixationMap) % saliencyMap is the saliency map % ...

  3. 视觉显著性简介 Saliency Detection

    内容转移到博客文章系列:显著性检测 1.简介 视觉显著性包括从下而上和从上往下两种机制.从下而上也可以认为是数据驱动,即图像本身对人的吸引,从上而下则是在人意识控制下对图像进行注意.科研主要做的是从下 ...

  4. paper 27 :图像/视觉显著性检测技术发展情况梳理(Saliency Detection、Visual Attention)

    1. 早期C. Koch与S. Ullman的研究工作. 他们提出了非常有影响力的生物启发模型. C. Koch and S. Ullman . Shifts in selective visual ...

  5. 视觉显著性检测(Visual saliency detection)相关概念

    视觉显著性检测(Visual saliency detection)指通过智能算法模拟人的视觉特点,提取图像中的显著区域(即人类感兴趣的区域). 视觉注意机制(Visual Attention Mec ...

  6. (不断更新)关于显著性检测的调研-Salient Object Detection: A Survey

    <Salient Object Detection: A Survey>作者:Ali Borji.Ming-Ming Cheng.Huaizu Jiang and Jia Li 基本按照文 ...

  7. 视频显著性检测-----Predicting Video Saliency using Object-to-Motion CNN and Two-layer Convolutional LSTM

    帧内显著性检测: 将卷积网络的多层特征进行组合通过unsampling 得到粗显著性预测: 帧间显著性检测: (粗检测结果+新卷积网络的特征图,最后+之前卷积网络的卷积特征输入到LSTM中)进行预测. ...

  8. {Links}{Matting}{Saliency Detection}{Superpixel}Source links

    自然图像抠图/视频抠像技术发展情况梳理(image matting, alpha matting, video matting)--计算机视觉专题1 http://blog.csdn.net/ansh ...

  9. [精读]Spationtemporal Saliency Detection Using Textural Contrast and Its Applications

    Spationtemporal Saliency Detection Using Textural Contrast and Its Applications Last Edit 2013/12/3 ...

随机推荐

  1. oracle 随机数(转载)

    http://blog.sina.com.cn/s/blog_6a01140c0100wimi.html 1.从表中随机取记录 select * from (select * from staff o ...

  2. ubuntu 14.04 安装svn server (subversionedge )

    ubuntu 14.04 安装subversionedge 请仔细阅读安装包自带的readme文件! 1.先去官网,找安装包: http://subversion.apache.org/ http:/ ...

  3. jsoup 使用总结4--高级用法之 script js 脚本

    jsoup 使用总结4--高级用法之 script js 脚本 大部分时候,我们使用jsoup解析网页的时候,都是直接找到某一类元素,或者按某种selector查询:具体使用方法可以参考jsoup官网 ...

  4. 这就是我想要的 VSCode 插件!

    简评:VSCode 是一个开源的跨平台编辑器,是我最满意的 IDE 之一.本文介绍了几种使用的插件,确实解决了很多的痛点. Quokka.js Quokka.js 会在您键入代码编辑器中显示各种执行结 ...

  5. mysql-入门

    创建数据库 Create database 数据库名字 [库选项]; 创建数据库 create database mydatas charset utf8; 查看数据库 show databases; ...

  6. [Micropython]TPYBoard v10x MFRC522智能门禁系统

    MF RC522 是应用于13.56MHz 非接触式通信中高集成度读写卡系列芯片中的一员.也就是射频卡. 经常忘带钥匙,最尴尬的上周竟然去开4楼的门,(家住五楼,无电梯),开了好一会没打开,事后对4楼 ...

  7. 第一课:Hadoop集群环境搭建

    一. 检查列表 1.1.网络访问 设置电脑IP以及可以访问网络设置:进入etc/sysconfig/network-scripts/,使用命令"ls -all" 查看文件.会看到i ...

  8. Nginx负载均衡和反向代理

    1:反向代理 代理就是中介,那有反向代理就有正向代理,两者的区别是什么嘞? 正向代理隐藏真实客户端,服务端不知道实际发起请求的客户端.,proxy和client同属一个LAN,对server透明: 反 ...

  9. The more,the better。

    贪婪是好的, 贪婪是对的, 贪婪是有用的, 贪婪是可以清理一切的, 贪婪是不断进化和进步的精华所在, 贪婪就是一切形式所在: 对于生活,对于爱情,对于知识我们一定要贪婪, 贪婪就是人们的动力. The ...

  10. 花生日记_花生日记APP下载_花生日记邀请码

    花生日记 国内领先的社交电商导购分享平台. 独创社交电商3+模式,社交+电商+社群,上线1个月注册用户超百万.合作商家涵括各个类目以及平台.为数万宝妈提供月收入3000以上兼职收入. 微信扫描下方二维 ...