Ultralytics YOLO27:

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

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

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

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

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

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

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



Watch: Instance Segmentation with Object Tracking using 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'botsort.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"
    
    # 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.

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

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

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

Комментарии