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

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

Узнайте, как обучить модели 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). Это важно для сокращения времени обучения.

Далее, независимо от того, какую среду вы используете, необходимо установитьPython Ultralytics Python . Если вы работаете в среде на базе ноутбука (Google или 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): этот показатель оценивает общую точность модели при обнаружении животных всех классов путем усреднения значений точности при различных уровнях воспроизведения.
  • Точность: этот показатель отражает процент правильных обнаружений и рассчитывается путем деления количества истинных положительных результатов на общее количество всех обнаружений.
  • Полнота: Она указывает процент фактических животных на изображениях, которые были правильно идентифицированы моделью, что отражает ее способность захватывать все релевантные экземпляры.

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

Выполнение выводов с использованием вашей модели 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.

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

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