基于PsychoPy实现SSVEP刺激的方法及存储介质与流程

allin2023-04-13  155


基于psychopy实现ssvep刺激的方法及存储介质
技术领域
1.本发明是关于ssvep刺激,特别是关于一种基于psychopy实现ssvep刺激的方法及存储介质。


背景技术:

2.ssvep是稳态视觉诱发电位。目前,ssvep是bmf研究中主流方向之一。其主要原理就是:人的大脑里分布着各种神经网络,这些神经网络都有其固有的谐振频率,在正常状态下,这些神经网络都是互不同步的,也是杂乱无章的,没有规律的,此时的脑电信号叫做自发脑电。当对人眼施加一个稳定频率的外界视觉刺激时,与刺激频率或谐波频率相一致的神经网络就会产生谐振,导致大脑的电位活动在刺激频率或谐波频率处出现明显变化,由此产生ssvep信号。通过检测ssvep信号,就可以实现对ssvep信号的采集及解码,从而转换成控制指令,实现bmf脑机融合。
3.目前,现有的ssvep视觉刺激实现方案中,matlab+ptb生成ssvep刺激的方式,对电脑的配置要求特别高,电脑的处理器会采用到32核,内存是256g,显示屏的刷新率可以高达144hz。而我们家用电脑配置普遍是cpu4核~8核,内存是4g~8g,显示屏的刷新率是60hz。这种情况非常不利于ssvep脑机融合从实验室走向民用、家用市场,不利于ssvep脑机融合技术的科研落地。现有的ssvep视觉刺激实现方案中,还有基于单片机+led灯闪烁实现ssvep视觉刺激的方式,但是该方式中的视觉刺激频率的调整非常麻烦,如果需要调整刺激频率,需要重新修改代码,再编译,再烧录,重新测试验证,步骤繁杂,不利于刺激频率的扩展。
4.公开于该背景技术部分的信息仅仅旨在增加对本发明的总体背景的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域一般技术人员所公知的现有技术。


技术实现要素:

5.本发明的目的在于提供一种基于psychopy实现ssvep刺激的方法及存储介质,其降低了ssvep对电脑硬件配置的要求。
6.为实现上述目的,本发明的实施例提供了一种基于psychopy实现ssvep刺激的方法,包括:
7.步骤s1、创建可进行翻转的屏幕对象;
8.步骤s2、创建刺激,包括选择刺激方案;
9.步骤s3、运行刺激;
10.步骤s31、根据预编码顺序在所述屏幕对象上绘制所述刺激方案;
11.步骤s32、将所述屏幕对象根据刺激频率进行翻转以进行所述刺激方案的替换显示。
12.在本发明的一个或多个实施方式中,所述步骤s1包括设置所述屏幕对象的参数属性,所述参数属性包括分辨率、颜色、是否全屏、刺激区域的大小以及刺激区域在屏幕对象
中的位置。
13.在本发明的一个或多个实施方式中,所述步骤s2还包括:创建缓存缓冲区,在所述缓存缓冲区加载所述刺激方案。
14.在本发明的一个或多个实施方式中,所述步骤s31包括:将所述缓存缓冲区内的所述刺激方案加速绘制于所述屏幕对象的前台和后台上。
15.在本发明的一个或多个实施方式中,所述步骤s32包括:将所述屏幕对象的前台和后台进行翻转,然后在所述屏幕对象的前台上绘制所述刺激方案后再翻转,再在所述屏幕对象的后台上绘制所述刺激方案后再翻转,根据预编码顺序依次循环绘制所述刺激方案。
16.在本发明的一个或多个实施方式中,在所述步骤s3之前,还包括在所述屏幕对象上创建多个用于绘制所述刺激方案的刺激区域。
17.在本发明的一个或多个实施方式中,所述刺激频率的计算公式为:刺激频率=屏幕刷新率/预编码内编码的循环次数。
18.在本发明的一个或多个实施方式中,所述方法还包括步骤s4、确定刺激是否运行到了预定时间,如果运行到了预定时间,结束刺激;否则,重复步骤s32。
19.在本发明的一个或多个实施方式中,对所述屏幕对象进行检测,如果所述屏幕对象上的刺激符合稳定预期,则维持运行程序,如果不符合稳定预期,则结束程序。
20.根据本发明的另一方面,提供了一种计算机可读的存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述方法。
21.与现有技术相比,根据本发明实施方式的基于psychopy实现ssvep刺激的方法,替代了传统的matlab+ptb工具箱的实现方案,提供了新的基于psychopy的实现方案。同时采用了“双缓冲翻转预编码技术”,实现了ssvep刺激方案,降低了对电脑硬件配置参数的要求,同时方便了对刺激频率的扩展修改。
附图说明
22.图1是根据本发明一实施方式的基于psychopy实现ssvep刺激的方法的系统步骤流程图;
23.图2是根据本发明一实施方式的基于psychopy实现ssvep刺激的方法的部分步骤流程图;
24.图3是根据本发明一实施方式的刺激频率为10hz时的运行状态示意图;
25.图4是根据本发明一实施方式的刺激频率为12hz时的运行状态示意图;
26.图5是根据本发明一实施方式的刺激频率为15hz时的运行状态示意图;
27.图6是根据本发明一实施方式的刺激频率为30hz时的运行状态示意图。
具体实施方式
28.下面结合附图,对本发明的具体实施方式进行详细描述,但应当理解本发明的保护范围并不受具体实施方式的限制。
29.除非另有其它明确表示,否则在整个说明书和权利要求书中,术语“包括”或其变换如“包含”或“包括有”等等将被理解为包括所陈述的元件或组成部分,而并未排除其它元件或其它组成部分。
30.实施例1
31.如图1结合图2所示,根据本发明优选实施方式的一种基于psychopy实现ssvep刺激的方法,包括:
32.步骤s1、创建可进行翻转的屏幕对象;
33.步骤s2、创建刺激,包括选择刺激方案;
34.步骤s3、运行刺激;
35.步骤s31、根据预编码顺序在所述屏幕对象上绘制所述刺激方案;
36.步骤s32、将所述屏幕对象根据刺激频率进行翻转以进行所述刺激方案的替换显示。
37.步骤s4、确定刺激是否运行到了预定时间,如果运行到了预定时间,结束刺激;否则,重复步骤s32。
38.一实施方式中,创建屏幕对象包括设置屏幕对象的参数属性,参数属性包括分辨率、颜色、是否全屏、刺激区域的大小以及刺激区域在屏幕对象中的位置等等。通过提前设置刺激区域的大小以及刺激区域在屏幕对象中的位置从而为下面创建刺激区域做准备,这些因素会影响刺激的稳定性以及被试者对刺激的感官程度(是否舒适等)。屏幕对象用于唯一标识实际的物理显示屏。当然在创建屏幕对象之前,需要先启动psychopy程序。
39.一实施方式中,刺激方案可以选择图片刺激,也可以选择像素刺激(也叫光栅刺激),也可以选择文字刺激,也可以选择视频刺激,或者上述几种刺激的排列组合。本实施例中主要选择图片刺激作为刺激方案,图片图像为纹理。
40.创建刺激还包括创建缓存缓冲区,在缓存缓冲区加载刺激方案。为了采用“双缓冲翻转预编码技术”,缓存缓冲区是必须先在电脑后台进行创建,把需要在电脑屏幕上显示出来的刺激以纹理图片的形式存放在缓存缓冲区。然后捕获屏幕对象的刷新时间进行刷新刺激方案并绘制到屏幕对象上。底层opengl接收到绘图到屏幕对象的指令后会调用硬件底层的加速器进行渲染,加快执行速度。最后再设计一个预编码表,按照预编码表制定的预编码顺序对屏幕进行flip翻转,加载预先存在缓存缓冲区的纹理图片刺激方案到屏幕对象,从而实现不同频率的稳定刺激。预编码表的预编码顺序作用是用来实现不同的刺激频率。
41.创建到后台缓存缓冲区中的刺激方案是为了供绘制到屏幕对象上而使用。提前加载到缓存缓冲区中,可以确保绘制到屏幕对象中用时更短,也可以确保刺激的稳定性。
42.一实施方式中,在屏幕对象上创建多个用于绘制刺激方案的刺激区域。本实施方式中,在屏幕对象中创建了四个刺激区域,以屏幕对象中心为参考,分别在屏幕对象中心的上下左右四个位置生成刺激频率为10hz、12hz、15hz以及30hz四种刺激。同时,指定每个刺激区域的大小。
43.步骤s31中,具体的,将缓存缓冲区内的刺激方案绘制于屏幕对象的前台和后台上。在初始阶段,在绘制刺激方案到屏幕对象的前台的同时,硬件加速器已经在屏幕对象的后台绘制另一张刺激方案。
44.步骤s32中,具体的,在屏幕对象的前台和后台均绘制有刺激方案后,将屏幕对象的前台和后台进行翻转,此时屏幕对象的后台的刺激方案代替前台的刺激方案进行了显示;然后在后面的屏幕对象的前台上绘制另一个刺激方案后再翻转,此时屏幕对象的前台的刺激方案代替后台的刺激方案进行了显示;再在又变成在后面的屏幕对象的后台上绘制
另一个刺激方案后再翻转,此时屏幕对象的后台的刺激方案代替前台的刺激方案进行了显示;根据预编码顺序依次循环绘制刺激方案。形成“双缓冲”技术。
45.上述刺激方案的绘制均通过硬件加速器进行加速绘制。
46.本实施方式中的刺激方案按照预编码的顺序进行绘制。预编码中以1和-1代表不同的纹理图片刺激方案。当预编码为1时绘制一种纹理图片刺激方案,当预编码为-1时绘制另一种纹理图片刺激方案。例如每秒在60hz刷新率的屏幕对象中能够绘制60张纹理图片刺激方案。具体的编码顺序如下表所示:
47.10hz预编码encode10hz=[1,1,1,-1,-1,-1;1,1,1,-1,-1,-1;1,1,1,-1,-1,-1;1,1,1,-1,-1,-1;1,1,1,-1,-1,-1;1,1,1,-1,-1,-1;1,1,1,-1,-1,-1;1,1,1,-1,-1,-1;1,1,1,-1,-1,-1;1,1,1,-1,-1,-1]。其中,以[1,1,1,-1,-1,-1]这6张纹理图片刺激方案为一次循环。
[0048]
12hz预编码encode12hz=[1,1,1,-1,-1;1,1,1,-1,-1;1,1,1,-1,-1;1,1,1,-1,-1;1,1,1,-1,-1;1,1,1,-1,-1;1,1,1,-1,-1;1,1,1,-1,-1;1,1,1,-1,-1;1,1,1,-1,-1;1,1,1,-1,-1;1,1,1,-1,-1]。其中,以[1,1,1,-1,-1]这5张纹理图片刺激方案为一次循环。
[0049]
15hz预编码encode15hz=[1,1,-1,-1;1,1,-1,-1;1,1,-1,-1;1,1,-1,-1;1,1,-1,-1;1,1,-1,-1;1,1,-1,-1;1,1,-1,-1;1,1,-1,-1;1,1,-1,-1;1,1,-1,-1;1,1,-1,-1;1,1,-1,-1;1,1,-1,-1;1,1,-1,-1]。其中,以[1,1,-1,-1]这4张纹理图片刺激方案为一次循环。
[0050]
30hz预编码encode30hz=[1,-1;1,-1;1,-1;1,-1;1,-1;1,-1;1,-1;1,-1;1,-1;1,-1;1,-1;1,-1;1,-1;1,-1;1,-1;1,-1;1,-1;1,-1;1,-1;1,-1;1,-1;1,-1;1,-1;1,-1;1,-1;1,-1;1,-1;1,-1;1,-1;1,-1]。其中,以[1,-1]这2张纹理图片刺激方案为一次循环。
[0051]
综上,具体的刺激频率的计算公式为:刺激频率=屏幕刷新率/预编码内编码的循环次数。其中屏幕刷新率为60hz,以10hz为例,10hz刺激是以[1,1,1,-1,-1,-1]作为编码的循环,循环的个数加起来是6个,所以刺激频率是60hz/6=10hz。
[0052]
当然需要注意的是,10hz、12hz、15hz以及30hz刺激频率均为整数,这个刺激频率可以叫做方波。在其他实施方式中,刺激频率可以扩展成具有小数点的刺激频率,如10.1hz,5.6hz等等,这种小数点的刺激波叫做正弦波。然后方波里面可以只选择两种颜色的纹理图片刺激方案,分别为黑色和白色。正弦波可以扩展纹理图片刺激方案的颜色,比如可以选择四种颜色的图片,或者更多颜色的纹理图片刺激方案。
[0053]
一实施方式中,通过加载更多的刺激方案进行一个循环,来得到小数点的刺激频率。例如,刺激方案可以是59张纹理图片一循环。比如前面加载39张黑色的纹理图片刺激方案+20张白色的纹理图片刺激方案,然后再加载39张黑色的纹理图片刺激方案和20张白色的纹理图片刺激方案,属于59张纹理图片刺激方案一循环,因为有足够多的纹理图片刺激方案(例如600张),所以除一下的话,就是有小数点了。
[0054]
步骤s4中的预定时间可以选择5分钟、10分钟、17分钟等等。
[0055]
如图1所示,在步骤s3运行刺激的过程中,可以使用另一台pc对屏幕对象进行检测,确定屏幕对象上的刺激是否符合稳定预期,如果屏幕对象上的刺激符合稳定预期,则维持运行程序,如果不符合稳定预期,则结束程序。图3所示的为刺激频率为10hz时的稳定情况。图4所示的为刺激频率为12hz时的稳定情况。图5所示的为刺激频率为15hz时的稳定情
况。图6所示的为刺激频率为30hz时的稳定情况。
[0056]
对应的,本技术实施例提供一种计算机可读的存储介质,存储介质中存储有计算机程序,其中,计算机程序被设置为运行时执行上述的方法。
[0057]
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0058]
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0059]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0060]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0061]
前述对本发明的具体示例性实施方案的描述是为了说明和例证的目的。这些描述并非想将本发明限定为所公开的精确形式,并且很显然,根据上述教导,可以进行很多改变和变化。对示例性实施例进行选择和描述的目的在于解释本发明的特定原理及其实际应用,从而使得本领域的技术人员能够实现并利用本发明的各种不同的示例性实施方案以及各种不同的选择和改变。本发明的范围意在由权利要求书及其等同形式所限定。

技术特征:
1.一种基于psychopy实现ssvep刺激的方法,其特征在于,包括:步骤s1、创建可进行翻转的屏幕对象;步骤s2、创建刺激,包括选择刺激方案;步骤s3、运行刺激;步骤s31、根据预编码顺序在所述屏幕对象上绘制所述刺激方案;步骤s32、将所述屏幕对象根据刺激频率进行翻转以进行所述刺激方案的替换显示。2.如权利要求1所述的基于psychopy实现ssvep刺激的方法,其特征在于,所述步骤s1包括设置所述屏幕对象的参数属性,所述参数属性包括分辨率、颜色、是否全屏、刺激区域的大小以及刺激区域在屏幕对象中的位置。3.如权利要求1所述的基于psychopy实现ssvep刺激的方法,其特征在于,所述步骤s2还包括:创建缓存缓冲区,在所述缓存缓冲区加载所述刺激方案。4.如权利要求3所述的基于psychopy实现ssvep刺激的方法,其特征在于,所述步骤s31包括:将所述缓存缓冲区内的所述刺激方案加速绘制于所述屏幕对象的前台和后台上。5.如权利要求5所述的基于psychopy实现ssvep刺激的方法,其特征在于,所述步骤s32包括:将所述屏幕对象的前台和后台进行翻转,然后在所述屏幕对象的前台上绘制所述刺激方案后再翻转,再在所述屏幕对象的后台上绘制所述刺激方案后再翻转,根据预编码顺序依次循环绘制所述刺激方案。6.如权利要求1所述的基于psychopy实现ssvep刺激的方法,其特征在于,在所述步骤s3之前,还包括在所述屏幕对象上创建多个用于绘制所述刺激方案的刺激区域。7.如权利要求1所述的基于psychopy实现ssvep刺激的方法,其特征在于,所述刺激频率的计算公式为:刺激频率=屏幕刷新率/预编码内编码的循环次数。8.如权利要求1所述的基于psychopy实现ssvep刺激的方法,其特征在于,所述方法还包括步骤s4、确定刺激是否运行到了预定时间,如果运行到了预定时间,结束刺激;否则,重复步骤s32。9.如权利要求1所述的基于psychopy实现ssvep刺激的方法,其特征在于,对所述屏幕对象进行检测,如果所述屏幕对象上的刺激符合稳定预期,则维持运行程序,如果不符合稳定预期,则结束程序。10.一种计算机可读的存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述权利要求1~9任一项中所述的方法。

技术总结
本发明公开了一种基于PsychoPy实现SSVEP刺激的方法及存储介质,其中,方法包括:步骤S1、创建可进行翻转的屏幕对象;步骤S2、创建刺激,包括选择刺激方案;步骤S3、运行刺激;步骤S31、根据预编码顺序在屏幕对象上绘制刺激方案;步骤S32、将屏幕对象根据刺激频率进行翻转以进行刺激方案的替换显示。根据本发明实施方式的基于PsychoPy实现SSVEP刺激的方法,替代了传统的MATLAB+PTB工具箱的实现方案,提供了新的基于PsychoPy的实现方案。同时采用了“双缓冲翻转预编码技术”,实现了SSVEP刺激方案,降低了对电脑硬件配置参数的要求,同时方便了对刺激频率的扩展修改。对刺激频率的扩展修改。对刺激频率的扩展修改。


技术研发人员:苏高民 顾明 朱佳兰 赖艳
受保护的技术使用者:苏州念及智能科技有限公司
技术研发日:2022.04.15
技术公布日:2022/7/5
转载请注明原文地址: https://www.8miu.com/read-10510.html

最新回复(0)