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

Сопоставление объектов VisionEye с использованием Ultralytics YOLO11 🚀

Что такое VisionEye Object Mapping?

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

Сопоставление объектов VisionEye с отслеживанием объектов с использованием Ultralytics YOLO11

Сопоставление 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]"
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] (20, 20) Точка, в которой зрение будет отслеживать объекты и рисовать пути, используя VisionEye Solution.

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

Аргумент Тип По умолчанию Описание
tracker str 'botsort.yaml' Указывает алгоритм отслеживания, например, bytetrack.yaml или botsort.yaml.
conf float 0.3 Устанавливает порог уверенности для обнаружений; более низкие значения позволяют отслеживать больше объектов, но могут включать ложные срабатывания.
iou float 0.5 Устанавливает порог Intersection over Union (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, ширина линии автоматически регулируется в зависимости от размера изображения. Обеспечивает визуальную настройку для большей четкости.
show_conf bool True Отображает оценку достоверности для каждого обнаружения рядом с меткой. Дает представление об уверенности модели для каждого обнаружения.
show_labels bool True Отображает метки для каждого обнаружения в визуальном выводе. Обеспечивает немедленное понимание обнаруженных объектов.

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

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

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

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

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

Приложения VisionEye

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

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

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

Примечание

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

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

Как начать использовать VisionEye Object Mapping с 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 год назад ✏️ Обновлено 4 месяца назад

Комментарии