如何训练 Ultralytics YOLO 模型检测野生动物
学习如何使用 African Wildlife Dataset 训练 YOLO 模型检测野生动物,并使用该模型在未见过的图像上运行推理。

我们的星球拥有极其多样的野生动物,从嗡嗡作响的蜜蜂到高耸的大象,而保护这种生物多样性是维持生态系统平衡的关键。然而,由于栖息地丧失、偷猎和气候变化,保护工作正变得越来越困难。所有这些因素都会对野生动物种群产生负面影响。
传统的动物监测方法,例如手动分析相机陷阱图像和开展野外调查,可能速度缓慢且需要大量资源。这些工作往往无法有效覆盖大面积区域和数量庞大的种群。
为了克服这些限制,可以将人工智能 (AI) 用作野生动物保护中的有力工具。具体来说,像 Ultralytics YOLO11 这样的计算机视觉模型可以分析图像和视频等视觉数据,自动实时识别和跟踪动物。
Ultralytics YOLO11 支持的目标检测和实例分割等计算机视觉任务在这里非常有用。通过分析视觉数据,这些任务可以帮助我们收集关键数据、识别生态模式,并更有效地应对环境威胁。
本文将带你了解训练 Ultralytics YOLO11 检测动物的过程。让我们开始吧!
开始使用 Ultralytics YOLO11#
在开始教程之前,我们先来了解一下训练和使用 Ultralytics YOLO11 所需的不同设置选项和工具。
你需要的主要工具是 Ultralytics Python 软件包,它可以轻松处理 YOLO 模型的训练、目标检测和推理等任务。要使用 Ultralytics 软件包,你需要设置一个运行代码的环境,并且可以选择多种方案。
以下是设置开发环境时最受欢迎的一些选项:
- 命令行界面 (CLI):CLI 也称为终端,是一种基于文本的工具,你可以通过输入命令与计算机交互。与需要点击按钮和使用鼠标的图形用户界面不同,CLI 要求你输入文本指令来运行程序或执行任务。
- Jupyter Notebooks:这些笔记本允许你以称为单元格的小块编写和运行代码。它具有交互性,你可以立即看到代码输出,因此更容易进行测试和调试。
- Google Colab:Google Colab 是一个基于云的平台,工作方式类似于 Jupyter Notebooks,但可以免费使用强大的 GPU。它易于设置,并且无需在计算机上安装任何内容。
虽然你还可以在官方 Ultralytics 文档中探索其他环境设置选项,但上面提到的三种方案几乎不需要设置且易于使用,非常适合快速入门。
在本教程中,我们将演示如何使用 Google Colab、Jupyter Notebooks 或简单的 Python 文件设置并训练 Ultralytics YOLO11,因为这些环境中的步骤非常相似。
了解非洲野生动物数据集#
选择开发环境后,要训练 Ultralytics YOLO11 专门检测野生动物,我们需要一个包含已标注图像的高质量数据集。每张图像都应清楚显示动物所在的位置及其种类,以便模型通过监督学习学会识别它们。
在本教程中,我们将使用 非洲野生动物数据集。该数据集受 Ultralytics Python 软件包支持,专门用于检测非洲生态系统中常见的动物。其中包含四种关键物种的标注图像:水牛、大象、犀牛和斑马。

图 1:非洲野生动物数据集一览。
以下是非洲野生动物数据集的一些主要特征:
- 规模: 数据集包含 1504 张图像,分为三个子集:1052 张用于训练,225 张用于验证,227 张用于测试。这样的划分可以确保模型有效学习并得到充分评估。
- 无缝集成: Ultralytics 提供了一个 YAML 配置文件,其中定义了数据集路径、类别和其他详细信息,因此在训练 YOLO 模型时可以轻松使用。
- 开放许可证: 该数据集以 AGPL-3.0 许可证发布,鼓励透明度与协作。
训练 Ultralytics YOLO11 进行动物检测#
现在我们已经了解了非洲野生动物数据集,可以开始训练 Ultralytics YOLO11 模型来检测图像中的动物。整个过程包括设置开发环境、训练 YOLO11 模型以及评估模型性能。
步骤 1:设置环境#
首先,我们将准备一个用于训练和测试模型的环境。你可以根据自己的偏好使用 Google Colab、Jupyter Notebooks 或简单的 Python 文件。相应地创建一个新的 Google Colab 笔记本、Jupyter Notebook 或 Python 文件。
如果你使用 Google Colab,其环境默认在 CPU(中央处理器)上运行,这可能会拖慢训练速度。要加快训练,尤其是针对较大的模型,你可以切换运行时以使用 GPU。在 Google Colab 中,你可以在菜单中打开“Runtime”选项卡,选择“Change runtime type”,然后将硬件加速器设置为 GPU(最好使用 T4 GPU)。这对于缩短训练时间非常重要。
接下来,无论你使用哪种环境,都需要安装 Ultralytics Python 软件包。如果你使用的是基于笔记本的环境(Google Colab 或 Jupyter),请在以下命令开头加上感叹号 (!) 后运行。
pip install ultralytics步骤 2:加载 Ultralytics 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:Ultralytics YOLO11 训练演练#
运行上面的代码片段后,模型会根据我们提供的设置开始训练。我们通过代码告诉模型将训练图像遍历 30 次。也就是说,模型会查看数据集中的所有图像 30 次,并在每次遍历中多学习一些内容。
想象一下你正在学习如何画一只动物。第一次画出来可能不太好,但经过反复练习后,你会逐渐进步。每次重新尝试时,你都会从之前的错误中学习并加以改正。训练周期对模型的作用也是如此——它查看图像、犯错、从错误中学习,并一次次提升识别动物的能力。
如果训练代码成功运行,你将在训练过程中看到以下输出:
- 训练设置:第一部分显示所使用的 Ultralytics、PyTorch 和硬件版本(本例中为 CPU),以及训练配置,包括模型 (yolo11n.pt)、批次大小、训练周期数和图像尺寸。
- 模型摘要:提供模型复杂度信息,例如层数和参数数量,展示模型的规模。
- 优化器和学习率:显示优化器(例如 AdamW)和学习率,它们控制模型在训练期间如何调整参数。
- 数据集扫描:模型会扫描数据集,并显示有效且可用于训练的图像数量,从而确认数据集不存在问题。
- 训练进度:每个训练周期(训练循环)结束后,输出都会更新,显示训练进度以及关键损失值(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): 该指标通过对不同召回率水平下的精确率分数取平均,衡量模型在所有类别中检测动物的总体准确性。
- 精确率: 表示检测结果中正确结果所占的百分比,计算方式是将真正例检测数量除以检测总数。
- 召回率: 表示图像中实际存在的动物被模型正确识别的百分比,反映模型捕获所有相关实例的能力。
这些评估指标可以帮助你微调模型,在将其用于实际应用之前提高准确率。
使用自定义训练的 Ultralytics YOLO11 模型运行推理#
现在我们已经完成 Ultralytics YOLO11 的训练和评估,是时候使用它分析图像并运行推理了。你可以使用数据集中的测试图像,也可以使用来自不同来源的新图像。
我们将使用以下代码片段在测试数据集中的一张图像上运行模型。它会从 Ultralytics 库导入必要的模块,然后定义结果目录中最佳模型权重文件("best.pt")的路径,并使用这些权重加载自定义训练的 YOLO11 模型。
之后,设置非洲野生动物测试数据集中的一张图像的路径。模型会对该图像执行目标检测,生成结果,并保存输出(例如检测到的目标或标注)。
from ultralytics import YOLO, settings
best_model_path = results.save_dir / "weights/best.pt"
model = YOLO(best_model_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:在测试图像上使用微调后的 Ultralytics YOLO11 模型运行推理。
要测试来自不同来源的图像,你可以使用下面的代码。我们使用了一张来自 Pexels 的图像。你可以使用相同的图像,也可以使用其他相关图像。
from ultralytics import YOLO
best_model_path = results.save_dir / "weights/best.pt"
model = YOLO(best_model_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:使用微调后的 Ultralytics YOLO11 模型检测未见过的图像中的野生动物。
用于野生动物保护的 AI:实际应用#
Ultralytics YOLO11 等模型可以自动检测和跟踪动物,从而支持各种实际应用。下面简要介绍视觉 AI 可用于支持野生动物保护工作的一些关键领域:
- 物种监测: 视觉 AI 可用于处理图像和视频等视觉数据,准确识别物种、统计种群数量并跟踪其随时间的移动。
- 智能摄像头警报: 在偏远地区,可以使用计算机视觉持续分类动物并发送实时警报,使野生动物管理部门能够快速应对动物异常行为或人兽冲突等威胁。
- 行为分析: 通过监测迁徙、进食习惯和社会互动,视觉 AI 系统可以全面洞察物种间的动态。
- 防止偷猎: 视觉 AI 可用于检测未经授权的人类活动和偷猎迹象,同时结合机器学习与历史数据,确定风险热点。
要点总结#
Ultralytics YOLO11 等计算机视觉模型可以通过自动化动物检测和跟踪,在野生动物保护中发挥关键作用。借助视觉 AI,我们可以处理来自不同来源的大量图像和视频,从而实现准确的野生动物评估。
具体而言,Ultralytics YOLO11 非常适合实时目标检测,因此特别适用于反偷猎监控、行为分析和生态系统监测等任务。将 AI 驱动的模型融入保护工作后,我们可以更好地保护物种、改进生物多样性跟踪,并做出更明智的决策来守护濒危野生动物。
加入我们的社区,并探索 GitHub 代码库 以进一步了解计算机视觉。访问我们的解决方案页面,了解更多与 医疗保健领域的 AI 和制造业中的计算机视觉相关的应用。查看 Ultralytics 许可选项,开始使用视觉 AI。









