Как обучать модели Ultralytics YOLO обнаружению животных в дикой природе
Узнай, как обучать модели YOLO обнаружению животных в дикой природе с использованием набора данных African Wildlife и применять модель для инференса на изображениях, не использовавшихся при обучении.

Дикая природа нашей планеты невероятно разнообразна: от жужжащих пчёл до возвышающихся слонов, и сохранение этого биоразнообразия крайне важно для поддержания сбалансированной экосистемы. Однако охрана природы становится всё сложнее из-за утраты среды обитания, браконьерства и изменения климата. Все эти факторы негативно влияют на популяции диких животных.
Традиционные методы мониторинга животных, такие как ручной анализ снимков с фотоловушек и проведение полевых исследований, могут быть медленными и требовать значительных ресурсов. Зачастую с их помощью не удаётся эффективно охватить большие территории и многочисленные популяции.
Чтобы преодолеть эти ограничения, искусственный интеллект (AI) можно использовать как эффективный инструмент для охраны дикой природы. В частности, модели компьютерного зрения, такие как Ultralytics YOLO11, могут анализировать визуальные данные, например изображения и видео, чтобы автоматизировать обнаружение и отслеживание животных в реальном времени.
Задачи компьютерного зрения, такие как обнаружение объектов и сегментация экземпляров, поддерживаемые Ultralytics YOLO11, очень полезны в этом случае. Анализируя визуальные данные, эти задачи помогают собирать важные сведения, выявлять экологические закономерности и эффективнее реагировать на экологические угрозы.
В этой статье мы пошагово разберём процесс обучения Ultralytics YOLO11 обнаружению животных. Давайте начнём!
Начало работы с Ultralytics YOLO11#
Прежде чем перейти к руководству, рассмотрим различные варианты настройки и инструменты, которые понадобятся тебе для обучения и использования Ultralytics YOLO11.
Главный инструмент, который тебе понадобится, — пакет Ultralytics для Python. Он упрощает работу с моделями YOLO для таких задач, как обучение, обнаружение объектов и выполнение инференса. Чтобы использовать пакет Ultralytics, нужно настроить среду для запуска кода, и ты можешь выбрать один из нескольких вариантов.
Вот несколько наиболее популярных вариантов настройки среды разработки:
- Интерфейс командной строки (CLI): CLI, также известный как терминал, — это текстовый инструмент, который позволяет взаимодействовать с компьютером, вводя команды. В отличие от графических интерфейсов (GUIs), где ты нажимаешь кнопки и используешь мышь, CLI требует вводить текстовые инструкции для запуска программ или выполнения задач.
- Jupyter Notebooks: эти блокноты позволяют писать и запускать код небольшими фрагментами, называемыми ячейками. Работа с ними интерактивна: ты сразу видишь результат выполнения кода, поэтому тестирование и отладка становятся проще.
- Google Colab: Google Colab — это облачная платформа, работающая подобно Jupyter Notebooks, но предоставляющая бесплатный доступ к мощным GPU. Её легко настроить, и тебе не нужно ничего устанавливать на компьютер.
Есть и другие варианты настройки среды, которые можно изучить в официальной документации Ultralytics, но три упомянутых выше требуют минимальной настройки и просты в использовании, поэтому идеально подходят для быстрого начала работы.
В этом руководстве мы покажем, как настроить и обучить Ultralytics YOLO11 с помощью Google Colab, Jupyter Notebooks или простого файла Python, поскольку шаги во всех этих средах очень похожи.
Знакомство с набором данных African Wildlife#
После выбора среды разработки, чтобы обучить Ultralytics YOLO11 обнаружению именно диких животных, нам понадобится качественный набор данных с размеченными изображениями. На каждом изображении должно быть чётко видно, где находятся животные и к какому виду они относятся, чтобы модель могла научиться распознавать их в процессе обучения с учителем.
В этом руководстве мы будем использовать набор данных African Wildlife. Он поддерживается пакетом Ultralytics для Python и специально предназначен для обнаружения животных, распространённых в африканских экосистемах. Он содержит аннотированные изображения четырёх ключевых видов: буйволов, слонов, носорогов и зебр.

Рис. 1. Образец набора данных African Wildlife.
Вот некоторые ключевые особенности набора данных African Wildlife:
- Масштаб: набор данных состоит из 1504 изображений, разделённых на три подмножества: 1052 изображения для обучения, 225 для валидации и 227 для тестирования. Такое разделение позволяет эффективно обучать модель и тщательно оценивать её.
- Бесшовная интеграция: Ultralytics предоставляет файл конфигурации YAML, в котором указаны пути к набору данных, классы и другие сведения, благодаря чему его удобно использовать при обучении моделей YOLO.
- Открытая лицензия: этот набор данных распространяется по лицензии AGPL-3.0, что способствует прозрачности и сотрудничеству.
Обучение Ultralytics YOLO11 обнаружению животных#
Теперь, когда мы изучили набор данных African Wildlife, можно начать обучение модели 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, содержащего сведения об изображениях и метках. Этот файл сообщает модели, где найти набор данных и какие объекты она должна научиться распознавать.
Набор данных African Wildlife поддерживается пакетом Ultralytics, поэтому он автоматически загрузится при запуске обучения, избавив тебя от необходимости настраивать его вручную.
После подготовки набора данных модель начинает обучение. Для улучшения способности распознавать животных на изображениях модель несколько раз проходит по набору данных — этот процесс называется обучением на нескольких эпохах. Во время этого процесса изображения изменяются до единого размера для обработки, а модель работает с фиксированным количеством изображений за раз, которое называется размером пакета. Это помогает модели обучаться эффективнее.
Короче говоря, модель загружается, набор данных автоматически скачивается, и при запуске приведённого ниже фрагмента кода начинается обучение обнаружению животных на основе набора данных African Wildlife.
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 загружается с использованием этих весов.
Затем задаётся путь к изображению из тестового набора данных African Wildlife. Модель применяется к этому изображению для обнаружения объектов, после чего генерируются результаты и сохраняется вывод (например, обнаруженные объекты или аннотации).
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)Показанное ниже выходное изображение будет сохранено в папке "predict", расположенной внутри каталога runs/detect. Для последующих тестов будут создаваться новые папки, например "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 в области компьютерного зрения.









