【psychopy】【脑与认知科学】认知过程中的面孔识别加工

目录

实验描述 

实验思路 

python实现


实验描述 

       现有的文献认为,人们对倒置的面孔、模糊的面孔等可能会出现加工时长增加、准确率下降的问题,现请你设计一个相关实验,判断不同的面孔是否会出现上述现象。请按照认知科学要求,画出对应的实验流程图,并叙述实验的对照组如何设置,并分析实验结果。

       熟悉程度判断实验举例:可以显示大家都认识的名人。也可以是陌生人,让被试先通过照片打乱顺序看几遍,再进入判断阶段,判断该照片是否看过。然后通过正确率、反应时等指标进行比较。

实验思路 

我们首先准备好一个包含128个人的人脸照片,如图1所示,其中64张为男生,64张为女生。

图1

我们实验的设计思路是,先从这128张照片中随机选出15张照片,然后向被试者展示这15张照片的前10张照片,并提示被试者尝试记住它们,然后从展示过的照片中随机选出5张和刚刚选取的15照片中未展示的后5张照片组成10张照片,打乱这10张照片的顺序,再次展示给被试者,被试者需要判断该图片是否展示过,记录过程中的正确率和反应时间。

实验流程图如图2所示。

图2

我们设置了三个对照组。

  • 原始照片对照组:这是基准对照组,接受未经过任何处理的原始照片。这个对照组的目的是确定参与者在没有任何外部干扰的情况下的表现,从而提供一个基准水平。
  • 倒置照片对照组:这个对照组接受倒置的照片,以比较参与者在处理倒置图像时的表现。这个对照组可以帮助确定倒置图像对认知能力的影响。
  • 模糊照片对照组:这个对照组接受模糊的照片,以比较参与者在处理模糊图像时的表现。这个对照组可以帮助确定模糊图像对认知能力的影响。

我们全程使用python的psychopy库完成实验的设计。

我们首先写一个函数,用于展示提示文字,被试者可以按任意键结束提示,如图3所示。

图3

然后从我们的人脸数据库中随机选出15张照片,然后向被试者展示这15张照片的前10张照片,并提示被试者尝试记住它们,每张照片展示2秒,如图4所示。

图4

然后从展示过的照片中随机选出5张和刚刚选取的15照片中未展示的后5张照片组成10张照片,打乱这10张照片的顺序,再次展示给被试者,被试者需要判断该图片是否展示过,如果展示过则输入Y,没有展示过则输入N,如图5所示。

图5

记录过程中判断的正确率与被试者的反应时间,并输出反馈结果到窗口中,如图6所示。

图6

最后将数据写入excel文件,如图7所示。

图7

对于图片的倒置处理,我们可以设置图片展示的旋转度为180度,如图8所示。

图8

对于图片的模糊处理,我们使用python的模糊滤波器库函数进行对图片模糊处理,如图9所示。

图9

然后我们开始运行程序,首先展示的是提示文字,如图10所示。

图10

原始图片组实验展示的图片如图11所示。

图11

倒置图片对照组展示的倒置图片如图12所示。

图12

模糊图片对照组展示的模糊图片如图13所示。

图13

然后显示提示文字,如图14所示。

图14

然后被试者判断展示的图片是否出现过,会给出判断结果和反应时间,如图15所示,为判断正确的结果。

图15

判断错误的结果如图16所示。

图16

经过多次实验,我们可以得到三组实验每组30次的记录数据,如图17所示。

图17

我们将数据进行整理,计算出每组实验的正确率,如图18所示。

图18

每组实验记录的平均反应时间如图19所示。

图19

由实验结果可以知道,人脸对于经过倒置和模糊处理的图像存在反应时间加长的情况,而且倒置处理比模糊处理的时长增加的更加明显。而对于正确率,实验结果显示,正确率最高的是模糊图片,其次是正常图片和倒置图片。

倒置图片的正确率比较低是因为人们在日常生活中接触到的大多数视觉信息都是正常方向的,我们对正常方向的物体和场景有更多的经验和熟悉度。当图片被倒置时,它与我们通常的观察经验不符,这可能导致我们处理图像时出现困惑或错误,也使得我们处理图像以及提取特征更加困难。

而模糊图片的正确率比较高可能是因为模糊图像可能会引起被试者更多的注意力,因为被试者需要更加集中精力去解释和理解图像,模糊图像通过简化和平滑图像,降低被试者的认知负荷,不需要处理过多的细节和复杂性,可以使被试者更容易理解和处理图像,当然也有可能是实验测试次数较少的原因。 

python实现

import os
import random
import pandas
from psychopy import visual, event, core


# 展示提示文字
def showCue(text):
    cue = visual.TextStim(win, text=text, pos=(0, 0))
    cue.draw()
    win.flip()
    event.waitKeys()


facesPath = 'face'
faces = os.listdir(facesPath)
showFaces = random.sample(faces, 15)
win = visual.Window(size=(1000, 618))
showCue('将展示10张照片,每张照片展示2秒\n请尝试记住它们,按任意键开始')
for face in showFaces[:10]:
    facePath = os.path.join(facesPath, face)
    faceImage = visual.ImageStim(win, image=facePath)
    faceImage.draw()
    win.flip()
    core.wait(2)
showedFaces = random.sample(showFaces[:10], 5)  # 随机取出5张展示过的照片
showFaces = showedFaces + showFaces[10:]  # 取出未展示过的5张照片和展示过的照片组合在一起
random.shuffle(showFaces)  # 重新打乱图片顺序
showCue('接下来将展示10张照片\n你需要判断该照片是否出现过\n如果出现过请按Y,否则请按N\n按任意键开始')
data = {'结果': [], '反应时间': []}
for face in showFaces[:10]:
    Time = core.Clock()
    facePath = os.path.join(facesPath, face)
    faceImage = visual.ImageStim(win, image=facePath)
    faceImage.draw()
    win.flip()
    key = event.waitKeys(keyList=['y', 'n'])
    time = Time.getTime()
    if key[0] == 'y' and face in showedFaces or key[0] == 'n' and face not in showedFaces:
        result = '正确'
    else:
        result = '错误'
    showCue(result + '!反应时间为' + str(time) + '秒!\n' + '按任意键继续')
    data['结果'].append(result)
    data['反应时间'].append(time)
win.close()
# 将数据写入excel
excel = 'normalData.xlsx'
df = pandas.DataFrame(data)
try:
    DF = pandas.read_excel(excel)  # 该execl文件已经存在则追加数据
    DF = pandas.concat([DF, df], ignore_index=True)
    DF.to_excel(excel, index=False)
except FileNotFoundError:  # 没有该excel文件将创建一个新的
    df.to_excel(excel, index=False)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/107207.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

1819_ChibiOS的互斥信号与条件变量

全部学习汇总: GreyZhang/g_ChibiOS: I found a new RTOS called ChibiOS and it seems interesting! (github.com) 1. 关于会吃信号与条件变量的全局配置提供了4个配置信息,分别是互斥信号的使能、互斥信号的递归支持、条件变量的使能、条件变量的超时使…

10.28总结

目录 一.发布作业 二.写作业 三.批改作业 一.发布作业 点击简答题时———listvie<String>题目列表会新增一个题目 保存该题时———— 获取TextArea的文本,为list当前选中的对象赋值 发布日期不能为过往日期&#xff0c;截止日期不能晚于发布日期。——为发布日期设置…

Linux系统编程_网络编程:字节序、socket、serverclient、ftp 云盘

1. 网络编程概述&#xff08;444.1&#xff09; TCP/UDP对比 TCP 面向连接&#xff08;如打电话要先拨号建立连接&#xff09;&#xff1b;UDP 是无连接的&#xff0c;即发送数据之前不需要建立连接TCP 提供可靠的服务。也就是说&#xff0c;通过 TCP 连接传送的数据&#xf…

C#使用mysql-connector-net驱动连接mariadb报错

给树莓派用最新的官方OS重刷了一下&#xff0c;并且用apt install mariadb-server装上“mysql”作为我的测试服务器。然后神奇的事情发生了&#xff0c;之前用得好好的程序突然就报错了&#xff0c;经过排查&#xff0c;发现在连接数据库的Open阶段就报错了。写了个最单纯的Con…

Wpf 使用 Prism 实战开发Day01

一.开发环境准备 1. VisualStudio 2022 2. .NET SDK 7.0 3. Prism 版本 8.1.97 以上环境&#xff0c;如有新的版本&#xff0c;可自行选择安装新的版本为主 二.创建Wpf项目 1.项目的名称:MyToDo 项目名称:这里只是记录学习&#xff0c;所以随便命名都无所谓,只要觉得合理就…

水声功率放大器的应用场景是什么

水声功率放大器是一种专门用于水声信号处理和传输的设备&#xff0c;通过放大水声信号的功率&#xff0c;以实现远距离传播和提高信号的清晰度和可辨识度。下面是关于水声功率放大器应用场景的详细解释&#xff1a; 水声通信&#xff1a;水声通信是一种在水下进行声波传输的技术…

sharepoint2016-2019升级到sharepoint订阅版

一、升级前准备&#xff1a; 要建立新的sharepoint订阅版环境&#xff0c;需求如下&#xff1a; 1.单服务器硬件需求CPU 4核&#xff0c;内存24G以上&#xff0c;硬盘300G&#xff08;根据要迁移的数量来扩容大小等&#xff09;&#xff1b; 2.操作系统需要windows server 20…

接口自动化测试工具,Postman使用详解

一、概念 1、Postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件&#xff0c;Postman分为Postman native app和Postman Chrome app两个版本。目前Chrome app已经停止维护&#xff0c;官方也不推荐使用该版本。 2、官网下载地址&#xff1a;http://www.getpostman…

云计算与ai人工智能对高防cdn的发展

高防CDN&#xff08;Content Delivery Network&#xff09;作为网络安全领域的一项关键技术&#xff0c;致力于保护在线内容免受各种网络攻击&#xff0c;包括分布式拒绝服务攻击&#xff08;DDoS&#xff09;等。然而&#xff0c;随着人工智能&#xff08;AI&#xff09;和大数…

jquery中定义的动态生成的标签元素,点击事件该方法未定义Uncaught ReferenceError: goHere is not defined

如下图&#xff1a; 在点击动态生成的弹窗里的html中的企业列表标签时&#xff08;该标签绑定了点击事件-goHere&#xff09;&#xff0c; 会提示&#xff1a;Uncaught ReferenceError: goHere is not defined 生成的html代码&#xff1a; // 自定义content function showCo…

Postman如何做接口自动化测试?

前言 什么是自动化测试 把人对软件的测试行为转化为由机器执行测试行为的一种实践。 例如GUI自动化测试&#xff0c;模拟人去操作软件界面&#xff0c;把人从简单重复的劳动中解放出来。 本质是用代码去测试另一段代码&#xff0c;属于一种软件开发工作&#xff0c;已经开发完…

C# 图解教程 第5版 —— 第10章 语句

文章目录 10.1 什么是语句&#xff08;*&#xff09;10.2 表达式语句10.3 控制流语句10.4 if 语句&#xff08;*&#xff09;10.5 if ... else 语句&#xff08;*&#xff09;10.6 while 循环&#xff08;*&#xff09;10.7 do 循环&#xff08;*&#xff09;10.8 for 循环10.8…

视觉SLAM数据集(三):KITTI 数据集

教程目录 一、官网二、注册登录三、下载数据集四、测试数据集 一、官网 官网地址&#xff1a;https://www.cvlibs.net/datasets/kitti/eval_odometry.php Kitti数据集很庞大&#xff0c;包含了双目、光流、场景流、深度、里程计、目标、跟踪、马路、语义、原始数据等大类别&…

HarmonyOS原生分析能力,即开即用助力精细化运营

数据分析产品对开发者的价值呈现在两个层面&#xff0c;第一个是产品的层面&#xff0c;可以通过数据去洞察用户的行为&#xff0c;从而找到产品的优化点。另外一个就是运营层面&#xff0c;可以基于数据去驱动&#xff0c;来实现私域和公域的精细化运营。 在鸿蒙生态上&#…

云服务器搭建Zookeeper集群

文章目录 1.集群配置2.zookeeper的群起脚本3. Zookeeper节点的创建和删除相关4. Zookeeper的选举机制 1.集群配置 Zookeeper的集群个数最好保证是奇数个数&#xff0c;因为Zookeeper的选举过程有一个“半数机制”。 5台服务器&#xff0c;可以设置Zookeeper的集群为3或者5&…

矩阵特征值与特征向量的理解

各位朋友大家好&#xff0c;我是小C哈哈哈&#xff0c;很高兴认识大家&#xff0c;在这里&#xff0c;我会将一些枯燥难懂的数学和算法知识以图片或动画的形式通俗易懂的展现给大家&#xff0c;希望大家喜欢。 线性代数中的矩阵特征值与特征向量这两个基本概念总是让很多人摸不…

10款轻量型的嵌入式GUI库分享

LVGL LittlevGL是一个免费的开源图形库&#xff0c;提供了创建嵌入式GUI所需的一切&#xff0c;具有易于使用的图形元素、漂亮的视觉效果和低内存占用。 特点&#xff1a; 强大的构建模组 按钮、图表、列表、滑块、图像等 ​先进的图形 动画、反锯齿、半透明、平滑滚动 多样…

嵌入式系统中C++ 类的设计和实现分析

C代码提供了足够的灵活性&#xff0c;因此对于大部分工程师来说都很难把握。 本文介绍了写好C代码需要遵循的10个最佳实践&#xff0c;并在最后提供了一个工具可以帮助我们分析C代码的健壮度。 原文&#xff1a;10 Best practices to design and implement a C class。 1. 尽…

Vue-dvadmin-d2-crud-plus-自定义后台菜单-添加页面

文章目录 1.新建数据模型2.新建数据序列类3.新建数据视图4.配置路由5.前端新建View组件6.配置后台7.总结 django-vue-admin是一套全部开源的快速开发平台&#xff0c;毫无保留给个人及企业免费使用。 &#x1f9d1;‍&#x1f91d;‍&#x1f9d1;前端采用D2Admin 、Vue、Eleme…

calcite 校验层总结

1、校验的作用 1&#xff09;完善语义信息 例如在SQL语句中&#xff0c;如果碰到select * 这样的指令&#xff0c;在SQL的语义当中&#xff0c;“*” 指的是取出对应数据源中所有字段的信息&#xff0c;因此就需要根据元数据信息来展开。 2&#xff09;结合元数据信息来纠偏…