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

Multi-animal DeepLabCut

Nature Methods 2022 · 多动物姿态估计与跟踪
把单动物 pose estimation 扩展到遮挡、身份混淆与长时间跟踪
4个 benchmark 数据集
3个子任务:检测 + 组装 + 跟踪
DLCRNet多任务 CNN + PAF
ReIDTransformer 身份识别
Part 1
从单动物到多动物:新的鸿沟

DeepLabCut:用迁移学习实现动物姿态估计 奠定了单动物无标记姿态估计的基础。但许多生物学问题——从育儿行为到鱼群游动、狨猴社交——都要求同时追踪多个个体的姿态。这引入了三个新的挑战:遮挡、身份混淆、外观相似。#Lauer et al., 2022

在人类姿态估计中,人的身体结构相对统一,多人大致等大、可区分。动物则不同:同笼小鼠外观几乎一样;鱼群个体密度高且频繁交叉;狨猴会相互梳理毛发导致严重遮挡。因此,直接把 OpenPose 或单动物 DeepLabCut 搬到多动物场景,会面临关键点该分给谁个体在遮挡后如何重新识别轨迹如何跨时间连续三个正交难题。

Lauer 等人把多动物姿态跟踪形式化为一个时空域数据分配问题(data assignment problem):先在每帧内把检测到的关键点分配给正确个体(assembly),再在帧间把这些个体关联成连续轨迹(tracking)。这正是 DeepLabCut 2.2 版本要解决的核心问题。#Lauer et al., 2022

作者与机构:Jessy Lauer, Mu Zhou, Shaokai Ye, William Menegas, Steffen Schneider, Tanmay Nath, Mohammed Mostafizur Rahman, Valentina Di Santo, Daniel Soberanes, Guoping Feng, Venkatesh N. Murthy, George Lauder, Catherine Dulac, Mackenzie Weygandt Mathis*, Alexander Mathis共同通讯作者)。机构:EPFL Brain Mind Institute;Rowland Institute at Harvard;MIT BCS & McGovern;Harvard MCB & Center for Brain Science;HHMI;Harvard OEB;Stockholm University。
与 2018 版的关系:2018 年的 DeepLabCut 假设画面中只有一只动物,因此可以跳过 assembly。2022 版保留了其 ResNet 特征提取与 score map 监督思想,新增了 PAF、identity head、数据驱动 assembly 和 network-flow tracking 四个模块。
Part 2
多动物姿态估计的本质:三个正交子任务

Pose Estimation

与单动物版本类似,网络为每个用户定义的关键点输出 score map 和位置细化场。但多动物版本需要同时检测画面中所有个体的同名关键点,因此 score map 上会出现多个峰值,而不是一个。

Assembly

Assembly 是把分散的关键点组合成完整个体的过程。Lauer 等人采用Part Affinity Fields (PAFs),这是 Cao 等人在 OpenPose 中提出的技术。PAF 对每一对关键点(例如左肩与左肘)输出一个二维向量场,指示两点应属于同一个体的概率和方向。#Cao et al., 2017

Tracking

一旦每帧内的关键点被组装成个体,还需要在帧间建立对应关系。论文把 tracking 拆成两步:局部 tracker(基于 SORT 的 box/ellipse 跟踪)和全局 tracklet stitching(基于 min-cost flow 的网络流优化)。#Lauer et al., 2022

为什么拆成三个步骤?

把 pose、assembly、tracking 分开,让每一步都可以独立优化,并且可以用不同的监督信号:pose 用关键点标注,assembly 用 PAF 关联,tracking 用 ID 一致性。这种分而治之的策略是 DeepLabCut 2.2 工程上可落地的关键。

四个 benchmark 数据集

为了验证方法,论文发布了四个难度递增的数据集:三只小鼠开放场、育儿小鼠、成对狨猴、鱼群。每个数据集都包含人工标注的关键点和身份标签,用于比较不同方法在 assembly 和 tracking 上的表现。论文把这些数据集开放为社区基准:benchmark.deeplabcut.org#Lauer et al., 2022

数据集动物数帧数主要挑战
Tri-mouse3161112 / 4912频繁交互、遮挡
Parenting1 母 + 2 pup542379 / 1635 pup + 12 adult尺度差异、外观相似
Marmosets27,6005,316 / 2,27815长时视频、社交行为
Fish1410070 / 305–6高密度、外观高度相似
Part 3
DLCRNet 与数据驱动的个体组装

整体架构

DeepLabCut 2.2 的核心网络是 DLCRNet_ms5(multi-scale, 5-stage)。它在 ResNet 骨干基础上增加了多尺度融合模块:把 conv2、conv3 的高分辨率特征与 conv5 的低分辨率特征融合,再经过多 stage decoder 同时输出 score map、PAF 和 animal identity。#Lauer et al., 2022

Multi-animal DeepLabCut 架构
图 1:Multi-animal DeepLabCut 的整体架构。多任务 CNN 同时输出关键点 score map、PAF 和动物身份,再通过 assembly 和 tracking 得到连续轨迹。来源:Lauer et al. (2022) Figure 1。

数据驱动的 PAF 图选择

传统 PAF 方法需要用户手动定义 skeleton(哪些关键点之间有连接)。动物种类繁多,手动定义既繁琐又不一定最优。Lauer 等人提出了数据驱动的 PAF 图选择#Lauer et al., 2022

flowchart TD
    A[完全图 PAF 训练] --> B{计算每条边的 auROC}
    B --> C[按区分度排序]
    C --> D[最大生成树保留核心边]
    D --> E[剪枝低区分边 约25%]
    E --> F[得到数据驱动 skeleton]
  
  1. 先训练网络预测所有可能的边(完全图)的 PAF。
  2. 在训练集上计算每条边的 discriminability(用 auROC 衡量)。
  3. 按 auROC 排序,用最大生成树保留最有信息量的边,再剪枝掉约 25% 的低区分边。

这个流程避免了手工 skeleton 设计,同时在实验中证明比固定 skeleton 提升 15-20 mAP。

个体 Assembly 算法

Assembly 在数学上是一个组合优化问题:给定一组关键点候选和边权重,找出一个最优的个体划分。这个问题是 NP-hard 的,但论文采用了一种贪心 + 可训练 affinity 成本的近似策略:先按边权重构建强连接,再用全局信息解决局部歧义。对于视频序列,还可以利用帧间 affinity 成本作为正则化。#Lauer et al., 2022

PAF 的 affinity 成本定义为沿候选点连线的向量场积分:

$$\mathcal{C}_{ij} = \frac{1}{|\gamma_{ij}|} \int_{\gamma_{ij}} \mathbf{P}_{ij}(p) \cdot \frac{\gamma_{ij}'(p)}{|\gamma_{ij}'(p)|} \, dp$$

其中 $\gamma_{ij}$ 是连接关键点 $i$$j$ 的线段,$\mathbf{P}_{ij}$ 是 PAF 向量场。如果 $i$$j$ 确实属于同一个体,沿线方向的 PAF 向量应与连线方向一致,积分值接近 1;否则接近 0。

Part 4
训练:多任务联合优化

训练配置披露表

配置项披露状态值 / 说明
训练数据已披露Tri-mouse 161 / Parenting 542 / Marmoset 7,600 / Fish 100 帧
训练硬件部分披露未明确 GPU 型号;速度测试用 i9-10900X
优化器已披露Adam
学习率已披露DLC schedule:1e-4 → 5e-5 → 1e-5
Batch size已披露8
训练步数已披露Tri-mouse/Parenting/Fish 60k;Marmoset 200k
训练时长未披露原文未给出
模型参数量已披露DLCRNet_ms5 + ResNet-50/EfficientNet 骨干
精度格式未披露原文未给出
Checkpoint 策略已披露保存多个 snapshot,选验证集 mAP 最高

多任务损失

网络同时有三个输出头:关键点 score map、PAF 和动物身份。因此总损失是三项损失的加权:

$$\mathcal{L} = \mathcal{L}_{\text{score}} + \lambda_{\text{PAF}} \mathcal{L}_{\text{PAF}} + \lambda_{\text{ID}} \mathcal{L}_{\text{ID}}$$

论文没有明确给出 $\lambda_{\text{PAF}}$$\lambda_{\text{ID}}$ 的具体数值,这是复现时的一个关键缺失细节。ID 损失采用标准的分类交叉熵,让网络从姿态张量预测每个个体属于哪只动物。#Lauer et al., 2022

数据增强

训练时使用了旋转、随机裁剪、运动模糊、关键点感知裁剪等增强。由于多动物场景 ROI 尺寸差异更大,batch size 提高到 8(相对于单动物版的 1),但仍保持变尺寸输入的兼容性。

Part 5
推理与跟踪 Pipeline

从检测到的关键点到连续轨迹

推理阶段,DLCRNet 先输出每帧的 score map、PAF 和 ID 特征,然后按以下顺序处理:#Lauer et al., 2022

  1. 关键点检测:从 score map 中提取所有局部最大值,用位置细化场得到亚像素坐标。
  2. Assembly:基于数据驱动选择的 PAF 图,把关键点组装成个体。
  3. 局部跟踪:用 SORT 风格的 box tracker 或 ellipse tracker 在相邻帧间建立短轨迹(tracklets)。
  4. 全局拼接:把短 tracklets 通过 min-cost flow 网络流优化,连接成完整轨迹。
  5. ID 重识别:当个体因遮挡消失再出现时,用 Transformer 提取的 ID 特征进行 re-identification。
多动物跟踪示意
图 3:DeepLabCut 2.2 的跟踪流程。先组装个体,再生成短 tracklets,最后用 min-cost flow 拼接成完整轨迹。来源:Lauer et al. (2022) Figure 3。

Tracklet Stitching:网络流优化

局部跟踪只考虑相邻帧,容易在遮挡或快速运动时产生 ID 切换。论文把 tracklet 拼接建模为有向无环图上的最小费用流问题:每个 tracklet 是图中的一个节点,边表示两个 tracklet 能否由同一个个体产生,边成本 $w_e$ 综合了运动连续性、空间距离、形状相似性和动态相似性。网络流的目标是从源点到汇点找到总成本最小的边集合:#Lauer et al., 2022

$$\min_{x \in \{0,1\}^E} \sum_{e \in E} w_e x_e \quad \text{s.t.} \quad \sum_{e \in \delta^+(v)} x_e = \sum_{e \in \delta^-(v)} x_e \quad \forall v \in V$$

其中 $\delta^+(v)$$\delta^-(v)$ 分别表示节点 $v$ 的出边和入边。这个约束保证每个 tracklet 最多有一个前驱和一个后继,从而得到一组不重叠、时序连贯的完整轨迹。论文用 NetworkX 求解这个整数规划问题。

ReID Transformer

当动物被遮挡、离开视野或外观变化导致时间跟踪失败时,需要用外观/姿态特征重新识别。论文设计了一个小型 Transformer,输入每个 tracklet 的姿态坐标张量,输出 128 维身份嵌入。训练时采用 triplet loss,使同一动物的嵌入距离近、不同动物的嵌入距离远。#Lauer et al., 2022

Triplet loss 的形式为:

$$\mathcal{L}_{\text{triplet}} = \max\!\left(0,\; d(f_a, f_p) - d(f_a, f_n) + \alpha\right)$$

其中 $f_a$$f_p$$f_n$ 分别是 anchor、positive、negative 三个 tracklet 经 Transformer 提取的 128 维嵌入,$d(\cdot,\cdot)$ 是 cosine 距离,$\alpha$ 是 margin。这种基于姿态的身份嵌入在 marmoset 数据集上表现稳定:从头部附近的 99.2% 到远端的 95.1%,模型能从姿态张量隐式学到动物身份特征。

ReID Transformer 架构
图 4:用于动物身份重识别的 Transformer。输入姿态张量,输出身份嵌入,帮助在遮挡后重新关联个体。来源:Lauer et al. (2022) Figure 4。
Part 6
实验验证:四类数据集上的 SOTA

主实验结果

论文在四个数据集上评估了关键点检测、assembly 和 tracking。核心指标是 mAP(mean Average Precision,用于检测与 assembly)和 MOTA(Multiple Object Tracking Accuracy,用于跟踪)。DLCRNet_ms5 在几乎所有 benchmark 上都达到了 SOTA,并且超过了同期 SLEAP、AlphaTracker 和 MARS 等竞品。#Lauer et al., 2022

关键点检测的 median error(像素)为:tri-mouse 2.65 / parenting 5.25 / marmoset 4.59 / fish 2.72。PCK 指标显示约 93.6 ± 6.9% 的关键点落在阈值范围内。这些数据说明 DLCRNet_ms5 在不同物种、不同密度场景下都保持了较高精度。

Baseline 对比

论文与 MMPose 提供的 ResNet-AE、HRNet-AE 等 bottom-up 方法进行了系统对比。在 tri-mouse 和 marmoset 数据集上,DLCRNet_ms5 显著优于这些基线(例如 tri-mouse 上 p = 8.8e-08),说明数据驱动的 PAF 图选择和 multi-scale fusion 设计对动物场景有明确增益。

方法核心思路tri-mouse mAPmarmoset mAP与 DLC 2.2 关系
DLCRNet_ms5multi-scale + data-driven PAFSOTASOTA本文方法
ResNet-AE (MMPose)associative embedding显著低 (p=8.8e-08)显著低 (p=3.8e-11)strong baseline
HRNet-AE (MMPose)高分辨率 AE显著低显著低strong baseline
SLEAPbottom-up + top-down + active learningcompetitorcompetitor同期姊妹工作

跟踪:Ellipse vs Box

在 ellipse tracker 与 box tracker 的 head-to-head 对比中,ellipse tracker 达到 MOTA = 0.97(接近完美),box tracker 为 0.78;ellipse 同时把 false negative 数量减少了 92%。这一对比说明为什么需要用参数化几何形状而非 bounding box:box 对单点 outlier 检测非常敏感,ellipse 通过协方差建模自然吸收了错误关键点。#Lauer et al., 2022

数据驱动的 PAF 图选择相比手工 skeleton 有显著优势。在 marmoset 数据集上,剪枝约 25% 的低区分边后,mAP 反而提升约 15-20 点。这说明不是边越多越好,真正重要的是保留那些有区分性的连接。

与 idtracker.ai 的对比

idtracker.ai 是一个基于纯外观的跟踪工具,不依赖姿态。论文在 tri-mouse 和 marmoset 数据上直接对比,结果显示 idtracker.ai 在这些场景下表现很差,MOTA 甚至出现负值。在 tri-mouse 上,DLCRNet 与 idtracker.ai 的对比达到 T = -11.03, p = 0.0008, d = 5.52;在 marmoset 上为 T = -8.43, p = 0.0018, d = 4.22。这说明仅靠外观在动物外观相似时不够,姿态信息对 tracking 至关重要#Lauer et al., 2022

失败案例

论文也展示了一些局限:#Lauer et al., 2022

  • 域外泛化:在 marmoset 的域外测试集上,mAP 下降约 0.25,说明模型对训练分布外数据敏感。
  • 高密度鱼群:14 条鱼密集游动时,assembly 和 tracking 仍然困难。
  • pup label 一致性: parenting 数据集中幼鼠尺寸小、运动快,人工标注一致性本身较低,限制了模型上限。
狨猴社交行为应用
图 5:DeepLabCut 2.2 在成对狨猴社交行为上的应用。来源:Lauer et al. (2022) Figure 5。
Part 7
在地图上的位置

与同期工作的关系

2022 年是多动物姿态估计工具爆发的年份。DeepLabCut 2.2 与 SLEAP 几乎同期发表在 Nature Methods,两者被称为“双子锚”。SLEAP 也支持 bottom-up 和 top-down 两种范式,并强调 active learning 工作流;DeepLabCut 2.2 则强调 PAF-based assembly + network-flow tracking + identity transformer 的组合。#Pereira et al., 2022 #Lauer et al., 2022

工具年份核心思路与 DLC 2.2 的关系
SLEAP2022bottom-up + top-down,30+ 模型同期姊妹工作,最直接 competitor
AlphaTracker2022检测 + 跟踪一体化同期 multi-animal 工具
MARS2021社交行为专用 pipeline更早的行为分析工具
idtracker.ai2020纯外观跟踪本文 head-to-head 击败的 baseline

社区影响与开源生态

DeepLabCut 的 GitHub 仓库截至 2026 年 7 月已获得超过 5,700 个 star(SLEAP 约 600),约为 9.5 倍。围绕它形成了丰富的生态:3D 扩展(3D-MuPPET)、实时版本(DeepLabCut-Live!)、行为分析(DeepLabStream)、大模型预训练(SuperAnimal)以及基于姿态的行为理解(AmadeusGPT)。#Lauer et al., 2022

四个 benchmark 数据集均已在 Zenodo 开放:Tri-mouse(10.5281/zenodo.5851157)、Parenting(10.5281/zenodo.5851109)、Marmoset(10.5281/zenodo.5849371)、Fish(10.5281/zenodo.5849286)。论文配套复现仓库:DeepLabCut/maDLC_NatureMethods2022

局限与展望

尽管 DeepLabCut 2.2 在多动物场景上取得了突破,仍有明确局限:身份识别依赖外观差异,当动物完全无法区分时仍会失败;3D 姿态跟踪仍需要额外相机标定;GUI 安装和 CUDA 环境对新用户仍有门槛。后续工作正在从 foundation model 预训练、无监督学习和 3D 多视角方向推进。

关键收获

  • 问题分解:把多动物跟踪拆成 pose + assembly + tracking,让每一步可独立优化。
  • 数据驱动 assembly:用 auROC 和最大生成树自动选择 PAF 图,避免手工 skeleton。
  • 全局跟踪:min-cost flow 把局部 tracklets 拼接成全局最优轨迹,显著减少 ID 切换。
  • 姿态辅助 ReID:Transformer 从姿态张量学习身份嵌入,在遮挡后重新关联个体。
  • 开放 benchmark:四个数据集为后续算法提供了公平比较的基础。

参考来源

  • 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; bioRxiv preprint 10.1101/2021.04.30.442096
  • 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
  • Cao, Z. et al. (2017). Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields. CVPR. arXiv:1611.08050
  • Pereira, T. D. et al. (2022). SLEAP: A deep learning system for multi-animal pose tracking. Nature Methods, 19, 459–464. 10.1038/s41592-022-01426-1