实验范式简介

本实验原始EEG数据由博睿康64导联设备采集(仅包含59个导联的脑电数据,60-64导联无效),采样率为1000Hz。一次完整实验为一个record,一名被试分3天完成多个record;实验数据以record为单位,每个record中均为连续采集EEG数据。每个record包含前静息态(睁眼1min、闭眼1min)和5个block,block与block之间不少于1.5分钟的休息时间;每个block包括20*N个trial(每类运动想象任务20个trial,N:运动想象任务类别数,如N为2表示任务为左手运动想象和右手运动想象两类,如N为3表示任务为左手运动想象、右手运动想象、双脚运动想象三类),每个record过程如图1所示。

每个trial包含1.5s提示、4s运动想象任务、2s休息,事件标签开始于0时刻,如图2所示。以上不同任务相对应的标签信息如表1所示。

图1  record过程

图2 单个trial运动想象流程图

表1 标签信息

比赛数据集简介

对实验范式获得的数据降频到250Hz,并将每个block中的运动想象任务阶段数据单独保存成一个*.mat文件(*代表block1~block5)。处理后具体数据格式见运动想象数据格式说明文档。

无训练赛题共挑选三位被试的运动想象数据,每位被试的block4、block5作为测试数据,经系统框架的数据模型封装后,由参赛者通过框架接口调取。无训练运动想象赛题,一次getData()获取0.1s数据。直到检测到结束标志为止,最终系统根据评分准则综合评分。

无训练运动想象数据集被试ID数据文件夹编号训练数据测试数据1测试数据2

1S1无block4block5

2S2无block4block5

3S3无block4block5

数据调用方法

测试数据:直接调用getData()获取0.1s的测试集数据,对于每个trial,参赛者最多只能通过getData()获取4s的数据长度就必须要调用report()返回计算结果,否则将按照超时由系统自动判为结果错误。参赛算法检测到finishedFlag为1后,需要自行结束run()方法执行。

数据导联编号表(博睿康64)

通道序号12345678910

导联名称'Fpz''Fp1''Fp2''AF3''AF4''AF7''AF8''Fz''F1''F2'

通道序号11121314151617181920

导联名称'F3''F4''F5''F6''F7''F8''FCz''FC1''FC2''FC3'

通道序号21222324252627282930

导联名称'FC4''FC5''FC6''FT7''FT8''Cz''C1''C2''C3''C4'

通道序号31323334353637383940

导联名称'C5''C6''T7''T8''CP1''CP2''CP3''CP4''CP5''CP6'

通道序号41424344454647484950

导联名称'TP7''TP8''Pz''P3''P4''P5''P6''P7''P8''POz'

通道序号51525354555657585960

导联名称'PO3''PO4''PO5''PO6''PO7''PO8''Oz''O1''O2''ECG'

通道序号61626364

导联名称HEORHEOLVEOUVEOL

反馈结果对照表

算法规范

参赛算法调用数据读取方法获取脑电数据。数据读取方法被调用一次,比赛系统会返回一个新数据包,参赛算法可以对新数据包进行处理,并调用反馈方法向比赛系统报告识别结果。

参赛算法需要同时满足以下几个约束条件:

1) 汇报起止约束:

参赛算法必须在接收到下一测试集之前报告当前测试集结果。否则,报告结果将被错判为后续测试集的识别结果。

2) 算法终止约束

当接收到数据包中finishedFlag = 1时,意味着所有实验数据均已发送完毕,参赛算法需要停止处理并自行退出。

评分指标

a) 综合考察目标识别准确率和单次目标选择时间

b)

对每个block求取一次ITR,依据所有测试数据的平均ITR得分作为参赛者最终得分进行排名。其中,Q表示目标个数,P表示识别正确率,T表示平均试次时长。ITR的单位是bits/min。

结果反馈异常处理

1) 重复多次报告

在一个试次时间内,参赛算法多次反馈结果,则仅按照第一次反馈的时间及结果进行记录。

2) 结果未反馈

若在一个试次时间内,参赛算法未反馈结果,结果将被记录为误判。

3) 算法执行超时

为满足脑-机接口系统实时处理需求,本项目同时对参赛算法的计算复杂度有一定要求。本比赛项目将会根据比赛数据量大小确定一个计算时间。若算法复杂度过高导致系统运行超时,则该算法比赛成绩将被视为无效。

参赛者用例

主体框架设计

接口函数

(1) ProblemInterface

比赛题目接口。包括数据获取方法及结果反馈方法。算法执行过程中,可以调用该接口获取数据,并通过结果反馈方法报告识别结果。

1) function dataModel = getData(obj)

输入参数:无

输出参数:DataModel类型对象

实现功能:获取下一分段实验数据。

2) function report(obj,reportModel)

输入参数:ReportModel类型对象

输出参数:无

实现功能:反馈识别结果。

(2) AlgorithmInterface

参赛算法接口。参赛者需要实现该接口,并将程序运行过程填入run()函数中。在算法执行过程中,通过ProblemInterface接口getData()方法获取DataModel类型数据,并通过report()方法返回ReportModel类型结果。当通过getData()获取的DataModel数据中finishedFlag为true时,意味着数据处理完毕,该函数需要自行退出运行。

1) function initial(obj)

输入参数:无

输出参数:无

实现功能:算法初始化参数

2) function run(obj)

输入参数:无

输出参数:无

实现功能:算法分析过程。

数据模型

(1) DataModel参赛者数据模型

1)

data:double类型矩阵,分段数据,例如包含有3导EEG数据在250Hz采样率下,以100ms对数据分段,则单次获取的data为3*25个点。

2) startPosition: double类型标量,当前分段数据起始时刻相对于该block数据起始时刻的索引位置

3) personID:double类型标量,当前数据来源受试者序号(有训练预留,在无训练条件下该值始终不变。)

4) finishedFlag:boolean类型标量,测试结束标志。

(2) ReportModel结果反馈模型

resultType: double类型标量,参赛者返回的识别结果。

开发示例

参见配套参考代码。

训练测试数据说明

每个被试共做了5个block数据,每个block包含40个trial(20个左手20个右手),每个trial包含4s的运动想象数据。本次大赛有训练赛题将提供前3个block作为训练数据,后2个block作为测试数据。

每个.mat文件中存放的数据如下图所示,前59个通道为被试进行运动想象任务时采集的脑电数据,60-64通道为空采数据(无用),第65个通道为标签。

标签说明:

Block开始:252

Trial开始:1(代表左手)或者2(代表右手)

Trial结束:251

Block结束:253

数据统一进行了250Hz的降频处理。

使用Matlab(matlab版本2019b)编写代码算法提交流程

参赛者代码提交格式,以有训练为例(无训练相同)。

在7z软件中选中自己的算法实现文件和config.toml文件,点击提取,压缩成.tar格式,再将生成的.tar文件压缩成.gz格式。

config.toml中内容如下图

参赛者定义计算单元及代码提交步骤见:https://dev.oneuro.cn/n/index.html#/anonguide/doc2

使用Python(python版本3.7)编写代码算法提交流程:

config.toml和pythonpath.sh文件内容如下图

将下图红色标记的三个文件同时打包

matlab调用python环境配置以及调用方法

#测试环境为python3.6.8,matlab2018b,win10

一、

进入系统的环境变量中,在系统变量中新建名为PYTHONPATH的变量,并将其值设置为python所需运行文件的路径。也可使用已生成的脚本工具一键导入路径(链接:

https://pan.baidu.com/s/1oFQOFBrtgNB6WvuyneWSwQ 提取码: g5uf )

注:该步骤仅针对需要调用自己编写的.py程序的情况,其余如调用numpy,scipy等官方库皆可跳过此步。

二、

调用格式为py.包名.函数名。如果全需导入可使用*代替

剩下的按照matlab的调用方式调用即可

注意,调用python的传入数据以及返回数据matlab有对应的转换关系,具体转换规则可查看matlab文档(https://ww2.mathworks.cn/help/matlab/python-data-types.html)

我这边需要的是返回的int64类型数据,则需要使用显式转换ans.int64

这时数据才可被matlab使用。

python离线库导出教程

本文将介绍如何将本地python库与其离线包批量导出以及python第三方库快速批量安装

一、 本地python库列表导出

先使用cd path进入到你需要保存列表文件的路径,path为所需路径

使用pip freeze > requirement.txt 导出文件requirement.txt

打开即可见本机已安装离线库列表

二、 离线库导出

pip download -d DIR -r LIST

其中,DIR为离线库导出路径,LIST为离线库列表路径

打开导出路径即可看到导出离线包文件

注意事项:

如遇到上图下载失败的情况,可先去requirement.txt中将报错对应包的那行删除,手动使用pip download -d DIR

ADDRESS下载,其中DIR为下载路径,ADDRESS为库的下载路径,下载后别忘记恢复删除的那行,不然安装的时候就少了那个包

三、 离线库快速安装

使用pip install --no-index --find-links=DIR -r

PATH,其中DIR为离线库文件夹路径,PATH为离线库列表文件路径

回车之后即可安装完成所有列表中的库(下图因为本机已有这个库,所以显示会有所差异)

注意事项:之前下载失败删除的库的那一行别忘了补回来

32导联 博睿康_赛题详情(Competition Details)-运动想象无训练数据集相关推荐

  1. 32导联 博睿康_直接脑控多机器人协作任务研究.PDF

    直接脑控多机器人协作任务研究 生物医学工程学杂志 2018年12月第35卷第6期 • 1 • ·· 直接脑控多机器人协作任务研究 张超,熊馨,任泓锦,伏云发 昆明理工大学 信息工程与自动化学院(昆明 ...

  2. 32导联 博睿康_2020世界机器人大赛—BCI脑控机器人大赛决赛细则

    与上届比赛类似,技术赛决赛将与BCI脑控机器人大赛个人全能赛同时举行.在技能赛不同范式中选拔出来的优秀被试者,将受邀作为技术赛决赛的被试者,同时参与脑-机接口全能赛竞争. BCI脑控机器人大赛个人全能 ...

  3. web 三联发票针式打印_打印机共享操作,其实没想象的那么难

    工作中桌面型的打印机一般是用USB直连一台主机,然后共享给其它电脑进行打印的,如:针式发票打印机.喷墨打印机等,这时就会涉及到一个打印机共享的操作,今天就跟大家分享下共享操作. 共享操作:在主机安装好 ...

  4. Emotiv EPOCFLEX 32导脑电仪数据准确导入EEGLAB

    1 软件基础:emotiv launcher.emotiv pro.matlab2020a.eeglab14_1_2b和eprime(本人通过eprime和emotiv_pro之间的串口通讯发送的ev ...

  5. DeeCamp 2020 赛题大公开!快来看你想选哪个

    DeeCamp 2020 开放性竞赛赛题来啦,快来看看有没有你感兴趣的题目!加入DeeCamp2020,你将和来自全球的优秀小伙伴组队挑战真实世界的难题,还能冲刺大奖.五大赛道,14个新颖赛题,总有一 ...

  6. 2020年网络搭建与应用国赛题-防火墙ipsec建立分解

    2020 年全国职业院校技能大赛中职组"网络搭建与应用"赛项竞赛样卷 --防火墙IPsec建立分解 题目要求:  集团防火墙与广东办事处防火墙之间使用互联地址建立 IPSEC 隧道 ...

  7. 阿里天池--金融数据分析赛题1:银行客户认购产品预测

    赛题简介 银行客户认购产品预测 赛题以银行产品认购预测为背景,想让你来预测下客户是否会购买银行的产品.在和客户沟通的过程中,我们记录了和客户联系的次数,上一次联系的时长,上一次联系的时间间隔,同时在银 ...

  8. 一场你难以想象的比赛 | 2022 iFLYTEK A.I.开发者大赛携108道赛题强势来袭

    关于科大讯飞A.I开发者大赛,你期待的是什么? 赛题?证书?奖金?就业Offer? 看见科大讯飞就放心吧,这里全都有! 2022科大讯飞 iFLYTEK A.I.开发者大赛正在火热进行中,就等你来-- ...

  9. 2020中兴捧月算法赛道傅里叶派赛题菜鸡回顾

    最近抱着试水的心理参加了2020中兴捧月算法大赛傅里叶派赛题.从4.19号由旁观者转变为参赛者,到5.8号提交完成最后的文档和代码,前后算起来也有20天了.虽然自己比较菜,但毕竟是第一次参加这种比较正 ...

最新文章

  1. gson 自定义对象转换格式
  2. [mmu/cache]-Cache Type Register(CTR)寄存器介绍-InProgress
  3. linux系统默认的环境变量path,Linux编程 12 (默认shell环境变量, PATH变量重要讲解)...
  4. 20155313 2016-2017-2 《Java程序设计》第三周学习总结
  5. 多元线性回归中多重共线性_多重共线性如何在线性回归中成为问题。
  6. vba 提取 json某个值_Excel中提取不重复值的方法汇总(5种基础+VBA+1个自定义函数)...
  7. spring bean初始化及销毁你必须要掌握的回调方法。
  8. python模块(6)-Pandas 简易使用教程
  9. Grid Coloring(AtCoder-2687)
  10. 消息称苹果正在启动生产iPhone SE 3
  11. infobright与mysql_infobright与mysql常规引擎使用对比
  12. ELK详解(四)——Head插件安装
  13. BIO、NIO、AIO差别
  14. 根据日志统计出每个用户在站点所呆时间最长的前2个的信息
  15. 拓端tecdat|用SAS进行泊松,零膨胀泊松和有限混合Poisson模型分析
  16. 2022【高淇Java300集】,零基础必备课程,全新知识讲解
  17. JavaEE企业级实战项目 智牛股第一天 概要分析和环境搭建
  18. 如何做好项目中的风险控制
  19. 基尼不纯度(Gini impurity)
  20. 《阿里巴巴 Java开发手册》读后感

热门文章

  1. 设计模式之-代理模式
  2. wow服务器维护8月14,8月14日服务器例行维护公告(已完成)
  3. 3月28日服务器维护,神武3月28日维护公告:新场景地图开放
  4. PAT顶级 1003 Universal Travel Sites (35分)(最大流)
  5. scrapy 常见问题集锦
  6. 【Android -- 面试】复习指南之 Android 高级(下)
  7. Visual Studio Code插件整理大全
  8. BC1.2和QC2.0充电器识别过程
  9. 电商企业如何选择ERP管理软件
  10. CANape使用记录(一):CANape新建工程及标定观测