Как обучать модели Ultralytics YOLO обнаруживать животных в дикой природе
Узнай, как обучать модели YOLO обнаруживать животных в дикой природе с помощью набора данных African Wildlife и запускать инференс на ранее не встречавшихся изображениях.
Abirami Vina11 мин. чтения
Животный мир нашей планеты невероятно разнообразен: от жужжащих пчёл до огромных слонов. Сохранение этого биоразнообразия — ключ к поддержанию равновесия экосистемы. Однако охрана природы становится всё сложнее из-за утраты мест обитания, браконьерства и изменения климата. Все эти факторы негативно влияют на популяции диких животных.
Традиционные методы мониторинга животных, например ручной анализ снимков с фотоловушек и полевые исследования, могут занимать много времени и ресурсов. Такие методы часто не позволяют эффективно охватить большие территории и многочисленные популяции.
Чтобы преодолеть эти ограничения, в охране дикой природы можно эффективно применять искусственный интеллект (AI). В частности, модели компьютерного зрения, например 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 Dataset#
Выбрав среду разработки, подготовь качественный набор размеченных изображений, чтобы обучить Ultralytics YOLO11 обнаруживать диких животных. На каждом изображении должны быть чётко видны местоположение и вид животных, чтобы модель могла научиться распознавать их с помощью обучения с учителем.
В этом уроке мы будем использовать набор данных African Wildlife Dataset. Он поддерживается пакетом Ultralytics для Python и специально предназначен для обнаружения животных, обитающих в африканских экосистемах. В набор входят размеченные изображения четырёх ключевых видов: буйволов, слонов, носорогов и зебр.

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

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

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










