Вычисление расстояния с помощью Ultralytics YOLO11
Что такое расчет расстояния?
Измерение расстояния между двумя объектами известно как расчет расстояния в заданном пространстве. В случае с Ultralytics YOLO11для вычисления расстояния до выделенных пользователем границ используется центроид ограничительной рамки.
Смотреть: Вычисление расстояния с помощью Ultralytics YOLO11
Визуальные средства
Вычисление расстояния с помощью Ultralytics YOLO11 |
---|
Преимущества расчета расстояния?
- Точность локализации: Повышает точность пространственного позиционирования в задачах компьютерного зрения.
- Оценка размера: Позволяет оценить размер объекта для лучшего понимания контекста.
Расчет расстояния
- Для расчета расстояния щелкните левой кнопкой мыши на любых двух ограничивающих границах
Вычисление расстояния с помощью YOLO11 Пример
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("Path/to/video/file.mp4")
assert cap.isOpened(), "Error reading video file"
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
video_writer = cv2.VideoWriter("distance_calculation.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
# Init distance-calculation obj
distance = solutions.DistanceCalculation(model="yolo11n.pt", show=True)
# 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
im0 = distance.calculate(im0)
video_writer.write(im0)
cap.release()
video_writer.release()
cv2.destroyAllWindows()
Примечание
- Щелчок правой кнопкой мыши удалит все нарисованные точки
- Левый щелчок мыши может использоваться для рисования точек
Расстояние оценивается
Distance will be an estimate and may not be fully accurate, as it is calculated using 2-dimensional data, which lacks information about the object's depth.
Аргументы DistanceCalculation()
Name |
Type |
Default |
Описание |
---|---|---|---|
model |
str |
None |
Путь к файлу модели Ultralytics YOLO |
line_width |
int |
2 |
Толщина линий для ограничительных рамок. |
show |
bool |
False |
Флаг для контроля отображения видеопотока. |
Аргументы model.track
Аргумент | Тип | По умолчанию | Описание |
---|---|---|---|
source |
str |
None |
Указывает исходный каталог для изображений или видео. Поддерживаются пути к файлам и URL-адреса. |
persist |
bool |
False |
Обеспечивает постоянное отслеживание объектов между кадрами, сохраняя идентификаторы во всех видеопоследовательностях. |
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 |
Управляет отображением результатов отслеживания, обеспечивая визуальный вывод отслеживаемых объектов. |
ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ
Как вычислить расстояние между объектами с помощью Ultralytics YOLO11 ?
Вычисление расстояний между объектами с помощью Ultralytics YOLO11Вам нужно определить центроиды ограничительных рамок обнаруженных объектов. Этот процесс включает в себя инициализацию DistanceCalculation
класс из Ultralytics' solutions
модуль и использовать результаты отслеживания модели для расчета расстояний. Вы можете обратиться к реализации в пример расчета расстояния.
Каковы преимущества использования расчета расстояний с помощью Ultralytics YOLO11 ?
Использование расчета расстояний с помощью Ultralytics YOLO11 имеет ряд преимуществ:
- Точность локализации: Обеспечивает точное пространственное позиционирование объектов.
- Оценка размеров: Помогает оценить физические размеры, способствуя лучшему пониманию контекста.
- Понимание сцены: Улучшает восприятие трехмерных сцен, способствуя принятию решений в таких приложениях, как автономное вождение и наблюдение.
Могу ли я выполнять расчет расстояния в видеопотоках в реальном времени с помощью Ultralytics YOLO11 ?
Да, вы можете выполнять расчет расстояния в видеопотоках в реальном времени с помощью Ultralytics YOLO11 . Процесс включает в себя захват видеокадров с помощью OpenCV, бег YOLO11 обнаружение объектов, и используя DistanceCalculation
класс для вычисления расстояний между объектами в последовательных кадрах. Подробную реализацию см. в разделе пример видеопотока.
Как удалить точки, построенные при расчете расстояния с помощью Ultralytics YOLO11 ?
Для удаления точек, построенных при расчете расстояния с помощью Ultralytics YOLO11 , можно воспользоваться правой кнопкой мыши. Это действие очистит все нарисованные точки. Более подробную информацию см. в разделе примечаний под примером расчета расстояния.
Каковы основные аргументы для инициализации класса DistanceCalculation в Ultralytics YOLO11 ?
Основные аргументы для инициализации DistanceCalculation
класс в Ultralytics YOLO11 включают:
model
: Путь к файлу модели.show
: Флаг, указывающий, следует ли отображать видеопоток.line_width
: Толщина ограничительной рамки и линий, нарисованных на изображении.
Исчерпывающий список и значения по умолчанию см. в аргументах DistanceCalculation.