Đón xem YOLO Vision 2025!
25 tháng 9, 2025
10:00 — 18:00 BST
Sự kiện kết hợp
Yolo Vision 2024

Ultralytics YOLOv8 để ước tính tốc độ trong các dự án thị giác máy tính

Abirami Vina

5 phút đọc

23 tháng 5, 2024

Khám phá cách mô hình Ultralytics YOLOv8 có thể được sử dụng để ước tính tốc độ trong các dự án thị giác máy tính của bạn. Hãy tự mình thử với một ví dụ mã hóa đơn giản.

Có lẽ tất cả chúng ta đều đã thấy biển báo giới hạn tốc độ trên đường. Một số người trong chúng ta thậm chí có thể đã nhận được thông báo vi phạm giới hạn tốc độ tự động qua đường bưu điện hoặc email. Các hệ thống quản lý giao thông bằng trí tuệ nhân tạo (AI) có thể gắn cờ các vi phạm tốc độ một cách tự động nhờ computer vision. Các cảnh quay thời gian thực được ghi lại bởi camera tại đèn đường và trên đường cao tốc được sử dụng để ước tính tốc độ và tăng cường an toàn đường bộ.

Ước tính tốc độ không chỉ giới hạn trong an toàn đường cao tốc. Nó có thể được sử dụng trong thể thao, xe tự hành và nhiều ứng dụng khác. Trong bài viết này, chúng ta sẽ thảo luận về cách bạn có thể sử dụng mô hình Ultralytics YOLOv8 để ước tính tốc độ trong các dự án thị giác máy tính của bạn. Chúng tôi cũng sẽ hướng dẫn từng bước thông qua một ví dụ mã hóa để bạn có thể tự mình thử. Hãy bắt đầu!

Ước tính tốc độ giúp quản lý giao thông dễ dàng hơn

Theo Tổ chức Y tế Thế giới (WHO), khoảng 1,19 triệu người chết hàng năm do tai nạn giao thông đường bộ do chạy quá tốc độ. Ngoài ra, có thêm 20 đến 50 triệu người bị thương không gây tử vong, trong đó nhiều người dẫn đến tàn tật. Tầm quan trọng của an ninh giao thông là không thể phủ nhận, đặc biệt khi ước tính tốc độ giúp ngăn ngừa tai nạn, cứu sống và giữ cho đường xá của chúng ta an toàn và hiệu quả. 

Ước tính tốc độ bằng thị giác máy tính bao gồm việc phát hiệntheo dõi các đối tượng trong khung hình video để tính toán tốc độ di chuyển của chúng. Các thuật toán như YOLOv8 có thể xác định và theo dõi các đối tượng như xe cộ qua các khung hình liên tiếp. Hệ thống đo khoảng cách mà các đối tượng này di chuyển bằng cách sử dụng camera đã hiệu chỉnh hoặc các điểm tham chiếu để đo khoảng cách thực tế. Bằng cách tính thời gian các đối tượng di chuyển giữa hai điểm, hệ thống sẽ tính tốc độ của chúng bằng tỷ lệ khoảng cách-thời gian.

Hình 1. Ước tính tốc độ sử dụng mô hình Ultralytics YOLOv8

Ngoài việc bắt những người chạy quá tốc độ, các hệ thống ước tính tốc độ tích hợp AI có thể thu thập dữ liệu để đưa ra dự đoán về giao thông. Những dự đoán này có thể hỗ trợ các tác vụ quản lý giao thông như tối ưu hóa thời gian tín hiệu và phân bổ nguồn lực. Thông tin chi tiết về các kiểu giao thông và nguyên nhân gây tắc nghẽn có thể được sử dụng để lên kế hoạch cho các con đường mới nhằm giảm tắc nghẽn giao thông.

Ứng dụng của ước tính tốc độ trong các ngành công nghiệp khác

Các ứng dụng ước tính tốc độ không chỉ giới hạn ở việc giám sát đường xá. Nó cũng có thể hữu ích để theo dõi hiệu suất của vận động viên, giúp xe tự hành hiểu được tốc độ của các vật thể di chuyển xung quanh chúng, phát hiện các hành vi đáng ngờ, v.v. Bất cứ nơi nào có thể sử dụng camera để đo tốc độ của một vật thể, thì đều có thể sử dụng ước tính tốc độ bằng thị giác máy tính. 

Dưới đây là một số ví dụ về nơi ước tính tốc độ đang được sử dụng:

  • Xe tự hành của Tesla sử dụng ước tính tốc độ dựa trên thị giác để tránh va chạm.
  • Thị giác máy tính và ước tính tốc độ sẽ được sử dụng tại Thế vận hội Olympic 2024 để cải thiện phân tích hiệu suất trong các sự kiện điền kinh.
  • Các thành phố thông minh đang nghiên cứu phân tích dáng đi của người đi bộ để theo dõi tốc độ đi bộ và tăng cường khả năng di chuyển và an toàn đô thị. Các hệ thống này có thể cảnh báo người lái xe về sự hiện diện của người đi bộ và ngăn ngừa tai nạn.
  • Hệ thống giám sát hành vi động vật sử dụng ước tính tốc độ để theo dõi chuyển động của động vật và phát hiện các dấu hiệu đau khổ hoặc bệnh tật.
Hình 2. Ước tính tốc độ có thể đo tốc độ đi bộ của một người.

Lợi ích của việc ước tính tốc độ bằng thị giác máy tính

Các hệ thống ước tính tốc độ dựa trên Vision đang thay thế các phương pháp dựa trên cảm biến truyền thống vì độ chính xác, hiệu quả chi phí và tính linh hoạt được nâng cao của chúng. Không giống như các hệ thống dựa vào các cảm biến đắt tiền như LiDAR, thị giác máy tính sử dụng camera tiêu chuẩn để theo dõi và phân tích tốc độ trong thời gian thực. Các giải pháp thị giác máy tính để ước tính tốc độ có thể được tích hợp liền mạch với cơ sở hạ tầng giao thông hiện có. Ngoài ra, các hệ thống này có thể được xây dựng để thực hiện một số tác vụ phức tạp như xác định loại xe và phân tích mô hình giao thông để cải thiện lưu lượng giao thông và an toàn tổng thể.

Hãy tự mình thử: Ước tính tốc độ bằng YOLOv8

Bây giờ chúng ta đã hiểu rõ về ước tính tốc độ và các ứng dụng của nó, hãy xem xét kỹ hơn cách bạn có thể tích hợp ước tính tốc độ vào các dự án thị giác máy tính của mình thông qua . Chúng ta sẽ phát hiện các phương tiện đang di chuyển và ước tính tốc độ của chúng bằng mô hình YOLOv8.

Ví dụ này sử dụng video về ô tô trên đường được tải xuống từ internet. Bạn có thể sử dụng video tương tự hoặc bất kỳ video liên quan nào. Mô hình YOLOv8 xác định tâm của mỗi xe và tính toán tốc độ của nó dựa trên tốc độ di chuyển của tâm này qua một đường ngang trong khung hình video. 

Trước khi chúng ta bắt đầu, điều quan trọng cần lưu ý là, trong trường hợp này, việc tính toán khoảng cách chỉ là gần đúng và dựa trên khoảng cách Euclidean. Hiệu chuẩn camera không được tính đến, vì vậy ước tính tốc độ có thể không hoàn toàn chính xác. Ngoài ra, tốc độ ước tính có thể thay đổi tùy thuộc vào tốc độ GPU của bạn.

Bước 1: Chúng ta sẽ bắt đầu bằng cách cài đặt gói Ultralytics. Mở command prompt hoặc terminal của bạn và chạy lệnh hiển thị bên dưới.

pip install ultralytics 

Tham khảo hướng dẫn cài đặt Ultralytics của chúng tôi để biết hướng dẫn từng bước và các phương pháp hay nhất về quy trình cài đặt. Nếu bạn gặp bất kỳ sự cố nào khi cài đặt các gói cần thiết cho YOLOv8, hướng dẫn Các sự cố thường gặp của chúng tôi có các giải pháp và mẹo hữu ích.

Bước 2: Tiếp theo, chúng ta sẽ import các thư viện cần thiết. Thư viện OpenCV sẽ giúp chúng ta xử lý video.

import cv2
from ultralytics import YOLO, solutions

Bước 3: Sau đó, chúng ta có thể tải mô hình YOLOv8 và truy xuất tên của các class mà mô hình có thể phát hiện.

model = YOLO("yolov8n.pt")
names = model.model.names

Xem tất cả các mô hình chúng tôi hỗ trợ để hiểu mô hình nào phù hợp nhất với dự án của bạn.

Bước 4: Trong bước này, chúng ta sẽ mở file video đầu vào bằng module VideoCapture của OpenCV. Chúng ta cũng sẽ trích xuất chiều rộng, chiều cao và số khung hình trên giây (fps) của video.

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

Bước 5: Ở đây, chúng ta sẽ khởi tạo video writer để lưu kết quả cuối cùng của việc ước tính tốc độ. File video đầu ra sẽ được lưu dưới dạng “speed_estimation.avi”.

video_writer = cv2.VideoWriter("speed_estimation.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

Bước 6: Tiếp theo, chúng ta có thể xác định các điểm đường thẳng để ước tính tốc độ. Đối với video đầu vào của chúng ta, đường thẳng này sẽ được đặt theo chiều ngang ở giữa khung hình. Bạn có thể thoải mái điều chỉnh các giá trị để đặt đường thẳng ở vị trí phù hợp nhất, tùy thuộc vào video đầu vào của bạn.

line_pts = [(0, 360), (1280, 360)]

Bước 7: Bây giờ, chúng ta có thể khởi tạo đối tượng ước tính tốc độ bằng cách sử dụng các điểm đường kẻ đã xác định và tên class.

speed_obj = solutions.SpeedEstimator(
    reg_pts=line_pts,
    names=names,
    view_img=True,
)

Bước 8: Phần cốt lõi của script xử lý video từng khung hình. Chúng ta đọc từng khung hình, phát hiện và theo dõi các đối tượng. Tốc độ của các đối tượng được theo dõi được ước tính và khung hình được chú thích được ghi vào video đầu ra.

while cap.isOpened():
    success, im0 = cap.read()
    if not success:
        print("Video frame is empty or video processing has been successfully completed.")
        break

    tracks = model.track(im0, persist=True, show=False)

    im0 = speed_obj.estimate_speed(im0, tracks)
    video_writer.write(im0)
  

Bước 9: Cuối cùng, chúng ta giải phóng các đối tượng video capture và writer, đồng thời đóng mọi cửa sổ OpenCV.

cap.release()
video_writer.release()
cv2.destroyAllWindows()

Bước 10: Lưu script của bạn. Nếu bạn đang làm việc từ terminal hoặc command prompt, hãy chạy script bằng lệnh sau:

python your_script_name.py


Những thách thức của việc ước tính tốc độ dựa trên thị giác

Điều quan trọng nữa là phải hiểu những thách thức liên quan đến việc triển khai ước tính tốc độ bằng thị giác máy tính (computer vision). Các điều kiện thời tiết bất lợi như mưa, sương mù hoặc tuyết có thể gây ra sự cố cho hệ thống vì chúng có thể cản trở tầm nhìn trên đường. Tương tự, sự che khuất do các phương tiện hoặc vật thể khác gây ra có thể gây khó khăn cho các hệ thống này trong việc theo dõi và ước tính tốc độ của xe mục tiêu một cách chính xác. Điều kiện ánh sáng kém gây ra bóng hoặc ánh sáng chói từ mặt trời cũng có thể làm phức tạp thêm nhiệm vụ ước tính tốc độ.

Một thách thức khác liên quan đến sức mạnh tính toán. Để ước tính tốc độ trong thời gian thực, chúng ta phải xử lý rất nhiều dữ liệu trực quan từ camera giao thông chất lượng cao. Giải pháp của bạn có thể yêu cầu phần cứng đắt tiền để xử lý tất cả những điều này và đảm bảo mọi thứ hoạt động nhanh chóng mà không bị chậm trễ.

Sau đó, có vấn đề về quyền riêng tư. Dữ liệu được thu thập bởi các hệ thống này có thể bao gồm thông tin chi tiết về xe của một cá nhân như nhãn hiệu, kiểu máy và thông tin biển số xe, được thu thập mà không có sự đồng ý của họ. Một số camera HD hiện đại thậm chí có thể chụp ảnh những người ngồi bên trong xe. Việc thu thập dữ liệu như vậy có thể làm nảy sinh các vấn đề đạo đức và pháp lý nghiêm trọng cần được xử lý hết sức cẩn thận.

Hướng tới tương lai với tốc độ

Sử dụng mô hình Ultralytics YOLOv8 để ước tính tốc độ mang lại một giải pháp linh hoạt và hiệu quả cho nhiều mục đích sử dụng. Mặc dù có những thách thức, như độ chính xác trong điều kiện khó khăn và giải quyết các vấn đề về quyền riêng tư, nhưng có rất nhiều lợi thế. Ước tính tốc độ bằng thị giác máy tính hiệu quả về chi phí, dễ điều chỉnh và chính xác hơn so với các phương pháp cũ. Nó hữu ích trong nhiều lĩnh vực như giao thông vận tải, thể thao, giám sát và xe tự lái. Với tất cả những lợi ích và ứng dụng, nó chắc chắn sẽ là một phần quan trọng của các hệ thống thông minh trong tương lai.

Bạn quan tâm đến AI? Hãy kết nối với cộng đồng của chúng tôi! Khám phá kho lưu trữ GitHub của chúng tôi để tìm hiểu thêm về cách chúng tôi đang sử dụng AI để tạo ra các giải pháp sáng tạo trong các ngành khác nhau như chăm sóc sức khỏenông nghiệp. Hãy hợp tác, đổi mới và học hỏi cùng chúng tôi! 🚀

Hãy cùng nhau xây dựng tương lai
của AI!

Bắt đầu hành trình của bạn với tương lai của học máy

Bắt đầu miễn phí
Đã sao chép liên kết vào clipboard