Bỏ để qua phần nội dung

Speed Estimation using Ultralytics YOLO11 🚀

Ước tính tốc độ là gì?

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.



Xem: Speed Estimation using Ultralytics YOLO11

Kiểm tra blog của chúng tôi

For deeper insights into speed estimation, check out our blog post: Ultralytics YOLO11 for Speed Estimation in Computer Vision Projects

Ưu điểm của ước tính tốc độ?

  • Kiểm soát giao thông hiệu quả: Ước tính tốc độ chính xác hỗ trợ quản lý lưu lượng giao thông, tăng cường an toàn và giảm tắc nghẽn trên đường.
  • Điều hướng tự động chính xác: Trong các hệ thống tự trị như xe tự lái, ước tính tốc độ đáng tin cậy đảm bảo điều hướng xe an toàn và chính xác.
  • Tăng cường an ninh giám sát: Ước tính tốc độ trong phân tích giám sát giúp xác định các hành vi bất thường hoặc các mối đe dọa tiềm ẩn, nâng cao hiệu quả của các biện pháp bảo mật.

Ứng dụng trong thế giới thực

Giao thông vận tảiGiao thông vận tải
Speed Estimation on Road using Ultralytics YOLO11Speed Estimation on Bridge using Ultralytics YOLO11
Speed Estimation on Road using Ultralytics YOLO11Speed 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()
Tốc độ là ước tính

Tốc độ sẽ là ước tính và có thể không hoàn toàn chính xác. Ngoài ra, ước tính có thể thay đổi tùy thuộc vào GPU tốc độ.

Lập luận SpeedEstimator

TênKiểuMặc địnhSự miêu tả
modelstrNonePath to Ultralytics YOLO Model File
regionlist[(20, 400), (1260, 400)]Danh sách các điểm xác định khu vực đếm.
line_widthint2Độ dày dòng cho các hộp giới hạn.
showboolFalseGắn cờ để kiểm soát việc có hiển thị luồng video hay không.

Lập luận model.track

Lý lẽKiểuMặc địnhSự miêu tả
sourcestrNoneSpecifies the source directory for images or videos. Supports file paths and URLs.
persistboolFalseEnables persistent tracking of objects between frames, maintaining IDs across video sequences.
trackerstrbotsort.yamlSpecifies the tracking algorithm to use, e.g., bytetrack.yaml hoặc botsort.yaml.
conffloat0.3Sets the confidence threshold for detections; lower values allow more objects to be tracked but may include false positives.
ioufloat0.5Sets the Intersection over Union (IoU) threshold for filtering overlapping detections.
classeslistNoneFilters results by class index. For example, classes=[0, 2, 3] only tracks the specified classes.
verboseboolTrueControls the display of tracking results, providing a visual output of tracked objects.

FAQ

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.

Ví dụ:

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()

Để biết thêm chi tiết, hãy tham khảo bài đăng trên blog chính thức của chúng tôi.

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:

  • Tăng cường an toàn: Ước tính chính xác tốc độ xe để phát hiện quá tốc độ và cải thiện an toàn đường bộ.
  • Real-Time Monitoring: Benefit from YOLO11's real-time object detection capability to monitor traffic flow and congestion effectively.
  • Khả năng mở rộng: Triển khai mô hình trên các thiết lập phần cứng khác nhau, từ thiết bị biên đến máy chủ, đảm bảo các giải pháp linh hoạt và có thể mở rộng để triển khai quy mô lớn.

Để biết thêm các ứng dụng, hãy xem ưu điểm của ước tính tốc độ.

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:

yolo export --weights yolo11n.pt --include onnx

Tìm hiểu thêm về các mô hình xuất trong hướng dẫn của chúng tôi về xuất khẩu.

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.

Lưu ý: Luôn xem xét biên độ sai số và xác thực các ước tính bằng dữ liệu sự thật cơ bản khi có thể.

Để biết thêm các mẹo cải thiện độ chính xác, hãy kiểm tra Lập luận SpeedEstimator phần.

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.
  • Tính linh hoạt: Hỗ trợ nhiều tác vụ, bao gồm phát hiện đối tượng, phân đoạn và ước tính tư thế.
  • 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.

📅 Created 10 months ago ✏️ Updated 26 days ago

Ý kiến