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

news2024/12/26 2:35:42

目录

实验描述 

实验思路 

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)

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

详细介绍如何使用 NeRF 进行 3D 体积渲染-附源码下载

介绍 在此示例中,我们展示了 Ben Mildenhall 等人的研究论文 NeRF:将场景表示为用于视图合成的神经辐射场的最小实现 。等人。作者提出了一种巧妙的方法,通过神经网络对体积场景函数进行建模来合成场景的新颖视图。 为了帮助您直观地理解这一点,让我们从以下问题开始: 是…

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

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

jQuery图像查看插件Zoom.js

效果图 图片点击放大,再次点击或者滚动窗口或者按 ESC 键即可恢复原始大小,非常流畅,使用方法也非常简单,引入zoom.js和zoom.css文件之后,对图片添加data-action"zoom"属性即可。 使用方法 1,将…

【网络】详解http协议

目录 一、认识URLurlencode和urldecode 二、HTTP协议HTTP协议格式HTTP的方法HTTP的状态码HTTP常见Header 一、认识URL URL叫做统一资源定位符,也就是我们平时俗称的网址,是因特网的万维网服务程序上用于指定信息位置的表示方法。 urlencode和urldecode …

21.10 Python 使用CRC32校验文件

CRC文件校验是一种用于验证文件完整性的方法,通过计算文件的CRC值并与预先计算的CRC校验值进行比较,来判断文件是否发生变化,此类功能可以用于验证一个目录中是否有文件发生变化,如果发生变化则我们可以将变化打印输出&#xff0c…

初次学习dubbo记录

---------------------------------------10.17---------------------------------------- 集群和分布式概念 集群:很多"人"做的相同的一件事,即使有一个人挂掉了,也不会对系统造成致命影响 分布式:很多"人"…

外卖小程序:技术实现与关键代码

在当今数字化的餐饮市场中,外卖小程序扮演着重要的角色。这些应用程序通过技术实现点餐、支付和配送,为用户提供方便快捷的服务。下面我们来深入探讨构建外卖小程序的关键技术要点和代码示例。 1. 前端开发 前端是用户与应用程序交互的接口&#xff0…

三年轻量:腾讯云3年轻量2核2G4M服务器366上三年时长

腾讯云轻量应用服务器三年特价,3年轻量2核2G4M服务器,2023双十一优惠价格366元三年,自带4M公网带宽,下载速度可达512KB/秒,300GB月流量,50GB SSD盘系统盘,阿腾云atengyun.com分享腾讯云轻量2核2…

晚上没事干又想利用时间赚钱,那就做副业,不要再懒了

很多朋友白天上班工作不是那么累,晚上下班后又比较空闲,如果一晚上不想被游戏、短视频、电影填满的话,那可以做一些兼职副业来扩宽收入来源,不仅充分利用了时间,还赚取了额外的收入。 晚上能做的兼职副业可太多了&…

AQS 为什么要使用双向链表?

双向链表 双向链表的特点是它有两个指针,一个指针指向前置节点,一个指针指向后继节点。所以,双向链表可以支持 常量 O(1) 时间复杂度的情况下找到前驱结点,基于这样的特点。双向链表在插入和删除操作的时候,要比单向链…

基于STM32两轮自平衡小车系统设计与控制

**单片机设计介绍,1650【毕设课设】基于STM32两轮自平衡小车系统设计与控制 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序文档 六、 文章目录 一 概要 主控芯片用的是100脚的STM32F103VET6,陀螺仪用的是MPU6050,电机…

基础课12——数据采集

数据采集是指从传感器和其它待测设备等模拟和数字被测单元中自动采集非电量或者电量信号,送到上位机中进行分析处理。数据采集系统是结合基于计算机或者其他专用测试平台的测量软硬件产品来实现灵活的、用户自定义的测量系统。采集一般是采样方式,即隔一定时间(称采样周期)对同…

线性表的定义和基本操作

线性表的定义和基本操作 一、线性表的定义 线性表(Linear List)是具有相同数据类型的n(n>0)个数据元素的有限序列,其中n为表长,当n0时线性表是一个空表。若用L命名线性表,则其一般表示为 L (a1,a2,...,ai,ai1,.…

防止请求重复提交:注解+拦截器的实现方案

文章目录 了解请求重复提交解决思路具体实现 了解请求重复提交 请求重复提交是指用户在一次请求还未处理完成时,重复提交了相同的请求。这种情况通常发生在网络延迟、用户误操作或系统性能不佳等情况下。 请求重复提交可能会导致以下问题和影响: 数据不…

学习笔记:二分图

二分图 引入 二分图又被称为二部图。 二分图就是可以二分答案的图。 二分图是节点由两个集合组成,且两个集合内部没有边的图。换言之,存在一种方案,将节点划分成满足以上性质的两个集合。 性质 如果两个集合中的点分别染成黑色和白色&am…

C语言之 结构体,枚举,联合

目录 1.结构体 1.1结构的基础知识 1.2结构的声明 1.3 特殊的声明 1.4 结构的自引用 1.5 结构体变量的定义和初始化 1.6 结构体内存对齐 1.7 修改默认对齐数 1.8 结构体传参 2. 位段 2.1 什么是位段 2.2位段的内存分配 2.3 位段的跨平台问题 3. 枚举 3.1 枚举类型…

Mybatis简介(二)

1、多表映射 简介一 链接 对于数据库的操作,很多时候我们都是在多表的基础上进行操作的,在这里讲一下多表属性值与列名映射。 案例:这里有一个订单表和一个客户表 CREATE TABLE t_customer (customer_id INT NOT NULL AUTO_INCREMENT, cus…

在 Elasticsearch 中丰富你的 Elasticsearch 文档

作者:David Pilato 对于 Elasticsearch,我们知道联接应该在 “索引时” 而不是查询时完成。 本博文是一系列三篇博文的开始,因为我们可以在 Elastic 生态系统中采取多种方法。 我们将介绍如何在 Elasticsearch 中做到这一点。 下一篇博文将介…

node实战——后端koa结合jwt连接mysql实现权限登录(node后端就业储备知识)

文章目录 ⭐前言⭐ 环境准备⭐ 实现过程⭐ mysql 配置⭐路由前的准备⭐账号注册生成token⭐账号登录生成token⭐token登录 ⭐ 自测过程截图⭐总结⭐结束 ⭐前言 大家好,我是yma16,本文分享关于node实战——后端koa项目配置jwt实现登录注册(n…

1230. K倍区间(前缀和)

题目&#xff1a; 1230. K倍区间 - AcWing题库 突破口&#xff1a; 区间遍历枚举一般先枚举右端点&#xff0c;再枚举左端点&#xff0c;注意由右端点限制左端点 思路&#xff1a;1.暴力 #include<cstdio> #include<iostream> #include<algorithm> #incl…