绿色检查
链接复制到剪贴板

如何训练Ultralytics YOLO 模型来检测野生动物

了解如何使用非洲野生动物数据集训练YOLO 模型来检测野生动物,并使用该模型对未见过的图像进行推断。

从嗡嗡叫的蜜蜂到高耸入云的大象,我们星球上的野生动物种类繁多,令人难以置信,保护这种生物多样性是维持生态系统平衡的关键。然而,由于栖息地丧失、偷猎和气候变化,保护工作正变得越来越具有挑战性。所有这些因素都会对野生动物的数量产生负面影响。 

传统的动物监测方法,如人工分析相机捕捉器图像和进行实地调查,可能会很慢,而且需要大量资源。这些工作往往无法有效覆盖大片区域和大量种群。

为了克服这些局限性,人工智能(AI)可被用作保护野生动物的有效工具。具体来说,计算机视觉模型如 Ultralytics YOLO11等计算机视觉模型可以分析图像和视频等视觉数据,自动进行动物的实时识别和跟踪。 

YOLO11 支持的对象检测和实例分割等计算机视觉任务在这方面非常有用。通过分析视觉数据,这些任务可以帮助我们收集重要数据、识别生态模式并更有效地应对环境威胁。

在本文中,我们将介绍训练YOLO11 检测动物的过程。让我们开始吧

开始使用Ultralytics YOLO11

在进入教程之前,让我们先来看看培训和使用YOLO11 所需的不同设置选项和工具。 

您需要的主要工具是Ultralytics Python 软件包,它可以让您轻松使用YOLO 模型完成训练、检测对象和运行推论等任务。要使用Ultralytics 软件包,您需要设置一个运行代码的环境,有多种选项可供选择。

以下是一些最常用的开发环境设置选项:

  • 命令行界面(CLI):命令行界面(CLI)又称终端,是一种基于文本的工具,可让你通过键入命令与电脑交互。与点击按钮和使用鼠标的图形界面(GUI)不同,CLI 要求你键入文本指令来运行程序或执行任务。
  • Jupyter 笔记本:这些笔记本可让你在称为单元格的小块中编写和运行代码。它是交互式的,这意味着你可以立即看到代码的输出,从而更容易测试和调试。
  • Google Colab:Google Colab 是一个基于云计算的平台,其工作原理与 Jupyter Notebooks 相似,但可以免费使用强大的 GPU。它易于设置,你无需在电脑上安装任何东西。

虽然你还可以在 Ultralytics 官方文档中找到其他设置环境的选项,但上面提到的三个选项只需要很少的设置,而且易于使用,是快速上手的理想选择。 

在本教程中,我们将展示如何使用Google Colab、Jupyter Notebooks 或简单的Python 文件设置和训练YOLO11 ,因为所有这些环境的步骤都非常相似。

了解非洲野生动物数据集

选定开发环境后,要训练YOLO11 专门检测野生动物,我们需要一个高质量的标注图像数据集。每张图片都应清楚地显示动物的位置和类型,以便模型能够通过监督学习来识别它们。

在本教程中,我们将使用非洲野生动物数据集。该数据集由Ultralytics Python 软件包提供支持,专门用于检测非洲生态系统中常见的动物。它包含四个关键物种的注释图像:水牛、大象、犀牛和斑马。

图 1.非洲野生动物数据集一瞥。

以下是非洲野生动物数据集的一些主要特点:

  • 规模数据集由 1504 幅图像组成,分为三个子集:1052 幅用于训练,225 幅用于验证,227 幅用于测试。这种分割方式确保了模型的有效学习和全面评估。

  • 无缝集成: Ultralytics 提供一个 YAML 配置文件,其中定义了数据集路径、类和其他细节,使其在训练YOLO 模型时易于使用。

  • 开放许可证:本数据集根据AGPL-3.0 许可发布,鼓励透明与合作。

训练Ultralytics YOLO11 进行动物探测

现在我们已经探索了非洲野生动物数据集,可以开始训练YOLO11 模型来检测图像中的动物了。这个过程包括设置开发环境、训练YOLO11 模型和评估模型的性能。

步骤 1:设置环境

首先,我们要准备一个用于训练和测试模型的环境。可以使用Google Colab、Jupyter Notebook 或简单的Python 文件,这取决于你的偏好。相应地创建一个新的Google Colab 笔记本、Jupyter 笔记本或Python 文件。

如果您使用的是Google Colab,环境默认在CPU (中央处理器)上运行,这会减慢训练速度。为了加快进程,尤其是对于较大的模型,您可以将运行时切换为使用GPU。在Google Colab 中,您可以导航到菜单中的 "运行时 "选项卡,选择 "更改运行时类型",然后将硬件加速器设置为GPU (最好是 T4GPU)。这对缩短训练时间非常重要。

接下来,无论你使用哪种环境,都需要安装Ultralytics Python 软件包。如果你使用的是基于笔记本的环境Google Colab 或 Jupyter),请运行以下以感叹号(!)开头的命令

pip install ultralytics

步骤 2:加载YOLO11 并准备数据集

安装好Ultralytics 软件包后,下一步就是加载YOLO11 模型并准备训练数据集。首先,我们加载YOLO11 模型,该模型已在一般物体检测任务中经过预训练。这个预训练模型为我们提供了一个良好的起点,因为它已经学会了如何检测各种物体。

然后,我们使用 YAML 文件指定数据集,其中包含图像和标签的相关信息。该文件告诉模型在哪里可以找到数据集,以及模型应该学习识别哪些对象。 

Ultralytics 软件包支持非洲野生动物数据集,因此在开始训练时会自动下载,省去了手动设置的麻烦。

数据集准备就绪后,模型就开始训练。模型将对数据集进行多次训练,这一过程称为多历元训练,以提高识别图像中动物的能力。在这一过程中,图像将被调整到一致的大小进行处理,模型每次将处理一定数量的图像,即批处理。这有助于模型更高效地学习。

简而言之,当运行下面的代码片段时,模型被加载,数据集被自动下载,训练开始运行,根据非洲野生动物数据集检测动物。

from ultralytics import YOLO

model = YOLO("yolo11n.pt")

results = model.train(data="african-wildlife.yaml", epochs=30, batch=8)

步骤 3:YOLO11 培训演练

运行上述代码段后,模型就会根据我们的设置开始训练。我们通过代码告诉模型对训练图像进行 30 次扫描。因此,这意味着模型会查看数据集中的所有图像 30 次,每次都会学习更多的内容。

想象一下,你正在努力学习如何画动物。第一次画的时候,它可能并不好看,但经过反复练习,你开始画得越来越好。每当你再次尝试时,你都会从错误中吸取教训并加以改正。这就是每个纪元对模型的作用--它查看图像,犯错误,从中吸取教训,每次都能更好地识别动物。

如果训练代码运行成功,随着训练的进行,您将看到以下输出:

  • 训练设置:第一部分显示了所使用的Ultralytics、PyTorch 和硬件CPU 本例中为CPU )的版本,以及训练配置,包括模型(yolo11n.pt)、批次大小、epochs 和图像大小。
  • 模型摘要:它提供了模型的复杂性信息,如层数和参数,显示了模型的规模。
  • 优化器和学习率
  • 数据集扫描:模型扫描数据集,显示有多少图像是有效的,可以进行训练。它确认数据集没有问题。
  • 训练进度:输出会在每个训练周期(epoch)后更新,显示训练进度和关键损失值(box_loss、cls_loss、dfl_loss),这些值表明模型的学习效果如何。
  • 性能指标:每次历时结束后,您都会看到精确度、召回率和 mAP(平均精确度)等性能指标。
  • GPU 内存使用情况:如果使用GPU,输出会显示内存使用情况,以跟踪硬件利用率。
图 2.模型训练运行时的输出结果。

步骤 4:评估定制训练模型的性能

训练过程完成后,您可以查看并验证模型的性能指标。在Google Colab 中,您可以导航到 "runs "文件夹,然后是 "detect "文件夹,最后是 "train "文件夹,在这里您可以找到显示关键性能指标的日志。

对于Python 环境下的用户,训练结果默认保存在当前工作目录下的 "runs/train/"目录中。每次训练运行都会创建一个新的子目录(例如,runs/train/exp、runs/train/exp2 等),在这里可以找到日志和其他与训练相关的输出结果。

如果您使用CLI,则可以通过 "yolo settings"命令轻松访问这些结果和设置,该命令允许您查看或修改路径以及与训练日志和实验细节相关的其他配置。

在日志中,您还可以找到一些图表,查看模型训练过程的进展情况。这些图表是在训练完成后创建的,可以显示模型是否随着时间的推移减少了错误并提高了准确性。 

它们跟踪模型的进展,显示训练期间损失(模型预测值与实际值之间的差值)的减少情况以及准确度的提高情况。这有助于您了解模型识别动物的学习效果,以及在训练结束时模型的进步程度。

图 3.您可以通过分析图表来评估模型的示例。

主要绩效评估指标

此外,下面还将详细介绍用于评估模型性能的一些指标:

  • 平均精度(mAP):
  • 精确度:
  • 召回率:它表示模型正确识别图像中实际动物的百分比,反映了模型捕捉所有相关实例的能力。

这些评估指标有助于对模型进行微调,以提高其在实际应用中的准确性。

使用自定义训练的YOLO11 模型运行推论

现在,我们已经对YOLO11 进行了训练和评估,是时候用它来分析图像并进行推断了。您可以使用数据集中的测试图像,也可以使用不同来源的新图像。

我们将使用下面的代码片段在测试数据集中的图像上运行模型。它从Ultralytics 库中导入了必要的模块。然后,它定义了存储在结果目录中的最佳模型权重文件("best.pt")的路径。自定义训练的YOLO11 模型将使用这些权重加载。 

然后,设置非洲野生动物测试数据集中的图像路径。将模型应用于该图像的对象检测,生成结果并保存输出(如检测到的对象或注释)。

from ultralytics import settings

best_model_path = results.save_dir / "weights/best.pt"

model = YOLO(best_path)

image_path = f"{settings['datasets_dir']}/african-wildlife/test/images/1 (168).jpg"

img_results = model(image_path, save=True) 

下图所示的输出图像将保存在运行/检测目录下的 "predict "文件夹中。对于后续测试,将创建 "predict2"、"predict3 "等新文件夹来存储图像。

图 4.使用微调后的YOLO11 模型在测试图像上运行推理。

要测试不同来源的图片,可以使用下面的代码。我们使用了一张来自Pexels 的图片。您可以使用相同的图片或任何其他相关图片。

best_model_path = results.save_dir / "weights/best.pt"

model = YOLO(best_path)

img2_results = model("https://images.pexels.com/photos/18341011/pexels-photo-18341011/free-photo-of-elephant-and-zebras-in-savannah.png", save=True)

下图所示的输出图像将保存在相应的文件夹中。

图 5.使用微调后的YOLO11 模型在未见图像上检测野生动物。

人工智能促进野生动物保护:真实世界的应用

像YOLO11 这样的模型可以自动检测和跟踪动物,从而实现各种实际应用。以下是视觉人工智能可用于支持野生动物保护工作的一些关键领域:

  • 物种监测: 视觉人工智能可用于处理图像和视频等可视化数据,以准确识别物种、统计种群数量并跟踪其长期动向。
  • 智能相机警报: 在偏远地区,计算机视觉可用于持续对动物进行分类并发送实时警报,使野生动物管理机构能够对异常动物行为或人类与野生动物冲突等威胁做出快速反应。
  • 行为分析:
  • 防止偷猎: 可以利用视觉人工智能来检测未经授权的人类存在和偷猎迹象,同时利用机器学习和历史数据来确定风险热点

主要收获

像YOLO11 这样的计算机视觉模型可以自动检测和跟踪动物,从而在野生动物保护方面发挥关键作用。有了视觉人工智能,我们就可以处理来自各种来源的大量图像和视频,从而可以对野生动物进行准确评估。 

尤其是Ultralytics YOLO11,它是实时物体检测的最佳选择,非常适合反盗猎监视、行为分析和生态系统监测等任务。通过将人工智能驱动的模型融入到保护工作中,我们可以更好地保护物种,改善生物多样性跟踪,并做出更明智的决策来保护濒危野生动物。

加入我们的社区,探索GitHub 存储库,了解有关计算机视觉的更多信息。在我们的解决方案页面上了解更多与医疗保健领域的人工智能制造业中的计算机视觉相关的应用。查看Ultralytics 许可选项,开始使用视觉人工智能。

LinkedIn 徽标Twitter 徽标Facebook 徽标复制链接符号

在此类别中阅读更多内容

让我们共同打造人工智能的未来

开始您的未来机器学习之旅