显著性检测(saliency detection)评价指标之sAUC(shuffled AUC)的Matlab代码实现
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代码实现的更多相关文章
- 显著性检测(saliency detection)评价指标之NSS的Matlab代码实现
calcNSSscore.m function [ score ] = calcNSSscore( salMap, eyeMap ) %calcNSSscore Calculate NSS score ...
- 显著性检测(saliency detection)评价指标之KL散度距离Matlab代码实现
步骤1:先定义KLdiv函数: function score = KLdiv(saliencyMap, fixationMap) % saliencyMap is the saliency map % ...
- 视觉显著性简介 Saliency Detection
内容转移到博客文章系列:显著性检测 1.简介 视觉显著性包括从下而上和从上往下两种机制.从下而上也可以认为是数据驱动,即图像本身对人的吸引,从上而下则是在人意识控制下对图像进行注意.科研主要做的是从下 ...
- paper 27 :图像/视觉显著性检测技术发展情况梳理(Saliency Detection、Visual Attention)
1. 早期C. Koch与S. Ullman的研究工作. 他们提出了非常有影响力的生物启发模型. C. Koch and S. Ullman . Shifts in selective visual ...
- 视觉显著性检测(Visual saliency detection)相关概念
视觉显著性检测(Visual saliency detection)指通过智能算法模拟人的视觉特点,提取图像中的显著区域(即人类感兴趣的区域). 视觉注意机制(Visual Attention Mec ...
- (不断更新)关于显著性检测的调研-Salient Object Detection: A Survey
<Salient Object Detection: A Survey>作者:Ali Borji.Ming-Ming Cheng.Huaizu Jiang and Jia Li 基本按照文 ...
- 视频显著性检测-----Predicting Video Saliency using Object-to-Motion CNN and Two-layer Convolutional LSTM
帧内显著性检测: 将卷积网络的多层特征进行组合通过unsampling 得到粗显著性预测: 帧间显著性检测: (粗检测结果+新卷积网络的特征图,最后+之前卷积网络的卷积特征输入到LSTM中)进行预测. ...
- {Links}{Matting}{Saliency Detection}{Superpixel}Source links
自然图像抠图/视频抠像技术发展情况梳理(image matting, alpha matting, video matting)--计算机视觉专题1 http://blog.csdn.net/ansh ...
- [精读]Spationtemporal Saliency Detection Using Textural Contrast and Its Applications
Spationtemporal Saliency Detection Using Textural Contrast and Its Applications Last Edit 2013/12/3 ...
随机推荐
- oracle 随机数(转载)
http://blog.sina.com.cn/s/blog_6a01140c0100wimi.html 1.从表中随机取记录 select * from (select * from staff o ...
- 东方国信 - 软件开发人员面试问卷(ver1.001.002)
1. 通用编程知识问卷(所有编程人员必做)... 1 1.1 SQL问卷... 1 1.2 翻译... 2 2. Java问卷(Java程序员应答,其他跳过)... 2 ...
- Spring 框架的优点及缺点
首先Spring 是一个框架,使用Spring并不代表代码质量的提高,就像盖房子选择用上海的地皮还是北京的地皮一样,房子质量与土地所在的城市无关,与房子的具体设计方案和选料有关. 使用Spring 等 ...
- [转]web服务器压力测试工具
http_load学习心得: 测试网站每秒所能承受的平均访问量(吞吐量) http_load -parallel 5 -fetches 1000 urls.txt这段命令行是同时使用5个进程,随机访问 ...
- 菜鸟级Git GitHub创建仓库
菜鸟标准:知道pwd ,rm 命令是什么. 一.Git 是什么. git 是目前世界上最先进的分布式版本控制系统 二.SVN与Git 1.版本控制系统 SVN 是集中式版本控制系统,版本库是集中放在中 ...
- java实现堆结构
一.前言 之前用java实现堆结构,一直用的优先队列,但是在实际的面试中,可能会要求用数组实现,所以还是用java老老实实的实现一遍堆结构吧. 二.概念 堆,有两种形式,一种是大根堆,另一种是小根堆. ...
- angular2项目如何使用sass
angular/cli支持使用sass 新建工程: 如果是新建一个angular工程采用sass: ng new My_New_Project --style=sass 这样所有样式的地方都将采用sa ...
- JDK安装:CentOS和Windows环境
Windows上JDK安装 1:下载jdk. 地址在 http://www.oracle.com/index.html >downloads>se>Ja ...
- 国内各大支付平台的API地址
1丶目前国内最火的支付平台--蚂蚁金服开放平台(支付宝) https://open.alipay.com/platform/home.htm 2丶国内游戏帝国--腾讯(微信支付) https://pa ...
- Effective C++ 读书笔记(39-45)
条款三十九:明智而审慎的使用private继承 1.C++裁定凡是独立(非附属)对象都必须有非零大小. class Empty{};//没有数据,所以其对象应该不使用任何内存 class HoldAn ...