开源软件正在加速生物医学的发展。DeepLabCut 使用深度学习实现动物行为的自动化视频分析。
— Alexander Mathis, 洛桑联邦理工学院助理教授 (EPFL)
DeepLabCut 是一个开源工具箱,它使全球数百家机构的研究人员能够以非常少的训练数据,以人类水平的精度跟踪实验室动物的行为。借助 DeepLabCut 技术,科学家可以更深入地研究动物物种和时间尺度上的运动控制和行为的科学理解。
包括神经科学、医学和生物力学在内的几个研究领域都使用来自跟踪动物运动的数据。DeepLabCut 通过解析在影片中记录的行为来帮助理解人类和其他动物在做什么。通过使用自动化进行繁琐的标记和监控任务,以及基于深度神经网络的数据分析,DeepLabCut 使观察动物(如灵长类动物、小鼠、鱼、果蝇等)的科学研究更快、更准确。
DeepLabCut 通过提取动物的姿势来对动物进行非侵入式行为跟踪,这对于生物力学、遗传学、动物行为学和神经科学等领域的科学研究至关重要。从视频中非侵入性地测量动物姿势(无需标记)在动态变化的背景下,在技术上以及在资源需求和所需训练数据方面都具有计算挑战性。
DeepLabCut 允许研究人员估计研究对象的姿势,从而通过基于 Python 的软件工具包有效地量化行为。借助 DeepLabCut,研究人员可以从视频中识别不同的帧,在几十帧中用定制的 GUI 以数字方式标记特定的身体部位,然后 DeepLabCut 中基于深度学习的姿态估计架构将学习如何在视频的其余部分和其他类似动物视频中挑选出相同的特征。它适用于各种动物物种,从常见的实验室动物(如果蝇和小鼠)到更不寻常的动物(如猎豹)。
DeepLabCut 使用一种称为迁移学习的原理,这大大减少了所需的训练数据量,并加快了训练周期的收敛速度。根据需要,用户可以选择提供更快推理的不同网络架构(例如 MobileNetV2),这也可以与实时实验反馈相结合。DeepLabCut 最初使用了来自名为DeeperCut的性能最佳的人体姿态估计架构的特征检测器,这启发了该名称。该软件包现在已进行了重大更改,以包括其他架构、增强方法和完整的前端用户体验。此外,为了支持大规模的生物实验,DeepLabCut 提供了主动学习功能,以便用户可以随着时间的推移增加训练集以涵盖边缘情况,并使其姿态估计算法在特定上下文中保持鲁棒性。
最近,推出了DeepLabCut 模型动物园,其中提供了用于各种物种和实验条件的预训练模型,从灵长类动物的面部分析到狗的姿势。例如,这可以在云中运行,而无需标记任何新数据,或者进行神经网络训练,并且不需要编程经验。
用于科学研究的动物姿态分析自动化
DeepLabCut 技术的主要目标是测量和跟踪不同环境中动物的姿势。例如,该数据可用于神经科学研究,以了解大脑如何控制运动,或阐明动物如何进行社交互动。研究人员发现 DeepLabCut 的性能提升了十倍。姿势可以以高达每秒 1200 帧 (FPS) 的速度离线推断。
创建易于使用的 Python 姿态估计工具包
DeepLabCut 希望以易于研究人员采用的工具的形式分享他们的动物姿态估计技术。因此,他们创建了一个完整、易于使用的 Python 工具箱,并具有项目管理功能。这些功能不仅可以实现姿态估计的自动化,还可以通过帮助 DeepLabCut 工具包用户从数据集收集阶段到创建可共享和可重用的分析管道来端到端地管理项目。
他们的工具包现在可以作为开源软件使用。
典型的 DeepLabCut 工作流程包括
速度
快速处理动物行为视频,以便测量它们的行为,同时使科学实验更高效、更准确。在动态变化的背景下,为实验室实验提取详细的动物姿势(无需标记)可能具有挑战性,无论是在技术上还是在资源需求和所需训练数据方面。提出一种易于使用的工具,无需计算机视觉专业知识等技能,使科学家能够在更真实的背景下进行研究,这是一个非同寻常的问题。
组合学
组合学涉及将多个肢体的运动组装和整合到个体动物行为中。将关键点及其连接组装到个体动物运动中并在时间上链接它们是一个复杂的过程,需要大量的数值分析,尤其是在实验视频中进行多动物运动跟踪的情况下。
数据处理
最后但并非最不重要的一点是,数组操作 - 处理与各种图像、目标张量和关键点相对应的大量数组堆栈是相当具有挑战性的。
NumPy 解决了 DeepLabCut 技术对行为分析高速数值计算的核心需求。除了 NumPy 之外,DeepLabCut 还采用了各种以 NumPy 为核心的 Python 软件,例如 SciPy、Pandas、matplotlib、Tensorpack、imgaug、scikit-learn、scikit-image 和 Tensorflow。
NumPy 的以下功能在解决 DeepLabCut 姿态估计算法中的图像处理、组合学要求和快速计算需求方面发挥了关键作用
DeepLabCut 在工具包提供的工作流程中始终使用 NumPy 的数组功能。特别是,NumPy 用于采样不同的帧以进行人工注释标记,以及用于编写、编辑和处理注释数据。在 TensorFlow 中,DeepLabCut 技术通过数千次迭代来训练神经网络,以预测来自帧的真实注释。为此,创建目标密度(分数图)以将姿态估计转换为图像到图像的转换问题。为了使神经网络具有鲁棒性,采用了数据增强,这需要计算受各种几何和图像处理步骤约束的目标分数图。为了加快训练速度,利用了 NumPy 的向量化功能。对于推理,需要从目标分数图中提取最可能的预测,并且需要有效地“链接预测以组装单个动物”。
观察和有效地描述行为是现代动物行为学、神经科学、医学和技术的核心要素。DeepLabCut 允许研究人员有效地估计研究对象的姿势,从而量化行为。仅需少量训练图像,DeepLabCut Python 工具箱就可以将神经网络训练到人类水平的标记精度,从而将其应用扩展到不仅是实验室中的行为分析,还可能扩展到体育、步态分析、医学和康复研究。DeepLabCut 算法面临的复杂组合学和数据处理挑战通过使用 NumPy 的数组操作功能来解决。