信息速览
假肢控制研究里有一个尴尬的事实:实验室内的手势识别准确率常常做到九成五以上,装上假肢一周之后就掉到七成出头。掉的那两成半不是算法退化了,是电极换了位置、皮肤阻抗变了、肌肉因为疲劳或姿势改变而换了发力方式。绝大多数公开数据集都在同一天里把训练集和测试集切出来,等于把这个最致命的问题从数据里剔掉了。
这份数据集把这个问题放回去了。二十名受试者,相隔数日的两次实验,同样的范式和同样的手势,各自独立采集。两次之间的差异不是噪声,而是这份数据最想让人研究的对象。§8.2 会讲清楚为什么必须按受试者和按次做交叉验证,§6 会讲清把两天数据混在一起随机切分能虚高多少。
数据体量 142.8 GB,是它另一道门槛。二十个人的前臂,256 个电极通道,2048 Hz 采样,五个子范式,两天各一遍——全都录下来就是这个数字。想先摸清结构再下载,看 §2 与 §3;只关心能不能免费拿,答案在 §3.1。
§1 它是什么:一条贴在前臂上的 256 通道阵列
1.1 一句话定义与四条边界
Hyser 是一份开放获取的高密度表面肌电数据集:20 名受试者,每人相隔两天各做一遍,每遍包含五个子范式——34 种手势的模式识别、五个手指各自的最大自主收缩、单个手指跟踪力轨迹、十五种手指组合跟踪力轨迹、以及无预设轨迹的手指组合随机收缩。后四个子范式同步记录真实指力。配套一个 Matlab 工具箱,能做手势分类、指力回归和运动单位分解。
四条边界先摆出来。
第一,它是健全人的前臂,不是截肢者的残肢。 全部 20 名受试者手指完整。这一点不能靠"迁移一下就行"糊过去:截肢后残存的肌肉在数量、位置、神经支配上都变了,前臂电极阵列能覆盖的肌肉在残肢上可能一半都不存在。任何声称用这份数据验证了假肢控制方案的研究,都还差一道在截肢者身上的验证。
第二,手势集是作者自定的 34 种,不是通用词表。 条目页只说"日常使用的 34 种手势",具体是哪 34 种写在关联论文里,条目页没有逐条列出。这意味着跨数据集比较时,手势要对齐得自己回原文查映射,不能假定它和 NinaPro、CapgMyo 那类数据集的手势编号一致。
第三,力是真力,但量的是台面上的力。 后四个子范式的力信号来自力传感器,受试者按着传感器施加指力。这和假肢实际抓握时的力分布不是一回事:抓一个鸡蛋时指尖、指腹、指侧的受力方向与大小都在变,而台面测力只有一条合成的合力曲线。
第四,两次实验之间隔了几天,但没记录具体隔了几天。 条目页说"separate days",两次实验在同一天的不同时段、还是隔一周,只有关联论文可能提到。这个信息对研究"跨天漂移随时间怎么累积"很关键,而它在条目页上是缺的。§11.2 会把它列成可立即验证的疑问之一。
1.2 为什么是"高密度",不是普通表面肌电
普通表面肌电用两个或三个电极贴在肌肉表面,得到的是整块肌肉所有运动单位电活动在电极之间的差值。信号里混着几十上百个运动单位的发放,谁在什么时候发放,从这一路信号里分不出来。
高密度把电极做成阵列。这份数据是 256 通道,铺在前臂上。通道多了之后,同一个运动单位的电位会在相邻若干通道上形成一片有空间形状的分布——电极阵列相当于给肌肉内部的活动拍了一张低分辨率照片,每个运动单位在这张照片上有自己的"位置"和"形状"。
这个空间信息带来两件普通肌电做不到的事。
一是运动单位分解。既然每个运动单位在阵列上有独特的空间分布,那么用独立成分分析这类盲源分离方法,理论上可以把混叠的信号拆成一个个运动单位的发放序列。拆出来之后,能做的事就从"这块肌肉在用力"推进到"这些运动单位在以什么频率发放"——也就是神经层面的信息。工具箱里带了这个分解功能(§9.2)。
二是空间激活图。手指动作不是由一整块肌肉完成的,而是由前臂上多块肌肉按不同比例协同。256 通道能看出某次收缩时,激活的重心偏在阵列的哪一侧、覆盖多大面积。这份数据在背景部分特意提到"
1.3 五个子范式各自回答什么问题
五个子集不是随便凑的,它们对应神经假肢控制的五条技术路线。
模式识别子集回答"这是哪个手势"。34 种手势,每种做两类任务:动态任务从放松状态过渡到目标手势,持续 1 秒;维持任务过渡到目标手势后保持 4 秒。两类任务的差别很关键——真实使用中,用户做一个手势往往要维持一段时间,如果训练集只有动态段,模型没见过稳态段,实际一用就掉。
最大自主收缩子集回答"这个人的力气有多大"。受试者对五个手指逐个做最大自主收缩,屈和伸两个方向。这个子集的用途不是分类,而是归一化:把其他子集里的力值除以本人的最大力,变成百分比,才能跨受试者比较。不做这一步,同一条"三十牛"的曲线,在一个壮汉身上是轻度用力,在另一个人身上可能接近极限。
单自由度子集回答"能不能控制力度"。单个手指跟踪一条目标力轨迹。这比开关式的模式识别难一个层级:不是判断"是哪根手指",而是让输出力连续跟随目标。
多自由度子集回答"多根手指同时动还控得住吗"。十五种手指组合,各自跟踪目标轨迹。组合一多,肌电信号在阵列上的叠加就复杂,解码难度指数上升。
随机任务子集回答"没有预设轨迹时表现如何"。受试者随机收缩手指组合,不跟任何目标轨迹。这是最接近真实使用的一种设置——用假肢的时候,没人给你画一条力轨迹让你跟着走。
1.4 两天各做一遍的设计,价值在哪
这是整份数据最值得说的一处设计。
条目页的措辞是:each subject participating in our experiment twice on separate days following the same experiment paradigm。同一范式、不同日期、各一遍。落地到文件结构上,就是每个子数据集下有 40 个文件夹,subject01_session1 到 subject20_session2。
两天之间会发生什么变化?
第一是电极位置。256 个通道的阵列贴在前臂上,贴的位置靠实验者手工对齐。即使有记号笔标记,第二天的位置也会有毫米级的偏移。毫米级听起来很小,但对高密度阵列来说,一个通道间距往往就在一厘米量级,偏移几个毫米就足够让同一个运动单位落在不同的通道组合上。
第二是皮肤状态。电极与皮肤之间的阻抗受角质层含水量影响,隔了一天,皮肤的湿度、油脂、角质层完整度都变了。阻抗变了,信号幅度的绝对标度就变了。
第三是肌肉状态。第一天做过 34 种手势和若干次最大收缩之后,肌肉会有延迟性酸痛;第二天来的时候,同一个手势的发力模式可能已经微调过。
作者把跨天设计写进数据结构的用意很清楚:让研究者能直接量化这三点带来的性能损失,而不是等部署到假肢上才发现。§8.2 会说明该怎么做这个量化。
1.5 它不适合回答什么
不适合验证残肢上的假肢控制。 受试者手指全部完整。残肢的肌电分布是完全另一个问题。
不适合做临床诊断。 受试者全是健康人,年龄 22 到 34 岁,无神经肌肉疾病。条目页没有提到任何患者对照。
不适合直接当作通用手势基准。 34 种手势是作者自定的,与其他数据集的手势集不对应。要做跨数据集评测,必须先建立手势映射表。
不适合研究长期漂移。 只有两天。想知道电极戴上一个月后信号怎么退化,这份数据答不了。
不适合做实时性研究。 数据是离线录制的片段,不带实时采集的延迟、丢包、缓冲区等工程特性。
1.6 与前臂肌电数据生态的位置
表面肌电的公开数据集不算少。NinaPro 系列用普通双差电极,受试者多、手势多、还有截肢者;CapgMyo 用高密度阵列但受试者少;EPN 系列偏重运动单位性质。这一份的特点是把"高密度"和"两天重复"绑在了一起,同时给了真实指力。
这意味着拿它做对比时要想清楚对的是什么。和 NinaPro 比分类准确率没有意义——通道数差两个数量级。和 CapgMyo 比受试者数量也没有意义。真正可比的是那些同样做了高密度加多天重复的工作,而这一类数据在公开生态里非常少,这大概是这份数据被引用的主要理由。
1.7 版本与命名的几处细节
条目页的标题是 Open Access Dataset and Toolbox of High-Density Surface Electromyogram Recordings,数据集自己的简称是 Hyser,取 High densitY Surface Electromyogram Recordings 的首字母——条目页在 Abstract 里明确写了 named “Hyser”。
版本有两个。1.0.0 发布于 2021 年 5 月 28 日,2.0.0 发布于 2023 年 12 月 28 日。两个 DOI 不同:v2.0.0 是 10.13026/hxan-pe94,最新版指向 10.13026/t9wv-d929。引用时要说清用的是哪个版本,因为文件结构在版本之间可能有调整。
条目页给出的访问统计是:当前版本 241 次浏览,全部版本 341 次。这个数字在 PhysioNet 上属于中等偏上,考虑到数据体量 142.8 GB,下载门槛不低。
§2 数据构成:五个目录、四十个文件夹、成对的 dat 与 hea
2.1 目录里到底有什么
顶层是五个子数据集目录,加四个散文件。
五个目录的体积,条目页逐个给了:pr_dataset 37.1 GB,mvc_dataset 7.8 GB,1dof_dataset 29.3 GB,ndof_dataset 58.6 GB,random_dataset 9.8 GB。加起来 142.8 GB,与条目页标注的 Total uncompressed size 一致。ndof 一个目录就占了四成,因为它有十五种组合、每种两个片段、每个片段三种信号类型。
四个散文件是:LICENSE.txt(19.9 KB)、RECORDS(1.6 MB)、SHA256SUMS.txt(6.9 MB)、equipment_info.pdf(40.7 KB),外加 readme.txt(3.0 KB)。
RECORDS 有 1.6 MB,这个大小本身就是个信息:说明整个数据集的文件数量在数万量级。SHA256SUMS.txt 6.9 MB 也可以反推——每行约 90 字节(64 位哈希加路径),6.9 MB 对应的行数在七万到八万之间。
四个散文件各有用途。LICENSE.txt 是许可原文,ODC-By 的条款要按它来。RECORDS 是 WFDB 的索引,列出全部记录名,可以用它来核对下载是否完整。SHA256SUMS.txt 是校验清单,下完必须跑一遍——142.8 GB 的数据,传输中断一次就可能有半个文件。equipment_info.pdf 给的是采集设备的详细参数,条目页在 Usage Notes 里明确指了这一份,想知道电极型号、放大器规格,只能查它。
2.2 四十个文件夹怎么排
五个子数据集目录下,结构是一致的:40 个文件夹,命名 subject01_session1 到 subject20_session2。
条目页的记法是 subjecti_sessionj,其中 i 取 01 到 20,j 取 1 或 2。也就是说,受试者编号补零到两位,会期编号是一位。
这里有个容易忽略的点:session 编号不带日期信息。session1 是哪天、session2 是哪天、间隔多久,文件结构里没有。想知道确切间隔,只能去查关联论文的方法部分。这也是 §11.2 要列的可验证疑问之一。
我核对过五个目录,每个都是 40 个文件夹,无一例外。这说明两天两遍的设计在五个子范式上是完整贯彻的,没有哪个子范式只做了第一天。
2.3 成对的 dat 与 hea:WFDB 格式怎么读
所有信号段都用 WFDB 格式成对存放。条目页写得很明确:一个 .dat 文件装全部 16 位有符号量化值,一个 .hea 文件装标度因子(scaling factors),两者除扩展名外同名。
这句话值得展开。.dat 里装的是整数,不是物理量。原始电压经过放大、量化成 16 位整数。要还原成微伏,必须读 .hea 里的增益与基线:物理值等于(整数减去基线)除以增益。跳过这一步直接把整数当微伏用,得到的幅度是错的,而且是按通道错——每个通道的增益可以不同。
16 位有符号意味着取值范围是负三万二千七百六十八到正三万二千七百六十七。放大器的量程要恰好把前臂肌电的幅度范围装进去而不饱和,这是采集时的设计选择,参数在 equipment_info.pdf 里。
读 WFDB 有三条路,条目页给了引用:Matlab 工具箱、Python 工具箱、C 语言实现。也可以用作者自己的 Matlab 工具箱,它提供了 load_pr、load_mvc、load_1dof、load_ndof、load_random 五个函数,按子数据集分别加载。
2.4 加载之后矩阵长什么样
条目页把返回的形状写清了,这在数据文档里不常见,值得照抄:肌电数据是 NT 行 256 列的矩阵,一列一个通道;力数据是 NT 行 5 列的矩阵,一列一个手指,顺序是拇指、食指、中指、无名指、小指。
NT 是时间序列长度。
这个形状定义了两个必须注意的地方。
第一,列是通道,不是样本。习惯 sklearn 那种"行是样本、列是特征"的人容易在这里翻车:拿一行当作一个 256 维特征向量是对的,但拿一列当作一个时间序列也是对的——两个视角都成立,取决于你要做什么。做空间激活图,一帧就是一列;做单通道频谱分析,一列就是一条时间序列。
第二,力的五列有固定顺序。拇指在第一位,小指在第五位。这个顺序和 mvc 文件名里的 finger1 到 finger5 是对应的:条目页写 fingeru 的 u 取 1 到 5,分别代表拇指、食指、中指、无名指、小指。如果按解剖学习惯从小指往拇指数,整张力表就全反了。
2.5 五个子集的命名规则各有不同
这一点最容易在写读取脚本时踩坑:五个子集的命名规则不完全一样,不是简单的换前缀。
模式识别子集是 taskType_sigType_samplek.dat。taskType 取 dynamic 或 maintenance;sigType 取 raw 或 preprocess;k 是片段序号。另有两个独立文件 label_dynamic.txt 与 label_maintenance.txt 存标签。
最大收缩子集是 mvc_sigType_fingeru_direction.dat。这里 sigType 多了一个取值 force;direction 取 extension 或 flexion。
单自由度子集是 1dof_sigType_fingeru_samplek.dat。
多自由度子集是 ndof_sigType_combinationu_samplek.dat,u 取 1 到 15。
随机子集是 random_sigType_samplek.dat——注意这里没有手指或组合的字段,因为任务是随机的,每次收缩哪几个手指不定。
我把这几条规则和实际文件对了一遍,确认无误。有个地方需要提醒:条目页在多自由度子集那段,正文写的是 combinationu_samplek,但我在实际目录里看到的是 combination1_sample1 这类带 sample 的完整形式,两边一致。而随机子集的文件名里 sigType 与 sample 之间没有额外的下划线字段,写正则时要注意。
2.6 我核对了哪些、没核对哪些
为了避免把推断当成事实,这里把边界划清。
核对过的:五个子数据集目录都存在;每个目录下都是 40 个 subject 文件夹;pr_dataset 下单次会话有动态与维持两类,每类都有 raw 与 preprocess 两版;label_dynamic.txt 与 label_maintenance.txt 存在;mvc、1dof、ndof、random 四个目录下都有 raw、preprocess、force 三种 sigType;组合编号在 ndof 里确实到 15;文件夹体积与条目页标注一致。
没核对的:具体每个会话里有多少个片段。这个数字在 pr_dataset 里会随手势数与重复次数的配置变化,条目页没有给出确切值,我不做推算。想知道确切片段数,下载后数文件即可,或者读 label_dynamic.txt 的列数——那是 1 乘 Ns 的逗号分隔值,一列一个片段。
推测并已在正文标明的:RECORDS 与 SHA256SUMS.txt 各自对应的行数区间,是由文件字节数除以每行平均长度得到的估计,不是实际计数(§2.1 已注明是「反推」)。这类估算一律不作为硬数字使用。
2.7 体量估算与它的边界
142.8 GB 这个数字来自条目页,是未压缩总量。压缩包 135.2 GB。
这个体量对使用方式有实质影响。想全下,得准备至少 150 GB 的可用空间,还要考虑解压时临时翻倍。只想做手势分类,pr_dataset 的 37.1 GB 就够,其他四个子集可以不下。只想做力回归,1dof 与 ndof 加起来 87.9 GB,是最大的两块。
另一个选择是不下载、用云端。条目页给了 AWS 的同步命令:aws s3 sync --no-sign-request s3://physionet-open/hd-semg/2.0.0/ DESTINATION。这是 PhysioNet 开放数据的标准做法,不需要 AWS 账号。如果计算也在云上,这样可以省掉本地存储与传输。
§3 访问:ODC-By,不需要审批
3.1 许可与门槛
许可是 Open Data Commons Attribution License v1.0,简称 ODC-By。PhysioNet 把它归在 Open Access 一栏。
这意味着:下载不需要提交研究计划,不需要签数据使用协议,不需要等审批。同意许可条款就能下。
ODC-By 的核心义务是署名。用这份数据做的任何公开产出——论文、报告、派生数据集——都必须按条目页给的格式引用。条目页提供了 BibTeX 与六种引用格式,最简的是:Jiang, X., Dai, C., Liu, X., & Fan, J. (2023). Open Access Dataset and Toolbox of High-Density Surface Electromyogram Recordings (version 2.0.0). PhysioNet. RRID:SCR_007345. https://doi.org/10.13026/hxan-pe94。
注意 RRID:SCR_007345 是 PhysioNet 平台的资源标识,属于标准引用的一部分,别漏。
3.2 两层引用:数据与论文
条目页在引用部分分了两个层次。
第一层是数据集本身,就是上面那条。
第二层是关联论文。条目页写:Additionally, please cite the original publication,指的是 X. Jiang et al., “Open Access Dataset, Toolbox and Benchmark Processing Results of High-Density Surface Electromyogram Recordings,” IEEE Transactions on Neural Systems and Rehabilitation Engineering, DOI 10.1109/TNSRE.2021.3082551。
惯例上,论文里描述方法、报告基准结果时,两个都要引。只引数据集不引论文,审稿人通常会要求补;只引论文不引数据集,等于没有指明朝哪个版本、哪个 DOI。
还有一个第三层:PhysioNet 平台本身的标准引用。条目页也给了,是 Pollard 等人 2026 年发表在 Nature Health 上的平台介绍。这一条按各期刊要求,有的要求有的不要求。
3.3 下载的三种姿势
网页下载:条目页提供 ZIP 包,135.2 GB。这是最直接的方式,但单文件太大,网络中断就得重来。
wget 递归:条目页给了命令 wget -r -N -c -np https://physionet.org/files/hd-semg/2.0.0/。四个参数各有作用:-r 递归,-N 只取比本地新的,-c 断点续传,-np 不追到上级目录。这个组合最适合 142.8 GB 这种体量——中断了重跑同一条命令就接着下。
AWS 同步:aws s3 sync --no-sign-request s3://physionet-open/hd-semg/2.0.0/ DESTINATION。–no-sign-request 表示匿名访问,不需要凭据。
三种方式下完都要做同一件事:跑 SHA256SUMS.txt 的校验。这一步在 142.8 GB 的量级上不是可选项。
3.4 到手的实际形态
下载完成后是一个目录树,顶层五个子数据集文件夹加四个散文件。
第一件事建议先看 readme.txt(3.0 KB)和 equipment_info.pdf(40.7 KB)。readme 通常写版本变更与已知问题,equipment 写设备参数——这两份是条目页之外唯一的一手材料。
第二件事核对 RECORDS。它是 WFDB 的记录索引,把它和实际文件列表比对,能发现缺失。
第三件事才是加载数据。工具箱是 Matlab 的,条目页明确说了:to fully implement our toolbox, users still need a MATLAB license。没有 Matlab 授权的话,只能走 Python 的 WFDB 库自己写读取逻辑,功能会少一块——特别是运动单位分解那部分,工具箱里的实现依赖 Matlab。
§4 局限:二十个健全人、一个实验室、两天
4.1 样本量的真实含义
20 名受试者,12 男 8 女,年龄 22 到 34 岁。
这个数字在肌电数据集里不算小——比它小的公开数据集不少。但要把几个量级分清:
受试者是 20 人;每人两次,所以是 40 次会话;每次会话里,模式识别子集有数十个片段,其他子集也有各自的片段数;每个片段内部,2048 Hz 采样若干秒,切窗之后能得到成百上千个窗口。
从 20 到几十万,中间每一步放大都来自"同一个人身上的重复"。这些重复不提供独立信息。一个受试者的前臂解剖结构、脂肪层厚度、电极贴合状态,在几百个窗口里是常数。用随机切窗的方式做交叉验证,测试集里的窗口和训练集里的窗口来自同一个人的同一段连续记录,模型只要记住这个人的信号特征就能拿高分。
有效独立样本接近 20,最多接近 40(如果按会话算)。这个量级决定了能做的统计:组水平的均值比较可以,个体差异的建模很勉强,任何需要上百样本才能稳定的深度学习架构都只能靠强正则化硬撑。
4.2 单中心与单方法体系
全部数据在复旦大学一个实验室采集。这一条限制的影响比它听起来大。
采集环境唯一,意味着电磁噪声的谱形唯一。工频干扰的强度、房间里的其他设备、接地方式,两天之间一致,跨实验室则完全不同。模型如果在训练时隐式学到了"这个房间的噪声长这样",换到另一个实验室就会失效。而这份数据无法暴露这个问题,因为没有第二个实验室的数据。
电极放置也是唯一的。256 通道阵列贴在前臂的哪个位置、阵列的哪一行对齐肘窝、旋转角度多少,这些由实验者按一套固定的操作流程做。换个实验者、换套流程,信号的空间分布就变了。
作者在背景部分提到高密度肌电数据集 scarce,这话的另一面是:这份数据的价值很大程度来自稀缺,而稀缺也意味着没有第二份同类数据可以做外部验证。
4.3 标签是代理,而且是有偏的代理
模式识别子集的标签是"受试者被要求做的手势",不是"受试者实际做出来的手势"。
这两者之间隔着什么?隔着执行是否到位。条目页没有提到对每次试验做了执行质量检查——没有说剔除了多少不合格试次,没有说是否有实验者逐条确认手势到位。在这种设置下,标签反映的是指令,而信号反映的是执行。如果某次试验受试者注意力分散、做得不到位,标签仍然是那个手势,信号却是别的。
偏的方向可以推:受试者会努力做对,所以轻度不到位的情况多,严重偏离的情况少。但"多"到什么程度,没有数据。这构成一个系统性的标签噪声底,任何在这个数据集上报告的准确率,都包含这个噪声的贡献。
4.4 力是真力,但只在台面上
后四个子集同步记录指力,这在高密度肌电数据里是稀缺的配置。但力信号的来源要说清。
力来自力传感器,受试者用指尖按着传感器施加力。这是一个单点接触、方向受控的力学条件。真实抓握不是这样:手指绕着一个物体包绕,接触面是多点分布,力的方向随物体形状变化,还有摩擦与滑移。
从台面力到抓握力,中间缺的是接触力学的建模。用这份数据训练的力回归模型,输出的是"如果按这个姿势压在平面上会有多大合力",而不是"抓住这个杯子需要多大握力"。这两者在假肢控制里是不同的问题。
4.5 它测不到的那一维:神经驱动与肌肉状态的分离
表面肌电测的是肌肉纤维的电活动在皮肤表面的投影。它离神经驱动隔了两层:神经肌肉接头传递,以及肌肉纤维的体积传导。
这两层都不是常数。肌肉疲劳时,同一个运动单位的动作电位时长会变宽、传导速度下降,反映到表面肌电上是频谱左移。电极与皮肤之间的阻抗变化,会改变各通道的加权。皮下脂肪的厚度决定信号的空间模糊程度。
结果是:两段看起来相同的表面肌电,可能来自不同的神经驱动;两段看起来不同的,可能神经驱动相同只是传导条件变了。这份数据没有任何独立的、能分离这两层的手段——没有肌内电极,没有超声,没有力以外的生理参照(而力本身已经混入了执行差异)。
这决定了它的解释上限:可以研究"信号与手势/力之间的映射",不能研究"神经编码本身"。要越过这条线,得靠分解出运动单位——但那是在承认上面所有模糊的前提下做的,拆出来的结果仍然继承这些模糊。
4.6 两天够不够看漂移
这是这份数据设计上最值得推敲的一处。
两天能回答的问题:第二次比第一次差多少。这是一个点估计,一个差值。
两天不能回答的问题:这个差值随时间怎么变化。是第一天之后立刻变差、之后稳定?还是每天都在缓慢退化?两周后、一个月后是什么水平?要用假肢的人,关心的是后者。
两天也不能回答:这个差值的方向是否一致。有可能有的人第二次更好(第一天不熟悉任务,第二天熟练了),有的人第二次更差(电极位置偏了)。如果两个方向的人各占一半,平均差值接近零,看起来"跨天没有损失",但实际上每个人的表现都在随机波动。这时候需要看个体层面的方差,而不是均值。
4.7 数据质量清单(DAIMS)
按数据与人工智能就绪度评估的二十四个常见维度,挑几个关键项过一遍。
完整性:五个子数据集、四十个会话目录齐备。具体片段完整度未逐条核对(§2.6)。
一致性:命名规则统一,但五个子集之间不完全一致(§2.5),需要分别处理。
可追溯:有 DOI、有版本号、有变更历史(1.0.0 与 2.0.0)、有关联论文。追溯链完整。
许可清晰度:ODC-By 明文给出,条款原文在包内。清晰。
文档充分度:条目页写得很细——文件命名、矩阵形状、滤波参数、伦理批号都有。反向的不足是:手势清单、每个会话的片段数、两天之间隔了多久,这三项条目页没给。
预处理透明度:给了原始版与预处理版两套。滤波参数完整给出(10 至 500 Hz 八阶巴特沃斯带通,50 Hz 及至 400 Hz 谐波的陷波组合)。透明度高。
标签质量:指令型标签,无执行质量检查记录(§4.3)。
可复现性:工具箱公开在 GitHub(github.com/Open-EMG/toolbox),但依赖 Matlab 授权。
代表性:20 人、12 男 8 女、22 至 34 岁、健全人。对"前臂肌电的一般规律"有一定代表性,对残肢、老年人、儿童没有代表性。
其余维度(隐私、伦理、偏见、维护活跃度等)在条目页上没有对应信息,不做判断。
4.8 与相邻数据的分工
最容易和它混淆的三个方向,各自的差别是这样的。
与 NinaPro 系列:NinaPro 用普通双差电极,通道少、受试者多(含截肢者)、手势集是标准化的。Hyser 通道多两个数量级、受试者少、手势自定。前者适合做大规模跨受试者研究,后者适合做空间信息与分解。
与 CapgMyo:同样是高密度阵列手势数据,CapgMyo 通道数更高、受试者更少、没有力信号。Hyser 有力和两天重复。
与运动单位分解专用数据:那类数据通常用更密的阵列、更低的收缩力、配合肌内电极做验证。Hyser 的分解是"附带能力",不是为分解优化的采集条件。
§5 它能用来做什么
5.1 量化跨天性能损失
这是这份数据最直接、也最有价值的用法。
做法:用第一天训练、第二天测试,得到跨天准确率;再在同一天内随机切分训练测试,得到同日准确率。两个数字的差额就是跨天损失的估计。
这件事的价值在于它是一个可复现的基准。任何声称"解决了跨天泛化"的方法,都可以在同一份数据上用同一个划分方式报告,直接对比。而没有跨天数据的数据集,做不了这个对比。
需要注意的两点:一是划分必须按会话切,不能按片段随机切(§8.2);二是损失可能因人而异,报告时应该给分布,不只给均值(§4.6)。
5.2 研究电极位移的影响
条目页提到了信号质量评估(§5.6)这条研究线。两天重复的设置让"电极位移"这个因素变得可观测。
严格讲,这份数据不能直接测量位移——没有记录电极的三维位置。但可以间接做:如果模型在两天的表现差异主要出现在空间模式上(比如某些通道的重要性排序变了),那就指向位移;如果主要出现在幅度标度上,那更可能是阻抗。
这是一种"用性能差异反推物理原因"的间接推断,结论强度有限。但这已经比完全没有重复会话的数据强很多。
5.3 训练与评测指力回归
1dof、ndof、random 三个子集加起来提供了大量"肌电到力"的配对样本。这是它比纯分类数据集多出来的一块。
适合的任务:从 256 通道肌电预测五指的力曲线。可以做的对比:单自由度与多自由度的难度差多少;力轨迹已知与未知(random)的差别多大;用了空间信息比只看通道平均好多少。
要注意 force 文件的对齐。条目页说力与肌电同步采集,但采样率差二十倍(2048 对 100 Hz)。对齐方式在条目页里没有细说,重采样与时间偏移的处理需要自己确认(§11.2)。
5.4 做运动单位分解的方法学研究
工具箱带 ICA 分解功能。这意味着研究者可以在同一份数据上比较不同的分解算法。
高密度阵列做分解的难点是:通道多,源少,但源的位置和形状未知;不同运动单位的动作电位在阵列上有重叠;信噪比随收缩力升高而下降(因为更多运动单位同时活动,叠加更密)。这份数据的优点是有五个不同任务难度层次:MVC 是最高力,1dof 是中等力跟踪,random 是变化力。可以在同一批人身上看分解难度随力水平怎么变。
5.5 作为生物特征研究的材料
条目页的 Usage Notes 第五条专门讲了这一点:高密度肌电具有个体独特性,可以用作用户认证或身份识别。作者自己的研究用过 Hyser 的 PR 子集做生物特征认证。
这个方向的吸引力在于:肌电信号随人而异,且难以伪造。难点在于跨天稳定性——同一个人两天之间的肌电特征差异,可能大于两个人之间的差异。而这份数据恰好给了跨天的材料,所以能直接回答"这个生物特征稳不稳"。
伦理上要说一句:把生理信号当身份标识,涉及不可撤销的问题。密码泄露可以改,前臂肌电泄露改不了。这条在 §5.6 的"不能做什么"里会再提。
5.6 它不能用来做什么
不能验证残肢上的控制方案(§1.5)。
不能作为通用手势基准(§1.5)。
不能外推到临床人群。全部受试者健康、年轻。
不能当作实时系统性能的证明。离线数据,无实时约束。
不能用来做不可撤销的身份认证部署。作为研究可以,作为产品要慎重。
不能替代在真实假肢上的验证。台面力与抓握力不是一回事(§4.4)。
5.7 用之前必须先做的三件事
第一,读 equipment_info.pdf。电极型号、放大器规格、增益设置都在里面。不读它,.hea 里的标度因子对不对得上就没法确认。
第二,确认版本与 DOI。1.0.0 和 2.0.0 都还在,文件结构可能不同。用哪个版本,报告里要写清。
第三,先跑通一个小片段。随便挑一个 subject01_session1 的动态片段,用 WFDB 库读进来,确认矩阵形状是 NT 乘 256,确认力是 NT 乘 5,确认数值量级合理。这一步花五分钟,能省掉后面几小时的调试。
§6 常见误读
6.1 误读一:把二十个人当成几万个样本
这是最普遍的一个。做法是:把所有片段切窗,得到几万个窗口,然后随机分成训练集和测试集,报告准确率。
这么做的结果是准确率虚高。原因在 §4.1 说过:同一个人的窗口之间高度相关,随机切分让测试集里的窗口和训练集里的窗口来自同一段连续记录,模型只要记住这个人的特征就能拿高分。
正确的读法:凡是没有按受试者或按会话划分的准确率,都不能解释为"这个模型对新用户的表现"。它只能说明"这个模型对已经见过的人表现如何"——而这在假肢场景里是没有意义的,假肢要面对的是新用户。
6.2 误读二:把跨天损失当成算法缺陷
跨天性能掉下来,第一反应往往是"模型泛化性不好,要换个更强的模型"。
但跨天损失里有相当一部分不是模型的问题。电极位移、阻抗变化、肌肉疲劳,这些是物理层面的变化,任何模型都要面对。一个在物理层面做了补偿的系统(比如自适应归一化、在线校准)可能比一个更强的分类器更有效。
正确的读法:先分清损失来自哪里。如果同一会话内的准确率很高、跨会话骤降,问题在分布偏移;如果同一会话内就不高,问题在模型或特征。
6.3 误读三:把"能分解出运动单位"当成"能读出神经编码"
工具箱能跑 ICA 分解,能输出运动单位的发放序列。很容易顺着这个思路说"我们获得了神经驱动信息"。
分解出的是运动单位动作电位的发放时刻,这是肌肉层面的。从发放时刻到神经驱动,还隔着运动单位的类型(快肌慢肌)、募集顺序(大小原则)、以及运动神经元池的整体行为。
正确的读法:分解结果是"能观测到的最小单位",不是"神经意图"。说它比整块肌电更接近神经,是对的;说它就是神经编码,过头了。
6.4 陷阱一:混用原始版与预处理版
数据集里两版都有:raw 和 preprocess。文件名里只有 sigType 一个字段区分。
混用的后果:如果训练用 preprocess、测试用 raw(或者反过来),模型面对的是两个不同的滤波状态,性能会无缘无故掉下来,而且掉的原因很难排查——因为文件名只差一个词。
正确的读法:选定一版,全程用到底,并在报告里写明用的哪一版。我的建议是 preprocess——除非你的研究本身就是关于滤波的影响。
6.5 陷阱二:忽略陷波器的影响
预处理是 10 至 500 Hz 八阶巴特沃斯带通,加上 50 Hz 及至 400 Hz 各次谐波的陷波。
八阶是陡峭的。10 Hz 以下的成分基本被砍掉了。如果做的是低频成分分析(比如某些疲劳指标依赖于频谱重心下移),预处理版可能已经损坏了要看的信号,必须用 raw。
陷波器还有一个问题:它在谐波频率附近引入了相位失真。如果做的是跨通道的相位同步分析,这个失真会污染结果。
正确的读法:先想清楚要分析什么频段,再决定用哪一版。不要因为 preprocess 看起来"干净"就用它。
6.6 陷阱三:手指顺序搞反
力的五列顺序是拇指、食指、中指、无名指、小指。文件名里的 finger1 到 finger5 也是这个顺序。
解剖学文献里有时从桡侧数、有时从尺侧数,有时把拇指单列。如果按"从外到内"的习惯理解,会把小指当拇指。
后果是:力回归模型的五路输出整体错位,看起来每一路都有一点相关(因为相邻手指的力本身相关),但都不高。这种"都不高"的表现很容易被误判为"模型能力不足",而不是"标签错位"。
正确的读法:写死一个顺序,在代码里用常量声明,并加一条断言检查总通道数与列数。
6.7 陷阱四:把片段当独立样本做统计检验
要比较"单自由度任务比多自由度任务难多少",很自然地对每个片段算一个误差,然后做 t 检验。
问题在于片段之间不独立:同一个受试者的片段共享肌肉状态、电极位置、疲劳水平。把它们当独立样本,p 值会被严重低估。
正确的做法:先按受试者聚合(每人一个平均误差),再在 20 个受试者上做配对比较。这样有效样本是 20,虽然小,但至少是诚实的。或者用混合效应模型,把受试者作为随机效应。
6.8 陷阱五:把 142.8 GB 当成"信息量很大"
体量大不等于信息量大。二十个人重复很多次,压缩之后的有效信息可能只有几百兆的独立自由度。
这个误读的后果是选型错误:以为数据够多,就上大模型。实际上 20 个独立样本撑不起一个有几百万参数的网络,很快过拟合。
正确的读法:把 142.8 GB 看成"20 个人各录了很长时间",而不是"几万个独立样本"。这直接决定了该用什么复杂度的模型。
6.9 手势准确率高不等于假肢好用
这是整份数据最容易被越界使用的地方。
实验室里的手势分类,是在受控条件下、用贴在固定位置的阵列、做预先定义好的手势。真实假肢使用,是在未知环境里、电极可能移位、用户可能疲劳、手势可能介于定义之间。
从"分类准确率 96%“到"用户愿意用”,中间隔着可用性、延迟、误触发率、学习成本、外观等一系列工程与人的因素。这份数据只覆盖了第一环。
§7 与相邻数据的定位
7.1 与 NinaPro 的分工
NinaPro 是这一领域引用最广的肌电数据集系列,特点是通道少(一般十几个)、受试者多(上百)、手势多、且包含截肢者。
两者的分工很清楚:要做跨受试者的大规模统计,用 NinaPro;要做空间信息与运动单位层面,用 Hyser。
不可比的地方:通道数差一到两个数量级,任何直接比较准确率的做法都没有意义。
7.2 与 CapgMyo 的分工
CapgMyo 也是高密度阵列,电极更多(上百通道以上)、受试者更少、纯手势分类、没有力信号。
Hyser 相对它的增量是:力信号、五个子范式、两天重复。这三个增量恰好对应三类新研究问题(力回归、任务难度比较、跨天泛化)。
7.3 规模在整个生态里处于什么位置
按受试者数量:20 属于中偏小。
按通道数量:256 属于大。
按数据体量:142.8 GB 属于大。
按任务多样性:五个子范式,属于多。
这是一个"深而不广"的配置——在少数人身上做了很细的记录。这个配置的优点是比较精度高,缺点是外推能力弱。
7.4 与神经假肢研究线的接续
这条研究线的脉络大致是:从双差电极的宏观特征,到高密度阵列的空间特征,再到运动单位分解的微观特征。
Hyser 覆盖了后两段。它的工具箱同时提供了宏观(LDA 与深度学习分类)与微观(ICA 分解)两条路径,这个设计本身就是在说:这两条路都可以走,而且可以在同一份数据上比较。
条目页的背景部分引用的文献里,有多篇是作者自己在这个方向上的工作。这说明数据集不是孤立产出的,而是一条研究线的副产物——这通常意味着数据质量有保障,但也意味着数据的采集条件是按那条线的需求设计的,不一定适配所有用途。
7.5 适合谁用
适合:做肌电手势识别的团队,特别是关心跨天泛化的;做指力回归的;做运动单位分解方法学的;做高密度肌电信号处理的(压缩、质量评估、空间滤波)。
不太适合:需要大量受试者做统计的;研究截肢者控制的;需要临床标注的;算力或存储受限的。
§8 怎么用:分析方案
8.1 最小可用基线
在任何深度模型之前,先做这一件事:把 256 通道的信号按窗口取均方根或平均绝对值的简单特征,接一个线性判别分析。
不需要任何超参数调优,几分钟能跑完。得到的数字就是你后面所有模型的底线。
为什么这一步不能跳:如果某个复杂模型打不过这个基线,那不是模型不够好,而是数据准备或划分出了问题。先把这个基线钉死,后面每一步改进才有意义。
8.2 划分策略比模型选择更重要
这份数据必须用按会话的划分。
具体说:训练用 session1,测试用 session2。或者反过来。不能把两天的片段混在一起随机切分。
如果想估计"同日上限",可以在同一天内按片段切分,但要清楚这个数字的含义是"同一天内的泛化",不是"对的表现"。
三种划分能给三个差异很大的分数:
同一天内随机切分,最高,但没有实用意义。
按会话切分,中间,这是这份数据最该报告的指标。
跨受试者切分(用 19 个人训练,留 1 个人测试),最低,这是最接近"新用户"的设置。
我的建议:把后两个都报。跨会话报"老用户换天",跨受试者报"新用户首次使用"。两个数字一起,才能说明方法的鲁棒性。
8.3 指标怎么选
手势分类的主指标应该是宏平均 F1,而不是准确率。原因是 34 个类别,如果有类别不平衡(某些手势的试次少),准确率会被多数类主导。
同时要看混淆矩阵。肌电手势识别有一类典型错误:物理上相近的手势互相混淆(比如握拳与半握),而完全不同的手势很少错。混淆矩阵能把这个结构显示出来。
如果要报"分类器在 95% 准确率下的响应时间",那是另一个量纲的问题,需要结合实时系统的约束,这份数据答不了。
8.4 基线与它的意义
两类基线都要报。
数据基线:全部预测为最多的那个类别,得到的准确率。这是绝对下限。
方法基线:LDA 加简单特征(§8.1)。这是"不用深度学习能做到什么"。
有了这两个数,你的复杂模型提升多少才有参照。只报自己模型的结果,读者无法判断这个结果好不好。
8.5 过拟合的典型表现
这份数据上,过拟合有几种可辨认的形态。
训练准确率接近 100%,测试准确率六成。这是典型的记忆。可能原因:模型太大,或者划分错了(把同一个人同一天的片段分到了两边)。
同日测试高,跨天测试崩。这不是过拟合,是分布偏移(§6.2)。要区分开。
所有类别都降一点。这是普遍性的漂移,可能是幅度标度变化。
某几个类别崩了,其他正常。这通常指向电极位移——某些手势依赖的肌肉区域恰好被移到了阵列边缘。
验证集准确率高,测试集低。这是超参数在验证集上过拟合,通常因为验证集太小(20 个人,留出 4 个就只有 4 个)。
8.6 具体的数据处理建议
先做幅度归一化。每个会话、每个通道,除以该通道在该会话内的某个稳健统计量(比如中位绝对偏差)。这一步能消掉阻抗变化带来的标度差异,通常是跨天损失第一大的可消除项。
不要做跨通道的归一化。256 个通道的空间分布本身就是信息,除以全局统计量会把空间梯度抹平。要按通道单独归一化。
考虑空间滤波。高密度阵列的好处是有空间结构,简单的拉普拉斯滤波(每个通道减去邻居均值)能提高空间分辨率,抑制深层的远场。这一步用不用、怎么用,取决于任务。
窗口长度要试。模式识别子集的动态段只有 1 秒,维持段 4 秒。窗口太长(比如 2 秒)会在动态段上溢出边界。
8.7 五条失败模式
一,加载后数值量级不对。多半是没做 .hea 的标度还原,或者做反了(乘除颠倒)。检查方法:看一段静息期的信号幅度,正常前臂表面肌电的峰峰值在几十到几百微伏。
二,通道顺序错乱。高密度阵列的通道在 .dat 里有个排列顺序(行优先还是列优先),如果搞错,空间激活图会变成棋盘状。
三,力与肌电对不齐。两者采样率差二十倍,如果直接按索引对齐,会错位几十毫秒到上百毫秒。力回归的误差会莫名其妙地大。
四,手指顺序错(§6.6)。五路输出整体错位。
五,把 raw 和 preprocess 混用(§6.4)。命名只差一个词,脚本里很容易搞混。
8.8 结果该怎么读
拿到一个跨会话准确率,比如 78%,可以写什么结论?
可以写:在受试者内部、跨会话的条件下,用 N 通道、M 长度的窗口、某特征、某分类器,达到 78% 的 34 类准确率。相比同日随机切分的 96%,跨天损失 18 个百分点。
不可以写:这个方法可以用于假肢控制。这个准确率接近临床可用。这个结果对新用户也成立。
不可以写:与某文献报告的 82% 相比我们的方法较差。除非划分方式、通道数、窗口长度、特征全部对齐,否则跨研究比较没有意义。
8.9 与人工判读的比较
肌电手势识别没有"人工判读"这个参照——没有人能看着一段前臂肌电说出受试者做的是哪个手势。
这一点和影像、心电不同。那些领域有金标准可以对照,性能有绝对参照系。肌电这里,唯一的参照是标签(受试者被要求做的动作),而标签本身就是有噪声的(§4.3)。
所以在这份数据上,"人类水平"这个概念不适用。任何声称"接近人类专家"的说法都是错的。
8.10 先错误分析再调模型
一个实操建议:拿到结果后,不要立刻去调超参数。先做错误分析。
具体做三件事:看混淆矩阵,找出最容易混的三对手势;看错例的时间分布,是不是集中在片段开头(过渡期);看错例的受试者分布,是不是集中在某几个人(可能是电极贴得不好)。
这三件事做完,通常能发现问题的性质是数据问题还是模型问题。数据问题调模型没用。
§9 三条技术路线
9.1 宏观特征加传统分类器
路线:按窗口提取特征(均方根、波长、过零率、斜率符号变化数、以及它们的组合),接 LDA、SVM 或随机森林。
这是最成熟的路线,计算量小,可解释,在通道少的数据上表现很好。在这份 256 通道的数据上,做法有两种:把所有通道的特征都提出来拼成一个大向量,或者先做通道选择/降维再提。
工具箱里的 LDA 分类就是这条路线。
优点:训练快,样本需求小(20 个人也能训练),失败时容易诊断。
缺点:手工特征的天花板明显,难以利用空间结构。
9.2 空间信息加运动单位分解
路线:把 256 通道的信号看成时空矩阵,用 ICA 分解出运动单位的发放序列,再从发放序列提取特征做分类或回归。
这是高密度阵列独有的路线,也是这份数据带工具箱的主要目的。
做法要点:分解前要确定源的数量(通常用主成分的累积方差或信息准则估计);分解后要筛掉明显是噪声的成分;发放序列要转成平滑的发放率曲线才能做后续分析。
优点:得到的是生理上有意义的量,可解释性强,理论上跨天更稳(因为运动单位的空间分布在同一个人身上是相对固定的)。
缺点:计算量大,分解质量随收缩力升高而下降,参数敏感。
9.3 端到端深度学习
路线:直接把 256 通道的时序送进卷积网络或时序网络,输出类别或力值。
优点是省掉特征工程的全过程,能自动学空间与时间的联合模式。
缺点是这份数据上有个硬约束:20 个独立样本。端到端网络参数量动辄百万,靠 20 个人训练,必须用很强的正则化(dropout、权重衰减、数据增强、早停),而且验证集只有 4 个人(如果 5 折按受试者分)。
一个折中做法:先在大量无标注的肌电数据上预训练(如果有),再在这份数据上微调。但公开的高密度肌电数据本来就 scarce,这条路不好走。
9.4 一个被忽略的中间路线
在宏观特征与端到端之间,还有一条:用空间滤波器。
具体做法:先学一组空间滤波器(比如共空间模式 CSP 的多类扩展,或者基于任务相关成分分析),把 256 通道投影到少数几个判别性强的空间成分上,再对这些成分提时序特征。
这条路线的好处是:它利用了空间信息(这是高密度的核心优势),但参数量很小(滤波器组的大小是通道数乘成分数),20 个人也撑得住。
缺点是需要设计多类别的空间滤波目标函数,比二分类的 CSP 复杂。
9.5 选择建议
按研究目的选:
想快速拿到一个可信的数字,用 9.1。
想研究神经肌肉机制,用 9.2。
想做方法学创新并有大算力,用 9.3,但要接受小样本的约束。
想在两者之间找平衡,用 9.4。
按可用资源选:只有 CPU,9.1 或 9.4;有 GPU,9.3;有 Matlab 授权且想做分解,9.2。
三条路线不是互斥的。一个常见的组合是:用 9.2 的分解结果作为 9.1 的特征输入,或者用 9.4 的空间滤波器做前端、9.3 的网络做后端。
§10 术语
高密度表面肌电(HD-sEMG):用多通道电极阵列在皮肤表面记录肌电,通道数通常在数十以上,能提供空间分布信息。这份数据是 256 通道。
运动单位:一个运动神经元及其支配的全部肌纤维。它是肌肉收缩的最小控制单元。
运动单位动作电位:单个运动单位在一次发放时,在电极上产生的电位波形。
分解:从表面肌电的混叠信号中分离出各个运动单位的发放序列。常用独立成分分析等方法。
最大自主收缩(MVC):受试者在无外界阻力下尽力收缩所能达到的最大力。常用于力的归一化。
目标力轨迹:实验者预先设定、受试者需要跟随的力随时间变化的曲线。
自由度(DoF):这里指独立控制的手指数量。单自由度是单指,多自由度是多个手指的组合。
跨天泛化:模型在同一天的数据上训练,在另一天的数据上测试时的表现。区别于同日泛化。
ODC-By:Open Data Commons Attribution License,要求署名、允许商用与派生的一种开放数据许可。
WFDB:Waveform Database,PhysioNet 使用的生理信号存储格式,每条记录由 .dat(数据)与 .hea(头文件)成对构成。
增益与基线:.hea 里记录的两个参数,用于把 .dat 里的 16 位整数还原为物理量。物理值等于(整数减基线)除以增益。
陷波器:在特定频率上强烈衰减的滤波器,用于抑制工频干扰及其谐波。
宏平均 F1:先对每个类别算 F1,再对所有类别取平均。类别不平衡时比准确率更能反映真实性能。
线性判别分析(LDA):一种线性分类方法,假设各类别数据服从同协方差的高斯分布。在肌电识别里是长期使用的基线。
独立成分分析(ICA):一种盲源分离方法,假设观测信号是若干独立源的线性混合,通过最大化非高斯性来估计源。
§11 事实清单
11.1 核心事实
| 项目 | 值 |
|---|---|
| 数据集全名 | Open Access Dataset and Toolbox of High-Density Surface Electromyogram Recordings |
| 简称 | Hyser |
| DOI(v2.0.0) | 10.13026/hxan-pe94 |
| DOI(最新版) | 10.13026/t9wv-d929 |
| 关联论文 DOI | 10.1109/TNSRE.2021.3082551 |
| 版本 | 2.0.0(前版 1.0.0) |
| 发布日期 | 2023-12-28(v2.0.0);2021-05-28(v1.0.0) |
| 作者 | Xinyu Jiang、Chenyun Dai、Xiangyu Liu、Jiahao Fan |
| 机构 | 复旦大学信息科学与技术学院;华东理工大学艺术设计与传媒学院(第三作者) |
| 伦理批号 | 复旦大学伦理委员会 BE2035 |
| 许可 | Open Data Commons Attribution License v1.0 |
| 受试者 | 20 人,12 男 8 女,22 至 34 岁,手指完整 |
| 会话数 | 每人 2 次,相隔数日,共 40 次 |
| 肌电通道数 | 256 |
| 肌电采样率 | 2048 Hz |
| 力采样率 | 100 Hz |
| 肌电预处理 | 10–500 Hz 八阶巴特沃斯带通 + 50 Hz 及至 400 Hz 谐波陷波 |
| 力预处理 | 八阶 10 Hz 低通巴特沃斯 |
| 子数据集数 | 5 |
| 手势数 | 34(动态与维持两类任务) |
| 手指组合数 | 15 |
| 未压缩总量 | 142.8 GB |
| 压缩包 | 135.2 GB |
| 文件格式 | WFDB(.dat 配 .hea);标签为 txt 逗号分隔 |
| 工具箱 | github.com/Open-EMG/toolbox(Matlab) |
| 资助 | 上海市科委重大项目 2017SHZDZX01;上海市浦江人才计划 19PJ1401100 |
| 利益冲突 | 作者声明无 |
11.2 六个可立即验证的疑问
一,两天之间到底隔了多久? 拿到数据后看文件名里没有日期,需要查关联论文的方法部分。verifiable:查论文 Methods 里 session 的时间描述。
二,每个会话里到底有多少个片段? 数 pr_dataset 下某个 subject_session 目录里的 dynamic_raw_sample*.dat 文件个数,或者读 label_dynamic.txt 的列数。
三,34 种手势具体是哪 34 种? 条目页没列。关联论文里应有图或表。拿到论文即可确认。
四,力与肌电的时间对齐是怎么做的? 条目页只说同步采集,没给同步机制(硬件触发还是软件时间戳)。看 equipment_info.pdf 或论文 Methods。
五,1.0.0 与 2.0.0 之间改了什么? 两个 DOI 都在。比对两个版本的 RECORDS 或 readme,或者看 PhysioNet 的版本说明。
六,通道在阵列上的排列顺序是行优先还是列优先? .hea 里通常有通道标签,读一个 .hea 看标签的编号规律即可确定。
11.3 一条受试者的读取流程
以下是读一个片段的骨架,不含完整实现。
第一步,装 Python 的 wfdb 库,或者用作者的 Matlab 工具箱。
第二步,确定要找的文件。比如想读 subject03、session1 里的第一个动态片段:路径是 pr_dataset/subject03_session1/dynamic_preprocess_sample1,读取时不需要扩展名,wfdb 会自动找配对的 .dat 与 .hea。
第三步,读信号。返回的矩阵是 NT 乘 256,一列一个通道。数值已经过标度还原,单位是毫伏或微伏(看 .hea 的 units 字段)。
第四步,读标签。label_dynamic.txt 是逗号分隔的一行,第 k 个数对应 samplek。
第五步,截图或画图确认。画出前三个通道的波形,看是否有明显的收缩起止。
第六步,如果要读力,同名规则换成 mvc、1dof、ndof 或 random 的前缀,sigType 换成 force,得到 NT 乘 5 的力矩阵。
11.4 附录 A:一次跨天评测的骨架
思路如下,不写具体代码。
数据准备:选一个子集,比如 pr_dataset。对 20 个受试者,各取 session1 与 session2。
划分:训练集放全部 20 人的 session1,测试集放全部 20 人的 session2。这是"跨会话、受试者内"的设置。
另两个对照:把 session1 内部按片段随机切分,得到同日随机基线;用 19 人训练 1 人测试(循环 20 次),得到跨受试者基线。
预处理:按通道做稳健归一化,用 session 内的统计量(不能用测试集的统计量,那会泄漏)。
特征:窗口化,窗长 200 毫秒,步长 50 毫秒,每窗每通道算均方根再加波长,拼成大向量。
分类器:LDA。训练,测试,报宏平均 F1。
要报的三个数字:同日随机、跨会话、跨受试者。三个数字的差,就是两种分布偏移各自的代价。
补充分析:按受试者拆开看跨会话准确率,画一个分布图。如果分布是双峰的,说明有些人受跨天影响大有些人小,值得进一步分析。
11.5 附录 B:证据链
按章节交代信息来自哪里。
§1:数据集定义、五个子范式、受试者人数与人口学特征,来自条目页 Abstract 与 Methods。四条边界里的"手势自定 34 种"来自 Abstract 原文 34 hand gestures。"两天不是具体隔几天"是条目页缺失,属编辑指出。"力是台面力"来自 Methods 里 force 信号的描述,属编辑推断(条目页没明说传感器安装方式,但"指力跟踪目标轨迹"这一表述指向台式测力)。
§2:目录体积、文件格式、命名规则、矩阵形状,全部来自条目页 Data Description 与 Usage Notes。四十个文件夹的核对、五个子集命名规则的差异,是编辑实际访问 PhysioNet 文件目录后核对的。"RECORDS 行数区间"是由字节数反推的估算,已在正文标明。
§3:许可、引用格式、下载方式,来自条目页 Access 与引用部分。"三层引用"的层次划分属编辑整理。
§4:受试者特征来自 Methods。单中心、电极放置、标签性质的分析属编辑推断,条目页未直接讨论。"两天不够看漂移"是编辑的判断。
§5:Use of Notes 里作者列了五条研究方向(神经假肢控制、信号压缩、质量评估、神经肌肉生理、生物特征),§5.1 至 5.5 与这五条有对应,但具体做法与限制是编辑展开的。
§6:全部为编辑基于数据结构的分析,条目页没有对应的"常见误读"讨论。
§7:与 NinaPro、CapgMyo 的对比基于公开常识,条目页的参考文献里有相关引用但不是直接对比。
§8:全部为编辑的方法学建议,非条目页内容。
§9:三条技术路线的划分属编辑整理。工具箱支持 LDA 分类与 ICA 分解,来自条目页 Methods 与 Background。9.4 的空间滤波路线条目页未提及,是编辑补充。
§10:术语定义为通用定义,非条目页原文。
§11.1:全部数值取自条目页可核对处。资助与利益冲突来自条目页 Acknowledgements 与 Conflicts of Interest。
§11.2:六个疑问中,前五个是条目页的信息缺口,第六个可从 .hea 文件直接读出。
未验证的部分:本页不包含任何按文件逐条统计得到的片段数、总文件数、通道排列顺序。这些需要下载数据后核对,在 142.8 GB 的体量下不在本页范围内。
编辑说明
本页依据 PhysioNet 条目页(https://physionet.org/content/hd-semg/2.0.0/)公开表述撰写,并实际访问了该项目的文件目录以核对子数据集结构与命名规则。
需要说明的几处判断:
一是关于"两天之间隔了多久"。条目页只写 separate days,不给具体间隔。本页在 §1.1、§4.6、§11.2 三处都标明了这是缺失信息,未做任何推测。
二是关于力传感器的安装方式。条目页描述了受试者按目标力轨迹施加指力,但未明说传感器是台面固定式还是其他形式。本页在 §4.4 采用"台面力"的表述,属推断,已在 §11.5 的证据链中标注。
三是关于 RECORDS 与 SHA256SUMS.txt 的行数。本页只给出由文件字节数反推的区间,并在正文明确标注为估算。未声称实际计数。
四是关于三个技术路线的划分。三条路线(宏观特征、运动单位分解、端到端)以及补充的空间滤波路线,是编辑为组织内容所做的归类,不是条目页的框架。
五是关于与 NinaPro、CapgMyo 的对比。条目页的参考文献引用过相关领域文献,但没有做数据集间的直接比较。本页的对比基于公开常识,属编辑判断。
资助与利益冲突两节内容照录条目页原文,不含评价。
相关数据集导航
以下为站内 AI-Ready 数据集百科中与本词条共享多个主题标签的相关数据集,按相关度降序排列:
- hospital-activity-bosch — 共享标签:生理信号 / 电子健康记录 / 步态与运动 / 评测基准
- tpehgt — 共享标签:生理信号 / 电子健康记录 / 评测基准
- actes-cycloergometer-exercise — 共享标签:生理信号 / 步态与运动 / 评测基准
- gaitpdb — 共享标签:生理信号 / 步态与运动 / 评测基准
- mimic3wdb — 共享标签:生理信号 / 电子健康记录
- mimic3wdb-matched — 共享标签:生理信号 / 电子健康记录
- mimic4wdb — 共享标签:生理信号 / 电子健康记录
- kinecal — 共享标签:生理信号 / 步态与运动 / 评测基准
- accelerometry-walk-climb-drive — 共享标签:生理信号 / 步态与运动 / 评测基准
- scientisst-move — 共享标签:生理信号 / 步态与运动 / 评测基准
导航说明:本章节由全站统一标签体系自动计算生成(标签重合度算法),双向可达;点击链接可跳转至对应数据集词条。

