Bộ lọc Kalman (KF) là một thuật toán mạnh mẽ và được sử dụng rộng rãi trong học máy (ML) và nhiều lĩnh vực kỹ thuật khác để ước tính trạng thái của một hệ thống động từ một loạt các phép đo nhiễu và không đầy đủ theo thời gian. Hãy tưởng tượng việc cố gắng xác định chính xác vị trí và tốc độ của một máy bay không người lái bằng cách sử dụng các phép đo GPS hơi không chính xác; Bộ lọc Kalman cung cấp một cách tối ưu về mặt thống kê để kết hợp chuyển động dự đoán với các phép đo nhiễu để có được ước tính tốt nhất có thể. Nó đặc biệt được đánh giá cao về hiệu quả và hiệu suất trong các ứng dụng suy luận thời gian thực , khiến nó trở thành một kỹ thuật nền tảng trong các lĩnh vực như robot , thị giác máy tính (CV) và hệ thống dẫn đường.
Bộ lọc Kalman hoạt động như thế nào
Về bản chất, Bộ lọc Kalman hoạt động đệ quy trên các luồng dữ liệu đầu vào nhiễu để tạo ra ước tính tối ưu về mặt thống kê của trạng thái hệ thống cơ bản. Nó hoạt động theo chu kỳ hai bước:
- Dự đoán: Dựa trên ước tính trạng thái trước đó và mô hình về cách hệ thống thay đổi theo thời gian (mô hình quy trình), bộ lọc dự đoán trạng thái tiếp theo của hệ thống. Dự đoán này vốn bao gồm một số sự không chắc chắn.
- Cập nhật: Bộ lọc kết hợp phép đo mới (cũng có nhiễu và không chắc chắn) liên quan đến trạng thái hiện tại. Nó so sánh phép đo với trạng thái dự đoán và cập nhật ước tính, đưa ra nhiều trọng số hơn cho dự đoán hoặc phép đo dựa trên các bất định tương ứng của chúng. Kết quả là ước tính trạng thái được tinh chỉnh tốt hơn về mặt thống kê (gần với trạng thái thực) so với dự đoán hoặc phép đo đơn lẻ.
Chu kỳ dự đoán-cập nhật này lặp lại cho mỗi phép đo mới, liên tục tinh chỉnh ước tính trạng thái. Bộ lọc được coi là "tối ưu" cho các hệ thống tuyến tính có nhiễu Gaussian vì nó giảm thiểu lỗi bình phương trung bình của ước tính trạng thái. Điều này làm cho nó trở thành một công cụ cơ bản trong ước tính trạng thái và xử lý tín hiệu . Để biết thêm lời giải thích trực quan, hãy xem How a Kalman Filter Works, in Pictures . Khung toán học cơ bản dựa trên suy luận Bayesian .
Đặc điểm chính
- Đệ quy: Xử lý từng phép đo một khi chúng đến mà không cần phải lưu trữ toàn bộ lịch sử.
- Tối ưu cho hệ thống tuyến tính: Cung cấp ước tính tốt nhất có thể (theo lỗi bình phương trung bình tối thiểu) nếu động lực hệ thống và quy trình đo lường là tuyến tính và nhiễu tuân theo phân phối chuẩn Gauss.
- Ước tính trạng thái: Ước tính trạng thái bên trong của một hệ thống (ví dụ: vị trí, vận tốc) không thể đo trực tiếp.
- Xử lý nhiễu: Mô hình hóa rõ ràng sự không chắc chắn trong cả động lực hệ thống và phép đo.
- Hiệu quả tính toán: Tương đối nhẹ, phù hợp với các ứng dụng thời gian thực trên hệ thống nhúng như những ứng dụng trong AI biên .
Ứng dụng trong thế giới thực
Bộ lọc Kalman là công cụ không thể thiếu trong nhiều ứng dụng AI và ML:
- Theo dõi đối tượng : Trong thị giác máy tính, KF thường được sử dụng để dự đoán vị trí của các đối tượng được phát hiện (như người đi bộ hoặc phương tiện) trong các khung hình video tiếp theo, giúp duy trì danh tính nhất quán ngay cả khi bị che khuất hoặc phát hiện lỗi trong thời gian ngắn. Các trình theo dõi như Simple Online and Realtime Tracking (SORT) phụ thuộc rất nhiều vào KF để dự đoán chuyển động. Các mô hình YOLO Ultralytics tận dụng các thuật toán theo dõi như vậy; bạn có thể tìm hiểu thêm trong tài liệu về chế độ theo dõi . Ví dụ, một hệ thống an ninh có thể sử dụng KF để theo dõi trơn tru một người đi ngang qua trường nhìn của camera, dự đoán đường đi của họ giữa các lần phát hiện do mô hình phát hiện đối tượng như YOLO11 cung cấp.
- Robot và Điều hướng: KF rất quan trọng để kết hợp dữ liệu từ nhiều cảm biến ( hợp nhất cảm biến ) để ước tính vị trí và hướng của robot (tư thế). Ví dụ, một phương tiện tự hành có thể hợp nhất các số liệu GPS nhiễu với dữ liệu từ các đơn vị đo lường quán tính (IMU) và phép đo quãng đường bánh xe bằng cách sử dụng KF để có được ước tính đáng tin cậy về vị trí và vận tốc của nó, điều cần thiết cho việc điều hướng an toàn ( AI trong các giải pháp ô tô ).
- Hàng không vũ trụ và Hướng dẫn: KF được sử dụng rộng rãi trong chương trình Apollo để điều hướng tàu vũ trụ và tiếp tục đóng vai trò quan trọng trong các hệ thống định vị vệ tinh và hướng dẫn hàng không vũ trụ hiện đại.
- Phân tích chuỗi thời gian : Được sử dụng trong kinh tế lượng và tài chính để lập mô hình và dự báo dữ liệu chuỗi thời gian bằng cách lọc nhiễu và ước tính xu hướng cơ bản. Bạn có thể khám phá các mô hình chuỗi thời gian tài chính để có thêm bối cảnh.
- Xử lý tín hiệu: Được áp dụng trong nhiều tác vụ xử lý tín hiệu khác nhau như tăng cường âm thanh và phân tích tín hiệu y sinh.
Bộ lọc Kalman so với Bộ lọc Kalman mở rộng
Bộ lọc Kalman chuẩn giả định rằng động lực học hệ thống và mô hình đo lường là tuyến tính. Tuy nhiên, nhiều hệ thống trong thế giới thực thể hiện hành vi phi tuyến tính (ví dụ: chuyển động của cánh tay rô-bốt, động lực học phức tạp của xe). Đối với những trường hợp như vậy, các biến thể như Bộ lọc Kalman mở rộng (EKF) được sử dụng.
Sự khác biệt chính là EKF xử lý các hệ thống phi tuyến tính bằng cách xấp xỉ chúng. Nó tuyến tính hóa các hàm phi tuyến tính xung quanh ước tính trạng thái hiện tại tại mỗi bước thời gian bằng các kỹ thuật như khai triển chuỗi Taylor . Mặc dù mạnh mẽ, nhưng quá trình tuyến tính hóa này lại đưa vào các lỗi xấp xỉ, nghĩa là EKF có thể không tối ưu hoặc ổn định như KF tiêu chuẩn dành cho các vấn đề hoàn toàn tuyến tính. Nếu một hệ thống được biết là tuyến tính, thì KF thường được ưu tiên do tính tối ưu và tính đơn giản trong tính toán của nó. Các biến thể khác như Bộ lọc Kalman không mùi (UKF) cung cấp các cách tiếp cận khác nhau để xử lý các tính phi tuyến tính, thường cung cấp độ chính xác tốt hơn EKF đối với các hệ thống phi tuyến tính cao nhưng thường yêu cầu nhiều tính toán hơn. Bạn có thể đào tạo và thử nghiệm với các mô hình kết hợp các bộ lọc này bằng các nền tảng như Ultralytics HUB .