YOLO Vision 2026:

Отображение объектов в режиме VisionEye с использованием Ultralytics YOLO26 🚀#

Что такое отображение объектов VisionEye?#

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

VisionEye object mapping with YOLO tracking

Сопоставление объектов с помощью YOLO26#

VisionEye фиксирует единую точку наблюдения в кадре и проводит от нее луч к каждому отслеживаемому объекту, чтобы ты мог визуализировать, как сцена выглядит с одной точки зрения. Установи vision_point в пиксельные координаты наблюдателя, а затем запусти решение для своего видео с помощью Python API или CLI.

Отображение VisionEye с использованием Ultralytics YOLO
# Monitor objects position with visioneye
yolo solutions visioneye show=True

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

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

Аргументы VisionEye#

Вот таблица с аргументами VisionEye:

АргументТипПо умолчаниюОписание
modelstrNoneПуть к файлу модели Ultralytics YOLO.
vision_pointtuple[int, int](20, 20)Точка, где зрение будет отслеживать объекты и рисовать пути, используя решение VisionEye.
line_widthint2Толщина линий для рамок, ключевых точек и подсчетов, отрисовываемых решением.
verboseboolTrueВключает покадровый лог решения, содержащий форму входных данных, количество классов и скорость обработки. Сам вызов трекинга всегда выполняется молча.

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

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

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

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

Как работает VisionEye#

VisionEye работает путем установления фиксированной точки обзора в кадре и проведения линий из этой точки к обнаруженным объектам. Это имитирует то, как человеческое зрение фокусируется на нескольких объектах с одной точки зрения. Решение использует отслеживание объектов для поддержания постоянной идентификации объектов между кадрами, создавая визуальное представление пространственного отношения между наблюдателем (точкой обзора) и объектами в сцене.

Метод process в классе VisionEye выполняет несколько ключевых операций:

  1. Извлекает треки (ограничивающие рамки, классы и маски) из входного изображения
  2. Создает аннотатор для отрисовки ограничивающих рамок и подписей
  3. Для каждого обнаруженного объекта рисует подпись рамки и создает линию зрения от точки зрения
  4. Возвращает аннотированное изображение со статистикой отслеживания

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

Применение VisionEye#

Отображение объектов VisionEye имеет множество практических применений в различных отраслях:

  • Безопасность и наблюдение: мониторинг нескольких объектов интереса с фиксированной позиции камеры
  • Розничная аналитика: отслеживание моделей движения покупателей по отношению к витринам магазинов
  • Спортивный анализ: анализ расположения и движения игроков с точки зрения тренера
  • Автономные транспортные средства: визуализация того, как автомобиль «видит» и расставляет приоритеты объектов в своей среде
  • Взаимодействие человека и компьютера: создание более интуитивно понятных интерфейсов, реагирующих на пространственные отношения

Комбинируя VisionEye с другими решениями Ultralytics, такими как расчет расстояния или оценка скорости, ты можешь создавать комплексные системы, которые не только отслеживают объекты, но и понимают их пространственные отношения и поведение.

FAQ#

  • Чтобы начать использовать VisionEye Object Mapping с Ultralytics YOLO26, сначала тебе нужно установить пакет Ultralytics YOLO через pip. Затем ты можешь использовать пример кода, предоставленный в документации, чтобы настроить обнаружение объектов с помощью VisionEye. Вот простой пример для начала:

    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("vision-eye-mapping.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
    
    # Init vision eye object
    visioneye = solutions.VisionEye(
        show=True,  # display the output
        model="yolo26n.pt",  # use any model that Ultralytics supports, e.g., YOLOv10
        classes=[0, 2],  # generate visioneye view for specific classes
    )
    
    # Process video
    while cap.isOpened():
        success, im0 = cap.read()
    
        if not success:
            print("Video frame is empty or video processing has been successfully completed.")
            break
    
        results = visioneye(im0)
    
        print(results)  # access the output
    
        video_writer.write(results.plot_im)  # write the video file
    
    cap.release()
    video_writer.release()
    cv2.destroyAllWindows()  # destroy all opened windows
  • Ultralytics YOLO26 известен своей скоростью, точностью и легкостью интеграции, что делает его лучшим выбором для сопоставления и отслеживания объектов. Ключевые преимущества включают:

    1. Передовая производительность: высокая точность обнаружения объектов в реальном времени.
    2. Гибкость: Поддерживает детекцию, трекинг и расчет расстояния в едином пайплайне.
    3. Сообщество и поддержка: обширная документация и активное сообщество GitHub для решения проблем и улучшений.
    4. Простота использования: интуитивно понятный API упрощает сложные задачи, позволяя быстро развертывать и итерировать решения.

    Для получения дополнительной информации о приложениях и преимуществах ознакомься с документацией Ultralytics YOLO26.

  • Ultralytics YOLO26 может бесшовно интегрироваться с различными инструментами машинного обучения, такими как Comet и ClearML, улучшая отслеживание экспериментов, совместную работу и воспроизводимость. Следуй подробным руководствам о том, как использовать YOLOv5 с Comet и интегрировать YOLO26 с ClearML, чтобы начать работу.

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

Комментарии