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

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

Рис 1. Взгляд на набор данных African Wildlife.
Вот некоторые ключевые особенности набора данных African Wildlife:
- Масштаб: Набор данных состоит из 1504 изображений, разделенных на три подмножества: 1052 для обучения, 225 для валидации и 227 для тестирования. Такое разделение гарантирует, что модель учится эффективно и проходит тщательную проверку.
- Бесшовная интеграция: Ultralytics предоставляет YAML-файл конфигурации, который определяет пути к данным, классы и другие детали, что упрощает использование при обучении моделей YOLO.
- Открытая лицензия: Этот набор данных распространяется по лицензии AGPL-3.0, что способствует прозрачности и сотрудничеству.
Link to this sectionОбучение Ultralytics YOLO11 для обнаружения животных#
Теперь, когда мы изучили набор данных African Wildlife, мы можем приступить к обучению модели YOLO11 для обнаружения животных на изображениях. Процесс включает в себя настройку среды разработки, обучение модели YOLO11 и оценку ее производительности.
Link to this sectionШаг 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 ultralyticsLink to this sectionШаг 2: Загрузка YOLO11 и подготовка набора данных#
После установки пакета Ultralytics следующий шаг — загрузка модели YOLO11 и подготовка набора данных к обучению. Сначала мы загружаем модель YOLO11, которая уже предобучена на общих задачах обнаружения объектов. Эта предобученная модель дает нам хорошую отправную точку, так как она уже научилась обнаруживать различные объекты.
Затем мы указываем набор данных с помощью YAML-файла, который содержит информацию об изображениях и метках. Этот файл сообщает модели, где найти набор данных и какие объекты она должна научиться распознавать.
Набор данных African Wildlife поддерживается пакетом Ultralytics, поэтому он автоматически загрузится при запуске обучения, избавив тебя от необходимости настраивать его вручную.
Как только набор данных готов, модель начинает обучение. Модель пройдет по набору данных несколько раз — процесс, называемый обучением в течение нескольких эпох, — чтобы улучшить свою способность распознавать животных на изображениях. В ходе этого процесса изображения будут изменены до единообразного размера для обработки, и модель будет работать с определенным количеством изображений за раз, называемым пакетом (batch). Это помогает модели учиться более эффективно.
Короче говоря, когда выполняется приведенный ниже фрагмент кода, модель загружается, набор данных автоматически скачивается, и запускается обучение для обнаружения животных на основе набора данных African Wildlife.
from ultralytics import YOLO
model = YOLO("yolo11n.pt")
results = model.train(data="african-wildlife.yaml", epochs=30, batch=8)Link to this sectionШаг 3: Пошаговое руководство по обучению YOLO11#
После запуска приведенного выше фрагмента кода модель начинает обучение в соответствии с заданными настройками. Мы указали модели через код пройти по обучающим изображениям 30 раз. Это означает, что модель изучит все изображения в наборе данных 30 раз, каждый раз узнавая чуть больше.
Представь, что ты пытаешься научиться рисовать животное. В первый раз рисунок может получиться не очень, но после практики ты начинаешь рисовать лучше. Каждый раз, когда ты пробуешь снова, ты учишься на своих ошибках и исправляешь их. Именно это делает каждая эпоха для модели — она просматривает изображения, допускает ошибки, учится на них и с каждым разом становится все лучше в распознавании животных.
Если код обучения выполняется успешно, по мере прогресса обучения ты увидишь следующий вывод:
- Настройка обучения: Первая часть показывает версию Ultralytics, PyTorch и используемое оборудование (в данном случае CPU), а также конфигурацию обучения, включая модель (yolo11n.pt), размер пакета, эпохи и размер изображения.
- Сводка модели: Предоставляет информацию о сложности модели, например, количество слоев и параметров, показывая размер модели.
- Оптимизатор и скорость обучения: Упоминается оптимизатор (например, AdamW) и скорость обучения, которые контролируют, как модель корректирует свои параметры во время обучения.
- Сканирование набора данных: Модель сканирует набор данных, показывая, сколько изображений являются валидными и готовы к обучению. Это подтверждает отсутствие проблем с набором данных.
- Прогресс обучения: Вывод обновляется после каждой эпохи (цикла обучения), показывая прогресс обучения вместе с ключевыми значениями потерь (box_loss, cls_loss, dfl_loss), которые указывают на то, насколько хорошо модель учится.
- Метрики производительности: После каждой эпохи ты увидишь метрики производительности, такие как точность (precision), полнота (recall) и mAP (средняя точность). Эти значения показывают, насколько точно модель обнаруживает и классифицирует объекты.
- Использование памяти GPU: Если ты используешь GPU, вывод показывает использование памяти для отслеживания загрузки оборудования.

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

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






