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

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

Рис. 1. Взгляд на африканский датасет дикой природы.
Вот некоторые ключевые особенности набора данных African Wildlife:
- Масштаб: Набор данных состоит из 1504 изображений, разделенных на три подмножества: 1052 для обучения, 225 для валидации и 227 для тестирования. Такое разделение гарантирует, что модель учится эффективно и проходит тщательную проверку.
- Бесшовная интеграция: Ultralytics предоставляет YAML-файл конфигурации, который определяет пути к данным, классы и другие детали, что упрощает использование при обучении моделей YOLO.
- Открытая лицензия: Этот набор данных распространяется по лицензии AGPL-3.0, что способствует прозрачности и сотрудничеству.
Обучение Ultralytics YOLO11 для обнаружения животных#
Теперь, когда мы изучили набор данных African Wildlife Dataset, мы можем приступить к обучению модели Ultralytics YOLO11 для обнаружения животных на изображениях. Процесс включает в себя настройку среды разработки, обучение модели YOLO11 и оценку ее производительности.
Шаг 1: Настройка среды#
Для начала мы подготовим среду для обучения и тестирования модели. Можно использовать Google Colab, Jupyter Notebooks или простой Python-файл, в зависимости от твоих предпочтений. Создай новый блокнот в Google Colab, Jupyter Notebook или файл Python соответственно.
Если ты используешь Google Colab, окружение по умолчанию работает на CPU (центральном процессоре), что может замедлить обучение. Чтобы ускорить процесс, особенно для более крупных моделей, ты можешь переключить среду выполнения на использование GPU. В Google Colab ты можешь перейти на вкладку "Среда выполнения" в меню, выбрать "Сменить среду выполнения" и установить аппаратный ускоритель на 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), которые указывают на то, насколько хорошо модель учится.
- Метрики производительности: После каждой эпохи ты увидишь метрики производительности, такие как точность (precision), полнота (recall) и mAP (средняя точность). Эти значения показывают, насколько точно модель обнаруживает и классифицирует объекты.
- Использование памяти GPU: Если ты используешь GPU, вывод показывает использование памяти для отслеживания загрузки оборудования.

Рис 2. Вывод, который ты увидишь во время работы обучения модели.
Шаг 4: Оценка производительности обученной на заказ модели#
После завершения процесса обучения ты можешь просмотреть и оценить метрики производительности модели. В Google Colab ты можешь перейти в папку "runs", затем в папку "detect" и, наконец, в папку "train", где ты найдешь логи с ключевыми показателями эффективности.
Для пользователей в среде Python результаты обучения по умолчанию сохраняются в директории “runs/train/” внутри твоей текущей рабочей директории. Каждый запуск обучения создает новую подпапку (например, runs/train/exp, runs/train/exp2 и т.д.), где ты можешь найти логи и другие результаты обучения.
Если ты используешь CLI, ты можешь легко получить доступ к этим результатам и настройкам с помощью команды “yolo settings”, которая позволяет просматривать или изменять пути и другие конфигурации, связанные с логами обучения и деталями экспериментов.
Среди логов ты также найдешь графики, которые можно проанализировать, чтобы понять, насколько успешно прошел процесс обучения модели. Эти графики, созданные после завершения обучения, показывают, улучшалась ли модель со временем, совершая меньше ошибок и становясь точнее.
Они отслеживают прогресс модели, показывая, как уменьшались потери (разница между прогнозами модели и фактическими значениями) и как росла точность во время обучения. Это помогает понять, насколько хорошо модель научилась распознавать животных и насколько она улучшилась к концу обучения.

Рис 3. Пример графиков, которые можно проанализировать для оценки своей модели.
Ключевые метрики оценки производительности#
Также здесь представлен более подробный обзор некоторых метрик, которые ты можешь использовать для оценки производительности модели:
- Mean average precision (mAP): Эта метрика измеряет общую точность модели при обнаружении животных по всем классам путем усреднения показателей точности на разных уровнях полноты.
- Precision (Точность): Представляет процент правильных обнаружений, вычисляемый путем деления количества истинно положительных обнаружений на общее количество сделанных обнаружений.
- Recall (Полнота): Показывает процент фактически существующих на изображениях животных, которые были правильно идентифицированы моделью, отражая ее способность охватить все соответствующие экземпляры.
Эти метрики оценки могут помочь донастроить модель для повышения точности перед использованием в реальных приложениях.
Запуск инференса с помощью твоей кастомно обученной модели Ultralytics YOLO11#
Теперь, когда мы обучили и оценили Ultralytics YOLO11, пришло время использовать его для анализа изображений и run inferences. Ты можешь использовать тестовые изображения из датасета или новые изображения из разных источников.
Мы будем использовать следующий фрагмент кода для запуска модели на изображении из тестового набора данных. Он импортирует необходимые модули из библиотеки 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 на новом изображении.
ИИ для охраны дикой природы: реальные приложения#
Модели вроде Ultralytics YOLO11 могут автоматически обнаруживать и отслеживать животных, что открывает возможности для множества практических применений. Вот краткий обзор некоторых ключевых областей, где визуальный ИИ можно использовать для поддержки инициатив по wildlife conservation:
- Мониторинг видов: ИИ компьютерного зрения может использоваться для обработки визуальных данных, таких как изображения и видео, для точной идентификации видов, подсчета популяций и отслеживания их перемещений во времени.
- Умные оповещения с камер: В отдаленных районах компьютерное зрение можно использовать для непрерывной классификации животных и отправки оповещений в реальном времени, что позволяет органам охраны дикой природы быстро реагировать на угрозы, такие как аномальное поведение животных или конфликты между человеком и дикой природой.
- Анализ поведения: Отслеживая миграцию, пищевые привычки и социальные взаимодействия, системы компьютерного зрения могут предоставлять всестороннее понимание динамики межвидовых отношений.
- Предотвращение браконьерства: ИИ компьютерного зрения может быть задействован для обнаружения несанкционированного присутствия людей и признаков браконьерства, одновременно используя машинное обучение и исторические данные для выявления зон повышенного риска.
Основные выводы#
Модели компьютерного зрения, такие как Ultralytics YOLO11, могут играть ключевую роль в сохранении дикой природы, автоматизируя обнаружение и отслеживание животных. С помощью визуального ИИ мы можем обрабатывать большие объемы изображений и видео из различных источников, что позволяет проводить точные оценки состояния дикой природы.
Ultralytics YOLO11, в частности, является отличным выбором для обнаружения объектов в реальном времени, что делает его идеальным для таких задач, как антибраконьерское наблюдение, анализ поведения и мониторинг экосистем. Внедряя ИИ-модели в усилия по охране природы, мы можем лучше защищать виды, улучшать отслеживание биоразнообразия и принимать более обоснованные решения для защиты исчезающих видов диких животных.
Присоединяйся к нашему сообществу и изучай репозиторий на GitHub, чтобы узнать больше о компьютерном зрении. Открой для себя другие применения, связанные с ИИ в здравоохранении и компьютерным зрением на производстве, на страницах наших решений. Ознакомься с вариантами лицензирования Ultralytics, чтобы начать работу с визуальным ИИ.






