信息速览
卒中康复研究里有一个反复出现的尴尬:药物在小鼠身上看得到趋势,到了行为学终点就看不出来。原因往往不在于药,而在于评估工具的分辨力。圆柱攀爬测的是前爪不对称,需要人一帧一帧看录像,判一只前爪是在撑壁还是在探空,判完还要数清左右各撑了几次。一天能判的段数有限,判的人还会累。
华盛顿大学神经科的一组研究者把这件事做成了可复用的素材。五十九只小鼠在左侧前爪感觉运动皮层接受光栓卒中,之后每天给药,在五个时间点各做一次攀爬试验,全程从正上方录像,再由人逐帧打上四类标签。这套素材 2026 年 3 月 4 日以首个公开版本挂上 PhysioNet。
它对你的价值不在于提供了多少只动物,而在于把一类长期靠人工打分的试验,第一次以逐帧标签的形式交到了算法手里。下面先说清它是什么、不是什么,再谈怎么接。一屏速览见下表。
| 维度 | 内容 |
|---|---|
| 全名 | Longitudinal Cylinder Rearing Behavioral Data in a Mouse Stroke Model Across Multiple Drug Treatments |
| 项目名 | mouse-stroke-cylinder-rearing |
| 发布平台 | PhysioNet(MIT 计算生理学实验室维护,RRID:SCR_007345) |
| 版本 | 1.0.0,2026 年 3 月 4 日,首个公开版 |
| 署名作者 | 姜云浩、Shreyas Venkitaraman、Hee Ra Jung、Spencer Blackwood、Jake Lee、Arnav Ajay Jadav、David Lee、Aizad Kamal、Eric C. Landsness |
| 机构 | 华盛顿大学医学院神经科(圣路易斯) |
| 动物 | 59 只雄性小鼠;年龄 12 至 16 周(年龄取自关联论文) |
| 分组 | 溶媒 16、唑吡坦 14、仑博雷生低剂量 14、仑博雷生高剂量 15 |
| 时间点 | 基线、梗死后 48 小时、治疗后第 2、4、8 周,共 5 次 |
| 视频 | 295 段 MP4,底视,单段上限 5 分钟,15 帧每秒 |
| 标注 | 逐帧四类(左爪、右爪、双爪、无爪),另有帧计数与事件计数两套摘要 |
| 目录层级 | dataset/<时间点>/<耳标号>/,两级之下每会话两个文件 |
| 摘要视角 | 每段视频开头有一张写有鼠号的卡片 |
| 体积 | 未压缩 21.1 GB;三段 ZIP |
| 许可 | ODC 署名 1.0,免注册 |
| DOI | 10.13026/8bnm-6e37(最新版 10.13026/tyn4-2a75) |
§1 它要解决的具体麻烦
1.1 一场五分钟的试验,判起来要一小时
圆柱攀爬的操作很简单:把小鼠单独放进一个透明圆柱,让它用后肢站立、用前爪扶壁探索。健康小鼠在陌生环境里会反复起立,两只前爪轮流或同时撑壁;一侧初级运动皮层受损的动物,偏向用同侧前爪,患侧前爪撑壁的次数下降。把左右次数代入一个分数,就得到不对称度。
麻烦出在「数」这件事上。起立动作零碎、重叠、转身频繁,一只前爪搭上去两秒又落下,另一只接上,中间还有全身贴壁、只用一只后肢支撑、悬在半空这些既不算左也不算右的状态。想数准,只能逐帧看,判这一帧属于哪一类,再数连续同类帧构成的完整动作。一分钟录像约九百帧,五分钟四千多帧,判完一段再写完标签,人力成本远高于试验本身。
自动步态分析一度被当作替代方案。官方引用的方法学论文做过直接比较:同一批光栓卒中小鼠同时做圆柱攀爬、CatWalk 自发步态、DigiGait 强制跑台与旷场活动,结果只有圆柱攀爬在急性期与亚急性期都分出卒中与假手术的差异,三个自动步态测试都没分出来。换句话说,被寄希望于替代人工的那条路没走通,反倒是要替代人工的那份人工记录,先把差异测出来了。
于是这份数据的位置变得清楚:它把最难规模化的那一环,从一次试验里的一小时人力,变成了一份可以反复训练的素材。后续哪怕还是要人看,也可以先让模型看一遍。
| 方案 | 观测方式 | 能否分出卒中与假手术 | 人力成本 |
|---|---|---|---|
| 圆柱攀爬(人工评分) | 前爪撑壁次数与左右分布 | 急性期与亚急性期均能 | 高,逐帧判定 |
| CatWalk 自发步态 | 玻璃跑道上的足印与步序 | 关联论文中未显著 | 低,设备自动 |
| DigiGait 强制跑台 | 跑带下的高速相机与爪印 | 关联论文中未显著 | 低,设备自动 |
| 旷场活动 | 水平与垂直运动总量 | 关联论文中未显著 | 低,视频追踪 |
这张表也解释了数据为什么值得公开:被证明有效的那一格,恰恰是最费人的一格。
1.2 三条常见的错误期待
第一条,期待它是带骨骰架的视频库。很多人看到「behavioral data」与「video」两个词,会默认附带 DeepLabCut 或 SLEAP 一类的关键点输出:每帧若干关节坐标、置信度、个体编号。这份数据里一帧坐标都没有。它给的是每帧一个类别标签,四个取值。想做姿态分析,视频是原料,姿态要自己算。
第二条,期待它是卒中与对照两组。名字里的关键词是「multiple drug treatments」,分组逻辑不是「病与不病」,而是「同一造模之下四种给药」。四组全部接受光栓造模、全部接受每天灌胃。溶媒组承担对照角色,不是未造模的空白。想要健康的基线,只能用基线时间点那一列,而那一列同样来自已经造模、只是尚未发病的动物。
第三条,期待它能直接做药效结论。数据里没有任何统计模型的输出,也没有预先声明的分析计划。分组人数从十四到十六,每只鼠每个时间点只有一段五分钟视频,个体差异、日内波动、标注者差异都可能盖过药效。把它当药效证据来引,是把一份素材用成了结论。
1.3 它能给到的与给不到的
| 你的需求 | 它给的 | 够不够 |
|---|---|---|
| 训练一个逐帧判断前爪状态的分类模型 | 295 段视频 + 逐帧四类标签 | 够,直接可作监督信号 |
| 研究卒中后前爪不对称的恢复轨迹 | 5 个时间点,跨 8 周 | 够,自带恢复期样本 |
| 比较四种给药组之间的行为差异 | 每只鼠的组别表 + 逐段计数 | 够做描述,做推断要看把握度 |
| 提取小鼠关键点或骨架 | 只有视频,无坐标 | 不够,需自建姿态模型 |
| 研究前爪离地的精细节律 | 只有 15 帧每秒、每帧一类 | 勉强,时间分辨率低 |
| 做健康与卒中的二分类 | 无健康组 | 不够,只能用基线作参照 |
| 复现药效的显著性结论 | 无分析脚本、无统计结果 | 不够,官方未提供 |
| 在嵌入式或低算力环境部署 | 视频分辨率高、码率高 | 需要先降采样,非开箱即用 |
1.4 你的处境与它能帮到的事
| 你的处境 | 它能帮你什么 | 下一步该做什么 |
|---|---|---|
| 你在做行为学自动评分,但只有自己实验室的几十段录像 | 近三百段带逐帧标签的同类素材,可作外部验证 | 先用 §4.2 的案例摸清单段的读取与对齐,再扩到全量 |
| 你手上有姿态模型,缺带行为标签的验证集 | 视频与标签一一对应,可按帧比对 | 把模型输出的爪尖坐标聚成四类,再与官方标签算混淆 |
| 你在做卒中恢复的纵向建模 | 五个时间点、跨八周的重复测量 | 按鼠划分训练与测试,任何折都不能跨鼠 |
| 你需要一份教学用的视频标注样例 | 目录整齐、标签语义清楚、文件小 | 只取 §2.3 里那样的一段,几十兆即可 |
| 你想验证人工评分的主观性有多大 | 四人标注、同一判据 | 官方未给分段标注者编号,只能比较不同段的风格漂移 |
| 你在评估现有商业行为设备的敏感度 | 有直接比较四种测试的关联论文 | 引论文结论,不要自己用本库重做比较 |
1.5 一句话判断
它把一项靠人逐帧数前爪撑壁次数的试验,连同四个月的随访与四种给药,压成了二百九十五段带标签的底视视频;标签是行为,不是姿态。
1.6 不适合谁:四条边界
不适合想要姿态或骨架的人。 没有坐标、没有包围框、没有个体掩膜。任何以关键点为主键的流水线,拿到这份数据都得先补一个姿态前端。
不适合想要健康对照的人。 四组全部造模,基线时间点是发病前的同一批鼠,不是独立健康群体。想比较「卒中与正常」,只能把基线当自身对照,而这与真正的健康对照并不等价。
不适合剂量效应或性别差异研究。 只有雄性、单一品系、单一造模位点,三种剂量里两档是同一药物的高低剂量,另一档是不同机制的药。样本量不支持剂量反应曲线的拟合。
不适合追求高时间分辨率的人。 15 帧每秒,一个起立动作通常持续数十帧到上百帧,够判定类别,不够刻画爪与壁接触的瞬间力学或亚百毫秒级的节律。
§2 数据构成与规格
2.1 三层目录,两种文件
整包解压后是一个名为 dataset 的目录,根层放三份 CSV 与一份说明文件,再往下按时间点分五个子目录,每个子目录按耳标号再分一层,最内层是每只鼠一个文件夹,里面固定两个文件。
| 层级 | 名称 | 内容 | 文件数 |
|---|---|---|---|
| 0 | dataset/ |
根目录 | 4 份说明与汇总 |
| 1 | bsl md wk2 wk4 wk8 |
五个时间点 | 5 个目录 |
| 2 | 耳标号,如 14 63 82 |
单只鼠 | 59 个目录 |
| 3 | bsl_14.mp4 |
该次试验的录像 | 295 段 |
| 3 | bsl_14_score.csv |
该次试验的逐帧标注 | 295 份 |
文件名由时间点与耳标号拼成,中间用下划线连接,两个文件共享同一前缀。这种命名的好处是可以只靠文件名完成表连接,不需要额外的清单文件;坏处是耳标号只是两位数或一位数的整数,脱离 CSV 就无法知道它属于哪一组。
耳标号的取值不是连续排列,从十四到八十二之间跳过了若干号。这几号属于同批但未进入本库的动物,官方没有交代去向。做全量遍历时,不要假设号码连续,也不要用号码区间的长度去除总数。
#-- 只列出会话目录,不下载视频
curl -sL "https://physionet.org/files/mouse-stroke-cylinder-rearing/1.0.0/dataset/" \
| grep -oE 'href="(bsl|md|wk2|wk4|wk8)/"' | sort -u
2.2 字段与记录的完整字典
根层三份 CSV 的列都不多,但没有一份能单独用。会话级信息在 all_scores.csv 与 all_scores_nonconsecutive.csv 里,鼠级信息在 drug_group_assignments.csv 里,逐帧信息只在内层的标注文件里。
| 文件 | 列 | 类型 | 含义 |
|---|---|---|---|
drug_group_assignments.csv |
eartag |
整数 | 耳标号,鼠只唯一标识 |
drug_group_assignments.csv |
drug_group |
字符串 | Vehicle、Zolpidem、LEM10、LEM30 之一 |
all_scores.csv |
timepoint |
字符串 | bsl、md、wk2、wk4、wk8 之一 |
all_scores.csv |
eartag |
整数 | 同上 |
all_scores.csv |
l |
浮点 | 该段视频被标为左爪的帧数 |
all_scores.csv |
r |
浮点 | 该段视频被标为右爪的帧数 |
all_scores.csv |
b |
浮点 | 该段视频被标为双爪的帧数 |
all_scores.csv |
n |
浮点 | 该段视频被标为无爪的帧数 |
all_scores_nonconsecutive.csv |
同上五列 | 浮点 | 同为四类,但计数单位是事件而非帧 |
内层 *_score.csv |
label |
字符串 | 逐帧类别,l/r/b/n |
内层 *_score.csv |
l r b n |
浮点 | 仅前两数据行有值,其余为空 |
label 这一列的取值只有四个字母,语义在页面上对应为左前爪、右前爪、双前爪、无爪。字母取的是英文首字母,与 CSV 首行表头一致,没有第二套缩写。
| 标签 | 全称 | 判定条件(页面表述) |
|---|---|---|
l |
left | 左前爪明显撑在圆柱壁上并承重 |
r |
right | 右前爪明显撑在圆柱壁上并承重 |
b |
both | 两只前爪同时撑壁并承重 |
n |
neither | 无法看清,或前爪未承重 |
n 这一类承担了两个不相干的含义:真实的「两只爪子都没碰壁」,以及「画面被反光、身体或液体挡住,判不了」。这两者被合在同一个标签里,是后面所有分析都要先想清楚的一件事。
2.3 一条记录的完整解剖
以耳标号十四的基线会话为例,也就是 §4.2 的案例所用的那一段。它的两个文件加起来约七十五兆字节,其中视频占绝大部分。
dataset/bsl/14/
├── bsl_14.mp4 74,801,907 字节
└── bsl_14_score.csv 31,158 字节
标注文件的头部三行原文如下,制表符与空值按文件原样。
label,l,r,b,n
n,53.0,58.0,218.0,4049.0
n,29.0,32.0,31.0,32.0
n,,,,
n,,,,
第一行是表头,第二行是帧计数,第三行是事件计数,第四行起是逐帧标签。前两行的首列都写作 n,容易被当成第一帧的标签而误读——实际这两行的首列是占位,真正的标签从第四行开始。
把第二行四个数相加,五十三加五十八加二百一十八加四千零四十九,等于四千三百七十八。文件总行数四千三百七十九,减去表头一行,等于四千三百七十八个数据行。前两行是摘要,真正的帧标签行数是四千三百七十六。四千三百七十六除以十五,约二百九十一点七秒,与视频容器里记录的二百九十一点八六七秒吻合。这是一次很干净的核对:帧数、帧率、时长三者对得上。
第三行给的是另一套口径。事件数把连续同标签的帧压成一次,于是无爪从四千零四十九帧变成三十二次,双爪从二百一十八帧变成三十一次。帧计数反映前爪在壁上停留了多久,事件计数反映它起立了几回。两套口径不能混用,也不该相加。
#-- 读一段标注,取出逐帧序列并核验帧数与时长
import csv
path = "dataset/bsl/14/bsl_14_score.csv"
rows = list(csv.reader(open(path, encoding="utf-8")))
header, frame_row, event_row = rows[0], rows[1], rows[2]
labels = [r[0] for r in rows[3:] if r and r[0]]
frame_counts = dict(zip("lrbn", map(float, frame_row[1:])))
event_counts = dict(zip("lrbn", map(float, event_row[1:])))
print("帧标签行数", len(labels), "摘要合计", int(sum(frame_counts.values())))
print("按 15 帧每秒推算时长", round(len(labels) / 15, 1), "秒")
print("事件数", {k: int(v) for k, v in event_counts.items()})
运行的输出是帧标签行数四千三百七十六、摘要合计四千三百七十八、推算时长二百九十一点七秒。摘要合计比帧标签行数多两行,因为摘要本身占了两行且首列写作 n。这个小错位是读取时最常见的一处坑。
| 观察项 | 帧计数口径 | 事件计数口径 |
|---|---|---|
| 单位 | 帧 | 连续同标签的片段 |
| 左爪 | 53 | 29 |
| 右爪 | 58 | 32 |
| 双爪 | 218 | 31 |
| 无爪 | 4049 | 32 |
| 合计 | 4378 | 124 |
| 合计口径 | 应等于视频总帧数 | 应等于片段边界的翻转次数 |
| 适合的模型 | 时间占比、类间比例 | 起立频次、动作次数 |
四百三十八帧里有四千零四十九帧被标为无爪,占九成以上。这个比例不是数据质量差,而是圆柱试验的常态:小鼠大部分时间在底部走动、嗅探、理毛,起立是间歇发生的。任何按帧平均的指标都会被这个大类压平,这也解释了为什么不对称度要用事件数而不是帧数来算。
2.4 五个时间点与四组给药
时间点的缩写是五个英文词的截断。bsl 是 baseline,造模前、给药前;md 是 maximal deficit,梗死后四十八小时、功能缺损最重时;wk2、wk4、wk8 是开始给药后的第二、四、八周。给药从 md 之后开始,每天一次,持续到第八周结束。
| 缩写 | 全称 | 距造模 | 是否已给药 | 解释 |
|---|---|---|---|---|
bsl |
baseline | 造模前 | 否 | 每只鼠的自身基线 |
md |
maximal deficit | 约 48 小时 | 否 | 缺损最重的窗口 |
wk2 |
week 2 | 约 2 周 | 是,约 12 天 | 早期恢复 |
wk4 |
week 4 | 约 4 周 | 是,约 26 天 | 亚急性期 |
wk8 |
week 8 | 约 8 周 | 是,约 54 天 | 慢性期 |
四个给药组的名义剂量写在页面与说明文件里,两处一致。
| 组名 | 药物 | 剂量 | 机制 | 只数 |
|---|---|---|---|---|
Vehicle |
0.5% 甲基纤维素 400 | 每千克 10 毫升 | 溶媒,无活性成分 | 16 |
Zolpidem |
唑吡坦 | 每千克 30 毫克 | GABA-A 受体激动剂 | 14 |
LEM10 |
仑博雷生 | 每千克 10 毫克 | 双重食欲素受体拮抗剂 | 14 |
LEM30 |
仑博雷生 | 每千克 30 毫克 | 双重食欲素受体拮抗剂 | 15 |
四组人数不等,溶媒组最多,十六只;其余三组十四到十五只。总数为五十九,与页面声明的动物数一致,也与两个汇总文件的行数除以五之后的商一致。三处交叉核对都对得上,说明没有哪只鼠在某次随访中缺失而被悄悄剔除。
2.5 站内同类资源的字段差异
站内已有的行为与运动类词条,多数是人体数据。把这份动物视频库放进同一张表,差异一眼可见。
| 资源 | 对象 | 主数据 | 标注粒度 | 与本库的差异 |
|---|---|---|---|---|
| gaitndd | 人 | 双足压阻波形 | 每步态周期一行 | 那边是力信号,这边是像素 |
| gaitpdb | 人 | 分区分区垂直地反力 | 每步一行 | 那边有绝对力值,这边没有 |
| acl-jumplanding-mocap | 人 | 光学动捕骨架 | 每帧关节坐标 | 那边有坐标,这边只有类别 |
| live-gaitneurokids | 儿童 | 步态动力学 | 每次评估 | 那边是发育人群,这边是成年小鼠 |
| 本库 | 小鼠 | 底视视频 | 每帧一个类别 | 只有类别,无坐标,无绝对量 |
差别的核心在于「有没有连续的物理量」。人体系列的词条多数给出某种连续信号,力、角速度、关节角;这份数据只有一个离散类别序列。离散的好处是标签语义唯一,不容易产生单位与标定争议;坏处是任何精细分析都要先把类别还原成动作。
§3 它是谁的数据:一间圣路易斯实验室与一条给药时间轴
3.1 九个人的署名与一个课题组
PhysioNet 页面上这条资源有九位署名作者,全部挂华盛顿大学医学院神经科及其关联院系。九人中没有标注通讯作者,页面写明联系方式需登录后才能查看。九人的分工页面未逐一说明,从字段结构看,至少有三类角色:执行实验与录像的、做逐帧标注的、负责数据整理与发布的。页面正文提到四名标注者,未说明他们是九人中的哪四位,也未排除是九人之外的临时人手。
九人署名在 PhysioNet 的动物类资源里不算少。早年的小型生理信号库常常单人或双人署名,而这一条同时涉及动物实验、视频录制、人工标注与数据打包,人力构成与此匹配。
3.2 关联论文:先证明工具,再公开工具
本库没有独立的数据论文。官方正文引了十二篇文献,其中与本库最近的一篇是 2025 年发表的方法学比较论文,第一作者为 Li,通讯作者即本库的末位署名者。
| 项 | 内容 |
|---|---|
| 标题 | Manual assessment of cylinder rearing behavior is more sensitive than automated gait evaluations in young, male mice post-stroke of the forepaw somatosensory cortex |
| 期刊 | Journal of Stroke and Cerebrovascular Diseases,第 34 卷第 7 期,文章号 108325 |
| 年份 | 2025 |
| DOI | 10.1016/j.jstrokecerebrovasdis.2025.108325 |
| PMID | 40268211 |
| 与本库的关系 | 提供试验方案、动物年龄与造模位点;本库是它的数据延伸 |
这篇论文的方法段写明,动物为十二至十六周龄的雄性小鼠,在左侧前爪感觉运动皮层做局灶光栓,行为测试在梗死后四十八小时与四周两个时间点完成。本库的时间点更密,多了基线、两周与八周,并且加入了四种给药。两相对照可以读出本库的定位:论文证明「人工评分比自动步态更灵敏」,本库则把人工评分本身变成可被自动化替代的素材。
| 年份 | 事件 | 与本库的关系 |
|---|---|---|
| 2019 至 2023 | 课题组开展光栓卒中与睡眠脑电的系列研究 | 奠定造模与随访的技术基础 |
| 2025 | 圆柱攀爬与三种自动步态的比较论文发表 | 提供试验方案与敏感性证据 |
| 2025 年 7 至 8 月 | 五个时间点的录像目录写入服务器 | 文件时间戳集中于此 |
| 2026 年 1 月 | 说明文件与组别表定稿 | 目录结构最终成型 |
| 2026 年 3 月 4 日 | 1.0.0 版上线 PhysioNet | 首个公开版本 |
3.3 采集现场:一根光纤、一只圆柱、一台俯拍相机
造模一步是这份数据里技术含量最高的环节,也是它区别于普通行为库的地方。页面写得很具体:在一侧前爪感觉运动皮层植入带陶瓷套管的光纤插芯,坐标以前囟为原点,内外侧负二点二零毫米、前后负零点一零毫米、深度负一点零毫米;小鼠腹腔注射玫瑰红零点一五毫升,浓度每毫升十毫克;五分钟后经光纤导入五百三十二纳米、十五毫瓦的激光,持续十五分钟。
| 步骤 | 参数 | 说明 |
|---|---|---|
| 植入 | 光纤插芯,数值孔径 0.50,芯径 200 微米 | 单侧,左侧前爪感觉运动皮层 |
| 坐标 | 内外侧 −2.20,前后 −0.10,深度 −1.0 毫米 | 以前囟为原点 |
| 光敏剂 | 玫瑰红,10 毫克每毫升,0.15 毫升腹腔注射 | 注射后静候五分钟 |
| 光照 | 532 纳米,15 毫瓦,15 分钟 | 经同一根光纤导入 |
| 状态 | 清醒、自由活动 | 不麻醉,不固定头部 |
| 遮光 | 光纤与跳线接头涂黑色指甲油 | 防止漏光造成额外损伤 |
| 排除 | 组织学未确认梗死者 | 官方未给出被排除的只数 |
清醒状态下经植入光纤造模,好处是不需要开颅窗、不需要麻醉,术后恢复快,可以连续多日随访;代价是梗死范围依赖光纤位置与光强的稳定性,个体间变异比开颅结扎更大。页面专门提到用黑色指甲油封住接头,说明作者清楚漏光会带来额外损伤,这条细节在其他动物库的说明里很少见。
录像端没有这么多参数。单只小鼠放入圆柱,正上方固定机位,录到五分钟上限。圆柱的直径、高度、材质、光照条件、是否铺垫料、试验前是否适应,页面均未提及。每段视频的第一帧前会插入一张写有鼠号的卡片,用于人工核对,这条在页面「使用限制」一段里明确写出。
| 要素 | 官方给出 | 官方未给出 |
|---|---|---|
| 圆柱 | 透明、可攀爬 | 直径、高度、壁厚、材质 |
| 相机 | 正上方俯拍 | 型号、焦距、分辨率、帧率口径 |
| 光照 | 未说明 | 照度、色温、是否有阴影 |
| 试验前处理 | 未说明 | 是否适应、适应时长、是否禁食 |
| 视频开头的卡片 | 有,写鼠号 | 卡片时长、是否计入五分钟 |
| 每次试验时长 | 上限五分钟 | 实际提前结束的判定条件 |
3.4 三层信息与它们的可信度
这份资源的信息分布在三层,可信度并不相同。混着用会出错,分开用才稳。
| 层次 | 内容 | 可信度 | 风险 |
|---|---|---|---|
| 官方页面 | 动物数、分组、时间点、标注语义、公式、许可 | 高,可逐条核对 | 个别拼写有误,如机构名里的 Washing |
| 关联论文 | 动物年龄、品系背景、造模位点、比较结论 | 高,但只覆盖两次随访 | 不描述文件结构 |
| 文件本身 | 行数、帧数、时长、编码、目录层级 | 最高,可直接核对 | 语义要靠页面解释 |
页面与文件之间有一处需要留意:页面说「每段视频限定五分钟」,抽查的一段是二百九十一点八六七秒,略短于三百秒。这说明五分钟是上限而非固定值,试验可能提前结束,也可能在编码时略有裁切。按五分钟乘以段数去估算总时长会偏高,准确的算法是逐段读容器里的时长字段。
§4 它最独特的东西:把人工评分变成监督信号
4.1 逐帧类别是一种很特别的标注
视频数据集的标注有好几种常见形态。有的给时间区间,一段视频切成若干事件并标注起止时刻;有的给个体包围框,追踪每只动物的位置;有的给关键点坐标,逐帧记录关节;有的给全段一个标签,用于视频级分类。这份数据都不是。它给每帧一个四选一的类别,整段视频由几千个这样的标签串起来。
| 标注形态 | 典型数据 | 时间粒度 | 本库是否采用 |
|---|---|---|---|
| 全段单标签 | 视频级分类数据集 | 一段一个 | 否 |
| 时间区间标注 | 行为分割数据集 | 一段数个区间 | 否,但有事件计数间接反映 |
| 包围框追踪 | 多目标追踪数据集 | 每帧若干框 | 否 |
| 关键点坐标 | 姿态估计数据集 | 每帧若干点 | 否 |
| 逐帧类别 | 像素或帧级分类 | 每帧一个类别 | 是 |
逐帧类别的优势是监督信号最密:一段五分钟的视频能提供四千多个带标签的样本。劣势是标签空间极窄:只有一个维度上分成四格,缺少「在哪」「什么形状」「多大」这些空间信息。用它训练分类器很自然,用它训练检测器或分割器则接不上。
4.2 案例:耳标十四的基线会话
选这一段做贯穿案例,理由有三:它是 §2.3 里拆解过的原文,数字齐;它的帧计数与事件计数都在文件里,可以逐项核对;它的视频容器字段已经读出来,时长与分辨率可查。
| 项 | 值 | 来源 |
|---|---|---|
| 会话标识 | bsl / 14 | 目录名 |
| 给药组 | 溶媒对照 | 组别表 |
| 视频体积 | 74,801,907 字节 | 文件头 |
| 标注文件体积 | 31,158 字节 | 文件头 |
| 编码 | HEVC,编码器标识 hevc_nvenc | 容器样本描述 |
| 分辨率 | 720 × 720 | 容器样本描述 |
| 时长 | 291.867 秒 | 容器时长字段 |
| 逐帧标签行数 | 4376 | 文件行数 |
| 帧计数合计 | 4378 | 摘要行 |
| 事件计数合计 | 124 | 摘要行 |
先说编码。容器里样本描述的编码类型是 HEVC,编码器标识写着 hevc_nvenc,即用 NVIDIA 显卡硬件编码。这意味着压缩效率高、体积小,但解码端要支持 HEVC。七百二十像素见方是正方形画面,说明相机视野经过裁切,只保留圆柱范围,圆柱外的笼具不在画面里。单段七十五兆字节,除以二百九十二秒,码率约每秒二百五十六千字节。
再说标签。四千三百七十六帧里,无爪四千零四十九帧,占九成二;双爪二百一十八帧,占百分之五;右爪五十八帧,左爪五十三帧,各占百分之一上下。这是基线会话,尚未造模,左右应当大致对称,读出的左右帧数确实接近,五十三与五十八只差五帧。这个差值对一只健康小鼠来说在正常范围内。
第三说事件。帧多不代表起立多。无爪四千多帧只对应三十二次事件,说明小鼠大部分时间在底部连续活动,判定边界少;双爪二百多帧对应三十一次事件,平均每次七帧,约半秒;左爪五十三帧对应二十九次,平均不到两帧,约零点一三秒。单次左爪接触极短,是这类试验里最容易被漏判的一类。
#-- 用容器字段核对时长,避免依赖文件名或页面描述
import struct, subprocess, json
path = "dataset/bsl/14/bsl_14.mp4"
out = subprocess.run(
["ffprobe", "-v", "error", "-select_streams", "v:0",
"-show_entries", "stream=codec_name,width,height,r_frame_rate,nb_frames:format=duration",
"-of", "json", path],
capture_output=True, text=True, check=True)
info = json.loads(out.stdout)
print(info["streams"][0]["codec_name"], info["streams"][0]["width"], info["streams"][0]["height"])
print(info["streams"][0]["r_frame_rate"], info["format"]["duration"])
这一段的用法分三步。 第一步,用官方标签训练一个只吃单帧的基线分类器,看四类能分到多准。第二步,把连续帧的预测串起来,与官方的事件计数比对,检验模型是否学到了动作边界而不只是单帧纹理。第三步,把同一只鼠的五个时间点连起来,看不对称度是否随周次变化。三步都不跨鼠,因此不引入个体泄漏。
第三步要特别小心。这只鼠在基线的左右差只有五帧,属于接近对称;到梗死后四十八小时,如果左侧皮层受损,按公式应当出现正向分数,也就是更依赖左爪。真实情况要读 md 那一行才知道,不能从基线推断。基线的对称不等于后续的对称,这是纵向数据最容易被误读的一点。
| 时间点 | 会话目录 | 视频 | 标注 | 状态 |
|---|---|---|---|---|
| bsl | bsl/14/ |
有 | 有 | 造模前,已读 |
| md | md/14/ |
有 | 有 | 梗死后 48 小时 |
| wk2 | wk2/14/ |
有 | 有 | 给药约 12 天 |
| wk4 | wk4/14/ |
有 | 有 | 给药约 26 天 |
| wk8 | wk8/14/ |
有 | 有 | 给药约 54 天 |
4.3 不对称度公式与它的三个前提
页面给出的不对称分是左爪事件数减右爪事件数,除以三者之和,再乘一百。
score = (L - R) / (L + R + B) * 100
三项分别是左爪、右爪与双爪的事件数,不含无爪。取值范围从负一百到正一百:全用右爪是负一百,全用左爪是正一百,左右各半是零。页面明确说明,因为卒中做在左侧感觉运动皮层、损伤的是右前爪的使用,所以分数为正表示存在运动缺损。
这个公式有三个隐含前提,页面没有逐条写出,但从定义可以推出来。
| 前提 | 含义 | 违反时的后果 |
|---|---|---|
| 分母只用三类事件 | 无爪不进入分母 | 无爪占比高的段,分数方差更大 |
| 用事件而非帧 | 一次长接触与一次短接触等权 | 长接触被低估,短促试探被高估 |
| 双侧算作中性 | 双爪既不偏向左也不偏向右 | 双爪多时分数被压缩向零 |
第一条最实际。一段录像里无爪占九成以上,分母只由剩下不到一成的事件构成。若某段的双手撑壁事件特别多,分母变大,分数会被压向零,哪怕左侧事件数不变。这不是缺陷,而是公式定义的结果,使用时要知道它比较的是「在有撑壁动作的前提下如何分配」。
第二条决定了这份数据适合什么指标。用事件数,衡量的是起立的次数分配;用帧数,衡量的是停留时长的分配。两者回答不同的问题,官方选了前者。想改用帧数做分母,就必须重算,不能直接引用页面给出的分数——因为页面根本没给分数列,分数要自己算。
4.4 四人标注与共识判据
页面写四名标注者参与人工评分,遵循对判定标准的共识应用。这两句话包含的信息量不大,但足够定出几个必须自己核对的点。
| 问题 | 页面是否给出 | 影响 |
|---|---|---|
| 每段由几人独立标 | 未给出 | 无法估计标注者间一致性 |
| 是否有仲裁机制 | 未给出 | 分歧如何解决不明 |
| 是否全量逐帧 | 未给出 | 可能部分是抽样复核 |
| 标注者是否盲法 | 未给出 | 可能知道组别与时间点 |
| 一致性指标 | 未给出 | 无 Kappa 或 ICC 可复核 |
四人的规模放在二百九十五段视频上,平均每人七十余段,每段四千余帧。若真要逐帧独立标完,工作量非常可观。比较合理的推测是分工负责不同时间点或不同鼠,而非四人独立标同一段再取多数——但这只是推测,页面没有支持。
对使用者的实际意义是:把官方标签当作「一份可信但并不必然可复现的人工判读」,而不是当作金标准。训练模型时,模型学到的是这四位标注者的判读习惯;换一批人来标同一段视频,某些边界帧的判定可能不同。
4.5 边界条件:它在什么情况下不再适用
有四类问题,无论怎么处理都答不了。
需要空间定位的问题。 「前爪落在圆柱的哪个高度」「身体偏向哪一侧」「转身方向」——这些都要坐标,视频里虽然有,但没有标注,得自建姿态前端。
需要毫秒级时序的问题。 15 帧每秒意味着相邻两帧间隔约六十七毫秒。一个撑壁动作的起落发生在一两个帧间隔内时,类别序列会丢失细节。
需要健康基线的问题。 四组全部造模,基线是发病前而非健康对照。想回答「卒中后与正常有什么不同」,只能用基线作自身对照,而这混入了适应与习惯化的影响。
需要跨品系或跨性别推广的问题。 只有一个品系、一个性别。不同品系的起立倾向差异很大,BALB 系与 C57 系的基线活动量不在一个量级。把在这批鼠上训练的模型直接用于另一品系,性能会下降,且下降多少无法从本库估计。
§5 怎么拿到:从压缩包到一条可训练的样本
5.1 目录结构与下载面
取数有三条路:想看说明先开项目页;想一次拿全量就走整包 ZIP 或云端桶;只要几段就先浏览文件目录,按会话单独取。目录是可浏览的静态列表,浏览器打开即见文件清单与体积。
| 入口 | 地址 | 适合 | 是否需要凭据 |
|---|---|---|---|
| 项目页 | https://physionet.org/content/mouse-stroke-cylinder-rearing/1.0.0/ |
读说明、看引用、找许可 | 否 |
| 文件目录 | https://physionet.org/files/mouse-stroke-cylinder-rearing/1.0.0/ |
挑单段下载 | 否 |
| 整包 ZIP | 项目页上的 Download 按钮 | 一次拿全 | 否 |
| 云端桶 | s3://physionet-open/mouse-stroke-cylinder-rearing/1.0.0/ |
批量、可复现、断点续传 | 否,匿名只读 |
| wget 镜像 | 项目页给出的 wget 命令 | 有目录结构的本地镜像 | 否 |
三种入口的内容完全一致。整包是二十一点一吉字节,分三段 ZIP,解压后合并为同一个 dataset 目录。云端桶里的路径结构与网页文件目录相同,是批量下载的首选。
5.2 批量下载
云端桶不需要安装任何凭据,匿名同步即可。若机器上已有配置,注意 --no-sign-request 不能省,否则会用本地凭据去访问,可能报权限错误。
#-- 同步全量到本地目录(约 21 GB,建议挂后台)
mkdir -p msr
aws s3 sync --no-sign-request \
s3://physionet-open/mouse-stroke-cylinder-rearing/1.0.0/ msr/
只要汇总表与目录清单的话,不必下视频。三份 CSV 加起来不到二十千字节,秒下。
#-- 只取三份汇总表,用于先看清分组与会话清单
BASE="https://physionet.org/files/mouse-stroke-cylinder-rearing/1.0.0/dataset"
for f in all_scores.csv all_scores_nonconsecutive.csv drug_group_assignments.csv; do
curl -sSL -O "$BASE/$f"
done
wc -l all_scores.csv all_scores_nonconsecutive.csv drug_group_assignments.csv
输出的行数分别是二百九十六、二百九十六与六十,减去各一份表头,正好是二百九十五个会话与五十九只鼠。
5.3 把汇总表与组别表接起来
汇总表只有时间点与耳标号,没有组别。组别在另一份文件里。两表按耳标号连接即可。
#-- 会话表与组别表按耳标号连接,得到带组别的长表
import pandas as pd
scores = pd.read_csv("all_scores.csv")
events = pd.read_csv("all_scores_nonconsecutive.csv")
mice = pd.read_csv("drug_group_assignments.csv")
scores = scores.merge(mice, on="eartag", how="left", validate="many_to_one")
events = events.rename(columns={"l": "l_ev", "r": "r_ev", "b": "b_ev", "n": "n_ev"})
long = scores.merge(events, on=["timepoint", "eartag"], validate="one_to_one")
long["asym_frame"] = (long["l"] - long["r"]) / (long["l"] + long["r"] + long["b"]) * 100
long["asym_event"] = (long["l_ev"] - long["r_ev"]) / (long["l_ev"] + long["r_ev"] + long["b_ev"]) * 100
print(long.groupby(["drug_group", "timepoint"])["asym_event"].mean().unstack().round(1))
两次合并都加了 validate 参数,检查连接是否一对一,避免耳标号重复导致行数悄悄膨胀。这一步在本库尤其必要,因为耳标号只有一列,重复与否不写在页面上。
算术上有一点要注意:若某段录像三类事件全为零,分母为零。这种情况在理论上可能出现,实际是否出现要自己检查。分母为零时分数无定义,应记为缺失而不是记为零。
5.4 从视频里取帧
视频是 HEVC 编码、七百二十见方、十五帧每秒。取帧有两类工具:OpenCV 调用 ffmpeg 后端,或直接用 ffmpeg 导出帧序列。前者方便与 Python 流程接,后者在多段并行时更快。
#-- 从一段视频里按帧号抽取画面,并与标签对齐
import cv2, csv
cap = cv2.VideoCapture("dataset/bsl/14/bsl_14.mp4")
labels = [r[0] for r in list(csv.reader(open("dataset/bsl/14/bsl_14_score.csv")))[3:] if r]
n = 0
while cap.isOpened():
ok, frame = cap.read()
if not ok:
break
if n % 15 == 0:
lab = labels[n] if n < len(labels) else "?"
print(n, frame.shape, lab)
n += 1
cap.release()
print("总帧数", n, "标签数", len(labels))
若这段代码报解码错误,多半是 OpenCV 所链接的 ffmpeg 未启用 HEVC。此时改用 ffmpeg -i in.mp4 -vf fps=1 out_%05d.png 导出,再用图像库读入。
| 读取方式 | 优点 | 缺点 | 适用 |
|---|---|---|---|
| OpenCV | 与 Python 流程一体 | 依赖编译时的编解码支持 | 小批量、逐帧处理 |
| ffmpeg 导出帧 | 稳定、可并行 | 占磁盘,需二次读入 | 大批量、离线训练 |
| PyAV 流式解码 | 内存占用低 | 需自行管理时间戳 | 边解码边推理 |
| 浏览器播放 | 零配置 | 无法批处理 | 人工核对 |
5.5 一条最短的检查流程
拿到数据后别急着训练。先做四项核对,能省掉后面几天的困惑。
#-- 四项快速核对:行数、帧数、分母、分组
import pandas as pd
s = pd.read_csv("all_scores.csv"); e = pd.read_csv("drug_group_assignments.csv")
print("会话数", len(s), "鼠数", len(e), "时间点", sorted(s.timepoint.unique()))
print("每鼠会话数是否都为 5", (s.groupby("eartag").size() == 5).all())
print("分组人数", e.drug_group.value_counts().to_dict())
bad = s[(s.l + s.r + s.b) == 0]
print("分母为零的会话数", len(bad))
四项依次回答:目录是否完整、是否有鼠缺访、分组是否与页面一致、公式是否会除零。四项都过了,再谈建模。这些核对不需要看任何一帧视频,只用三份 CSV。
5.6 三类常见的读取错误
第一类,把摘要两行当标签。标注文件第二、三行是摘要,首列写 n,若直接整列读标签,会把这两行当无爪帧,导致帧数多算两帧,进而算错时长。
第二类,混用帧计数与事件计数。两份汇总表列名完全相同,只是文件名差一个词。把 all_scores.csv 当事件表,会得到六位数的「起立次数」。区分办法是看数值量级:帧计数的无爪列在四位数,事件计数在两位数。
第三类,忽略耳标号的类型。CSV 里耳标号是整数,文件名里是字符串。用 pandas 读入后若与文件名拼接,会出现 bsl_14 与 14.0 两种写法。读入时显式指定 dtype={"eartag": str},可以免掉这一类问题。
§6 与库内条目的关系
6.1 关系图谱
站内与运动、行为相关的词条已有一族,多为人体数据,且多以信号或骨架为主。这份动物视频库在其中的位置,可以用三种关系说清:材料互补、对象互补、用途互补。
| 词条 | 关系 | 一句话区隔 |
|---|---|---|
| gaitndd | 材料互补 | 那边是人体双足压阻波形,这边是小鼠前爪视频 |
| gaitpdb | 材料互补 | 那边有绝对力值与十六分区,这边只有四类标签 |
| gaitdb | 材料互补 | 那边是衰老与单病的节律序列,这边是卒中与给药 |
| gait-maturation-db | 对象互补 | 那边是儿童发育,这边是成年小鼠 |
| live-gaitneurokids | 对象互补 | 那边是脑瘫与典型发育儿童 |
| acl-jumplanding-mocap | 材料互补 | 那边是光学动捕骨架,这边需自建姿态 |
| multimodal-gait-dataset | 材料互补 | 那边四路信号同步,这边单路视频 |
| stroke-eeg-fnirs | 用途互补 | 那边是人的卒中康复脑电,这边是鼠的卒中恢复行为 |
| hbedb | 用途互补 | 那边是静态站立压力中心 |
| daphnet-fog | 用途互补 | 那边面向冻结步态检测,这边面向前爪不对称 |
最值得说清的是与 stroke-eeg-fnirs 的关系。两者都叫卒中康复,但一个是人的神经电生理纵向数据,一个是鼠的行为视频纵向数据,中间隔着物种、测量模态与结局变量三个层面。把两者放在一起讲「卒中恢复的跨物种一致性」是可行的,但只能作为叙述框架,不能作为统计合并的依据。
| 维度 | stroke-eeg-fnirs | 本库 |
|---|---|---|
| 物种 | 人 | 小鼠 |
| 样本 | 16 名偏瘫患者 | 59 只雄性小鼠 |
| 时长跨度 | 多次康复会话 | 八个星期 |
| 主数据 | 脑电与近红外 | 底视视频 |
| 标注 | 临床量表 | 逐帧前爪类别 |
| 结局 | 上肢功能评分 | 前爪不对称度 |
6.2 检索路径
站内以「卒中」为关键词检索会同时命中人与动物两类。区分方法是看数据主模态与样本单位。
| 你想找的 | 检索词 | 会命中的词条 |
|---|---|---|
| 本页 | cylinder, rearing, mouse-stroke |
小鼠卒中圆柱攀爬视频库 |
| 人的卒中康复电生理 | stroke-eeg-fnirs, fNIRS |
人脑电与近红外纵向数据 |
| 人体步态节律 | gaitndd, 步态 |
三种神经退行性疾病加对照 |
| 人体力信号 | gaitpdb, 地反力 |
帕金森病人群的分区力 |
| 人体动捕 | mocap, 跳跃 |
前交叉韧带损伤研究 |
| 儿童步态 | gait-maturation, 儿童 |
发育与脑瘫 |
实用区分法是看单位:出现「只」「段视频」「耳标号」的是本库;出现「例」「名」「患者」的是人体库;出现「拍」「周期」「步幅」的是节律类库。
§7 质量评估与局限性
7.0 阅读本节前的一个前置校正
看到「二百九十五段」「五个时间点」「两套计数」这几个数字,最容易形成两个误判。第一个是把二百九十五当样本量,于是以为这是一份三百量级的分类数据;第二个是把「五个时间点」当成五个独立队列,于是把每行当作互不相干的一条记录。
两个误判的根子相同:把行数与独立观测数混为一谈。二百九十五行背后只有五十九只鼠,每只被重复测了五次,组内相关很强。任何按行随机划分训练与测试的做法,都会让同一只鼠的同一批画面同时出现在两边,指标虚高而不可外推。做完这一步校正,本节的所有评述才有意义。
7.1 DAIMS 五维评分
按 DAIMS 五维框架打分,每维二十分,满分一百。评分基准是「同类公开动物行为视频资源」的一般水平,不是绝对结论。
| 维度 | 得分 | 依据 | 扣分点 |
|---|---|---|---|
| 可发现 | 15 | 有 DOI、有平台页、元数据完整 | 无独立数据论文,检索词不含常见简称 |
| 可获取 | 17 | 免注册、云端桶直取、三份 CSV 秒下 | 全量二十一点一吉字节,对带宽有要求 |
| 可互操作 | 12 | 视频为标准 MP4,CSV 为标准文本 | HEVC 编码兼容性差;无本体映射;无姿态格式 |
| 可复用 | 14 | 许可宽松、判据写明、两套计数口径齐备 | 无标注者间一致性;无分析代码;无圆柱规格 |
| 可引用 | 15 | DOI 稳定、九人署名、引用格式齐全 | 无数据描述论文可引,只能引方法学论文 |
| 合计 | 73 | — | — |
七十三分里扣得最重的是互操作。问题不在格式本身,而在编码选择:HEVC 压缩率高,但解码依赖比 H.264 强得多,很多轻量级视频处理库默认不带这个解码器。其次是可复用:判据写清了「什么算一次撑壁」,但没写「两个人判同一段会不会一致」,也没有给出任何一致性指标。
7.2 三处需要自己核对的地方
第一处,机构名的拼写。页面署名的九人里,有两位的机构写作「Washing University School of Medicine」,少了一个 ton。同一页面上另几位写的是完整的「Washington University in St. Louis School of Medicine」。两个拼写并存,官方未作统一。引用时按通行拼法写成 Washington University,不必照抄笔误。
第二处,药物与结局的关系。页面背景段写明所研究的两种药与睡眠相关,并引用多篇睡眠与卒中恢复的文献;但数据本身只记录了攀爬行为,没有任何睡眠测量。把这份数据当作睡眠研究的素材会落空,它测的是运动功能。
第三处,视频时长的口径。页面写「每段上限五分钟」,抽查的一段是二百九十一点八六七秒。上限与实际长度不是一回事。若按五分钟乘以段数估算,得到的是二十四点六小时;逐段读容器字段累加会更短。两种口径都合理,但要声明用的是哪一种。
7.3 已知的、可枚举的偏差
偏差可以逐条列出,每一条都能在页面或文件里找到依据。
| 偏差 | 方向 | 依据 | 后果 |
|---|---|---|---|
| 单一性别 | 只有雄性 | 页面 Methods 段 | 雌性效应无法评估 |
| 单一位点 | 仅左侧皮层 | 页面造模坐标 | 右侧损伤不可外推 |
| 单一品系 | 页面未写品系 | 关联论文写为小鼠 | 品系差异无法分离 |
| 无假手术组 | 四组均造模 | 组别表仅四个取值 | 手术与梗死的效应混在一起 |
| 底视遮挡 | 部分攀爬不可判 | 页面使用限制段 | 不可判的样本并入无爪 |
| 无一致性指标 | 四人分担 | 页面未给 | 标签噪声不可量化 |
| 五分钟上限 | 短程观察 | 页面数据描述段 | 长时间自发行为不可见 |
| 无健康对照 | 基线是自身对照 | 组别表 | 绝对缺损幅度不可估 |
| 编码不通用 | HEVC | 容器样本描述 | 部分流水线需额外配置 |
| 无分析代码 | 只发数据 | 文件清单 | 复现药效需自建流程 |
最容易叠加使用的是「无假手术组」与「只记录给药期」这两条。四组都造模、都在梗死后四十八小时之后才开始给药,于是任何「给药组与溶媒组的差异」都只反映给药期内的变化,而不包括造模本身造成的缺损。想估计缺损幅度,只能用基线到四十八小时这一段,而这一段与给药无关。
§4.2 的案例正好说明这一点:耳标十四在基线左右帧数接近,若到四十八小时出现明显偏向左侧,那才说明造模生效;而给药是从四十八小时之后才开始的,所以 md 这一点上的数值反映的是造模,不是药效。
7.4 外部验证矩阵
判断一份数据能不能支撑结论,看它被外部怎么用过,比看它自己怎么写更有说服力。这份数据发布不久,外部使用记录有限。
| 验证维度 | 是否有外部证据 | 说明 |
|---|---|---|
| 关联论文的自证 | 有 | 同一批造模流程,圆柱攀爬分出组间差异 |
| 与三种自动步态的对照 | 有 | 论文中三种自动测试均未显著 |
| 与其他卒中行为库的一致 | 部分有 | 前爪不对称作为结局在其他研究中也用过 |
| 与组织学对照 | 有,但不在本库 | 论文报告继发性丘脑损伤与不对称相关 |
| 第三方在本库上复现 | 尚无公开记录 | 1.0.0 版发布不久 |
| 与其他标注者交叉 | 无 | 无一致性数据 |
| 长期稳定性 | 无 | 首次发布,无后续版本历史 |
第一行与第四行值得合看。论文的报告说,继发性丘脑损伤的存在与圆柱攀爬上的前爪不对称相关,肌肉骨骼之外还牵涉到远端结构。这意味着这个分数不是纯粹的皮层功能读数,它同时受下游结构影响。用它做单一指标时,这一点要写进方法限制。
7.5 它为何能持续:一类只能人工判分的试验
公开的小鼠行为视频库不少,但多数是自发活动、旷场或转棒,记录的是可自动量化的量:距离、时间、掉落次数。圆柱攀爬不一样,它的核心指标是一个需要主观判定的类别序列,判不了就无法算分。
这类数据稀缺的原因很具体:造模要手术与光纤植入,随访要八周,判分要人逐帧看,三件事叠加,一个实验室一年也攒不出多少。公开发布意味着把自己的判分习惯交给别人检视,很多组不愿意。本库之所以能存在,一半靠八周随访的耐心,一半靠把判据写到了「什么情况算撑壁」这一层,让别人看完能够同意或不同意。
二十一点一吉字节的视频不会因为更大而被替代。想再造一份,难的从来不是磁盘,是让四名标注者用同一套判据看完整批录像,并且允许别人拿它去训练一个可能取代他们的模型。
§8 生态位与历史
8.1 历史沿革
PhysioNet 长期收录人体生理信号,动物数据占比较小,且多以电生理为主。行为视频进入这个平台是近几年的变化,与深度学习在动物姿态估计上的普及同步。
| 阶段 | 时间 | 发生了什么 |
|---|---|---|
| 平台定位 | 2000 年前后 | 以心电、呼吸、步态等人体节律为主 |
| 动物数据进入 | 2010 年代 | 少量动物电生理与行为数据上架 |
| 视频类资源增加 | 2020 年代 | 随着姿态估计工具普及,行为视频增加 |
| 本库上线 | 2026 年 3 月 | 首批带逐帧标签的动物行为视频之一 |
| 现状 | 至今 | 仅 1.0.0 版 |
这条时间线说明一件事:本库不是某个长期项目的第 N 版,而是一个新类型资源里的早期样本。早期样本的共性是可复用性尚未经过大量外部使用检验,任何使用都要自己先把口径核对清楚。
8.2 与其他卒中动物数据的差别
卒中动物模型的数据公开得并不少,但多是影像学数据,如 MRI 或组织切片。行为学数据少,带逐帧标注的视频更少。
| 数据类型 | 常见内容 | 与本库的关系 |
|---|---|---|
| 梗死灶影像 | MRI、TTC 染色、组织切片 | 互补,可用于验证行为与损伤的对应 |
| 行为评分表 | 网格式评分、转角试验 | 互补,本库是其视频级细化 |
| 步态动力学 | 跑台、跑道、足印 | 部分交叉,关联论文做过比较 |
| 睡眠电生理 | 皮层脑电、肌电 | 互补,页面背景段的动机来源 |
| 行为视频加逐帧标签 | 本库 | 稀缺 |
8.3 生态位:人工判据的数字化样本
把它放进更大的数据集版图,它的位置不是「最大的」也不是「最全的」,而是「把一类主观判据第一次系统性地编码成可训练的标签」。
| 需求 | 本库是否覆盖 | 替代方案 |
|---|---|---|
| 前爪使用类别的逐帧监督 | 是 | 无直接同类公开库 |
| 卒中纵向随访 | 是,八周 | 各家自有队列 |
| 姿态关键点 | 否 | 自建姿态模型 |
| 药效统计结论 | 否 | 关联研究论文 |
| 跨品系比较 | 否 | 无 |
8.4 谁在用它,用来做什么
公开使用记录尚未出现。按页面的用途说明,预期使用者有三类:做行为学自动评分的方法学人员,做视频动作识别的研究者,以及需要外部队列验证自己判分流程的实验室。
| 使用者 | 用法 | 需要的额外步骤 |
|---|---|---|
| 方法学人员 | 训练逐帧分类器 | 按鼠划分数据集 |
| 动作识别研究者 | 检验时序模型在长尾类别上的表现 | 处理无爪类的极端不均衡 |
| 判分实验室 | 比对自家判分与官方标签 | 对齐判据与事件定义 |
| 教学 | 演示标注文件结构 | 无需额外步骤 |
§9 使用指引
9.1 三种角色的路径
模型开发者。 先读三份 CSV,确认会话数与分组。再抽一段视频跑通解码与标签对齐,也就是 §4.2 的案例那一段。然后把标签转为四类索引,按鼠做分组划分训练、验证、测试。最后报告指标时要同时给帧级与事件级两套,因为官方给了两套口径。
行为学研究者。 先读关联论文,确认造模与判据。再用官方给出的公式重算不对称度,比较帧数与事件数两种口径的差异。若要与自己的数据比较,必须先核对判据:本库要求「明确可判定前爪撑壁并承重」才算一次,判据更严格会系统性低报。
数据工程师。 先规划存储:二十一点一吉字节解压后更大,训练时要预留帧缓存的空间。再做解码兼容性测试,用一段视频验证 HEVC 能否读取。最后建索引表,把会话、鼠、组别、文件路径四列存成一张表,避免每次遍历目录。
9.2 一条最短的可用流程
从零到跑出一个基线,五步足够。每步都可单独验证,出错时容易定位。
#-- 1 取三份 CSV 与一段样例视频
BASE="https://physionet.org/files/mouse-stroke-cylinder-rearing/1.0.0/dataset"
curl -sSL -O "$BASE/all_scores.csv"
curl -sSL -O "$BASE/drug_group_assignments.csv"
mkdir -p dataset/bsl/14
curl -sSL -o dataset/bsl/14/bsl_14.mp4 "$BASE/bsl/14/bsl_14.mp4"
curl -sSL -o dataset/bsl/14/bsl_14_score.csv "$BASE/bsl/14/bsl_14_score.csv"
ls -lh dataset/bsl/14
#-- 2 按鼠划分训练与测试,避免个体泄漏
import pandas as pd
from sklearn.model_selection import GroupShuffleSplit
s = pd.read_csv("all_scores.csv", dtype={"eartag": str})
gss = GroupShuffleSplit(n_splits=1, test_size=0.2, random_state=0)
train_idx, test_idx = next(gss.split(s, groups=s["eartag"]))
print("训练会话", len(train_idx), "测试会话", len(test_idx))
print("训练鼠数", s.iloc[train_idx].eartag.nunique(), "测试鼠数", s.iloc[test_idx].eartag.nunique())
#-- 3 把逐帧标签压成事件,与官方事件计数对齐
def to_events(labels):
ev = []
for lab in labels:
if not ev or ev[-1] != lab:
ev.append(lab)
return ev
labels = [r[0] for r in list(__import__("csv").reader(open("dataset/bsl/14/bsl_14_score.csv")))[3:] if r]
ev = to_events(labels)
print("事件序列长度", len(ev), "左爪事件", ev.count("l"), "右爪事件", ev.count("r"))
三步跑通后,第四步是把帧送进一个轻量模型取特征,第五步是在测试鼠上报告帧级准确率与事件级不一致数。不要在第几步之后就报告组间差异,那需要另一套口径。
| 步骤 | 目的 | 判错信号 |
|---|---|---|
| 取样例 | 验证下载与解码 | 文件大小为 0 或解码报错 |
| 按鼠划分 | 防泄漏 | 训练与测试鼠数不在同一量级 |
| 事件压缩 | 对齐官方口径 | 事件数与摘要行差得远 |
| 训练基线 | 得到参考指标 | 帧级准确率远高于事件级 |
| 报告 | 给出两套口径 | 只报帧级 |
9.3 引用方式
官方给出的引用格式把九位作者全部列出,年份 2026,版本 1.0.0,DOI 指向版本号。若引的是最新版,可用页面另给的「latest」DOI。
| 场景 | 建议写法 |
|---|---|
| BibTeX | 用页面提供的条目,doi 填 10.13026/8bnm-6e37 |
| APA | Jiang, Y., Venkitaraman, S., Jung, H. R., et al. (2026). … (version 1.0.0). PhysioNet. |
| 正文夹注 | (Jiang 等,2026,PhysioNet) |
| 方法学论文 | Li 等,2025,Journal of Stroke and Cerebrovascular Diseases 34(7):108325 |
除数据本身,页面还要求引用 PhysioNet 平台的标准文献,即 2026 年发表于 Nature Health 的平台介绍。两份一起引,是平台的默认期待。
§10 AI 使用声明
| 项目 | 说明 |
|---|---|
| 写作方式 | 人工阅读官方页面与文件原文后撰写,AI 参与资料整理与文字组织 |
| 事实来源 | PhysioNet 项目页、根目录三份 CSV、单会话的 MP4 容器字段与标注文件 |
| 未做的事 | 未做分布统计,未训练模型,未下载全量视频,未计算组间差异 |
| 数字口径 | 动物数与分组以页面与组别表为准;视频参数以容器字段为准 |
| 口径冲突 | 机构名拼写两版并存,已在 §7.2 并列 |
| 未核实项 | 圆柱规格、相机型号、光照条件、标注者分工、被排除的只数 |
| 许可判断 | 按页面标注的 ODC 署名 1.0 表述,不代替法律意见 |
| 适用边界 | 仅描述数据资源,不构成动物实验方案或药理建议 |
常见误读(避坑清单)
| 说法 | 实际 | 证据 |
|---|---|---|
| 这是卒中与健康的两组比较 | 四组全部造模,组别是按给药划分 | drug_group_assignments.csv 四个取值 |
| 二百九十五是独立样本量 | 五十九只鼠各测五次,组内强相关 | 组别表五十九行,会话表二百九十五行 |
| 附带关键点或骨架标注 | 只有四类前爪状态,无任何坐标 | 标注文件只有 label 一列类别 |
| 无爪帧说明标注质量差 | 圆柱试验大部分时间小鼠不在起立 | 单段无爪占比九成以上 |
| 帧计数与事件计数可以相加 | 两套口径,单位不同 | 两个汇总文件列名相同、量级差两个数量级 |
| 标注文件第二行是第一帧标签 | 第二、三行是摘要,标签从第四行起 | 文件原文前三行首列均为 n |
| 视频统一五分钟 | 五分钟是上限,实际略短 | 抽查段时长二百九十一点八六七秒 |
| 有假手术组的时间序列 | 无假手术组,基线为自身对照 | 组别表仅四个取值 |
| 用的是通用 H.264 编码 | 实际为 HEVC,部分工具需额外解码 | 容器样本描述编码类型 |
| 可以直接得出药物有效性结论 | 无统计模型、无效应量、无显著性 | 页面未给分析结果 |
FAQ
Q1:这份数据一共多少只动物、多少段视频?
页面与组别表都写五十九只雄性小鼠,五个时间点各录一次,共二百九十五段。逐行核对会话表,每只鼠恰好五段,没有缺访,也没有重复。分组是溶媒十六只、唑吡坦十四只、仑博雷生低剂量十四只、仑博雷生高剂量十五只。
Q2:它提供关键点或骨架数据吗?
不提供。发布的是逐帧四类标签:左爪、右爪、双爪、无爪。没有鼻尖、爪尖、耳基这类坐标,也没有包围框和个体掩膜。要做姿态分析,必须自己从视频跑关键点模型,再把坐标聚成四类与官方标签比对。
Q3:为什么没有假手术组?
官方把对照组定义为接受造模与每日溶媒灌胃的那一组,不是未造模的动物。这样设计可以比较给药与不给药,代价是无法把手术创伤与梗死本身的效应分开。假手术组出现在关联论文里,但不在本库的发布范围。
Q4:视频用什么编码,普通播放器能放吗?
编码是 HEVC,抽查的一段用硬件编码器生成,分辨率七百二十见方,约二百九十二秒。多数现代播放器能放,但在 Linux 上跑 OpenCV 需要确认 ffmpeg 带 HEVC 解码。批量训练前建议先做一次兼容性测试。
Q5:不对称度怎么算?
左爪事件数减右爪事件数,除以左爪、右爪、双爪三者事件数之和,再乘一百。无爪不进入分母。结果从负一百到正一百,正值表示更依赖左爪,对应左侧皮层的右爪使用缺损。官方没有给出分数列,需要自己用两套计数之一算。
Q6:帧计数与事件计数该用哪个?
看你要问什么。帧计数回答前爪在壁上停留了多久,事件计数回答起立了几回。前爪不对称的公式用事件数,所以复现官方口径要用事件表。若你关心的是接触时长占比,用帧表更合适,但那已经是另一个指标。
Q7:能不能用它判断哪种药更有效?
不建议。页面只说数据用于评估药效随时间的变化,没有给统计模型、效应量或显著性。每组十四到十六只,每只每点一段五分钟视频,个体差异可能盖过药效。更稳妥的用法是把它当作方法学数据,用于训练或评测自动评分系统。
Q8:四人标注有没有一致性数据?
没有。页面写四名标注者按共识判据完成评分,没有给每人负责哪些段、是否独立标注、是否存在仲裁,也没有给 Kappa 或 ICC 一类指标。使用时应把标签视为可信但不必完全可复现的人工判读。
Q9:视频里开头那张卡片是什么?
每段视频开始时会显示一张写有鼠号的卡片,官方在使用限制段明确写出。它用于人工核对会话与鼠的对应关系,占用了视频开头的一点时间。做帧级训练时,前若干帧通常应剔除。
Q10:底视视角有什么问题?
所有视频都是自下而上拍摄。小鼠整个身体压在爪上时,无法判断是哪只爪在承重,这类帧被并入无爪。页面明确承认有一部分攀爬因此无法评分。这意味着无爪类里混入了「看不清」与「确实没碰壁」两种情形。
Q11:想只在自己项目里用几段,怎么最小化下载?
先访问文件目录,进到 dataset/<时间点>/<耳标号>/,只取那一段 MP4 与配对的标注 CSV。全量不必下载。云端桶也支持按前缀同步单个会话目录,适合批量取某几只鼠的全部时间点。
Q12:引用时用哪个 DOI?
引固定版本用 10.13026/8bnm-6e37,对应 1.0.0;引最新版用页面另给的 10.13026/tyn4-2a75。若论文强调可复现,应引固定版本,并在文中写明版本号与访问日期。
术语表
| 术语 | 英文 | 含义 |
|---|---|---|
| 圆柱攀爬 | cylinder rearing | 小鼠在透明圆柱内用后肢站立、前爪扶壁的探索行为 |
| 前爪不对称 | forepaw asymmetry | 左右前爪使用次数之差归一到比例 |
| 光栓 | photothrombosis | 光敏剂加激光局部照射,造成局部血管闭塞的卒中造模法 |
| 玫瑰红 | Rose Bengal | 常用光敏剂,光照后产生活性氧损伤血管内皮 |
| 光纤插芯 | fiber optic cannula | 植入颅内的导光接口 |
| 前爪感觉运动皮层 | forepaw sensorimotor cortex | 控制对侧前爪的皮层区域 |
| 最大缺损 | maximal deficit | 梗死后四十八小时左右功能最差的窗口 |
| 融媒 | vehicle | 只含赋形剂、不含活性成分的给药剂型 |
| 唑吡坦 | zolpidem | GABA-A 受体激动剂类催眠药 |
| 仑博雷生 | lemborexant | 双重食欲素受体拮抗剂类催眠药 |
| 帧计数 | frame-based count | 以帧为单位的类别计数 |
| 事件计数 | event-based count | 连续同标签帧合并后的计数 |
| 基线 | baseline | 造模与给药前的那次测试 |
| 耳标号 | eartag | 鼠只的唯一标识 |
| 假手术 | sham | 施加手术操作但不造成梗死的对照 |
| HEVC | High Efficiency Video Coding | 一种视频编码标准,又称 H.265 |
| 容器字段 | container metadata | MP4 里记录时长、分辨率、编码的头部信息 |
| 组内相关 | intraclass correlation | 同一只鼠多次测量之间的相关性 |
| 个体泄漏 | individual leakage | 同一只动物的数据同时进入训练与测试 |
| DAIMS | Data and AI Maturity Schema | 数据可发现、可获取、可互操作、可复用、可引用的五维评估框架 |
| 继发性丘脑损伤 | secondary thalamic injury | 梗死远端丘脑的继发损害,与行为缺损相关 |
附录 A:核心数字核对表
| 项 | 值 | 来源 | 来源层级 |
|---|---|---|---|
| 动物数 | 59 | 项目页 Abstract 与 Methods | 官方页面 |
| 分组人数 | 16 / 14 / 14 / 15 | 组别表逐行统计 | 文件 |
| 时间点数 | 5 | 项目页与目录 | 官方页面与文件 |
| 会话数 | 295 | 两份汇总文件行数 | 文件 |
| 单段时长上限 | 5 分钟 | 项目页 Data Description | 官方页面 |
| 抽查段时长 | 291.867 秒 | MP4 容器字段 | 文件 |
| 帧率 | 15 帧每秒 | 项目页 | 官方页面 |
| 抽查段分辨率 | 720 × 720 | MP4 容器字段 | 文件 |
| 抽查段体积 | 74,801,907 字节 | HTTP 响应头 | 文件 |
| 抽查段帧数 | 4376 | 标注文件行数 | 文件 |
| 未压缩体积 | 21.1 GB | 项目页 Files 段 | 官方页面 |
| 梗死时间 | 48 小时 | 项目页 Methods | 官方页面 |
| 激光参数 | 532 纳米,15 毫瓦,15 分钟 | 项目页 Methods | 官方页面 |
| 光纤芯径 | 200 微米 | 项目页 Methods | 官方页面 |
| 玫瑰红剂量 | 0.15 毫升,10 毫克每毫升 | 项目页 Methods | 官方页面 |
| 动物年龄 | 12 至 16 周 | 关联论文摘要 | 论文摘要 |
| 许可 | ODC-BY 1.0 | 项目页 Access 段 | 官方页面 |
| DOI | 10.13026/8bnm-6e37 | 项目页 | 官方页面 |
| 伦理批号 | 23-0332 | 项目页 Ethics 段 | 官方页面 |
附录 B:数字的来源分层
第一层,官方页面。 动物数、四组给药、五个时间点、四类标签、公式、五分钟上限、十五帧每秒、二十一点一吉字节、许可与 DOI,全部可以在项目页上逐条找到。这些数字的可信度最高,因为它们同时出现在正文、元数据与文件里。
第二层,关联论文摘要。 动物年龄十二至十六周、品系为雄性小鼠、行为测试在四十八小时与四周完成、三种自动步态测试未显著,这些来自 2025 年那篇比较论文的摘要,不在 PhysioNet 页面上。
第三层,文件与容器。 抽查段的时长二百九十一点八六七秒、分辨率七百二十见方、编码 HEVC、标注文件行数四千三百七十六,这些是逐个文件读出来的,只在单段上验证过,不能推及全部二百九十五段。
未核实项。 圆柱的直径与高度、相机型号与镜头、照明条件、试验前是否适应、标注者分工、被组织学排除的只数、每段是否都恰好录满上限,页面均未给出,本文也不作推测。
附录 C:完整参考文献
- Jiang Y, Venkitaraman S, Jung HR, Blackwood S, Lee J, Ajay Jadav A, Lee D, Kamal A, Landsness EC. Longitudinal Cylinder Rearing Behavioral Data in a Mouse Stroke Model Across Multiple Drug Treatments (version 1.0.0). PhysioNet. 2026. doi:10.13026/8bnm-6e37.
- Li CX, Kapoor E, Chen W, Ward LM, Lee DD, Titus A, Reardon KM, Lee JM, Yuede CM, Landsness EC. Manual assessment of cylinder rearing behavior is more sensitive than automated gait evaluations in young, male mice post-stroke of the forepaw somatosensory cortex. J Stroke Cerebrovasc Dis. 2025;34(7):108325. doi:10.1016/j.jstrokecerebrovasdis.2025.108325.
- Pollard T, Moody BE, Lehman LH, Gow B, Fernandes C, Xie C, Johnson A, Mark RG, Heldt T. PhysioNet as a global platform for biomedical research. Nature Health. 2026;1(8):792–795. doi:10.1038/s44360-026-00096-z.
- Parhizkar S, Bao X, Chen W, et al. Lemborexant ameliorates tau-mediated sleep loss and neurodegeneration in males in a mouse model of tauopathy. Nat Neurosci. 2025;28(7):1460–72. doi:10.1038/s41593-025-01966-7.
- Zhong ZG, Tao GJ, Hao SM, et al. Alleviating sleep disturbances and modulating neuronal activity after ischemia: evidence for the benefits of zolpidem in stroke recovery. CNS Neurosci Ther. 2024;30(2):e14637. doi:10.1111/cns.14637.
- Facchin L, Schöne C, Mensen A, et al. Slow waves promote sleep-dependent plasticity and functional recovery after stroke. J Neurosci. 2020;40(45):8637–8651. doi:10.1523/JNEUROSCI.0373-20.2020.
- Murphy TH, Corbett D. Plasticity during stroke recovery: from synapse to behaviour. Nat Rev Neurosci. 2009;10(12):861–72.
- Beuker C, Strecker JK, Rawal R, et al. Immune cell infiltration into the brain after ischemic stroke in humans compared to mice and rats: a systematic review and meta-analysis. Transl Stroke Res. 2021;12(6):976–90. doi:10.1007/s12975-021-00887-4.
附录 D:任务代码
以下四段覆盖最常见的四件事,均可直接运行。路径按本库解压后的结构填写。
#-- 任务一:由两套计数重算不对称度,并检查分母为零的会话
import pandas as pd
frames = pd.read_csv("all_scores.csv", dtype={"eartag": str})
events = pd.read_csv("all_scores_nonconsecutive.csv", dtype={"eartag": str})
events.columns = ["timepoint", "eartag", "l_e", "r_e", "b_e", "n_e"]
df = frames.merge(events, on=["timepoint", "eartag"], validate="one_to_one")
den_f = df["l"] + df["r"] + df["b"]
den_e = df["l_e"] + df["r_e"] + df["b_e"]
df["asym_f"] = ((df["l"] - df["r"]) / den_f.replace(0, pd.NA) * 100).round(2)
df["asym_e"] = ((df["l_e"] - df["r_e"]) / den_e.replace(0, pd.NA) * 100).round(2)
print("帧口径缺失", df["asym_f"].isna().sum(), "事件口径缺失", df["asym_e"].isna().sum())
print(df[["timepoint", "eartag", "asym_f", "asym_e"]].head())
#-- 任务二:按鼠划分后统计每折的会话数与组别构成
import pandas as pd
from sklearn.model_selection import GroupKFold
s = pd.read_csv("all_scores.csv", dtype={"eartag": str})
m = pd.read_csv("drug_group_assignments.csv", dtype={"eartag": str})
s = s.merge(m, on="eartag", validate="many_to_one")
for k, (tr, te) in enumerate(GroupKFold(n_splits=5).split(s, groups=s["eartag"]), 1):
print(k, "训练", len(tr), "测试", len(te),
s.iloc[te]["drug_group"].value_counts().to_dict())
#-- 任务三:批量下载某一只鼠的全部五个会话
BASE="https://physionet.org/files/mouse-stroke-cylinder-rearing/1.0.0/dataset"
for tp in bsl md wk2 wk4 wk8; do
mkdir -p "dataset/$tp/14"
curl -sSL -o "dataset/$tp/14/${tp}_14_score.csv" "$BASE/$tp/14/${tp}_14_score.csv"
done
du -sh dataset
#-- 任务四:把一段标注切成训练用窗口,并剔除开头卡片帧
import csv, numpy as np
LAB = {"l": 0, "r": 1, "b": 2, "n": 3}
rows = list(csv.reader(open("dataset/bsl/14/bsl_14_score.csv")))[3:]
labels = np.array([LAB[r[0]] for r in rows if r[0]])
CARD_FRAMES = 15 * 3 #-- 开头卡片按三秒估算,超过此处的帧才进入窗口
seq = labels[CARD_FRAMES:]
W = 30 #-- 两秒窗口,对应 15 帧每秒
windows = np.lib.stride_tricks.sliding_window_view(seq, W)
print("窗口数", windows.shape[0], "窗口宽", windows.shape[1])
print("末类占比", round((windows[:, -1] == 3).mean(), 3))
第三段只取标注文件,不下视频,几秒完成;若接着要视频,把 curl 的地址后缀改成 .mp4 即可。第四段的卡片帧数只是估算,官方未给卡片显示时长,实际使用时应对照首帧确认。
附录 E:如果只记五件事
-
五十九只鼠、五次随访、二百九十五段视频。 不是两百九十五个独立样本,一只鼠贡献五段,做划分必须按鼠分组。
-
标注是四类前爪状态,不是姿态。 左爪、右爪、双爪、无爪,每帧一个标签,没有坐标。
-
四组全部造模,组别按给药划分。 溶媒是对照但不是健康组,基线时间点才是发病前的参照。
-
两套计数口径。 帧计数看停留,事件计数看次数,不对称公式用事件数,混用会得到量级错了两个数量级的结果。
-
视频是 HEVC、正方形画面、五分钟上限。 抽查段二百九十一点八六七秒、七百二十见方、单段七十五兆字节,训练前先验证解码。
编辑说明
核验时间 2026 年 10 月 28 日。核验方式为直接抓取 PhysioNet 项目页与文件目录,下载根目录三份 CSV 并逐行统计,抽取耳标号十四的基线会话,读取其标注文件前若干行与 MP4 容器的时长、编码、分辨率字段,并用 HTTP 头核对单文件体积。未下载全量视频,未做任何分布统计,未训练模型,未计算组间差异。官方页面与文件之间未见数值矛盾,唯机构名拼写在页面内部存在两版,已按原样并列。数据版本为 1.0.0,首次发布于 2026 年 3 月 4 日;若平台改版导致路径变化,下载入口与文件清单需重新核对。圆柱规格、相机型号、照明条件、标注者分工与被组织学排除的只数,页面未作说明,本文不作推测。
相关数据集导航
以下为站内 AI-Ready 数据集百科中与本词条共享多个主题标签的相关数据集,按相关度降序排列:
- music-motion-2015 — 共享标签:神经科学 / 生理信号 / 步态与运动
- ninapro — 共享标签:神经科学 / 生理信号 / 步态与运动
- ua-speech — 共享标签:神经科学 / 生理信号 / 步态与运动
- gaitpdb — 共享标签:神经科学 / 生理信号 / 步态与运动
- umwdb — 共享标签:生理信号 / 步态与运动
- music-motion-2012 — 共享标签:生理信号 / 步态与运动
- eegmmidb — 共享标签:神经科学 / 生理信号 / 步态与运动
- torgo — 共享标签:生理信号 / 步态与运动
- emgdb — 共享标签:神经科学 / 生理信号
- hbedb — 共享标签:生理信号 / 步态与运动
导航说明:本章节由全站统一标签体系自动计算生成(标签重合度算法),双向可达;点击链接可跳转至对应数据集词条。

