跳到正文

姿态模型与预处理 ​

模型 ​

RodentLimb 使用 CylinderMousePoseV2:一个有 7 个关键点(LF、LH、RF、RH 四爪,尾根,鼻尖,嘴)的 YOLO 姿态模型。它由基于圆筒实验视频训练的 DeepLabCut 模型蒸馏而来,通过 Core ML 在 iPhone 上运行。V1 与 V2 在同一批视频上对比后,选用了 V2。

对视频的每一帧:

  1. 将画面等比缩放并补边到模型的正方形输入(640 × 640)。
  2. 模型返回候选检测结果。由于每段视频只有一只小鼠,保留高于检测置信度(设置中,默认 0.25)且置信度最高的一个。
  3. 将该检测的 7 个关键点映射回原始画面,并应用视频的旋转信息,使位置与播放器中看到的一致。

关键点对每段视频只保存一次(pose.plist),之后的步骤不再需要模型。

预处理 ​

计算任何指标前,先对每个关键点的轨迹做预处理:

  1. 置信度过滤:低于“关键点置信度”(0.30)的点视为缺失。
  2. 补缺:不超过“填补缺口上限”(0.25 秒)的缺口线性插值,更长的缺口保持缺失。
  3. 3 点中值滤波:去除单帧跳变(例如某只爪的标签短暂跳到另一只爪上)。
  4. 居中滑动平均,窗口为“位置平滑”(0.10 秒;步态为 0.03 秒,以保留短暂的摆动相)。

体长 ​

**体长(BL)**是整段视频中鼻尖到尾根距离的中位数。所有速度和距离阈值都以 BL 表示,因此同一套设置可用于不同的缩放和不同体型的动物。若鼻尖和尾根很少被检测到,BL 退而取画面短边的 1/8,结果中会给出提示。

时间基准 ​

关键点时间从第一帧解码画面起算为 0。回放器会在视频自身的时间轴与该时间基准之间换算,因此事件、图表和关键点叠加完全对齐。

需要注意的限制 ​

  • 每段视频一只小鼠。 第二只动物会干扰单一检测这一步。
  • 训练范围。 V2 用圆筒视频训练。悬尾和步态是不同视角,请检查叠加效果,并考虑把你自己实验条件下标注的帧加入训练集。
  • 左右指训练标注时动物自身的左右。画面镜像时请使用“交换左右标签”。