Link to this sectionОтображение объектов в режиме VisionEye с использованием Ultralytics YOLO26 🚀#
Link to this sectionЧто такое отображение объектов VisionEye?#
Ultralytics YOLO26 VisionEye предоставляет компьютерам возможность определять и находить объекты, имитируя precision человеческого зрения. Эта функциональность позволяет компьютерам различать и фокусироваться на конкретных объектах, подобно тому, как человеческий глаз наблюдает за деталями с определенной точки зрения.
# 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]"Link to this sectionАргументы VisionEye#
Ниже приведена таблица с аргументами VisionEye:
| Аргумент | Тип | По умолчанию | Описание |
|---|---|---|---|
model | str | None | Путь к файлу модели Ultralytics YOLO. |
vision_point | tuple[int, int] | (20, 20) | Точка, где зрение будет отслеживать объекты и рисовать пути, используя решение VisionEye. |
Ты также можешь использовать различные аргументы track в решении VisionEye:
| Аргумент | Тип | По умолчанию | Описание |
|---|---|---|---|
tracker | str | 'botsort.yaml' | Указывает алгоритм отслеживания, который нужно использовать. Встроенные опции: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml. |
conf | float | 0.1 | Устанавливает порог уверенности для обнаружений; более низкие значения позволяют отслеживать больше объектов, но могут включать ложные срабатывания. |
iou | float | 0.7 | Устанавливает порог 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 | int or None | None | Указывает ширину линии ограничивающих рамок. Если None, ширина линии автоматически подстраивается под размер изображения. Обеспечивает визуальную настройку для ясности. |
show_conf | bool | True | Отображает показатель уверенности для каждого обнаружения рядом с меткой. Дает представление об уверенности модели в каждом обнаружении. |
show_labels | bool | True | Отображает метки для каждого обнаружения в визуальном выводе. Обеспечивает быстрое понимание того, какие объекты были обнаружены. |
Link to this sectionКак работает VisionEye#
VisionEye работает путем установления фиксированной точки зрения в кадре и проведения линий от этой точки к обнаруженным объектам. Это имитирует то, как человеческое зрение фокусируется на нескольких объектах с одной точки обзора. Решение использует object tracking для поддержания постоянной идентификации объектов между кадрами, создавая визуальное представление пространственной связи между наблюдателем (точкой зрения) и объектами в сцене.
Метод process в классе VisionEye выполняет несколько ключевых операций:
- Извлекает треки (ограничивающие рамки, классы и маски) из входного изображения
- Создает аннотатор для отрисовки ограничивающих рамок и подписей
- Для каждого обнаруженного объекта рисует подпись рамки и создает линию зрения от точки зрения
- Возвращает аннотированное изображение со статистикой отслеживания
Этот подход особенно полезен для приложений, требующих пространственного восприятия и визуализации взаимосвязей объектов, таких как системы наблюдения, автономная навигация и интерактивные инсталляции.
Link to this sectionПрименение VisionEye#
Отображение объектов VisionEye имеет множество практических применений в различных отраслях:
- Безопасность и наблюдение: мониторинг нескольких объектов интереса с фиксированной позиции камеры
- Розничная аналитика: отслеживание моделей движения покупателей по отношению к витринам магазинов
- Спортивный анализ: анализ расположения и движения игроков с точки зрения тренера
- Автономные транспортные средства: визуализация того, как автомобиль «видит» и расставляет приоритеты объектов в своей среде
- Взаимодействие человека и компьютера: создание более интуитивно понятных интерфейсов, реагирующих на пространственные отношения
Комбинируя VisionEye с другими решениями Ultralytics, такими как distance calculation или speed estimation, ты можешь создавать комплексные системы, которые не только отслеживают объекты, но и понимают их пространственные отношения и поведение.
Link to this sectionПримечание#
По любым вопросам не стесняйся обращаться в раздел Issue Ultralytics или в указанный ниже раздел обсуждений.
Link to this sectionFAQ#
Link to this sectionКак начать использовать отображение объектов VisionEye с Ultralytics YOLO26?#
Чтобы начать использовать отображение объектов VisionEye с Ultralytics YOLO26, сначала установи пакет Ultralytics YOLO через pip. Затем используй пример кода, предоставленный в документации, чтобы настроить object detection с помощью 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 windowsLink to this sectionПочему стоит использовать Ultralytics YOLO26 для отображения и отслеживания объектов?#
Ultralytics YOLO26 славится своей скоростью, accuracy и простотой интеграции, что делает его лучшим выбором для отображения и отслеживания объектов. Ключевые преимущества включают:
- Передовая производительность: высокая точность обнаружения объектов в реальном времени.
- Гибкость: поддержка различных задач, таких как обнаружение, отслеживание и расчет расстояния.
- Сообщество и поддержка: обширная документация и активное сообщество GitHub для решения проблем и улучшений.
- Простота использования: интуитивно понятный API упрощает сложные задачи, позволяя быстро развертывать и итерировать решения.
Для получения дополнительной информации о применении и преимуществах ознакомься с документацией Ultralytics YOLO26.
Link to this sectionКак интегрировать VisionEye с другими инструментами machine learning, такими как Comet или ClearML?#
Ultralytics YOLO26 может легко интегрироваться с различными инструментами машинного обучения, такими как Comet и ClearML, улучшая отслеживание экспериментов, совместную работу и воспроизводимость. Чтобы начать, следуй подробным руководствам как использовать YOLOv5 с Comet и интегрировать YOLO26 с ClearML.
Для дальнейшего изучения и примеров интеграции загляни в наше Руководство по интеграции Ultralytics.