Ultralytics YOLO27:
Get Started

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

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

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

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

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

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

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



Смотри: Сегментация экземпляров с трекингом объектов с помощью Ultralytics YOLO26

Примеры#

Сегментация экземпляровСегментация экземпляров + отслеживание объектов
Сегментация экземпляров UltralyticsСегментация экземпляров и отслеживание объектов Ultralytics
Сегментация экземпляров Ultralytics 😍Сегментация экземпляров и отслеживание объектов Ultralytics 🔥

Сегментация и отслеживание с YOLO26#

Решение InstanceSegmentation запускает модель сегментации YOLO26 для каждого кадра, рисует маски отдельных объектов и окрашивает каждый экземпляр отдельно, чтобы ты мог отслеживать объекты в видео. Загрузи модель -seg, а затем запусти её на источнике данных с помощью Python API или CLI.

Сегментация экземпляров с помощью 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.
line_widthint2Толщина линий рамок, ключевых точек и счётчиков, которые рисует решение.
verboseboolTrueВключает журнал решения для каждого кадра с указанием формы входных данных, количества объектов по классам и скорости обработки. Сам вызов отслеживания всегда выполняется без вывода сообщений.

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

АргументТипПо умолчаниюОписание
trackerstr'tracktrack.yaml'Задаёт алгоритм отслеживания. Встроенные варианты: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml.
conffloat0.25Задаёт порог уверенности для обнаружений: при более низких значениях можно отслеживать больше объектов, но возрастает вероятность ложноположительных срабатываний.
ioufloat0.7Задаёт порог пересечения над объединением (IoU) для фильтрации перекрывающихся обнаружений.
classeslistNoneФильтрует результаты по индексу класса. Например, classes=[0, 2, 3] отслеживает только указанные классы.
devicestrNoneЗадаёт устройство для инференса (например, cpu, cuda:0 или 0). Позволяет выбрать CPU, определённый GPU или другое вычислительное устройство для выполнения модели.
imgszint or tuple640Целевой размер изображения для инференса: целое число для квадратного изображения или пара (height, width). Размеры корректируются с учётом шага модели.
max_detint300Максимальное количество обнаружений, сохраняемых в каждом кадре перед отслеживанием; ограничивает число объектов, обрабатываемых решением в насыщенных сценах.
quantizeint or strNoneТочность инференса: 16 (FP16) или 32/не задано (FP32) для моделей PyTorch и TorchScript; другие форматы используют точность, выбранную артефактом и средой выполнения. Заменяет устаревший флаг half.

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

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

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

Сегментация экземпляров с YOLO26 применяется в самых разных отраслях:

Управление отходами и переработка#

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

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

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

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

Сегментация экземпляров позволяет обнаруживать и обводить опухоли, органы или клеточные структуры на медицинских снимках. Благодаря способности 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"
    
    # Запись видео
    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))
    
    # Инициализация InstanceSegmentation
    isegment = solutions.InstanceSegmentation(
        show=True,  # отобразить результат
        model="yolo26n-seg.pt",  # model="yolo26n-seg.pt" для сегментации объектов с помощью YOLO26.
    )
    
    # Обработка видео
    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, эти возможности позволяют эффективно анализировать движение и поведение объектов в видео, сохраняя при этом точные данные об их границах.

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

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

Комментарии