脑与认知神经科学Matlab Psytoolbox认知科学实验设计——实验设计四

Matlab Psytoolbox(脑与认知神经科学)

视错觉举例
实验设计一
实验设计二
实验设计三
实验设计四

文章目录

  • Matlab Psytoolbox(脑与认知神经科学)
  • 前言
    • 1.题目
    • 2.截图
    • 3.评估结果
    • 4.代码修改
  • 总结


前言

脑与认知神经科学Matlab认知科学显著性检测(注意力预测)

1.题目

运行MIT/Tuebingen Saliency Benchmark(网站:https://saliency.tuebingen.ai/)上的代码,自己找图片,显示运行结果,了解显著性检测相关知识

2.截图

进入网站之后,点击results,里面有很多模型可供选择
脑与认知神经科学Matlab Psytoolbox认知科学实验设计——实验设计四_第1张图片
我选取的是RARE2012和Context-Aware Saliency两个模型,作为注意力预测对比。点击名字,进入链接,二者界面分别为
RARE2012,点击下面圈红区域可以下载论文以及源码脑与认知神经科学Matlab Psytoolbox认知科学实验设计——实验设计四_第2张图片
Context-Aware Saliency,该界面也是下面有论文和下载源码链接,点击即可
脑与认知神经科学Matlab Psytoolbox认知科学实验设计——实验设计四_第3张图片
我执行代码时的原图为这六张
脑与认知神经科学Matlab Psytoolbox认知科学实验设计——实验设计四_第4张图片
运行结果分别为
RARE2012
脑与认知神经科学Matlab Psytoolbox认知科学实验设计——实验设计四_第5张图片

脑与认知神经科学Matlab Psytoolbox认知科学实验设计——实验设计四_第6张图片

Context-Aware Saliency
脑与认知神经科学Matlab Psytoolbox认知科学实验设计——实验设计四_第7张图片
脑与认知神经科学Matlab Psytoolbox认知科学实验设计——实验设计四_第8张图片

脑与认知神经科学Matlab Psytoolbox认知科学实验设计——实验设计四_第9张图片
二者均为matlab运行,RARE2020执行时间大致10s以内,结果比较粗糙,而Context-Aware Saliency执行时间为几十秒不等,预测区域比较符合人的感知。

3.评估结果

由于网页提供python的评估代码有很多bug,本人不建议使用那个评估代码,可以去github自行寻找评估代码。或者直接使用现有的评估数据

RARE2012
脑与认知神经科学Matlab Psytoolbox认知科学实验设计——实验设计四_第10张图片

Context-Aware Saliency
在这里插入图片描述

4.代码修改

由于源代码并不能一次执行多张图片,我稍作修改,使其可以一次运行显示六张图片的结果
(注意修改图片名称)

RARE2012的example.m执行文件


I=cell(6);
R=cell(6);
I{1} = im2double(imread('images/1.jpeg'));
I{2} = im2double(imread('images/2.jpeg'));
I{3} = im2double(imread('images/3.jpeg'));
I{4} = im2double(imread('images/4.jpeg'));
I{5} = im2double(imread('images/5.jpeg'));
I{6} = im2double(imread('images/6.jpeg'));

R{1} = Rare2007(I{1});
R{2} = Rare2007(I{2});
R{3} = Rare2007(I{3});
R{4} = Rare2007(I{4});
R{5} = Rare2007(I{5});
R{6} = Rare2007(I{6});
N = length(R);

for i=1:N
    figure(i); clf;
    subplot(1,2,1); imshow(I{i});  title('Initial image')
    subplot(1,2,2); imshow(R{i}); title('Raw saliency map')
end    

Context-Aware Saliency的run_saliency.m执行文件

%% A script for running saliency computation
clear all;
close all;

%% load parameters and images


file_names{1} = '1.jpeg';
file_names{2} = '2.jpeg';
file_names{3} = '3.jpeg';
file_names{4} = '4.jpeg';
file_names{5} = '5.jpeg';
file_names{6} = '6.jpeg';
MOV = saliency(file_names);


%% display results
N = length(MOV);
for i=1:N
    figure(i); clf;
    subplot(1,2,1); imshow(MOV{i}.Irgb); title('Input','fontsize',16);
    subplot(1,2,2); imshow(MOV{i}.SaliencyMap); title('Saliency map','fontsize',16);
end   

总结

通过方法二和方法一的对比,我们可以从视觉上感受到方法二的模型要好于方法一,方法一二的运行代码后展现出来的图片都有有边缘检测算法,方法一从事物的轮廓开始,强调了主体部分,但是白色部分过多,无法突出注意力集中在哪一部分。相对而言执行方法二代码后的图片就可以清楚看出注意力集中区域,忽略了部分,注重整体,防止主体部分被局部干扰,防止重要区域被扭曲,标记区域更加接近人的注意区域。当然,方法二执行代码也需要花费更久的时间。
方法二运行时间:六张图片中四张图片平均耗时30s左右,只有图二图三例外,经观察分析,图二图三为动画图片,色彩鲜艳,光晕过多,个人认为是这些方面导致代码执行时间很长,图二耗时40-50s,图三耗时75s左右。
方法一运行时间:10s之内显示出六张图片运行结果。

非常感谢您的观看,已将该内容完整上传,此外本人主页还有python人工智能,单片机等文章,欢迎您观看

你可能感兴趣的:(MatlabPTB,matlab,图像处理,开发语言)