ESC
输入关键词搜索文章
目录

DeepLabCut

Nature Neuroscience 2018 · 动物姿态估计
用迁移学习让小样本动物姿态估计达到人类精度
50-200帧标注即可训练
6,000+次引用(2026)
ResNetImageNet 预训练骨干
多物种小鼠、果蝇
Part 1
为什么动物行为研究需要一套新工具

在神经科学和动物行为学实验中,量化行为是理解脑—行为关系的核心环节。传统上,研究者必须在动物身上贴上反光标记或穿戴传感器,才能追踪身体关键部位的运动轨迹。这些侵入式方法不仅昂贵、费时,还可能干扰动物的自然行为,甚至对小型模式动物(如果蝇、幼鼠)根本不可行。#Mathis et al., 2018

计算机视觉领域已经在人类姿态估计上取得了长足进步,尤其是基于深度卷积网络的方法。然而,这些方法通常依赖大规模标注数据集:例如 MPII Human Pose 数据集包含约 25,000 张标注图像。对于神经科学实验室来说,为每种新物种、每个新行为重新收集并标注如此规模的数据集,成本几乎不可接受。因此,一个关键的科学问题浮现:能否把从人类姿态估计中学到的知识迁移到动物身上,并且只需要极少量的新标注?

DeepLabCut 正是为回答这个问题而生。它的核心主张是:利用 ImageNet 预训练的深度残差网络(ResNet)作为通用视觉特征提取器,再在 50-200 帧目标动物视频上微调,即可得到用户自定义关键部位的姿态估计器,精度接近人类标注者。#Mathis et al., 2018

论文定位:DeepLabCut 不是提出新的网络结构,而是把 DeeperCut 的特征检测子模块剥离出来,绑定到 ResNet + ImageNet 这个 transfer learning 双引擎上,从而把深度学习姿态估计从“需要万级标注”变为“实验室可负担”。
Part 2
从多人姿态估计到单动物精确剪枝

DeeperCut 的遗产

DeepLabCut 的方法论血脉可以直接追溯到 Insafutdinov 等人在 ECCV 2016 提出的 DeeperCut。DeeperCut 解决的是“多人姿态估计”问题:先检测所有身体部位候选点,再通过整数线性规划(ILP)把候选点聚类成不同的人。它使用 ImageNet 预训练的 ResNet 作为骨干,并引入了 image-conditioned pairwise 项,大幅提升了精度和速度。#Insafutdinov et al., 2016

Mathis 等人发现,DeeperCut 中负责“为每个身体部位生成热图”的特征检测子模块已经足够强大。如果研究场景只涉及单只动物,那么就可以把多人聚类、图割推理等复杂模块全部砍掉,只保留这个子模块。这个“剪枝”操作是 DeepLabCut 的关键 Insight把为人类多人场景设计的模型,迁移到结构更简单但数据稀缺的动物场景。

为什么迁移有效?

迁移学习在这里成立的原因有三层:#Mathis et al., 2018

迁移学习成立的三层直觉

  • 底层特征共享:ImageNet 预训练让 ResNet 学到边缘、纹理、角点等通用视觉特征,这些特征对人类、小鼠、果蝇都部分适用。
  • 中层语义迁移:MPII 等人类姿态数据集让网络学到了“肢体关节出现在哪里”的局部空间先验,这些先验与四肢动物结构有重叠。
  • 顶层任务微调:只需替换最后的 readout 层,用少量动物帧标注即可把通用特征映射到具体物种的关键部位。
Part 3
DeepLabCut 架构详解

整体 Pipeline

DeepLabCut 的推理流程非常简洁:输入一张图像 → 由 ResNet 骨干提取多尺度特征 → 通过 deconvolutional 层上采样 → 为每个用户定义的身体部位输出一张 score map → 在 score map 上取局部最大值并做亚像素细化 → 得到最终坐标。#Mathis et al., 2018

这里有一个关键设计选择:与 DeepPose 等直接回归 $(x,y)$ 坐标的方法不同,DeepLabCut 选择输出整个空间概率分布(score map)。这种表示的好处是:首先,它把坐标估计变成了逐像素的分类问题,能够利用 ResNet 强大的空间特征;其次,它为亚像素定位提供了基础——即使真实位置落在下采样网格之间,仍可通过邻域响应插值得到更高精度;第三,score map 的峰值幅度和宽度天然可以作为置信度指标,便于后续人工复核。#Mathis et al., 2018

DeepLabCut 网络架构示意图
图 1:DeepLabCut 的网络架构。基于 ResNet 的骨干提取特征,经 deconvolution 层输出每个身体部位的 score map,最终通过局部最大值定位坐标。来源:Mathis et al. (2018) Figure 1。

从 DeeperCut 到 DeepLabCut 的 5 处微调

组件DeeperCutDeepLabCut动机
任务范围多人姿态估计单动物姿态估计去掉多人聚类,简化问题
输出头多人部位候选 + pairwise每部位 score map直接回归用户定义部位
训练数据大规模人类数据集(MPII)50-200 帧动物视频降低标注成本
骨干ResNetResNet(ImageNet 预训练)保持通用视觉特征
损失多任务损失per-pixel BCE匹配 score map 监督

Score Map 的构造

对于用户定义的 $K$ 个身体部位,网络为每个部位 $k$ 输出一张 score map $S_k$。训练目标是一张二值化的“软盘”标签 $T_k(i,j)$:以真实标注点为中心、半径 $\varepsilon$ 内的像素标记为 1,其余为 0。论文中使用 $\varepsilon = 17$ 像素,这个盘状标签让网络在位置不确定时仍能获得稳定梯度。#Mathis et al., 2018

形式化地,对于部位 $k$ 在像素 $(i,j)$ 上的目标标签为:

$$T_k(i,j) = \mathbf{1}\Bigl[\bigl(i - x_k\bigr)^2 + \bigl(j - y_k\bigr)^2 \le \varepsilon^2\Bigr]$$

其中 $(x_k, y_k)$ 是部位 $k$ 的真实标注坐标。训练时最小化每个像素上的二元交叉熵:

$$\mathcal{L} = -\sum_{k=1}^{K} \sum_{i,j} \Bigl[T_k(i,j) \log S_k(i,j) + \bigl(1 - T_k(i,j)\bigr) \log\bigl(1 - S_k(i,j)\bigr)\Bigr]$$

推理时,对 $S_k$ 取局部最大值位置,并通过周围像素的质心做亚像素偏移修正,得到比原始下采样网格更精细的坐标估计。

与已有方法的技术定位

维度DeepLabCutDeeperCutOpenPose/CPMDeepPose
核心表示单动物部位 score map多人部位候选 + pairwisePAF / 序列置信图直接回归坐标
训练目标per-pixel BCE多任务 + ILPPAF + heatmapL2 回归
数据需求50-200 帧25,000 帧级大规模人体大规模人体
适用场景单动物、小样本多人姿态多人实时人体姿态
Part 4
训练:小样本如何 work

训练配置披露表

配置项披露状态值 / 说明
训练数据已披露Mouse trail-tracking 1,080 帧;Mouse reaching 159 帧;Drosophila egg-laying 589 帧
训练硬件已披露1× NVIDIA GTX 1080 Ti
优化器已披露SGD,momentum 0.9
学习率已披露初始 1e-4,后期 5e-5
Batch size已披露1(支持变尺寸 ROI)
训练步数已披露~500,000 iterations
训练时长已披露约 24 小时单卡
模型参数量已披露ResNet-50 骨干 + 可训练 readout 层
精度格式未披露原文未给出
Checkpoint 策略已披露每 50,000 iter 保存 snapshot,用验证误差选择最佳

Batch=1 不是 bug,是 feature

很多深度学习从业者看到 batch=1 会觉得这是工程上的妥协,但在 DeepLabCut 的场景里它是有意设计。原因有三:#Mathis et al., 2018

为什么 batch=1

  • 变尺寸输入:不同实验拍摄的 ROI 尺寸差异很大,固定 batch 会强迫裁剪或填充,破坏图像内容。
  • 记忆 footprint:ResNet-101 全分辨率图像已经很大,batch=1 让单卡也能训练。
  • 过拟合风险:训练样本极少,batch=1 配合 heavy augmentation 相当于在线生成多样化样本。

数据增强与模型深度消融

论文对比了三档数据增强:基础 rescaling(50-150%)、加入旋转(±8°)、以及加入旋转 + subimage(±10° + 14 倍 subimage)。有趣的是,更强的增强并未一致优于基础增强,说明 ResNet 预训练特征本身已经非常鲁棒,过度增强反而可能破坏小样本下的稳定性。

这种“增强饱和”现象对实际使用很有启发:在迁移学习 + 小样本场景下,数据增强不是越多越好,而应与预训练模型已经编码的分布相匹配。过多的几何变换会让网络偏离它已经熟悉的人类/动物关节空间先验,从而需要更多标注才能重新收敛。论文因此建议从基础 rescaling 开始,仅在验证误差较高时逐步加入旋转等更强变换。#Mathis et al., 2018

在模型深度上,论文尝试了 ResNet-50、ResNet-101 和 ResNet-101ws(with intermediate supervision)。结果发现 101 系列相比 ResNet-50 没有显著提升,这暗示在迁移学习框架下,骨干深度带来的边际收益有限,数据效率和任务适配更为重要。对于资源有限的实验室,ResNet-50 提供了一个性价比极高的默认选择。#Mathis et al., 2018

关键 takeaway:Loss 不等于评价指标。训练用 BCE,但评估用 RMSE(相对于人类标注者)。因此必须每 50k iter 保存 snapshot 并在验证集上评估,选择 RMSE 最低点,而不是看训练 loss 收敛。
Part 5
推理:从 Score Map 到坐标

训练完成后,网络对输入图像输出每个部位的 score map $S_k$。推理分为两步:#Mathis et al., 2018

局部最大值定位

首先在 $S_k$ 上找到局部最大值点 $p^* = \arg\max_{p} S_k(p)$。由于网络输出相对于输入有下采样 stride $\lambda$(例如 8),直接取 $p^*$ 只能得到网格级别的坐标,精度有限。

亚像素细化

为获得更高精度,论文对 score map 的局部邻域做加权平均。设 $(L_x, L_y)$ 为位置细化场,则最终坐标估计为:

$$x^* = p_x^* \cdot \lambda + \lambda/2 + L_x(p^*)$$
$$y^* = p_y^* \cdot \lambda + \lambda/2 + L_y(p^*)$$

这个细化操作让 DeepLabCut 能够输出亚像素精度的关键部位坐标,从而在少量训练数据下仍达到接近人类标注者的 RMSE。

失败检测

论文还提出了一种简单的质量监控机制:如果某个部位 score map 的峰值幅度过低或峰宽过大,则该帧可能被标记为“低置信度”,需要人工复核。这对于实际实验非常重要——因为姿态估计器会犯错,研究者必须知道什么时候不该信任它

Part 6
实验验证:人类水平的精度

三数据集与实验配置

论文在三个数据集上验证:mouse odor trail-tracking(1,080 帧,标注 snout、ears、tail base)、mouse reaching(159 帧,标注前肢关节)和 Drosophila egg-laying(589 帧,标注 12 个身体部位)。每个数据集都包含两个人类标注者的结果,用来建立人类基准变异性。#Mathis et al., 2018

DeepLabCut 在 trail-tracking 数据上的数据效率结果
图 2:DeepLabCut 在 mouse trail-tracking 数据集上的数据效率与误差分析。随着训练帧数增加,网络误差迅速接近人类标注者之间的差异。来源:Mathis et al. (2018) Figure 2。

核心结果:数据效率

论文最引人注目的结果是:只用少量标注帧(~100-200),DeepLabCut 在 trail-tracking 任务上的测试误差就能接近人类标注者之间的差异。具体而言,在 snout、ears、tail base 等身体部位上,DLC 的 RMSE 落在人类标注者一致性的 95% 置信区间内。#Mathis et al., 2018

DeepLabCut end-to-end training 消融
图 5:end-to-end 训练消融。同时训练所有身体部位的完整模型(full)显著优于只训练单个部位的专用模型(specialized),说明共享 ResNet 特征并联合优化所有部位能带来协同收益。来源:Mathis et al. (2018) Figure 5。

失败案例

论文坦诚地展示了几个局限:#Mathis et al., 2018

  • 方法假设单只动物,未处理多动物场景或严重遮挡,这是后续工作的重点。
  • 未显式利用时序信息,单帧推理可能在不连续帧之间出现抖动。
  • 在 Drosophila egg-laying 数据中,腹部后段 A3–A6 等关键点靠近身体对称区域,网络偶尔会在这些局部外观相似的部位产生混淆。
Part 7
在地图上的位置

引用网络:从 ImageNet 到 DeepLabCut

DeepLabCut 的方法血统可以概括为一条清晰的因果链:ImageNet(数据)→ ResNet(可训练架构)→ MPII(人类姿态标注)→ DeepCut/DeeperCut(多人姿态解法)→ DeepLabCut(迁移到动物 + 小样本)。它不是凭空发明网络,而是把最强的多人姿态估计子模块精确剪枝到动物行为学的需求上。#Insafutdinov et al., 2016 #He et al., 2016 #Krizhevsky et al., 2012 #Andriluka et al., 2014

flowchart LR
    A["ImageNet 数据集"] --> B["AlexNet 2012\n预训练范式"]
    B --> C["ResNet 2016\n可深训练骨干"]
    C --> D["MPII 人类姿态\n25K 标注"]
    D --> E["DeepCut/DeeperCut\n多人姿态估计"]
    E --> F["DeepLabCut 2018\n单动物 + 小样本"]
  

影响与局限

自 2018 年发表以来,DeepLabCut 已成为动物行为学领域的事实标准工具,GitHub 仓库 star 数超过 5,700,衍生出了 3D 扩展、实时版本、多动物版本等后续工作。它真正改变的不是计算机视觉的技术上限,而是让神经科学实验室能够以可承受的标注成本,对自然行为进行量化分析。#Nath et al., 2019 #Lauer et al., 2022

然而,它的局限也很明确:单动物假设、无时序建模、对遮挡敏感。这些局限正是 2022 年多动物版本 DeepLabCut 要解决的问题。

关键收获

  • 迁移学习:ImageNet + ResNet 预训练特征可以跨越物种,把小样本动物姿态估计变成可行任务。
  • 精确剪枝:DeepLabCut 的成功在于识别出 DeeperCut 中可迁移的“单动物子模块”,而非重新设计网络。
  • 数据效率:50-200 帧标注即可达到人类精度,这是动物行为实验的“门槛突破”。
  • 评价分离:训练 loss(BCE)与评估指标(RMSE vs 人类)必须分开,用 snapshot 选择最佳模型。

参考来源

  • Mathis, A. et al. (2018). DeepLabCut: markerless pose estimation of user-defined body parts with deep learning. Nature Neuroscience, 21, 1281–1289. 10.1038/s41593-018-0209-y
  • Insafutdinov, E. et al. (2016). DeeperCut: A Deeper, Stronger, and Faster Multi-Person Pose Estimation Model. ECCV. arXiv:1605.03170
  • He, K. et al. (2016). Deep Residual Learning for Image Recognition. CVPR. arXiv:1512.03385
  • Krizhevsky, A. et al. (2012). ImageNet Classification with Deep Convolutional Neural Networks. NIPS. NeurIPS 2012
  • Andriluka, M. et al. (2014). 2D Human Pose Estimation: New Benchmark and State of the Art Analysis. CVPR. MPII Human Pose
  • Nath, T. et al. (2019). Using DeepLabCut for 3D markerless pose estimation across species and behaviors. Nature Protocols, 14, 2152–2176. 10.1038/s41596-019-0177-0
  • Lauer, J. et al. (2022). Multi-animal pose estimation, identification and tracking with DeepLabCut. Nature Methods, 19, 496–504. 10.1038/s41592-022-01443-0