Yolo Vision Shenzhen
Шэньчжэнь
Присоединиться сейчас

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

Абирами Вина

5 мин чтения

15 апреля 2025 г.

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

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

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

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

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

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

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

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

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

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

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

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

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

Понимание набора данных African Wildlife

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

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

Рис. 1. Краткий обзор набора данных African Wildlife.

Вот некоторые ключевые особенности набора данных African Wildlife:

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

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

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

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

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

Затем мы указываем набор данных с помощью YAML-файла, который содержит информацию об изображениях и метках. Этот файл сообщает модели, где найти набор данных и какие объекты она должна научиться распознавать. 

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

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

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

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

После завершения процесса обучения вы можете просмотреть и проверить показатели эффективности модели. В Google Colab вы можете перейти в папку "runs", затем в папкуdetect" и, наконец, в папку "train", где вы найдете журналы, отображающие ключевые показатели эффективности.

Для пользователей в среде Python результаты обучения по умолчанию сохраняются в каталоге "runs/train/" в текущем рабочем каталоге. При каждом запуске обучения создается новый подкаталог (например, runs/train/exp, runs/train/exp2 и т. д.), в котором можно найти журналы и другие результаты, связанные с обучением.

Если вы используете CLI, вы можете легко получить доступ к этим результатам и настройкам с помощью команды "yolo settings", которая позволяет просматривать или изменять пути и другие конфигурации, связанные с журналами обучения и деталями эксперимента.

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

Они track прогресс модели, показывая, как уменьшается потеря (разница между предсказаниями модели и фактическими значениями) и как растет точность в процессе обучения. Это помогает понять, насколько хорошо модель научилась распознавать животных и насколько она улучшилась к концу обучения.

Рис. 3. Пример графиков, которые можно анализировать для оценки вашей модели.

Ключевые метрики оценки производительности

Кроме того, вот более подробный обзор некоторых метрик, которые можно использовать для оценки производительности модели:

  • Средняя точность (mAP): Эта метрика измеряет общую точность модели при обнаружении животных во всех классах путем усреднения оценок точности при различных уровнях запоминания.
  • Точность (Precision): Это представляет собой процент правильных обнаружений, вычисленный путем деления количества истинно положительных обнаружений на общее количество выполненных обнаружений.
  • Полнота: Она указывает процент фактических животных на изображениях, которые были правильно идентифицированы моделью, что отражает ее способность захватывать все релевантные экземпляры.

Эти метрики оценки могут помочь точно настроить модель для повышения точности перед использованием в реальных приложениях.

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

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

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

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

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

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

Давайте строить будущее
ИИ вместе!

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

Начать бесплатно