Как дообучить Ultralytics YOLO26 для сегментации экземпляров
Узнай, как дообучить Ultralytics YOLO26 для сегментации экземпляров, где модель идентифицирует и отделяет каждый индивидуальный объект с помощью масок на уровне пикселей.

Благодаря недавним технологическим достижениям многие интеллектуальные системы, которые играют незаметную, но важную роль в нашей жизни, работают на базе ИИ. Например, когда машина проезжает на красный свет и камера автоматически фиксирует нарушение или когда автоматизированная система контроля качества обнаруживает производственный брак на конвейере, именно ИИ выполняет всю закулисную работу.
В частности, ветвь ИИ, известная как computer vision, позволяет машинам интерпретировать и понимать изображения и видео. Компьютерное зрение позволяет системам распознавать объекты, отслеживать движение и анализировать визуальные детали в реальном времени, что делает его незаменимым для таких приложений, как мониторинг дорожного движения, промышленный осмотр и робототехника.
Эти возможности становятся возможными благодаря computer vision models, таким как Ultralytics YOLO26, которая поддерживает различные задачи компьютерного зрения, включая обнаружение объектов и сегментацию экземпляров. В то время как обнаружение объектов определяет объекты с помощью простых ограничивающих рамок, сегментация экземпляров идет дальше, обводя каждый объект на уровне пикселей, что обеспечивает более точные и надежные результаты в реальных сценариях.

Рис. 1. Сегментация объектов на изображении с помощью Ultralytics YOLO26
Модели вроде Ultralytics YOLO26 предобучены и могут сегментировать повседневные объекты, такие как люди, машины и животные, прямо «из коробки». Однако для более специфических задач их можно обучать на собственных данных. Иными словами, модель может научиться распознавать объекты и точно обводить их по контуру.
В этой статье мы разберем, как обучить Ultralytics YOLO26 под свои задачи для сегментации экземпляров. Давай начнем!
Что такое сегментация экземпляров?#
Прежде чем мы погрузимся в обучение моделей, давай сделаем шаг назад и разберем, что на самом деле означает instance segmentation.
Сегментация экземпляров — это задача компьютерного зрения, которая позволяет модели находить каждый отдельный объект на изображении и выделять его точную форму. Вместо того чтобы просто определять наличие объекта, модель анализирует каждый пиксель на изображении и решает, принадлежит ли он к конкретному объекту.
Это означает, что она может разделять объекты, даже если они перекрываются или находятся очень близко друг к другу. Ключевое понятие, которое упрощает визуализацию сегментации экземпляров, — это маска.
Маска — это контур на уровне пикселей, который покрывает только область объекта. Можно представить это как закрашивание объекта маркером, оставляя все остальное нетронутым.
Каждый объект получает свою собственную маску, что позволяет модели отличать один объект от другого, даже если они одного типа, например два автомобиля или два человека, стоящих рядом.

Рис. 2. Взгляд на сегментацию экземпляров
Чтобы лучше понять, что такое сегментация экземпляров, мы можем сравнить ее с другими распространенными computer vision tasks. Обнаружение объектов использует ограничивающие рамки, которые представляют собой простые прямоугольники, нарисованные вокруг объектов. Ограничивающие рамки работают быстро и полезно, но они не фиксируют точную форму объекта.
Тем временем семантическая сегментация маркирует каждый пиксель на изображении по категориям, но не различает отдельные объекты одного и того же класса. Сегментация экземпляров объединяет лучшее из обоих подходов, идентифицируя категории объектов и назначая отдельную маску каждому отдельному объекту.
Поскольку сегментация экземпляров предоставляет столь подробную информацию, она особенно полезна в реальных приложениях, таких как автоматизированный контроль качества, медицинская визуализация и робототехника. Задачи, требующие точных измерений, четких границ или разделения объектов, выигрывают от такого понимания на уровне пикселей.
Ultralytics YOLO26 поддерживает сегментацию экземпляров#
Ultralytics YOLO26 — это сквозная, современная модель компьютерного зрения без NMS, разработанная для быстрой и эффективной обработки реальных задач. Она относится к семейству моделей обнаружения Ultralytics YOLO, которые могут обрабатывать изображения и видео в режиме реального времени, выдавая точные результаты.
Ultralytics YOLO26 поддерживает множество задач компьютерного зрения в рамках единого фреймворка, включая детектирование объектов, оценку поз, классификацию изображений, детектирование с ориентированными ограничивающими рамками (obb detection) и сегментацию экземпляров.
«Из коробки» Ultralytics YOLO26 поставляется в предобученном виде, что означает: она уже умеет распознавать распространенные объекты вроде людей, транспорта и повседневных предметов благодаря обучению на крупных общедоступных наборах данных, таких как COCO и ImageNet. Ты можешь начать использовать модель сразу же без дополнительного обучения.
Однако если твоя задача связана с уникальными объектами, специфическим окружением или необычным освещением, ообучение кастомной модели способно значительно улучшить результаты. Обучив Ultralytics YOLO26 на собственных размеченных изображениях, ты сможешь точно объяснить модели, что именно искать и как аккуратнее обводить объекты для твоего сценария использования.
Этот процесс также называют дообучением (fine-tuning). Вместо того чтобы обучать модель с нуля, дообучение берет за основу предобученную модель Ultralytics YOLO26 и аккуратно адаптирует ее под твои данные. Поскольку модель уже понимает общие визуальные паттерны вроде границ, форм и текстур, ей требуется гораздо меньше размеченных изображений и времени на освоение твоих специфических объектов.
Проще говоря, дообучение работает быстрее, эффективнее и доступнее, чем создание модели с нуля. Кастомное обучение Ultralytics YOLO26 — практичный вариант даже для новичков или команд, работающих с ограниченным объемом данных и вычислительных ресурсов.
Изучаем приложения сегментации экземпляров с Ultralytics YOLO26#
Итак, где сегментация экземпляров может быть полезной? В ситуациях, когда важно различать объекты и понимать их точную форму, особенно когда они располагаются плотно или перекрывают друг друга.
Вот некоторые распространенные рабочие процессы, в которых сегментация экземпляров действительно имеет значение:
- Aerial and drone imaging: эта задача позволяет дронам разделять такие объекты, как здания, транспортные средства и растительность на аэрофотоснимках для картографирования, инспекции и съемки.
- Спортивная аналитика: сегментация экземпляров помогает анализировать перемещения игроков и их взаимодействие, отделяя отдельных спортсменов от фона во время игр или тренировок.
- Мониторинг строительства и инфраструктуры: это помогает идентифицировать структурные элементы, трещины или поврежденные участки в зданиях, на мостах и дорогах для планирования технического обслуживания.
- Здравоохранение и медицинская визуализация: сегментация экземпляров позволяет точно выделять клетки, ткани или медицинские инструменты, поддерживая более точный анализ и постановку диагноза.
- Сельское хозяйство и мониторинг окружающей среды: это позволяет идентифицировать и разделять сельскохозяйственные культуры, фрукты или болезни растений, что облегчает оценку урожайности и применение целенаправленных обработок.

Рис. 3. Пример сегментации сорняков с помощью YOLO26 (Source)
Как работает кастомное обучение Ultralytics YOLO26 для сегментации экземпляров#
Далее давай обсудим, как работает кастомное обучение. Хотя обучение модели может звучать технически сложно, общий процесс довольно прямолинеен.
Ты можешь подготовить изображения, разметить объекты, которым должна научиться модель, настроить небольшой файл параметров, а затем обучить YOLO26 с помощью Ultralytics Python package. Пакет Ultralytics Python — это библиотека программного обеспечения, которая предоставляет готовые инструменты для обучения, тестирования и развертывания моделей YOLO без необходимости создавать все с нуля.
Шаг 1: Подготовка твоего собственного набора данных#
Первый шаг — подготовка твоего собственного segmentation dataset. Набор данных — это просто коллекция изображений, демонстрирующих объекты, которым ты хочешь научить модель.
Постарайся включить изображения, отражающие реальные условия: разные углы, освещение, фоны и размеры объектов. Чем разнообразнее твои изображения, тем лучше будет работать модель.
Для сегментации экземпляров твои изображения также должны быть аннотированы. Аннотирование включает маркировку объектов на каждом изображении, чтобы модель знала, что изучать. Вместо рисования простых рамок ты будешь рисовать подробные контуры (полигоны) вокруг каждого объекта, чтобы отметить его точную форму. Эти контуры становятся масками, которые модель учится предсказывать.
Существует несколько инструментов аннотирования с открытым исходным кодом, которые ты можешь использовать для создания этих меток. Многие из них предоставляют удобные интерфейсы, где ты можешь загружать изображения и рисовать контуры объектов прямо на них.
Когда изображения и аннотации будут готовы, распредели их по папкам для обучения (train) и валидации (val). Типичное разделение — 80% изображений для обучения и 20% для валидации, хотя 70% на 30% также часто встречается, в зависимости от размера твоего набора данных. Обучающий набор учит модель, а валидационный используется для оценки того, насколько хорошо она работает на изображениях, которые раньше не видела.
Важно сохранять этот баланс и следить за тем, чтобы обе папки содержали разнообразные примеры. Чистый, хорошо размеченный набор данных с правильным разделением на train и val — основа надежной модели сегментации экземпляров.
Шаг 2: Создание файла YAML для набора данных#
После подготовки изображений и аннотаций следующий шаг — создание YAML-файла. В этом файле указывается местоположение твоего набора данных и классы объектов, которые модель должна изучить во время обучения.
В этом файле ты можешь определить корневой каталог набора данных, пути к папкам с изображениями для обучения и валидации, а также список названий классов. Названия классов должны быть перечислены в том же порядке, что и номера классов, используемые в файлах аннотаций, чтобы всё корректно сопоставлялось.
Если у тебя есть вопросы по поводу точного формата, ты можешь обратиться к official Ultralytics documentation для получения более подробной информации.
Шаг 3: Установка пакета Ultralytics Python#
Теперь, когда твой набор данных и YAML-файл готовы, следующий шаг — установка пакета Ultralytics Python.
Этот пакет включает инструменты, необходимые для обучения, валидации, запуска инференса и экспорта моделей Ultralytics YOLO26. Он предоставляет простой и удобный способ работы с моделями YOLO без необходимости создавать сложные пайплайны обучения с нуля.
Перед установкой пакета Ultralytics Python также важно выбрать среду, в которой ты хочешь запускать код. Ты можешь работать с пакетом Ultralytics в нескольких различных средах разработки, таких как:
- Command line interface (CLI): это текстовая среда, в которой ты взаимодействуешь с компьютером, вводя команды. Вместо того чтобы нажимать кнопки или навигировать по меню, как в графическом интерфейсе, ты вводишь письменные инструкции для запуска программ и выполнения задач напрямую.
- Jupyter Notebooks: интерактивная среда, где ты пишешь и запускаешь код небольшими фрагментами и сразу видишь результат. Это полезно для экспериментов и обучения.
- Google Colab: облачная платформа для ноутбуков, которая не требует локальной установки и предоставляет дополнительный доступ к графическим процессорам (GPU). Часто это самый простой вариант для новичков.
После выбора среды ты можешь установить пакет Ultralytics Python. Чтобы установить его, выполни следующую команду:
pip install ultralytics
Если ты используешь среду на базе блокнотов, такую как Google Colab или Jupyter Notebook, добавь восклицательный знак в начале команды. Если ты столкнешься с какими-либо проблемами при установке, ты можешь обратиться к документации Ultralytics или в troubleshooting guide за распространенными исправлениями и советами по настройке среды.
После установки ты будешь готов загрузить предобученную модель сегментации Ultralytics YOLO26 и приступить к обучению.
Шаг 4: Обучение Ultralytics YOLO26 для сегментации экземпляров#
Прежде чем начать обучение, тебе нужно выбрать размер модели. Модели Ultralytics YOLO26 доступны в разных размерах: Nano (n), Small (s), Medium (m), Large (l) и Extra Large (x).
Модели меньшего размера обучаются быстрее и эффективнее работают на центральных процессорах (CPU) или периферийных устройствах, тогда как более крупные модели обычно обеспечивают более высокую точность, но требуют больше памяти и выигрывают от ускорения на GPU. Если ты только начинаешь или работаешь с ограниченным оборудованием, версия Nano (YOLO26n) — практичный выбор.
Как только ты выбрал размер модели, следующий шаг — загрузка предобученной модели сегментации и начало обучения на твоем наборе данных. Для этого тебе нужно указать файл предобученной модели, путь к YAML-файлу набора данных, количество эпох и размер изображения, как показано ниже.
from ultralytics import YOLO
model = YOLO("yolo26n-seg.pt")
results = model.train(data="path/to/file.yaml", epochs=100, imgsz=640)Количество эпох определяет, сколько раз модель пройдет через весь набор данных обучения. С каждой эпохой модель делает предсказания, сравнивает их с правильными аннотациями, вычисляет ошибки и обновляет внутренние параметры для улучшения результатов.
Если обучение началось правильно, ты увидишь конфигурацию модели, процесс сканирования набора данных и прогресс обучения в терминале или блокноте. По мере продолжения обучения значения функции потерь (loss) и метрики оценки будут обновляться после каждой эпохи, показывая, как модель улучшается со временем.
Шаг 5: Оценка производительности обученной модели#
После завершения процесса обучения ты можешь просмотреть и проверить метрики производительности модели. В Google Colab ты можешь перейти в папку «runs», затем в папку «segment», а в конечном итоге — в папку «train», где найдешь логи с ключевыми показателями эффективности.
Для пользователей, работающих в среде Python, результаты обучения по умолчанию сохраняются в директории «runs/train/» внутри текущей рабочей директории. Каждый запуск обучения создает новую подпапку, например runs/train/exp или runs/train/exp2, где можно найти логи, сохраненные веса и другие выходные данные, относящиеся к данному эксперименту.
Если ты используешь CLI, ты можешь получить доступ к этим результатам и управлять ими с помощью команды “yolo settings”. Эта команда позволяет просматривать или изменять пути и конфигурации, связанные с логами обучения и деталями эксперимента.
Среди сохраненных выходных данных ты также найдешь графики, созданные во время обучения. Эти графики показывают, как модель улучшалась со временем. Например, они отображают, как уменьшалась ошибка (loss) по мере обучения модели и как метрики оценки, такие как точность (precision), полнота (recall) и средняя точность (mAP), увеличивались с каждой эпохой.

Рис. 4. Тип графиков, которые ты можешь проанализировать для оценки модели (Source)
Эти визуальные тренды помогут тебе понять, успешно ли прошло обучение и насколько модель улучшилась от начала к концу. Анализ как численных метрик, так и графиков дает более четкую картину того, насколько хорошо работает твоя модель сегментации экземпляров, прежде чем переходить к тестированию на новых изображениях.
Шаг 6: Тестирование модели и выполнение вывода (inference)#
После валидации модели финальный шаг — протестировать ее на новых изображениях. Этот процесс называется выводом (inference), что означает использование твоей обученной модели для получения предсказаний на новых данных.
Ты можешь выполнить вывод в Python следующим образом:
results = model.predict("path/to/image.jpg", save=True, conf=0.3)В этом примере "path/to/image.jpg" можно заменить на путь к изображению, которое ты хочешь протестировать.
Настройка “save=True” указывает модели сгенерировать и сохранить новое изображение, которое включает предсказанные маски сегментации, наложенные поверх исходного изображения.
Настройка “conf=0.3” управляет порогом уверенности, что означает, что модель будет показывать только те предсказания, в которых она уверена как минимум на 30%. Уменьшение этого значения может показать больше детекций, а увеличение — сделает модель более избирательной.
После запуска команды модель создает новую папку внутри директории runs, где сохраняет выходное изображение. Ты можешь открыть это сохраненное изображение, чтобы визуально проверить, насколько точно маски сегментации повторяют границы объектов и правильно ли разделены перекрывающиеся объекты.
Тестирование модели на различных изображениях, фонах и условиях освещения даст тебе более ясное понимание того, как она работает вне обучающего набора данных. Когда результаты будут выглядеть стабильными и точными, модель готова к экспорту и развертыванию.
Шаг 7: Экспорт и развертывание модели#
После тестирования модели и подтверждения ее хорошей производительности финальным шагом станут экспорт и развертывание. Экспорт преобразует твою обученную модель Ultralytics YOLO26 в формат, способный работать в различных средах, таких как производственные серверы, периферийные устройства или мобильные приложения.
Ultralytics поддерживает несколько export formats, что позволяет выбрать вариант, который лучше всего подходит для твоей среды развертывания. Например, ты можешь выполнить экспорт в ONNX для широкой совместимости между платформами, TensorRT для оптимизированной производительности GPU на оборудовании NVIDIA или OpenVINO для эффективного развертывания на базе CPU на устройствах Intel. Эти интеграции упрощают запуск модели вне среды обучения и обеспечивают высокую производительность в реальном времени.
Ты можешь экспортировать модель в Python с помощью следующей команды:
model.export(format="onnx")Эта команда преобразует твою обученную модель в формат ONNX. Ты можешь заменить "onnx" на другие поддерживаемые форматы в зависимости от твоих потребностей развертывания.
После экспорта твою модель можно интегрировать в такие приложения, как веб-сервисы, встроенные системы компьютерного зрения, роботизированные платформы или системы промышленного контроля. На этом этапе твоя кастомно обученная модель сегментации экземпляров Ultralytics YOLO26 готова перейти от экспериментов к реальному развертыванию.
Основные выводы#
Обучение Ultralytics YOLO26 под свои задачи для сегментации экземпляров дает тебе гибкость в создании модели, которая действительно соответствует твоему конкретному сценарию использования. Подготовив чистый набор данных, настроив YAML-файл, обучив модель с использованием весов предобученной сегментации и проанализировав результаты, ты сможешь научить модель точно выделять каждый объект на уровне пикселей. После тестирования и экспорта твоя модель YOLO26 готова к переходу от разработки к многомасштабным реальным приложениям.
Присоединяйся к our community и загляни в наш GitHub repository, чтобы узнать больше об ИИ. Если ты хочешь создать собственный проект по компьютерному зрению, ознакомься с нашими licensing options. Узнай больше о таких приложениях, как AI in healthcare и vision AI in retail, посетив страницы наших решений.






