Instance Segmentation
Узнай, как экземплярная сегментация обеспечивает обнаружение объектов на уровне пикселей. Изучи использование Ultralytics YOLO26 для быстрой генерации масок в реальном времени и других задач.
Сегментация экземпляров — это сложный метод в области компьютерного зрения (CV), который на уровне пикселей выявляет и очерчивает каждый отдельный интересующий объект на изображении. В то время как стандартное обнаружение объектов локализует объекты с помощью прямоугольных ограничивающих рамок, сегментация экземпляров углубляет анализ, создавая точную маску для каждой обнаруженной сущности. Эта возможность позволяет моделям искусственного интеллекта (AI) различать отдельные объекты одного класса — например, отделять двух перекрывающихся людей, — обеспечивая более полное и детальное понимание визуальной сцены по сравнению с более простыми методами классификации.
Различия между типами сегментации#
Чтобы полностью понять полезность сегментации экземпляров, стоит отличать ее от других связанных задач обработки изображений. Каждый метод предлагает свой уровень детализации в зависимости от требований приложения.
- Семантическая сегментация: Этот подход классифицирует каждый пиксель изображения по категориям (например, «дорога», «небо», «автомобиль»). Однако он не различает отдельные объекты одной категории. Если три автомобиля припаркованы рядом, семантическая сегментация воспринимает их как единую область «автомобиль».
- Сегментация экземпляров: Этот метод рассматривает каждый объект как уникальную сущность. Он обнаруживает отдельные экземпляры и присваивает пикселям каждого из них уникальную метку. В примере с припаркованными автомобилями сегментация экземпляров создаст три отдельные маски, отдельно обозначив «Автомобиль A», «Автомобиль B» и «Автомобиль C».
- Паноптическая сегментация: Гибридный подход, объединяющий маркировку фона из семантической сегментации с идентификацией подсчитываемых объектов из сегментации экземпляров.
Механика анализа на уровне пикселей#
Современные модели сегментации экземпляров обычно используют передовые архитектуры глубокого обучения (DL), особенно сверточные нейронные сети (CNNs). Эти сети извлекают признаки из изображения, чтобы предсказать как класс объекта, так и его пространственный контур. Исторически стандартом были двухэтапные архитектуры, такие как Mask R-CNN: сначала они предлагали области интереса, а затем уточняли их до масок.
Однако последние достижения привели к появлению одноэтапных детекторов, таких как YOLO26, которые одновременно выполняют обнаружение и сегментацию. Такой подход «от начала до конца» значительно повышает скорость вывода в реальном времени, благодаря чему высокоточную сегментацию можно применять к потоковому видео на пользовательском оборудовании.
Практические применения#
Точные границы, которые обеспечивает сегментация экземпляров, критически важны для отраслей, где для принятия решений необходимо понимать точную форму и положение объекта.
- AI в здравоохранении: В медицинской диагностике жизненно важно определить точный размер и форму опухолей или поражений. Сегментация экземпляров позволяет моделям с высокой точностью очерчивать патологические изменения на МРТ-снимках, помогая радиологам планировать лечение и отслеживать прогрессирование заболевания.
- Автономные транспортные средства: Беспилотные автомобили используют сегментацию для навигации в сложных условиях. Применяя такие наборы данных, как Cityscapes, транспортные средства могут определять поверхности, по которым можно ехать, распознавать дорожную разметку и отделять отдельных пешеходов на оживленных пешеходных переходах, обеспечивая безопасность.
- AI в сельском хозяйстве: Точное земледелие использует сегментацию для мониторинга состояния сельскохозяйственных культур. Роботы, оснащенные системами компьютерного зрения, могут распознавать отдельные плоды для автоматизированного сбора урожая или обнаруживать конкретные сорняки для точечного применения гербицидов, сокращая использование химикатов и повышая урожайность.
Реализация сегментации с помощью 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, предлагающий функции управления наборами данных, автоматической разметки и обучения в облаке. Это позволяет разработчикам дообучать модели на пользовательских данных — например, на данных о конкретных промышленных деталях или биологических образцах — и эффективно развертывать их на устройствах периферийного AI с помощью оптимизированных форматов, таких как ONNX или TensorRT.









