Перейти к содержанию

VisionEye View Object Mapping с помощью Ultralytics YOLO11 🚀.

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

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

VisionEye View Object Mapping с отслеживанием объектов с помощью Ultralytics YOLO11

Картографирование глаз с помощью 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]"
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("visioneye_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

# Initialize vision eye object
visioneye = solutions.VisionEye(
    show=True,  # display the output
    model="yolo11n.pt",  # use any model that Ultralytics support, i.e, YOLOv10
    classes=[0, 2],  # generate visioneye view for specific classes
    vision_point=(50, 50),  # the point, where vision will view objects and draw tracks
)

# 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

VisionEye Аргументы

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

Аргумент Тип По умолчанию Описание
model str None Путь к файлу модели Ultralytics YOLO .
vision_point tuple[int, int] (50, 50) Точка, где зрение будет отслеживать объекты и рисовать траектории с помощью VisionEye Solution.

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

Аргумент Тип По умолчанию Описание
tracker str 'botsort.yaml' Указывает используемый алгоритм отслеживания, например, bytetrack.yaml или botsort.yaml.
conf float 0.3 Устанавливает порог доверия для обнаружений; более низкие значения позволяют отслеживать больше объектов, но могут включать ложные срабатывания.
iou float 0.5 Устанавливает порог пересечения над объединением (IoU) для фильтрации перекрывающихся обнаружений.
classes list None Фильтрует результаты по индексу класса. Например, classes=[0, 2, 3] отслеживает только указанные классы.
verbose bool True Управляет отображением результатов отслеживания, обеспечивая визуальный вывод отслеживаемых объектов.
device str None Указывает устройство для вывода (например, cpu, cuda:0 или 0). Позволяет пользователям выбирать между CPU, конкретным GPU или другими вычислительными устройствами для выполнения модели.

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

Аргумент Тип По умолчанию Описание
show bool False Если Trueотображает аннотированные изображения или видео в окне. Полезно для немедленной визуальной обратной связи во время разработки или тестирования.
line_width None or int None Определяет ширину линии ограничительных рамок. Если NoneШирина линии автоматически регулируется в зависимости от размера изображения. Обеспечивает визуальную настройку для наглядности.

Принцип работы VisionEye

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

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

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

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

Области применения VisionEye

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

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

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

Примечание

Если у вас возникли вопросы, не стесняйтесь публиковать их в разделе "Вопросы" на сайтеUltralytics или в разделе обсуждений, указанном ниже.

ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ

Как начать использовать отображение объектов VisionEye с Ultralytics YOLO11 ?

Чтобы начать использовать VisionEye Object Mapping с Ultralytics YOLO11 , сначала вам нужно установить пакет 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="yolo11n.pt",  # use any model that Ultralytics support, i.e, 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 YOLO11 для отображения и отслеживания объектов?

Ultralytics YOLO11 славится своей скоростью, точностью и простотой интеграции, что делает его лучшим выбором для картографирования и отслеживания объектов. Ключевые преимущества включают:

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

Более подробную информацию о приложениях и льготах можно найти на сайте Ultralytics YOLO11 .

Как интегрировать VisionEye с другими инструментами машинного обучения, например Comet или ClearML?

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

Более подробную информацию и примеры интеграции можно найти в нашем руководстве по интеграцииUltralytics .

📅 Создано 1 год назад ✏️ Обновлено 5 дней назад

Комментарии