Как обучить модели Ultralytics YOLO для обнаружения животных в дикой природе

Абирами Вина

5 минут чтения

15 апреля 2025 г.

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

Дикая природа нашей планеты невероятно разнообразна - от жужжащих пчел до огромных слонов, и сохранение этого биоразнообразия - залог поддержания сбалансированной экосистемы. Однако усилия по сохранению природы становятся все более сложными из-за потери среды обитания, браконьерства и изменения климата. Все эти факторы негативно влияют на популяции диких животных. 

Традиционные методы мониторинга животных, такие как ручной анализ изображений с камер-ловушек и полевые исследования, могут быть медленными и требовать много ресурсов. Такие усилия часто не позволяют эффективно охватить большие территории и крупные популяции.

Чтобы преодолеть эти ограничения, искусственный интеллект (ИИ) может быть использован в качестве эффективного инструмента для сохранения дикой природы. В частности, модели компьютерного зрения, такие как Ultralytics YOLO11, могут анализировать визуальные данные, такие как изображения и видео, чтобы автоматизировать идентификацию и отслеживание животных в режиме реального времени. 

Задачи компьютерного зрения, такие как обнаружение объектов и сегментация объектов, поддерживаемые YOLO11, очень полезны здесь. Анализируя визуальные данные, эти задачи помогают нам собирать важнейшие данные, выявлять экологические закономерности и более эффективно реагировать на экологические угрозы.

В этой статье мы рассмотрим процесс обучения YOLO11 обнаружению животных. Давайте начнем!

Начало работы с Ultralytics YOLO11

Прежде чем приступить к обучению, давайте рассмотрим различные варианты настроек и инструменты, которые понадобятся вам для обучения и использования YOLO11. 

Основной инструмент, который вам понадобится, - это пакет Ultralytics Python, который упрощает работу с моделями YOLO для таких задач, как обучение, обнаружение объектов и проведение выводов. Чтобы использовать пакет Ultralytics, вам нужно настроить среду для выполнения кода, и вы можете выбрать различные варианты.

Вот несколько наиболее популярных вариантов настройки среды разработки:

  • Интерфейс командной строки (CLI): CLI, также известный как терминал, - это текстовый инструмент, позволяющий взаимодействовать с компьютером путем ввода команд. В отличие от графических интерфейсов (GUI), где вы нажимаете кнопки и используете мышь, CLI требует ввода текстовых инструкций для запуска программ или выполнения задач.
  • Блокноты Jupyter: Эти блокноты позволяют писать и выполнять код в небольших фрагментах, называемых ячейками. Они интерактивны, то есть вы можете сразу же увидеть результаты работы вашего кода, что облегчает тестирование и отладку.
  • Google Colab: Google Colab - это облачная платформа, которая работает как Jupyter Notebooks, но предлагает бесплатный доступ к мощным графическим процессорам. Ее легко настроить, и вам не нужно ничего устанавливать на свой компьютер.

Хотя существуют и другие варианты настройки среды, которые вы можете изучить в официальной документации Ultralytics, три вышеупомянутых варианта требуют очень мало настроек и просты в использовании, что делает их идеальными для быстрого начала работы. 

В этом руководстве мы покажем, как настроить и обучить YOLO11 с помощью Google Colab, Jupyter Notebooks или простого файла на Python, так как шаги очень похожи во всех этих средах.

Понимание данных о дикой природе Африки

После выбора среды разработки для обучения YOLO11 распознаванию диких животных нам понадобится высококачественный набор помеченных изображений. На каждом изображении должно быть четко видно, где находятся животные и какого они вида, чтобы модель могла научиться распознавать их с помощью контролируемого обучения.

В этом уроке мы будем использовать набор данных African Wildlife Dataset. Он поддерживается пакетом Ultralytics Python и специально разработан для обнаружения животных, часто встречающихся в африканских экосистемах. Он содержит аннотированные изображения четырех ключевых видов: буйволов, слонов, носорогов и зебр.

Рис. 1. Обзор набора данных о дикой природе Африки.

Вот некоторые ключевые особенности набора данных о дикой природе Африки:

  • Масштаб: Набор данных состоит из 1504 изображений, разделенных на три подмножества: 1052 для обучения, 225 для проверки и 227 для тестирования. Такое разделение обеспечивает эффективное обучение и тщательную оценку модели.

  • Бесшовная интеграция: Ultralytics предоставляет конфигурационный файл YAML, в котором определяются пути к набору данных, классы и другие детали, что упрощает использование при обучении моделей YOLO.

  • Открытая лицензия: Этот набор данных распространяется под лицензией AGPL-3.0, поощряющей прозрачность и сотрудничество.

Обучение Ultralytics YOLO11 для обнаружения животных

Теперь, когда мы изучили набор данных African Wildlife Dataset, мы можем приступить к обучению модели 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-файла, который содержит информацию об изображениях и метках. Этот файл указывает модели, где найти набор данных и какие объекты она должна научиться распознавать. 

Набор данных African Wildlife Dataset поддерживается пакетом Ultralytics, поэтому он будет автоматически загружен при запуске обучения, избавляя вас от необходимости устанавливать его вручную.

Как только набор данных готов, модель начинает обучение. Модель будет проходить через набор данных несколько раз - этот процесс называется обучением в течение нескольких эпох, - чтобы улучшить свою способность распознавать животных на изображениях. В ходе этого процесса размер изображений будет изменен для обработки, и модель будет работать с определенным количеством изображений за один раз, называемым партией. Это помогает модели обучаться более эффективно.

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

from ultralytics import YOLO

model = YOLO("yolo11n.pt")

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

Шаг 3: Прохождение тренинга YOLO11

После выполнения приведенного выше фрагмента кода модель начинает обучение, основываясь на заданных нами настройках. В коде мы указали модели пройтись по обучающим изображениям 30 раз. Это означает, что модель будет просматривать все изображения в наборе данных 30 раз, каждый раз обучаясь немного больше.

Представьте, что вы пытаетесь научиться рисовать животных. С первого раза рисунок может получиться не очень удачным, но после того как вы будете практиковаться снова и снова, у вас начнет получаться лучше. Каждый раз, когда вы пробуете снова, вы учитесь на том, что пошло не так, и исправляете это. Именно это и делает каждая эпоха для модели - она смотрит на изображения, делает ошибки, учится на них и с каждым разом все лучше распознает животных.

Если код обучения выполняется успешно, то по мере обучения вы увидите следующие результаты:

  • Настройка обучения: Первая часть показывает версию Ultralytics, PyTorch и используемое оборудование (в данном случае процессор), а также конфигурацию обучения, включая модель (yolo11n.pt), размер партии, эпохи и размер изображения.
  • Краткое описание модели: содержит информацию о сложности модели, например о количестве слоев и параметров, показывая, насколько велика модель.
  • Оптимизатор и скорость обучения: Упоминается оптимизатор (например, AdamW) и скорость обучения, которые управляют тем, как модель подстраивает свои параметры во время обучения.
  • Сканирование набора данных: Модель сканирует набор данных, показывая, сколько изображений являются действительными и готовы к обучению. Она подтверждает отсутствие проблем с набором данных.
  • Прогресс обучения: Вывод обновляется после каждой эпохи (цикла обучения), показывая прогресс обучения вместе с ключевыми значениями потерь (box_loss, cls_loss, dfl_loss), которые показывают, насколько хорошо модель обучается.
  • Показатели производительности: После каждой эпохи вы увидите такие показатели производительности, как точность, отзыв и mAP (средняя точность). Эти показатели показывают, насколько точно модель обнаруживает и классифицирует объекты.
  • Использование памяти GPU: Если вы используете графический процессор, в выводе отображается использование памяти для отслеживания загрузки оборудования.
Рис. 2. Выходные данные, которые вы увидите в процессе обучения модели.

Шаг 4: Оценка эффективности модели, обученной по индивидуальному заказу

После завершения процесса обучения вы можете просмотреть и проверить показатели эффективности модели. В 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 загружается с использованием этих весов. 

После этого задается путь к изображению из тестового набора данных African Wildlife. Модель применяется к этому изображению для обнаружения объектов, генерируются результаты, и выходные данные (например, обнаруженные объекты или аннотации) сохраняются.

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) 

Изображение, показанное ниже, будет сохранено в папке "predict", расположенной в каталоге runs/detect. Для последующих тестов будут созданы новые папки, такие как "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, могут автоматически обнаруживать и отслеживать животных, что позволяет использовать их в различных практических целях. Вот некоторые из ключевых областей, в которых Vision AI может быть использован для поддержки усилий по сохранению дикой природы:

  • Мониторинг видов: ИИ зрения может использоваться для обработки визуальных данных, таких как изображения и видео, чтобы точно идентифицировать виды, подсчитывать популяции и отслеживать их перемещения во времени.
  • Оповещения с помощью интеллектуальных камер: В удаленных районах компьютерное зрение может использоваться для непрерывной классификации животных и отправки предупреждений в режиме реального времени, что позволит органам охраны дикой природы быстро реагировать на такие угрозы, как аномальное поведение животных или конфликты между человеком и дикой природой.
  • Анализ поведения: Наблюдая за миграцией, привычками питания и социальными взаимодействиями, системы искусственного интеллекта могут дать исчерпывающее представление о динамике межвидовых отношений.
  • Предотвращение браконьерства: ИИ можно использовать для обнаружения несанкционированного присутствия людей и признаков браконьерства, применяя машинное обучение и исторические данные для точного определения очагов риска.

Основные выводы

Модели компьютерного зрения, подобные YOLO11, могут сыграть ключевую роль в сохранении дикой природы, автоматизируя обнаружение и отслеживание животных. С помощью Vision AI мы можем обрабатывать большие объемы изображений и видео из различных источников, что позволяет проводить точную оценку дикой природы. 

Ultralytics YOLO11, в частности, отлично подходит для обнаружения объектов в режиме реального времени, что делает его идеальным решением для таких задач, как наблюдение за браконьерством, анализ поведения и мониторинг экосистем. Внедрение моделей, основанных на искусственном интеллекте, в природоохранную деятельность позволит нам лучше защищать виды, улучшать отслеживание биоразнообразия и принимать более обоснованные решения по защите исчезающих видов дикой природы.

Присоединяйтесь к нашему сообществу и изучайте репозиторий GitHub, чтобы узнать больше о компьютерном зрении. На страницах наших решений вы найдете больше приложений, связанных с ИИ в здравоохранении и компьютерным зрением в производстве. Ознакомьтесь с вариантами лицензирования Ultralytics, чтобы начать работу с Vision AI.

Давайте вместе построим будущее
искусственного интеллекта!

Начните свое путешествие в будущее машинного обучения

Начните бесплатно
Ссылка копируется в буфер обмена