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

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

Чтобы лучше понять, что такое сегментация экземпляров, можно сравнить ее с другими распространенными задачами компьютерного зрения. Для обнаружения объектов используются ограничительные рамки — простые прямоугольники, нарисованные вокруг объектов. Ограничительные рамки быстры и полезны, но они не отражают точную форму объекта.
Между тем, семантическая сегментация маркирует каждый пиксель изображения по категории, но не различает отдельные объекты одного и того же класса. Сегментация экземпляров сочетает в себе лучшие черты обоих подходов, определяя категории объектов и присваивая отдельную маску каждому отдельному объекту.
Поскольку сегментация экземпляров предоставляет такую подробную информацию, она особенно полезна в реальных приложениях, таких как автоматизированный контроль качества, медицинская визуализация и робототехника. Задачи, требующие точных измерений, точных границ или разделения объектов, могут извлечь выгоду из этого понимания на уровне пикселей.
Ultralytics — это современная модель компьютерного зрения, не использующая метод подавления неактивных пиков (NMS) и предназначенная для быстрого и эффективного решения реальных задач в области компьютерного зрения. Она входит вYOLO моделей обнаружения Ultralytics YOLO , которые могут обрабатывать изображения и видео в режиме реального времени, обеспечивая при этом точные результаты.
YOLO26 поддерживает несколько задач машинного зрения в рамках одной платформы, включая обнаружение объектов, оценку положения, классификацию изображений, обнаружение ориентированных ограничительных рамок (obb ) и сегментацию экземпляров.
YOLO26 поставляется в готовом к использованию виде, то есть он уже научился распознавать обычные объекты, такие как люди, транспортные средства и предметы повседневного обихода, на основе больших, широко используемых наборов данных, таких как COCO и ImageNet . Вы можете сразу же начать использовать модель без дополнительного обучения.
Однако, если ваше приложение связано с уникальными объектами, специфическими условиями окружающей среды или необычными условиями освещения, обучение модели по индивидуальному заказу может значительно улучшить результаты. Обучая YOLO26 на основе ваших собственных помеченных изображений, вы можете научить модель точно определять, что искать, и как более точно очерчивать объекты для вашего конкретного случая использования.
Этот процесс также называется тонкой настройкой. Вместо того, чтобы обучать модель с нуля, тонкая настройка начинается с предварительно обученной модели YOLO26 и плавно адаптирует ее с использованием ваших собственных данных. Поскольку модель уже понимает общие визуальные шаблоны, такие как края, формы и текстуры, ей требуется гораздо меньше помеченных изображений и гораздо меньше времени для обучения вашим конкретным объектам.
Проще говоря, точная настройка быстрее, эффективнее и доступнее, чем обучение модели с нуля. Индивидуальное обучение YOLO26 — практичный вариант даже для начинающих или команд, работающих с ограниченными данными и вычислительными ресурсами.
Итак, где сегментация экземпляров может быть эффективной? В ситуациях, когда важно различать объекты и понимать их точную форму, особенно когда объекты расположены близко друг к другу или перекрывают друг друга.
Вот несколько типичных рабочих процессов, в которых сегментация экземпляров играет важную роль:

Далее давайте обсудим, как работает индивидуальное обучение. Хотя обучение модели может показаться сложным техническим процессом, в целом он довольно прост.
Вы можете подготовить изображения, пометить объекты, которые модель должна распознавать, настроить небольшой файл параметров, а затем обучить YOLO26 с помощью Python Ultralytics Python .Python Ultralytics Python — это программная библиотека, которая предоставляет готовые инструменты для обучения, тестирования и развертывания YOLO без необходимости создавать все с нуля.
Первый шаг — подготовка набора данных для сегментации. Набор данных — это просто коллекция изображений, на которых представлены объекты, которые модель должна распознавать.
Постарайтесь включить изображения, отражающие реальные условия, такие как разные углы, освещение, фоны и размеры объектов. Чем больше разнообразие ваших изображений, тем лучше будет работать ваша модель.
Для сегментации, например, ваши изображения также нуждаются в аннотациях. Аннотация включает в себя маркировку объектов на каждом изображении, чтобы модель знала, чему ей нужно учиться. Вместо того, чтобы рисовать простые прямоугольники, вы будете рисовать подробные контуры (многоугольники) вокруг каждого объекта, чтобы обозначить его точную форму. Эти контуры становятся масками, которые модель учится предсказывать.
Существует несколько инструментов с открытым исходным кодом, которые можно использовать для создания этих меток. Многие из этих инструментов имеют удобный интерфейс, в котором можно загружать изображения и рисовать контуры объектов прямо на них.
Когда изображения и аннотации будут готовы, вы можете организовать их в папки для обучения и проверки. Обычно 80 % изображений используется для обучения, а 20 % — для проверки, хотя в зависимости от размера набора данных часто используется соотношение 70 % для обучения и 30 % для проверки. Набор для обучения обучает модель, а набор для проверки используется для оценки ее эффективности при работе с изображениями, которые она не видела ранее.
Важно сохранять баланс между этими двумя папками и обеспечить, чтобы обе папки содержали разнообразные примеры. Чистый, хорошо маркированный набор данных с правильным разделением на обучающую и валидационную части составляет основу надежной модели сегментации экземпляров.
После подготовки изображений и аннотаций следующим шагом является создание файла YAML с набором данных. Этот файл указывает, где находится ваш набор данных и какие классы объектов модель должна изучить во время обучения.
В этом файле вы можете определить корневой каталог набора данных, пути к папкам с изображениями для обучения и проверки, а также список названий классов. Названия классов должны быть перечислены в том же порядке, что и номера классов, используемые в ваших файлах аннотаций, чтобы все соответствовало правильно.
Если у вас есть вопросы по поводу точного формата, вы можете обратиться к официальной Ultralytics для получения более подробной информации.
Теперь, когда ваш набор данных и файл YAML готовы, следующим шагом будет установкаPython Ultralytics Python .
Этот пакет включает в себя инструменты, необходимые для обучения, валидации, выполнения инференции и экспорта моделей YOLO26. Он предоставляет упрощенный способ работы с YOLO без необходимости создания сложных конвейеров обучения с нуля.
Перед установкойPython Ultralytics Python также важно выбрать, где вы хотите запускать свой код. Вы можете работать с Ultralytics в нескольких различных средах разработки, таких как:
После выбора среды вы можете установитьPython Ultralytics Python . Для установки выполните следующую команду:
pip install ultralytics
Если вы используете среду на базе ноутбука, такую как Google или Jupyter Notebook, добавьте восклицательный знак в начале команды. Если у вас возникли проблемы с установкой, вы можете обратиться к Ultralytics или руководству по устранению неполадок, где приведены общие способы устранения неполадок и советы по настройке среды.
После установки вы сможете загрузить предварительно обученную модель сегментации YOLO26 и приступить к обучению.
Перед началом обучения необходимо выбрать размер модели. Модели 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)Количество эпох определяет, сколько раз модель проходит весь набор данных для обучения. В каждой эпохе модель делает прогнозы, сравнивает их с правильными аннотациями, рассчитывает ошибки и обновляет свои внутренние параметры для улучшения производительности.
Если обучение запущено правильно, вы увидите конфигурацию модели, сканирование набора данных и ход обучения, отображаемые в терминале или блокноте. По мере продолжения обучения значения потерь и метрики оценки будут обновляться после каждой эпохи, показывая, как модель улучшается с течением времени.
После завершения процесса обучения вы можете просмотреть и проверить показатели производительности модели. В Google вы можете перейти в папку «runs», затем в папкуsegmentи, наконец, в папку «train», где вы найдете журналы с ключевыми показателями производительности.
Для пользователей, работающих в Python , результаты обучения по умолчанию сохраняются в каталоге «runs/train/» в текущем рабочем каталоге. Каждый цикл обучения создает новый подкаталог, например runs/train/exp или runs/train/exp2, в котором можно найти журналы, сохраненные веса и другие результаты, связанные с этим экспериментом.
Если вы используете CLI, вы можете получить доступ к этим результатам и управлять ими с помощью командыyolo Эта команда позволяет просматривать или изменять пути и конфигурации, связанные с журналами обучения и деталями экспериментов.
Среди сохраненных результатов вы также найдете графики, сгенерированные во время обучения. Эти графики показывают, как модель улучшалась с течением времени. Например, они отображают, как потери уменьшались по мере обучения модели и как показатели оценки, такие как точность, полнота и средняя средняя точность, увеличивались на протяжении эпох.

Эти визуальные тенденции могут помочь вам понять, была ли модель успешно обучена и насколько она улучшилась с начала до конца обучения. Просмотр как числовых показателей, так и графиков дает вам более четкое представление о том, насколько хорошо работает ваша модель сегментации экземпляров, прежде чем переходить к тестированию с новыми изображениями.
После проверки вашей модели последним шагом является ее тестирование на новых изображениях. Этот процесс называется инференсом, что означает использование обученной модели для прогнозирования на основе невиданных данных.
Вы можете запустить инференцию в Python следующим Python :
results = model.predict("path/to/image.jpg", save=True, conf=0.3)В этом примере «path/to/image.jpg» можно заменить путем к изображению, которое вы хотите протестировать.
Настройка «save=True» указывает модели сгенерировать и сохранить новое изображение, которое включает в себя прогнозируемые маски сегментации, наложенные на исходное изображение.
Настройка «conf=0.3» контролирует порог достоверности, что означает, что модель будет показывать только те прогнозы, в правильности которых она уверена не менее чем на 30 %. Уменьшение этого значения может привести к увеличению количества обнаружений, а его увеличение сделает модель более избирательной.
После запуска команды модель создает новую папку в каталоге runs, где сохраняет выходные изображения. Вы можете открыть сохраненное изображение, чтобы визуально проверить, насколько точно маски сегментации следуют границам объектов и правильно ли разделены перекрывающиеся объекты.
Тестирование модели на различных изображениях, фонах и в разных условиях освещения может дать вам более четкое представление о том, как она работает за пределами обучающего набора данных. Как только результаты будут выглядеть стабильными и точными, модель будет готова к экспорту и развертыванию.
После тестирования модели и подтверждения ее хорошей работы последним шагом является ее экспорт и развертывание. Экспорт преобразует обученную модель YOLO26 в формат, который может работать в различных средах, таких как производственные серверы, пограничные устройства или мобильные приложения.
Ultralytics несколько форматов экспорта, что позволяет вам выбрать тот, который лучше всего подходит для вашей конфигурации развертывания. Например, вы можете экспортировать в ONNX широкой совместимости между платформами, TensorRT оптимизации GPU на NVIDIA или OpenVINO эффективного развертывания CPU на Intel . Эти интеграции упрощают запуск вашей модели за пределами среды обучения и обеспечивают высокую производительность в режиме реального времени.
Вы можете экспортировать свою модель в Python следующей команды:
model.export(format="onnx")
Эта команда преобразует обученную модель в ONNX . Вы можете заменитьonnx на другие поддерживаемые форматы в зависимости от ваших потребностей развертывания.
После экспорта ваша модель может быть интегрирована в такие приложения, как веб-сервисы, встроенные системы технического зрения, робототехнические платформы или промышленные системы контроля. На этом этапе ваша настраиваемая модель сегментации экземпляров YOLO26 может перейти от экспериментальной стадии к реальному внедрению.
Настраиваемое обучение Ultralytics для сегментации экземпляров дает вам гибкость в создании модели, которая действительно подходит для вашего конкретного случая использования. Подготовив четкий набор данных, настроив файл YAML, обучив модель с помощью предварительно обученных весов сегментации и проанализировав результаты, вы можете научить модель точно очерчивать каждый объект на уровне пикселей. После тестирования и экспорта ваша модель YOLO26 может перейти от стадии разработки к многомасштабным реальным приложениям.
Присоединяйтесь к нашему сообществу и загляните в наш репозиторий GitHub, чтобы узнать больше об ИИ. Если вы хотите создать свой собственный проект Vision AI, ознакомьтесь с нашими вариантами лицензирования. Узнайте больше о таких приложениях, как ИИ в здравоохранении и Vision AI в розничной торговле, посетив наши страницы с решениями.