E04 · DeepLabCut: markerless pose estimation of user-defined body parts with deep learning
Mathis, A., Mamidanna, P., Cury, K.M., Abe, T., Murthy, V.N., Mathis, M.W., & Bethge, M. (2018). Nature Neuroscience, 21, 1281–1289. doi:10.1038/s41593-018-0209-y
DeepLabCut将预训练视觉网络用于用户自定义身体部位的二维定位。小鼠和果蝇实验表明,在所测成像条件下,较少标注即可取得接近人工标注变异的误差;跨物种仍需相应训练和验证。
核对版本:Zotero VR 集合中的本地 PDF(2026-09-18);Zotero 条目 · 打开原文。图下页码均为该 PDF 的文件页序,从 1 开始,可能不同于期刊印刷页码。
背景
行为视频中人工逐帧标注成本高,而不同实验关注的身体部位并不一致。本文检验预训练视觉网络能否以较少任务内标注支持自定义二维部位定位。
研究思路
研究微调部位检测网络,以重复人工标注的变异作为参照,系统比较训练量和定位误差,再展示新个体、果蝇与小鼠手指任务。每类任务有自己的训练与测试,跨物种流程复用不等于模型直接通用。
方法
网络结构:ResNet-50(ImageNet 预训练)去掉分类头,接 deconvolutional layers,为每个身体部位输出一张 score-map,表示该部位在各像素位置的预测分数;训练时在标注位置周围 ϵ=17 像素半径内生成目标分布,最小化 cross-entropy loss,SGD 优化约 50 万步收敛,单张 GTX 1080 Ti 上最多 24 小时,batch size 为 1(因此输入图像可以不同尺寸),数据增强只做 50%–150% 的 rescaling。三个数据集层层加码:气味轨迹追踪(两台相机、7 只小鼠,抽 1,080 帧标注 snout、左右耳、tail base 四点;同一位标注者隔一个多月标两遍,human variability 为 2.69±0.1 像素,而低分辨率相机里鼠鼻本身只有约 5 像素宽);果蝇在产卵盒里自由活动(6 只果蝇、589 帧、12 个身体点,只标可见点);head-fixed 小鼠抓拉操纵杆任务(5 只小鼠、2048×1088 分辨率、100–320 Hz 录像,定义 13 个关键点——每根可见手指的指尖、中间关节和根部三点加腕部,共标 159 帧)。全套代码以开源工具箱发布,从抽帧、标注检查、生成训练数据到批量预测一条龙。
主要结果
核心数字是训练集需求的坍缩。用 80% 的帧(约 860 帧)训练,snout 和 tail base 的测试 RMSE 就达到 human variability 水平;系统性地把训练集从 80% 一路砍到 20%、10%、5%、1%(共训了 30 个网络),测试误差只是缓慢上升,10% 训练量(约 100 帧)仍保持平均 5 像素以内——正好是低分辨率画面里一个鼻尖的大小,远小于高分辨率相机里约 30 像素的鼻宽。换更深的骨干只有小幅改善(三个 50% 训练 split 的平均测试 RMSE:ResNet-50 为 3.09±0.04,ResNet-101 为 2.90±0.09,加 intermediate supervision 的 ResNet-101 为 2.88±0.06 像素)。出乎意料的是旋转平移类数据增强几乎不涨点——省标注的关键是挑姿态多样的帧,而不是把少量帧变形出花来。
第二个发现是泛化好得出奇。训练时只见过单只鼠的图像,直接用在从未见过的新小鼠上,2,331 帧的轨迹连续平滑、逐帧坐标差集中在几个像素内;更夸张的是多鼠同框:网络从没被教过"画面里可能有两三只鼠",却能在三只鼠互动、照明不均的开阔场里把多只鼠的部件都检出来(互相遮挡时才出错)。第三个发现是 end-to-end 训练的红利:用全部四点标注训练的网络,在 snout 上的 RMSE 几乎只有"仅用 snout 标注训练"的专用网络的一半——共享的 ResNet 从其他身体部位的监督里学习到了姿态结构,这一比较支持多部位联合训练的收益,并未排除所有固定特征方法。
两个压力测试同样过硬。果蝇用 95% 训练量时测试误差 4.17±0.32 像素(参照:复眼直径 36 像素、腿节直径 8.5 像素),对训练集外的果蝇、盒壁和顶面上的各种朝向、被逐渐产下的卵铺满的杂乱背景都稳健,连喙伸出这种快速变形动作都跟得住。在小鼠手部分析中,使用 141 帧训练,测试误差 5.21±0.28 像素,而单根手指的宽度才约 15 像素。score-map 的峰值概率还能当置信度用:手指握住操纵杆被遮挡时概率自动掉下来,低分数与部分遮挡情形相伴——这直接支撑了按置信度挑帧、迭代补标注的主动学习流程。速度上,1080Ti 处理 682×540 的果蝇视频约 30 帧/秒,204×162 的低分辨率视频可到约 85 Hz,这些吞吐率为闭环应用提供参考,但本文未测定端到端闭环延迟。
逐图解读

来源:原文 Fig. 1,PDF 第 2 页。
图 1 · 工具箱工作流程。 四步:抽帧(挑有代表性姿态的帧,ROI 在包含行为的前提下尽量小)、人工标注(示例是小鼠手的 13 个点:每根手指的三个关节加腕部)、训练 DNN(ImageNet 预训练的 ResNet-50 加反卷积读出层,每个部位一个 score-map)、再用训好的网络批量预测新视频。这张图是给实验室用户的说明书,也宣示了设计哲学:网络学的是使用者任意定义的 body parts,不是预定义骨架——标题里"user-defined"三个字就落在这里。

来源:原文 Fig. 2,PDF 第 3 页。
图 2 · 气味轨迹任务上的基准测试。 (a) 两台相机的示例帧:红外光下打印的气味轨迹和奖励水滴构成时变背景,人标了 snout、双耳和 tail base。(b、c) 80%/20% 训练测试下三个 split 的 cross-entropy 与 RMSE 随训练迭代的变化,黑色是 human variability 及其 95% 置信区间——网络的测试误差最终落进这条带。(d) 只看 snout 和 tail base,人类水平达标。(f) 是全文最重要的曲线:训练帧数从约 1,000 砍到 100 出头,测试 RMSE 只是缓慢爬升,约 100 帧时仍在 5 像素以内。(g) 逐图对比人与模型的误差,绝大多数落在零附近,少数离群点反而是人自己前后标错。

来源:原文 Fig. 3,PDF 第 4 页。
图 3 · 追踪行为的"舞蹈谱"。 绿色和青色点分别是一只追踪气味轨迹的小鼠 snout 在未来和过去 30 个时刻的位置(相邻点间隔 33.3 ms),品红菱形是对应时刻的头和身体姿态,灰色是打印的气味轨迹。四个点合起来,把啮齿类追踪气味时左右摆头扫过轨迹的经典行为模式画成了一张图。这是 pose estimation 落到具体科学问题的演示:有了自动追踪,这种行为学签名不再需要人工逐帧去盯。

来源:原文 Fig. 4,PDF 第 5 页。
图 4 · 泛化与迁移。 (a) 训练集外的新小鼠在移动纸带上追踪气味的 snout 和 tail base 逐帧轨迹(n=2,331 帧),轨迹连续无跳变,逐帧坐标差的直方图集中在几个像素内——对未见个体的泛化。(b) 更进一步的迁移:只见过单鼠图像的网络面对三只鼠同框的画面,照样把多只鼠的部件都检出来(上排成功例),互相遮挡时才失败(下排),而且这些鼠比训练集里的更年幼、体型不同。这张图说明特征检测器学到的是"鼠的部件长什么样",而不是记住了某个特定场景。

来源:原文 Fig. 5,PDF 第 5 页。
图 5 · End-to-end 训练的收益。 对比"全标注模型在 snout 上的 RMSE"(full@snout)与"只用 snout 标注训练的专用模型"(snout@snout),tail base 同理:在相同的三个 50% 训练 split 下,全模型把专用模型高于近一倍。关键是两个网络关于 snout 位置的监督信息完全一样,差别只在共享的 ResNet 同时收到了耳朵和尾巴的监督。这支持该网络中多部位联合监督优于单部位监督:多部位监督经由共享表征互相搬运知识。

来源:原文 Fig. 6,PDF 第 6 页。
图 6 · 果蝇:朝向、背景与快速动作。 (a) 测试帧上人标与网络标几乎重合(图中两个例子的 RMSE 分别为 2.99 和 2.87 像素)。(b) 训练集外的果蝇以各种朝向出现在盒壁和顶面上,检测依旧稳健——固定视角下外观剧变,正是对"user-defined 部位检测器"的真正考验。(c) 被产下的卵逐渐铺满的杂乱背景。(d) 喙伸出的连续动作序列被自动追踪。这组图论证同一套流程可以经相应标注和重新训练用于果蝇行为。

来源:原文 Fig. 7,PDF 第 7 页。
图 7 · 手指追踪与置信度读出。 (a) 人标(黄)与网络标(红/紫)的对比:score-map 峰值概率大于 10% 标红,否则标紫。141 帧训练的网络在测试帧上与人贴得很近,而且手指被操纵杆遮挡、连标注者都没把握下手的帧,网络会自动降低置信度(紫色),右侧的 score-map 可视化直接展示了概率质量的分布。(b–d) 下游分析示例:不带任何时间滤波的逐帧手指轨迹、三次 reach-pull 中腕与手指运动模式的比较。(e) 用预测的腕位置抠出 1,139 帧手部图像做 t-SNE,嵌入可视化展示了手部图像的变化,不能单独证明真实姿态空间的维度。(f) 把语义标签连边成手的"骨架"。这张图讲的是工具的终点:从视频直达可用于运动控制分析的低维时间序列。
讨论与解读边界
本文的主要贡献是降低定制姿态估计的门槛,并给出标注量、误差和迁移表现的实测比较。像素误差依赖分辨率、部位大小与标注规则,不能将“约100帧”或“人类水平”当作任何实验都成立的保证。
新动物轨迹平滑是有用的定性检查,但不替代有真值的定位误差。多鼠画面中的部位检测并不是稳定的个体身份追踪。score-map峰值可用于筛选低可信预测,却不等于经过校准的不确定性;吞吐帧率也不等于闭环端到端延迟。本文没有直接验证猕猴三维手姿态、遮挡下关节恢复或实时VR闭环。
思考问题
- 若测试集按动物、拍摄日和相机条件整体留出,误差会比随机帧划分增加多少?
- 在猕猴抓握中,应如何标注被遮挡关节,并分别评估定位误差、身份一致性和闭环延迟?