Yolo Tầm nhìn Thâm Quyến
Thâm Quyến
Tham gia ngay
Bảng chú giải thuật ngữ

Bộ lọc Kalman (Kalman Filter - KF)

Khám phá cách Bộ lọc Kalman tối ưu hóa việc ước tính trạng thái trong AI, theo dõi, kết hợp cảm biến, robot học, v.v., ngay cả với dữ liệu nhiễu.

Bộ lọc Kalman (KF) là một thuật toán toán học đệ quy mạnh mẽ được sử dụng để ước tính trạng thái của một hệ thống động theo thời gian. Ban đầu được phát triển bởi Rudolf E. Kálmán vào năm 1960, nó hoạt động bằng cách kết hợp một loạt các phép đo nhiễu, không đầy đủ hoặc không chính xác để tạo ra một ước tính chính xác hơn về mặt thống kê so với bất kỳ phép đo đơn lẻ nào. Trong bối cảnh học máy (ML)trí tuệ nhân tạo (AI) , bộ lọc Kalman là nền tảng cho các tác vụ yêu cầu làm mịn dự đoán, chẳng hạn như theo dõi đối tượng trong luồng video, nơi nó giúp dự đoán vị trí tương lai của một đối tượng dựa trên quỹ đạo trong quá khứ của nó.

Bộ lọc Kalman hoạt động như thế nào

Điểm mạnh cốt lõi của bộ lọc Kalman nằm ở chu trình hai bước: dự đoánhiệu chỉnh . Nó không chỉ xem xét điểm dữ liệu hiện tại; nó xem xét lịch sử của hệ thống để đưa ra dự đoán có cơ sở về trạng thái hiện tại.

  1. Bước dự đoán: Thuật toán sử dụng mô hình vật lý (như các phương trình động học chuẩn) để dự đoán trạng thái hiện tại của hệ thống dựa trên trạng thái trước đó. Ví dụ, nếu một chiếc xe đang di chuyển về phía bắc với tốc độ 60 dặm/giờ cách đây một giây, bộ lọc dự đoán rằng hiện tại nó đang ở vị trí xa hơn về phía bắc. Nó cũng ước tính độ không chắc chắn hoặc "hiệp phương sai lỗi" liên quan đến dự đoán này.
  2. Bước hiệu chỉnh (cập nhật): Khi có dữ liệu đo mới – có thể từ cảm biến GPS hoặc mô hình phát hiện đối tượng – bộ lọc sẽ so sánh dữ liệu quan sát được với dự đoán của nó. Nó tính toán một giá trị trung bình có trọng số gọi là Hệ số Kalman , trong đó giá trị (dự đoán hoặc đo) có độ bất định thấp hơn sẽ được ưu tiên hơn. Kết quả là một ước tính trạng thái được cập nhật, "đã hiệu chỉnh".

Chu kỳ này lặp đi lặp lại liên tục, cho phép bộ lọc tinh chỉnh các ước tính của nó và thích ứng với những thay đổi trong thời gian thực.

Các ứng dụng trong AI và Thị giác máy tính

Mặc dù bộ lọc Kalman có nguồn gốc từ lý thuyết điều khiển và hàng không vũ trụ (nổi tiếng được sử dụng trong máy tính điều hướng Apollo), hiện nay nó là một thành phần thiết yếu trong các quy trình xử lý hình ảnh máy tính (CV) hiện đại.

  • Theo dõi đối tượng trong video: Các thuật toán theo dõi tiên tiến như BoT-SORTByteTrack sử dụng bộ lọc Kalman để duy trì nhận dạng đối tượng xuyên suốt các khung hình video. Khi một mô hình phát hiện như YOLO26 xác định một người hoặc phương tiện, bộ lọc Kalman sẽ dự đoán vị trí của khung giới hạn đó trong khung hình tiếp theo. Nếu đối tượng tạm thời bị che khuất (bị chặn khỏi tầm nhìn), dự đoán của bộ lọc sẽ giúp hệ thống "ghi nhớ" vị trí của đối tượng, ngăn ngừa việc thay đổi nhận dạng.
  • Ghép nối cảm biến cho robot: Trong trí tuệ nhân tạo ứng dụng trong robot , máy móc thường dựa vào nhiều cảm biến—camera, LiDAR và IMU—để điều hướng. Bộ lọc Kalman kết hợp các nguồn dữ liệu khác nhau này để giảm nhiễu. Ví dụ, nếu bộ mã hóa bánh xe của robot bị trượt (gợi ý chuyển động trong khi thực tế không có chuyển động), dữ liệu hình ảnh được xử lý bởi các thuật toán SLAM có thể hiệu chỉnh ước tính vị trí thông qua bộ lọc.

Phân biệt các khái niệm liên quan

Việc phân biệt bộ lọc Kalman tiêu chuẩn với các biến thể và kỹ thuật liên quan của nó là rất hữu ích:

  • So sánh Bộ lọc Kalman tiêu chuẩn và Bộ lọc Kalman mở rộng (EKF) : Bộ lọc Kalman tiêu chuẩn giả định hệ thống tuân theo các phương trình tuyến tính (chuyển động thẳng). Các hệ thống thực tế, như máy bay không người lái nghiêng khi rẽ, thường không tuyến tính. EKF xử lý những trường hợp này bằng cách tuyến tính hóa động lực học của hệ thống ở mỗi bước, do đó phù hợp hơn cho việc điều hướng phức tạp của xe tự hành .
  • So sánh bộ lọc Kalman và bộ lọc hạt: Trong khi bộ lọc Kalman giả định sai số tuân theo phân bố Gaussian (đường cong hình chuông), bộ lọc hạt sử dụng một tập hợp các mẫu ngẫu nhiên để mô hình hóa xác suất. Bộ lọc hạt linh hoạt hơn đối với nhiễu không phải Gaussian nhưng tốn kém hơn đáng kể về mặt tính toán, ảnh hưởng đến tốc độ suy luận thời gian thực .

Ví dụ triển khai

Trong ultralytics Trong hệ sinh thái này, bộ lọc Kalman được tích hợp trực tiếp vào các mô-đun theo dõi. Bạn có thể tận dụng khả năng này một cách dễ dàng bằng cách sử dụng... track chế độ với YOLO Mô hình. Bộ theo dõi cơ bản tự động sử dụng bộ lọc Kalman để làm mịn quỹ đạo của các đối tượng được phát hiện.

Đây là cách để bắt đầu theo dõi với YOLO26 , công cụ này sử dụng ngầm định các kỹ thuật ước lượng sau:

from ultralytics import YOLO

# Load the latest YOLO26 model
model = YOLO("yolo26n.pt")

# Perform tracking on a video file
# The tracker (e.g., BoT-SORT) uses a Kalman Filter internally
results = model.track(source="https://ultralytics.com/images/bus.jpg", tracker="botsort.yaml")

# Print the ID of the tracked objects
for r in results:
    if r.boxes.id is not None:
        print(f"Track IDs: {r.boxes.id.numpy()}")

Tại sao điều này lại quan trọng đối với chất lượng dữ liệu?

Trong thực tế triển khai, dữ liệu cảm biến hiếm khi hoàn hảo. Camera bị mờ do chuyển động, tín hiệu GPS bị lệch và radar có thể bị nhiễu. Bộ lọc Kalman đóng vai trò là cơ chế làm sạch dữ liệu quan trọng trong vòng lặp quyết định. Bằng cách liên tục tinh chỉnh các ước tính, nó đảm bảo rằng các tác nhân AI và hệ thống phân tích hoạt động trên thực tế có khả năng xảy ra cao nhất chứ không phải là các dữ liệu đầu vào thô, nhiễu. Độ tin cậy này rất cần thiết cho các ứng dụng quan trọng về an toàn, từ giám sát hoạt động sân bay đến cho phép sản xuất robot chính xác.

Tham gia Ultralytics cộng đồng

Tham gia vào tương lai của AI. Kết nối, hợp tác và phát triển cùng với những nhà đổi mới toàn cầu

Tham gia ngay