Speed Estimation using Ultralytics YOLO11 🚀
Что такое оценка скорости?
Speed estimation is the process of calculating the rate of movement of an object within a given context, often employed in computer vision applications. Using Ultralytics YOLO11 you can now calculate the speed of object using object tracking alongside distance and time data, crucial for tasks like traffic and surveillance. The accuracy of speed estimation directly influences the efficiency and reliability of various applications, making it a key component in the advancement of intelligent systems and real-time decision-making processes.
Смотри: Speed Estimation using Ultralytics YOLO11
Загляни в наш блог
For deeper insights into speed estimation, check out our blog post: Ultralytics YOLO11 for Speed Estimation in Computer Vision Projects
Преимущества оценки скорости?
- Эффективное управление дорожным движением: Точная оценка скорости помогает управлять транспортным потоком, повышает безопасность и уменьшает заторы на дорогах.
- Точная автономная навигация: В автономных системах, таких как самоуправляемые автомобили, надежная оценка скорости обеспечивает безопасную и точную навигацию транспортного средства.
- Повышенная безопасность наблюдения: Оценка скорости в аналитике наблюдения помогает выявить необычное поведение или потенциальные угрозы, повышая эффективность мер безопасности.
Применение в реальном мире
Транспорт | Транспорт |
---|---|
Speed Estimation on Road using Ultralytics YOLO11 | Speed Estimation on Bridge using Ultralytics YOLO11 |
Speed Estimation using YOLO11 Example
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 = cv2.VideoWriter("speed_management.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
speed_region = [(20, 400), (1080, 404), (1080, 360), (20, 360)]
speed = solutions.SpeedEstimator(model="yolo11n.pt", region=speed_region, show=True)
while cap.isOpened():
success, im0 = cap.read()
if success:
out = speed.estimate_speed(im0)
video_writer.write(im0)
if cv2.waitKey(1) & 0xFF == ord("q"):
break
continue
print("Video frame is empty or video processing has been successfully completed.")
break
cap.release()
cv2.destroyAllWindows()
Скорость - это оценка
Скорость будет приблизительной и может быть не совсем точной. Кроме того, оценка может меняться в зависимости от скорости GPU .
Аргументы SpeedEstimator
Имя | Тип | По умолчанию | Описание |
---|---|---|---|
model |
str |
None |
Path to Ultralytics YOLO Model File |
region |
list |
[(20, 400), (1260, 400)] |
Список точек, определяющих область подсчета. |
line_width |
int |
2 |
Толщина линий для ограничительных рамок. |
show |
bool |
False |
Флаг, контролирующий, отображать ли видеопоток. |
Аргументы model.track
Аргумент | Тип | По умолчанию | Описание |
---|---|---|---|
source |
str |
None |
Specifies the source directory for images or videos. Supports file paths and URLs. |
persist |
bool |
False |
Enables persistent tracking of objects between frames, maintaining IDs across video sequences. |
tracker |
str |
botsort.yaml |
Specifies the tracking algorithm to use, e.g., bytetrack.yaml или botsort.yaml . |
conf |
float |
0.3 |
Sets the confidence threshold for detections; lower values allow more objects to be tracked but may include false positives. |
iou |
float |
0.5 |
Sets the Intersection over Union (IoU) threshold for filtering overlapping detections. |
classes |
list |
None |
Filters results by class index. For example, classes=[0, 2, 3] only tracks the specified classes. |
verbose |
bool |
True |
Controls the display of tracking results, providing a visual output of tracked objects. |
ВОПРОСЫ И ОТВЕТЫ
How do I estimate object speed using Ultralytics YOLO11?
Estimating object speed with Ultralytics YOLO11 involves combining object detection and tracking techniques. First, you need to detect objects in each frame using the YOLO11 model. Then, track these objects across frames to calculate their movement over time. Finally, use the distance traveled by the object between frames and the frame rate to estimate its speed.
Пример:
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("path/to/video/file.mp4")
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("speed_estimation.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
# Initialize SpeedEstimator
speed_obj = solutions.SpeedEstimator(
region=[(0, 360), (1280, 360)],
model="yolo11n.pt",
show=True,
)
while cap.isOpened():
success, im0 = cap.read()
if not success:
break
im0 = speed_obj.estimate_speed(im0)
video_writer.write(im0)
cap.release()
video_writer.release()
cv2.destroyAllWindows()
Более подробную информацию ты можешь найти в нашем официальном блоге.
What are the benefits of using Ultralytics YOLO11 for speed estimation in traffic management?
Using Ultralytics YOLO11 for speed estimation offers significant advantages in traffic management:
- Повышенная безопасность: Точно оценивай скорость автомобиля, чтобы выявить превышение скорости и повысить безопасность на дорогах.
- Real-Time Monitoring: Benefit from YOLO11's real-time object detection capability to monitor traffic flow and congestion effectively.
- Масштабируемость: Разверни модель на различных аппаратных установках, от пограничных устройств до серверов, обеспечивая гибкие и масштабируемые решения для масштабных внедрений.
О других вариантах применения смотри раздел " Преимущества оценки скорости".
Can YOLO11 be integrated with other AI frameworks like TensorFlow or PyTorch?
Yes, YOLO11 can be integrated with other AI frameworks like TensorFlow and PyTorch. Ultralytics provides support for exporting YOLO11 models to various formats like ONNX, TensorRT, and CoreML, ensuring smooth interoperability with other ML frameworks.
To export a YOLO11 model to ONNX format:
Узнай больше об экспорте моделей в нашем руководстве по экспорту.
How accurate is the speed estimation using Ultralytics YOLO11?
The accuracy of speed estimation using Ultralytics YOLO11 depends on several factors, including the quality of the object tracking, the resolution and frame rate of the video, and environmental variables. While the speed estimator provides reliable estimates, it may not be 100% accurate due to variances in frame processing speed and object occlusion.
Примечание: Всегда учитывай погрешность и по возможности проверяй расчеты с помощью наземных данных.
Чтобы получить дополнительные советы по улучшению точности, посмотри Аргументы SpeedEstimator
раздел.
Why choose Ultralytics YOLO11 over other object detection models like TensorFlow Object Detection API?
Ultralytics YOLO11 offers several advantages over other object detection models, such as the TensorFlow Object Detection API:
- Real-Time Performance: YOLO11 is optimized for real-time detection, providing high speed and accuracy.
- Ease of Use: Designed with a user-friendly interface, YOLO11 simplifies model training and deployment.
- Универсальность: Поддерживает множество задач, включая обнаружение объектов, сегментацию и оценку позы.
- Community and Support: YOLO11 is backed by an active community and extensive documentation, ensuring developers have the resources they need.
For more information on the benefits of YOLO11, explore our detailed model page.