案例研究:DeepLabCut 3D 姿态估计

micehandanim
使用 DeepLapCut 分析小鼠的运动#
(来源:www.deeplabcut.org )

开源软件正在加速生物医学的发展。DeepLabCut 使用深度学习实现动物行为的自动化视频分析。

—Alexander Mathis, 洛桑联邦理工学院(EPFL)助理教授 (EPFL)

关于 DeepLabCut#

DeepLabCut 是一个开源工具箱,使世界各地数百个机构的研究人员能够以极少量的训练数据、达到人类级别的准确性来跟踪实验室动物的行为。借助 DeepLabCut 技术,科学家们可以更深入地了解跨物种和时间尺度的运动控制和行为的科学理解。

神经科学、医学和生物力学等多个研究领域都使用动物运动追踪数据。DeepLabCut 通过解析录制在胶片上的动作来帮助理解人类和其他动物的行为。通过自动化繁琐的标记和监测任务,并结合基于深度神经网络的数据分析,DeepLabCut 使涉及观察动物(如灵长类动物、小鼠、鱼类、苍蝇等)的科学研究变得更快、更准确。

horserideranim
彩色圆点追踪赛马身体部位的位置#
(来源:Mackenzie Mathis)

DeepLabCut 通过提取动物姿态进行非侵入性行为追踪,这对于生物力学、遗传学、动物行为学和神经科学等领域的科学研究至关重要。在动态变化背景下,无标记地从视频中测量动物姿态在计算上具有挑战性,无论是在技术上还是在资源需求和训练数据方面。

DeepLabCut 允许研究人员估计被测对象的姿态,从而高效地通过基于 Python 的软件工具包量化行为。借助 DeepLabCut,研究人员可以从视频中识别特定帧,在几十帧中使用定制化的 GUI 数字标记特定身体部位,然后 DeepLabCut 中基于深度学习的姿态估计架构会学习如何在视频的其余部分以及其他相似动物视频中识别出相同的特征。它适用于各种动物,从常见的实验室动物(如苍蝇和小鼠)到不太常见的动物,如猎豹

DeepLabCut 使用一种称为迁移学习的原理,这大大减少了所需的训练数据量并加快了训练周期的收敛速度。根据需求,用户可以选择提供更快推理速度的不同网络架构(例如 MobileNetV2),还可以将其与实时实验反馈结合。DeepLabCut 最初使用了来自一种名为DeeperCut 的顶级人类姿态估计架构的特征检测器,该架构启发了它的名字。该软件包现已进行了重大更改,包括增加了额外的架构、增强方法和一个完整的前端用户体验。此外,为了支持大规模生物实验,DeepLabCut 提供了主动学习功能,以便用户可以随着时间的推移增加训练集,以涵盖边缘情况并使他们的姿态估计算法在特定环境中更加鲁棒。

最近,推出了DeepLabCut 模型库,其中提供了针对各种物种和实验条件的预训练模型,从灵长类动物的面部分析到犬类姿势。例如,可以在云端运行,无需标注新数据或进行神经网络训练,也不需要编程经验。

主要目标和成果#

  • 为科学研究自动化动物姿态分析

    DeepLabCut 技术的主要目标是在各种环境中测量和追踪动物的姿势。这些数据可用于神经科学研究,以了解大脑如何控制运动,或阐明动物如何进行社交互动。研究人员观察到,使用 DeepLabCut 的性能提升了十倍。姿势可以离线推断,速度高达每秒 1200 帧 (FPS)。

  • 创建易于使用的 Python 工具包进行姿态估计

    DeepLabCut 希望以易于使用的工具形式共享其动物姿态估计技术,以便研究人员轻松采用。因此,他们创建了一个完整的、易于使用的 Python 工具箱,并包含项目管理功能。这些功能不仅实现了姿态估计的自动化,还通过帮助 DeepLabCut 工具包用户从数据集收集阶段到创建可共享和可重用的分析管道,来管理项目的端到端过程。

    他们的工具包现已作为开源提供。

    典型的 DeepLabCut 工作流程包括

    • 通过主动学习创建和完善训练集
    • 为特定动物和场景创建定制的神经网络
    • 用于在视频上进行大规模推理的代码
    • 使用集成的可视化工具进行推理
dlcsteps
DeepLabCut 的姿态估计步骤#
(来源:DeepLabCut)

挑战#

  • 速度

    快速处理动物行为视频,以便测量其行为并同时提高科学实验的效率和准确性。在动态变化的环境中,提取实验室实验所需的详细动物姿势(无标记)在技术上、资源需求和训练数据方面都具有挑战性。开发一种易于使用的工具,无需计算机视觉专业知识等技能,使科学家能够在更真实的场景中进行研究,这是一个不小的挑战。

  • 组合学

    组合学涉及将多肢运动组合和整合到单个动物行为中。将关键点及其连接组合成单个动物运动并将它们随时间连接起来是一个复杂的过程,需要大量的数值分析,尤其是在实验视频中进行多动物运动追踪的情况下。

  • 数据处理

    最后但同样重要的是,数组操作——处理对应于各种图像、目标张量和关键点的大量数组堆栈相当具有挑战性。

challengesfig
姿态估计的多样性和复杂性#
(来源:Mackenzie Mathis)

NumPy 在应对姿态估计挑战中的作用#

NumPy 满足了 DeepLabCut 技术在行为分析领域对高速数值计算的核心需求。除了 NumPy,DeepLabCut 还使用了各种以 NumPy 为核心的 Python 软件,例如 SciPyPandasmatplotlibTensorpackimgaugscikit-learnscikit-imageTensorflow

NumPy 的以下特性在解决 DeepLabCut 姿态估计算法中的图像处理、组合学需求和对快速计算的需求方面发挥了关键作用

  • 矢量化
  • 掩码数组操作
  • 线性代数
  • 随机抽样
  • 大型数组的重塑

DeepLabCut 在其工具箱提供的整个工作流程中利用了 NumPy 的数组功能。特别是,NumPy 用于对用于人类注释标记的特定帧进行采样,以及用于编写、编辑和处理注释数据。在 TensorFlow 中,DeepLabCut 技术通过数千次迭代训练神经网络,以从帧中预测地面真实注释。为此,创建了目标密度(得分图),将姿态估计问题转化为图像到图像的转换问题。为了使神经网络具有鲁棒性,使用了数据增强,这需要根据各种几何和图像处理步骤计算目标得分图。为了加快训练速度,利用了 NumPy 的矢量化功能。对于推理,需要从目标得分图中提取最可能的预测,并且需要有效地“链接预测以组合各个动物”。

workflow
DeepLabCut 工作流程#
(来源:Mackenzie Mathis)

总结#

观察和高效地描述行为是现代动物行为学、神经科学、医学和技术的核心原则。DeepLabCut 允许研究人员估计被测对象的姿态,从而高效地量化行为。仅凭少量训练图像,DeepLabCut Python 工具箱就可以训练一个达到人类标记准确性水平的神经网络,从而将其应用范围扩展到实验室行为分析,甚至可能扩展到体育、步态分析、医学和康复研究。DeepLabCut 算法面临的复杂组合学和数据处理挑战通过使用 NumPy 的数组操作功能得到了解决。

numpy benefits
利用的关键 NumPy 功能#

在此页面