Сегментация экземпляров и отслеживание с использованием Ultralytics YOLO26 🚀

Что такое сегментация экземпляров?

Сегментация экземпляров — это задача компьютерного зрения, которая включает в себя идентификацию и выделение отдельных объектов на изображении на уровне пикселей. В отличие от семантической сегментации, которая классифицирует пиксели только по категориям, сегментация экземпляров уникально маркирует и точно очерчивает каждый объект, что критически важно для приложений, требующих детального пространственного понимания, таких как медицинская визуализация, автономное вождение и промышленная автоматизация.

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

В пакете Ultralytics доступны два типа отслеживания сегментации экземпляров:

  • Сегментация экземпляров с объектами классов: каждому классу объектов присваивается уникальный цвет для четкого визуального разделения.

  • Сегментация экземпляров с отслеживанием объектов: каждый трек представлен отдельным цветом, что облегчает идентификацию и отслеживание в кадрах видео.



Watch: Instance Segmentation with Object Tracking using Ultralytics YOLO26

Образцы

Сегментация экземпляровСегментация экземпляров + отслеживание объектов
Сегментация экземпляров UltralyticsСегментация экземпляров Ultralytics с отслеживанием объектов
Сегментация экземпляров Ultralytics 😍Сегментация экземпляров Ultralytics с отслеживанием объектов 🔥
Сегментация экземпляров с помощью Ultralytics YOLO
# Instance segmentation using Ultralytics YOLO26
yolo solutions isegment show=True

# Pass a source video
yolo solutions isegment source="path/to/video.mp4"

# Monitor the specific classes
yolo solutions isegment classes="[0, 5]"

Аргументы InstanceSegmentation

Ниже приведена таблица с аргументами InstanceSegmentation:

АргументТипПо умолчаниюОписание
modelstrNoneПуть к файлу модели Ultralytics YOLO.
regionlist'[(20, 400), (1260, 400)]'Список точек, определяющих область подсчета.

Ты также можешь воспользоваться аргументами track в рамках решения InstanceSegmentation:

АргументТипПо умолчаниюОписание
trackerstr'botsort.yaml'Указывает алгоритм отслеживания, который необходимо использовать, например, bytetrack.yaml или botsort.yaml.
conffloat0.1Устанавливает порог достоверности для обнаружения; более низкие значения позволяют отслеживать больше объектов, но могут включать ложные срабатывания.
ioufloat0.7Устанавливает порог Intersection over Union (IoU) для фильтрации перекрывающихся обнаружений.
classeslistNoneФильтрует результаты по индексу класса. Например, classes=[0, 2, 3] отслеживает только указанные классы.
verboseboolTrueУправляет отображением результатов отслеживания, предоставляя визуальный вывод отслеживаемых объектов.
devicestrNoneУказывает устройство для вывода (например, cpu, cuda:0 или 0). Позволяет пользователям выбирать между CPU, конкретным GPU или другими вычислительными устройствами для выполнения модели.

Кроме того, доступны следующие аргументы визуализации:

АргументТипПо умолчаниюОписание
showboolFalseЕсли True, отображает аннотированные изображения или видео в окне. Полезно для мгновенной визуальной проверки в процессе разработки или тестирования.
line_widthint or NoneNoneЗадает толщину линий ограничивающих рамок. Если None, толщина подбирается автоматически в зависимости от размера изображения. Обеспечивает визуальную настройку для ясности.
show_confboolTrueОтображает показатель уверенности для каждого обнаруженного объекта рядом с меткой. Дает представление об уверенности модели в каждом обнаружении.
show_labelsboolTrueОтображает метки для каждого обнаруженного объекта на визуальном выводе. Дает быстрое понимание того, какие объекты были найдены.

Применение сегментации экземпляров

Сегментация экземпляров с помощью YOLO26 имеет множество практических применений в различных отраслях:

Утилизация и переработка отходов

YOLO26 можно использовать на предприятиях по переработке отходов для идентификации и сортировки различных типов материалов. Модель может с высокой точностью сегментировать пластиковые отходы, картон, металл и другие вторсырье, позволяя автоматизированным системам сортировки работать более эффективно. Это особенно ценно, учитывая, что перерабатывается лишь около 10% из 7 миллиардов тонн пластиковых отходов, ежегодно производимых в мире.

Автономные транспортные средства

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

Медицинская визуализация

Сегментация экземпляров позволяет идентифицировать и очерчивать опухоли, органы или клеточные структуры на медицинских снимках. Способность YOLO26 точно определять границы объектов делает её ценной для медицинской диагностики и планирования лечения.

Мониторинг строительных площадок

На строительных площадках сегментация экземпляров может отслеживать тяжелую технику, рабочих и материалы. Это помогает обеспечить безопасность, контролируя положение оборудования и обнаруживая нахождение рабочих в опасных зонах, а также оптимизируя рабочие процессы и распределение ресурсов.

Примечание

По любым вопросам не стесняйся обращаться в раздел Issues Ultralytics или в раздел обсуждений, упомянутый ниже.

Часто задаваемые вопросы (FAQ)

Как выполнить сегментацию экземпляров с помощью Ultralytics YOLO26?

Чтобы выполнить сегментацию экземпляров с помощью Ultralytics YOLO26, инициализируй модель YOLO версией YOLO26 для сегментации и пропусти через неё кадры видео. Вот простой пример кода:

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"

# Video writer
w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))
video_writer = cv2.VideoWriter("instance-segmentation.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

# Init InstanceSegmentation
isegment = solutions.InstanceSegmentation(
    show=True,  # display the output
    model="yolo26n-seg.pt",  # model="yolo26n-seg.pt" for object segmentation using YOLO26.
)

# Process video
while cap.isOpened():
    success, im0 = cap.read()
    if not success:
        print("Video frame is empty or processing is complete.")
        break
    results = isegment(im0)
    video_writer.write(results.plot_im)

cap.release()
video_writer.release()
cv2.destroyAllWindows()

Узнай больше о сегментации экземпляров в руководстве по Ultralytics YOLO26.

В чем разница между сегментацией экземпляров и отслеживанием объектов в Ultralytics YOLO26?

Сегментация экземпляров идентифицирует и очерчивает отдельные объекты на изображении, присваивая каждому уникальную метку и маску. Отслеживание объектов дополняет это, назначая объектам постоянные ID между кадрами видео, что позволяет непрерывно следить за одними и теми же объектами с течением времени. При совместном использовании, как в реализации YOLO26, ты получаешь мощные инструменты для анализа движения и поведения объектов в видео, сохраняя при этом точные данные о границах.

Почему стоит использовать Ultralytics YOLO26 для сегментации экземпляров и отслеживания, а не другие модели, такие как Mask R-CNN или Faster R-CNN?

Ultralytics YOLO26 предлагает производительность в реальном времени, превосходную точность и простоту использования по сравнению с моделями типа Mask R-CNN или Faster R-CNN. YOLO26 обрабатывает изображения за один проход (одностадийное детектирование), что делает её значительно быстрее при сохранении высокой точности. Она также обеспечивает бесшовную интеграцию с платформой Ultralytics, позволяя пользователям эффективно управлять моделями, наборами данных и конвейерами обучения. Для приложений, требующих одновременно скорости и точности, YOLO26 является оптимальным выбором.

Существуют ли наборы данных от Ultralytics, подходящие для обучения моделей YOLO26 для сегментации экземпляров и отслеживания?

Да, Ultralytics предлагает несколько наборов данных, подходящих для обучения моделей YOLO26 для сегментации экземпляров, включая COCO-Seg, COCO8-Seg (меньшая подвыборка для быстрого тестирования), Package-Seg и Crack-Seg. Эти наборы данных содержат аннотации на уровне пикселей, необходимые для задач сегментации экземпляров. Для более специализированных задач ты также можешь создавать собственные наборы данных в формате Ultralytics. Полная информация о наборах данных и инструкции по использованию находятся в документации по наборам данных Ultralytics.

Комментарии