敬请关注 YOLO Vision 2025!
2025年9月25日
英国夏令时 10:00 - 18:00
混合活动
Yolo Vision 2024

如何训练 Ultralytics YOLO 模型来检测野生环境中的动物

Abirami Vina

5 分钟阅读

2025年4月15日

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

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

传统的 动物监测 方法,例如手动分析相机陷阱图像和进行实地调查,速度可能很慢,并且需要大量资源。这些努力往往无法有效地覆盖大面积和庞大的人群。

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

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

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

Ultralytics YOLO11 入门

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

您需要的主要工具是 Ultralytics Python 包,它可以轻松地将 YOLO 模型用于训练、检测对象和运行推理等任务。要使用 Ultralytics 包,您需要设置一个环境来运行代码,并且您可以选择各种选项。

以下是一些用于设置开发环境的最受欢迎的选项:

  • 命令行界面 (CLI):CLI,也称为终端,是一种基于文本的工具,允许您通过键入命令与计算机进行交互。与图形界面 (GUI)(您可以在其中单击按钮并使用鼠标)不同,CLI 要求您键入文本指令来运行程序或执行任务。 
  • Jupyter Notebooks:这些 Notebook 允许您以称为单元格的小块编写和运行代码。它是交互式的,这意味着您可以立即看到代码的输出,从而更容易测试和调试。
  • 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 Notebook 或 Python 文件。

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

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

pip install ultralytics

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

安装 Ultralytics 包后,下一步是加载 YOLO11 模型并准备用于训练的数据集。首先,我们加载 YOLO11 模型,该模型已经在通用目标检测任务上进行了预训练。这个预训练模型为我们提供了一个良好的起点,因为它已经学会了如何检测各种对象。

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

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

准备好数据集后,模型开始训练。模型将多次遍历数据集,这个过程称为跨多个 epoch 的训练,以提高其识别图像中动物的能力。在此过程中,图像将被调整为一致的大小以进行处理,并且模型将一次处理一定数量的图像,这称为一个批次。这有助于模型更有效地学习。

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

from ultralytics import YOLO

model = YOLO("yolo11n.pt")

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

步骤 3:YOLO11 训练演练

运行上面的代码片段后,模型将根据我们给它的设置开始训练。我们通过代码告诉模型遍历训练图像 30 次。因此,这意味着模型将查看数据集中的所有图像 30 次,每次学习更多。

想象一下,您正在尝试学习如何绘制动物。第一次绘制时,它可能看起来不太好,但是在反复练习之后,您会开始变得更好。每次您再次尝试时,您都会从出错的地方学习并进行修复。这就是每个 epoch 为模型所做的事情 - 它查看图像,犯错误,从中学习,并且每次都变得更擅长识别动物。

如果训练代码成功运行,您将看到以下输出,因为训练正在进行中:

  • 训练设置:第一部分显示了 Ultralytics、PyTorch 的版本以及正在使用的硬件(在本例中为 CPU),以及训练配置,包括模型 (yolo11n.pt)、批次大小、epoch 和图像大小。
  • 模型摘要:它提供了有关模型复杂性的信息,例如层数和参数,显示了模型的大小。
  • 优化器和学习率:它提到了优化器(例如,AdamW)和学习率,它们控制模型在训练期间如何调整其参数。
  • 数据集扫描:模型扫描数据集,显示有多少图像有效并准备好进行训练。它确认数据集没有问题。
  • 训练进度:输出在每个 epoch(训练周期)后更新,显示训练进度以及关键损失值(box_loss、cls_loss、dfl_loss),这些值指示模型学习的效果。
  • 性能指标:在每个 epoch 之后,您将看到性能指标,例如精确率、召回率和 mAP(平均精度均值)。这些值显示了模型在检测和分类对象方面的准确程度。
  • GPU 内存使用情况:如果您使用的是 GPU,则输出会显示内存使用情况以跟踪硬件利用率。
图 2. 模型训练运行时的输出结果。

第四步:评估自定义训练模型的性能

训练过程完成后,您可以查看并验证模型的性能指标。在 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) 

下图所示的输出图像将保存在 runs/detect 目录中的 "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 这样的模型可以自动检测和跟踪动物,从而实现各种实际应用。以下是视觉人工智能可用于支持野生动物保护工作的一些关键领域:

  • 物种监测:视觉 AI 可用于处理图像和视频等视觉数据,以准确识别物种、统计种群数量并跟踪其随时间的推移。
  • 智能相机警报:在偏远地区,计算机视觉可用于持续对动物进行分类并发送实时警报,使野生动物管理部门能够快速响应异常动物行为或人与野生动物冲突等威胁。
  • 行为分析:通过监测迁徙、摄食习惯和社交互动,视觉 AI 系统可以提供对物种间动态的全面洞察。
  • 预防盗猎:视觉 AI 可用于检测未经授权的人员出现和盗猎迹象,同时利用机器学习和历史数据来精确定位风险热点

主要要点

YOLO11 等计算机视觉模型可以通过自动执行动物检测和跟踪,在野生动物保护中发挥关键作用。借助视觉 AI,我们可以处理来自各种来源的大量图像和视频,从而可以进行准确的野生动物评估。 

特别是 Ultralytics YOLO11 是实时目标检测的绝佳选择,非常适合反盗猎监视、行为分析和生态系统监测等任务。通过将 AI 驱动的模型纳入保护工作,我们可以更好地保护物种,改进生物多样性跟踪,并做出更明智的决策来保护濒危野生动物。

加入我们的社区并浏览 GitHub 存储库,以了解更多关于计算机视觉的信息。在我们的解决方案页面上了解更多与医疗保健中的 AI制造业中的计算机视觉相关的应用。查看 Ultralytics 许可选项,开始使用视觉 AI。

让我们一起构建人工智能的未来!

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

免费开始
链接已复制到剪贴板