Instance Segmentation
Узнай, как экземплярная сегментация (instance segmentation) позволяет обнаруживать объекты на уровне пикселей. Узнай, как использовать Ultralytics YOLO26 для высокоскоростной генерации масок в реальном времени и многого другого.
Сегментация экземпляров — это сложный метод в компьютерном зрении (CV), который идентифицирует и очерчивает каждый отдельный интересующий объект на изображении на уровне пикселей. В то время как стандартное обнаружение объектов локализует элементы с помощью прямоугольных ограничивающих рамок (BBox), сегментация экземпляров углубляет анализ, генерируя точную маску для каждого обнаруженного объекта. Эта возможность позволяет моделям искусственного интеллекта (ИИ) различать отдельные объекты одного класса — например, разделять двух перекрывающихся людей — обеспечивая более богатый и детальный анализ визуальной сцены по сравнению с более простыми методами классификации.
Различие типов сегментации#
Чтобы полностью понять полезность сегментации экземпляров, полезно отличать ее от других связанных задач обработки изображений. Каждый метод предлагает разный уровень детализации в зависимости от требований приложения.
- Семантическая сегментация: Этот подход классифицирует каждый пиксель изображения по категориям (например, «дорога», «небо», «автомобиль»). Однако он не различает отдельные объекты одной категории. Если рядом припаркованы три автомобиля, семантическая сегментация рассматривает их как единую область «автомобиля».
- Сегментация экземпляров: Этот метод рассматривает каждый объект как уникальную сущность. Он обнаруживает отдельные экземпляры и назначает уникальную метку пикселям каждого из них. На примере припаркованных автомобилей сегментация экземпляров создаст три отдельные маски, раздельно идентифицируя «Автомобиль A», «Автомобиль B» и «Автомобиль C».
- Паноптическая сегментация: Гибридный подход, объединяющий разметку фона семантической сегментации с идентификацией подсчитываемых объектов сегментации экземпляров.
Механика попиксельного анализа#
Современные модели сегментации экземпляров обычно опираются на передовые архитектуры глубокого обучения (DL), в частности сверточные нейронные сети (CNN). Эти сети извлекают признаки из изображения для предсказания как класса объекта, так и его пространственного контура. Исторически двухэтапные архитектуры вроде Mask R-CNN были стандартом, сначала предлагая области интереса, а затем уточняя их до масок.
Однако недавние достижения привели к появлению одноэтапных детекторов вроде YOLO26, которые выполняют обнаружение и сегментацию одновременно. Такой подход «из конца в конец» значительно повышает скорость вывода в реальном времени, позволяя применять высокоточную сегментацию к живым видеопотокам на потребительском оборудовании.
Реальные приложения#
Точные границы, обеспечиваемые сегментацией экземпляров, критически важны для отраслей, где понимание точной формы и положения объекта необходимо для принятия решений.
- ИИ в здравоохранении: В медицинской диагностике определение точного размера и формы опухолей или поражений имеет жизненно важное значение. Сегментация экземпляров позволяет моделям с высокой точностью выделять аномалии на МРТ-снимках, помогая радиологам в планировании лечения и мониторинге прогрессирования заболевания.
- Автономные транспортные средства: Самоуправляемые автомобили полагаются на сегментацию для навигации в сложных условиях. Используя такие наборы данных, как Cityscapes, транспортные средства могут определять пригодные для движения поверхности, распознавать дорожную разметку и отделять пешеходов друг от друга на многолюдных пешеходных переходах для обеспечения безопасности.
- ИИ в сельском хозяйстве: Точное земледелие использует сегментацию для мониторинга здоровья сельскохозяйственных культур. Роботы, оснащенные системами технического зрения, могут распознавать отдельные плоды для автоматизированного сбора урожая или обнаруживать определенные сорняки для точечного внесения гербицидов, сокращая использование химикатов и оптимизируя урожайность.
Реализация сегментации с помощью Python#
Разработчики могут легко реализовать сегментацию экземпляров с помощью библиотеки ultralytics. Следующий пример демонстрирует, как загрузить предварительно обученную модель YOLO26 и сгенерировать маски сегментации для изображения.
from ultralytics import YOLO
# Load a pre-trained YOLO26 instance segmentation model
# The 'n' suffix denotes the nano version, optimized for speed
model = YOLO("yolo26n-seg.pt")
# Run inference on an image
# This predicts classes, bounding boxes, and masks
results = model("https://ultralytics.com/images/bus.jpg")
# Visualize the results
# Displays the image with overlaid segmentation masks
results[0].show()Проблемы и обучение моделей#
Будучи мощной, сегментация экземпляров требует больших вычислительных ресурсов по сравнению с простым обнаружением ограничивающих рамок. Создание идеальных на уровне пикселей масок требует значительных ресурсов GPU и точной разметки данных. Разметка данных для таких задач включает в себя проведение плотных многоугольников вокруг каждого объекта, что может отнимать много времени.
Чтобы упростить этот процесс, команды часто используют такие инструменты, как Ultralytics Platform, которая предлагает функции для управления наборами данных, авторазметки и облачного обучения. Это позволяет разработчикам дообучать модели на пользовательских данных — например, на конкретных промышленных деталях или биологических образцах — и эффективно развертывать их на устройствах краевого ИИ (edge AI), используя оптимизированные форматы, такие как ONNX или TensorRT.






