该存储库是我们基于 GUI 的应用程序 - MOTHe-GUI 的后端库
Mothe 是一个 PYPI 库,用于检测和跟踪异构环境中的多种动物。 MOTHe 是一个基于 python 的存储库,它使用卷积神经网络 (CNN) 架构来执行对象检测任务。它将数字图像作为输入并读取其特征来分配类别。这些算法是学习算法,这意味着它们通过使用大量标记的训练数据从图像中提取特征。一旦 CNN 模型经过训练,这些模型就可以用于对新数据(图像)进行分类。 MOTHe 被设计为通用的,即使在自然环境中,用户也能够跟踪感兴趣的对象。
MOTHe 可以自动执行与对象分类相关的所有任务,并分为 5 种专用于以下任务的方法:
系统配置:系统配置用于在用户系统上设置 MOTHe。基本详细信息,例如本地存储库的路径、要处理的视频的路径、要裁剪的个体的大小、运行检测或跟踪时要跳过的帧数(以减少计算时间/运行测试用例)以及检测阶段要绘制的边界框的大小。
数据集生成:数据集生成是目标检测和跟踪的关键一步。生成所需数量的训练数据所需的手动工作量巨大。数据生成类和可执行文件允许用户通过 GUI 上的简单点击来裁剪感兴趣的区域,并自动将图像保存在适当的文件夹中,从而使过程高度自动化。
训练卷积神经网络train_model :生成足够数量的训练示例后,使用数据来训练神经网络。神经网络产生一个分类器作为输出。分类器的准确性取决于网络的训练程度,而网络的训练程度又取决于训练数据的质量和数量(请参阅我需要多少训练数据? )。网络的各种调整参数是固定的,以使用户可以轻松地完成该过程。该网络非常适合二元分类 - 感兴趣的对象(动物)和背景。此管道不支持多类分类。
对象检测:该方法执行两个关键任务 - 首先识别图像中可能有动物的区域,这称为定位;然后它对裁剪区域进行分类。此分类是使用小型 CNN(6 个卷积层)完成的。输出采用.csv文件形式,其中包含每帧中已识别动物的位置。
对象跟踪:对象跟踪是 MOTHe 的最终目标。该模块为检测到的个体分配唯一的 ID 并生成他们的轨迹。我们将检测和跟踪模块分开,以便仅对计数数据感兴趣的人(例如调查)也可以使用它。这种模块化还为经验丰富的程序员提供了使用更复杂的跟踪算法的灵活性。我们使用现有代码来执行跟踪任务(来自 ref 的 Github 页面)。该算法使用卡尔曼滤波器和匈牙利算法。一旦在上一步中生成检测结果,就可以运行此脚本。输出是一个 text{.csv} 文件,其中包含每个帧的单独 ID 和位置。还会生成带有每个人的唯一 ID 的视频输出。
MOTHe 是一个 python 包,它使用了其他几个可能已更新的 python 库。因此,了解我们下载/安装的版本非常重要。推荐的 python 版本是 python3.6 到 python3.7 稳定版本(最新的 Linux LTS 版本(例如:Ubuntu 20.04 Focal Fossa)安装有与 MOTHe 不兼容的库存 python3.8)。 Python3.8 不支持 MOTHe 工作所需的低于 2.2 版本的 Tensorflow 版本。请注意一些库的版本修改得相当快,并且最近用于测试 MOTHe: