Chuyển đến nội dung

Ước tính tốc độ bằng Ultralytics YOLO11 🚀

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

Ước tính tốc độ là quá trình tính toán tốc độ di chuyển của một đối tượng trong một bối cảnh nhất định, thường được sử dụng trong các ứng dụng thị giác máy tính. Sử dụng Ultralytics YOLO11, giờ đây bạn có thể tính toán tốc độ của các đối tượng bằng cách sử dụng theo dõi đối tượng cùng với dữ liệu khoảng cách và thời gian, rất quan trọng đối với các tác vụ như giám sát giao thông và giám sát. Độ chính xác của ước tính tốc độ ảnh hưởng trực tiếp đến hiệu quả và độ tin cậy của các ứng dụng khác nhau, làm cho nó trở thành một thành phần quan trọng trong sự tiến bộ của các hệ thống thông minh và các quy trình ra quyết định theo thời gian thực.



Xem: Ước tính tốc độ bằng Ultralytics YOLO11

Xem Blog của Chúng Tôi

Để hiểu sâu hơn về ước tính tốc độ, hãy xem bài đăng trên blog của chúng tôi: Ultralytics YOLO11 để Ước tính Tốc độ trong các Dự án Thị giác Máy tính

Ư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ý luồ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ự động 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.
  • Nâng cao 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 an ninh.

Các ứng dụng thực tế

Giao thông vận tải Giao thông vận tải
Ước tính tốc độ trên đường bằng Ultralytics YOLO11 Ước tính tốc độ trên cầu bằng Ultralytics YOLO11
Ước tính tốc độ trên đường bằng Ultralytics YOLO11 Ước tính tốc độ trên cầu bằng Ultralytics YOLO11
Tốc độ là ước tính

Tốc độ chỉ 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 thông số kỹ thuật của camera và các yếu tố liên quan.

Ước tính tốc độ bằng Ultralytics YOLO

# Run a speed example
yolo solutions speed show=True

# Pass a source video
yolo solutions speed source="path/to/video.mp4"

# Adjust meter per pixel value based on camera configuration
yolo solutions speed meter_per_pixel=0.05
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("speed_management.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

# Initialize speed estimation object
speedestimator = solutions.SpeedEstimator(
    show=True,  # display the output
    model="yolo11n.pt",  # path to the YOLO11 model file.
    fps=fps,  # adjust speed based on frame per second
    # max_speed=120,  # cap speed to a max value (km/h) to avoid outliers
    # max_hist=5,  # minimum frames object tracked before computing speed
    # meter_per_pixel=0.05,  # highly depends on the camera configuration
    # classes=[0, 2],  # estimate speed of specific classes.
    # line_width=2,  # adjust the line width for bounding boxes
)

# Process video
while cap.isOpened():
    success, im0 = cap.read()

    if not success:
        print("Video frame is empty or processing is complete.")
        break

    results = speedestimator(im0)

    # print(results)  # access the output

    video_writer.write(results.plot_im)  # write the processed frame.

cap.release()
video_writer.release()
cv2.destroyAllWindows()  # destroy all opened windows

SpeedEstimator Các đối số

Đây là bảng với SpeedEstimator các đối số:

Đối số Loại Mặc định Mô tả
model str None Đường dẫn đến Tệp Mô hình Ultralytics YOLO.
fps float 30.0 Số khung hình trên giây được sử dụng để tính toán tốc độ.
max_hist int 5 Số điểm lịch sử tối đa để theo dõi trên mỗi đối tượng để tính toán tốc độ/hướng.
meter_per_pixel float 0.05 Hệ số tỷ lệ được sử dụng để chuyển đổi khoảng cách pixel thành đơn vị thế giới thực.
max_speed int 120 Giới hạn tốc độ tối đa trong lớp phủ trực quan (được sử dụng trong cảnh báo).

Hàm SpeedEstimator giải pháp cho phép sử dụng track tham số:

Đối số Loại Mặc định Mô tả
tracker str 'botsort.yaml' Chỉ định thuật toán theo dõi để sử dụng, ví dụ: bytetrack.yaml hoặc botsort.yaml.
conf float 0.3 Đặt ngưỡng tin cậy cho các phát hiện; giá trị thấp hơn cho phép theo dõi nhiều đối tượng hơn nhưng có thể bao gồm các kết quả dương tính giả.
iou float 0.5 Đặt ngưỡng Intersection over Union (IoU) để lọc các phát hiện trùng lặp.
classes list None Lọc kết quả theo chỉ số lớp. Ví dụ: classes=[0, 2, 3] chỉ theo dõi các lớp được chỉ định.
verbose bool True Kiểm soát việc hiển thị kết quả theo dõi, cung cấp đầu ra trực quan về các đối tượng được theo dõi.
device str None Chỉ định thiết bị cho suy luận (ví dụ: cpu, cuda:0 hoặc 0). Cho phép người dùng lựa chọn giữa CPU, một GPU cụ thể hoặc các thiết bị tính toán khác để thực thi mô hình.

Ngoài ra, các tùy chọn hiển thị sau được hỗ trợ:

Đối số Loại Mặc định Mô tả
show bool False Nếu True, hiển thị hình ảnh hoặc video đã chú thích trong một cửa sổ. Hữu ích để có phản hồi trực quan ngay lập tức trong quá trình phát triển hoặc thử nghiệm.
line_width None or int None Chỉ định độ rộng đường của hộp giới hạn. Nếu None, độ rộng đường kẻ được tự động điều chỉnh dựa trên kích thước hình ảnh. Cung cấp tùy chỉnh trực quan để rõ ràng hơn.
show_conf bool True Hiển thị điểm tin cậy cho mỗi lần phát hiện cùng với nhãn. Cung cấp cái nhìn sâu sắc về độ chắc chắn của mô hình cho mỗi lần phát hiện.
show_labels bool True Hiển thị nhãn cho mỗi lần phát hiện trong đầu ra trực quan. Cung cấp sự hiểu biết ngay lập tức về các đối tượng được phát hiện.

Câu hỏi thường gặp

Làm cách nào để ước tính tốc độ đối tượng bằng Ultralytics YOLO11?

Ước tính tốc độ vật thể với Ultralytics YOLO11 bao gồm kết hợp phát hiện vật thể và các kỹ thuật theo dõi. Đầu tiên, bạn cần phát hiện các vật thể trong mỗi khung hình bằng mô hình YOLO11. Sau đó, theo dõi các vật thể này trên các khung hình để tính toán chuyển động của chúng theo thời gian. Cuối cùng, sử dụng khoảng cách vật thể di chuyển giữa các khung hình và tốc độ khung hình để ước tính tốc độ của nó.

Ví dụ:

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.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
speedestimator = solutions.SpeedEstimator(
    model="yolo11n.pt",
    show=True,
)

while cap.isOpened():
    success, im0 = cap.read()
    if not success:
        break
    results = speedestimator(im0)
    video_writer.write(results.plot_im)

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.

Những lợi ích khi sử dụng Ultralytics YOLO11 để ước tính tốc độ trong quản lý giao thông là gì?

Sử dụng Ultralytics YOLO11 để ước tính tốc độ mang lại những lợi thế đáng kể trong quản lý giao thông:

  • Nâng cao độ an toàn: Ước tính chính xác tốc độ xe để phát hiện tình trạng chạy quá tốc độ và cải thiện an toàn đường bộ.
  • Giám sát theo thời gian thực: Hưởng lợi từ khả năng phát hiện đối tượng theo thời gian thực của YOLO11 để theo dõi lưu lượng truy cập và tắc nghẽn một cách hiệu quả.
  • 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ó khả năng mở rộng cho các triển khai quy mô lớn.

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

YOLO11 có thể được tích hợp với các framework AI khác như TensorFlow hoặc PyTorch không?

Có, YOLO11 có thể được tích hợp với các khung AI khác như TensorFlow và PyTorch. Ultralytics cung cấp hỗ trợ để xuất các mô hình YOLO11 sang nhiều định dạng khác nhau như ONNX, TensorRTCoreML, đảm bảo khả năng tương tác mượt mà với các khung ML khác.

Để xuất mô hình YOLO11 sang định dạng ONNX:

yolo export model=yolo11n.pt format=onnx

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

Độ chính xác của ước tính tốc độ khi sử dụng Ultralytics YOLO11 là bao nhiêu?

Độ chính xác của việc ước tính tốc độ bằng Ultralytics YOLO11 phụ thuộc vào một số yếu tố, bao gồm chất lượng theo dõi đối tượng, độ phân giải và tốc độ khung hình của video cũng như các biến môi trường. Mặc dù công cụ ước tính tốc độ cung cấp các ước tính đáng tin cậy, nhưng nó có thể không chính xác 100% do sự khác biệt về tốc độ xử lý khung hình và sự che khuất đối tượng.

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

Để biết thêm các mẹo cải thiện độ chính xác, hãy xem Các đối số SpeedEstimator phần.



📅 Đã tạo 1 năm trước ✏️ Đã cập nhật 1 tháng trước

Bình luận