Kalman Filter (KF)
Khám phá cách Kalman Filter ước tính các trạng thái hệ thống trong điều kiện không chắc chắn. Tìm hiểu cách sử dụng nó để theo dõi đối tượng với Ultralytics YOLO26 nhằm cải thiện độ chính xác của AI.
Bộ lọc Kalman (KF) là một thuật toán toán học đệ quy được sử dụng để ước tính trạng thái của một hệ thống động theo thời gian. Được giới thiệu lần đầu bởi Rudolf E. Kálmán, kỹ thuật này rất cần thiết để xử lý dữ liệu không chắc chắn, không chính xác hoặc chứa các biến thể ngẫu nhiên, thường được gọi là "nhiễu". Bằng cách kết hợp một loạt các phép đo được quan sát theo thời gian có chứa các sai số thống kê, Bộ lọc Kalman tạo ra các ước tính về các biến chưa biết chính xác hơn so với các ước tính chỉ dựa trên một phép đo đơn lẻ. Trong các lĩnh vực machine learning (ML) và artificial intelligence (AI), nó đóng vai trò là một công cụ quan trọng cho predictive modeling, làm mượt các điểm dữ liệu thô để tiết lộ xu hướng cơ bản thực sự.
Link to this sectionCách thức hoạt động của Bộ lọc Kalman#
Thuật toán hoạt động theo chu kỳ hai bước: dự đoán và cập nhật (còn được gọi là hiệu chỉnh). Nó giả định rằng hệ thống cơ bản là tuyến tính và nhiễu tuân theo phân phối Gaussian (đường cong hình chuông).
-
Dự đoán: Bộ lọc sử dụng một mô hình vật lý để dự phóng trạng thái hiện tại về phía trước theo thời gian. Ví dụ, nếu một vật thể đang di chuyển với vận tốc không đổi, bộ lọc sẽ dự đoán vị trí tiếp theo của nó dựa trên các phương trình động học tiêu chuẩn. Bước này cũng ước tính độ không chắc chắn liên quan đến dự đoán đó.
-
Cập nhật: Khi một phép đo mới đến từ cảm biến, bộ lọc so sánh trạng thái dự đoán với dữ liệu quan sát được. Nó tính toán một giá trị trung bình có trọng số—được xác định bởi Kalman Gain—đặt sự tin tưởng nhiều hơn vào giá trị (dự đoán hoặc phép đo) có ít độ không chắc chắn hơn. Kết quả là một ước tính trạng thái tinh chỉnh đóng vai trò là đường cơ sở cho chu kỳ tiếp theo.
Link to this sectionCác ứng dụng trong thị giác máy tính và AI#
Mặc dù bắt nguồn từ lý thuyết điều khiển và điều hướng hàng không vũ trụ, Bộ lọc Kalman hiện nay rất phổ biến trong các quy trình computer vision (CV) hiện đại.
- Theo dõi đối tượng (Object Tracking): Đây là trường hợp sử dụng phổ biến nhất. Khi một mô hình phát hiện như YOLO26 xác định một đối tượng trong một khung hình video, nó cung cấp một ảnh chụp nhanh tĩnh. Để hiểu chuyển động, các trình theo dõi như BoT-SORT sử dụng các Bộ lọc Kalman để liên kết các phát hiện trên nhiều khung hình. Nếu một đối tượng tạm thời bị che khuất (bị chặn khỏi tầm nhìn), bộ lọc sử dụng vận tốc trước đó của đối tượng để dự đoán vị trí của nó, ngăn hệ thống mất "dấu vết" hoặc chuyển đổi ID.
- Hợp nhất cảm biến trong Robot: Trong robotics, các máy móc phải điều hướng bằng cách sử dụng nhiều cảm biến có nhiễu. Một robot giao hàng có thể sử dụng GPS (có thể bị trôi), bộ mã hóa bánh xe (có thể bị trượt) và IMU (có nhiều nhiễu). Bộ lọc Kalman hợp nhất các đầu vào khác biệt này để cung cấp một tọa độ duy nhất, đáng tin cậy cho việc điều hướng, điều cần thiết cho các hoạt động của autonomous vehicles an toàn.
Link to this sectionPhâ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à lựa chọn thay thế được tìm thấy trong statistical AI là rất hữu ích:
- Bộ lọc Kalman so với Bộ lọc Kalman mở rộng (EKF): KF tiêu chuẩn giả định rằng hệ thống tuân theo các phương trình tuyến tính (đường thẳng). Tuy nhiên, chuyển động trong thế giới thực—như một chiếc máy bay không người lái đang vào cua—thường là phi tuyến tính. EKF giải quyết vấn đề này bằng cách tuyến tính hóa động lực học hệ thống tại mỗi bước bằng cách sử dụng đạo hàm, làm cho nó phù hợp với các quỹ đạo phức tạp.
- Bộ lọc Kalman so với Bộ lọc hạt (Particle Filter): Trong khi các KF dựa trên các giả định Gaussian, bộ lọc hạt sử dụng một tập hợp các mẫu ngẫu nhiên (hạt) để biểu diễn các phân phối xác suất. Bộ lọc hạt linh hoạt hơn đối với nhiễu phi Gaussian nhưng yêu cầu sức mạnh tính toán đáng kể hơn nhiều, có khả năng ảnh hưởng đến tốc độ real-time inference.
Link to this sectionVí dụ về triển khai#
Trong hệ sinh thái Ultralytics, các Bộ lọc Kalman được tích hợp trực tiếp vào các thuật toán theo dõi. Bạn không cần phải viết các phương trình theo cách thủ công; bạn có thể tận dụng chúng bằng cách kích hoạt các chế độ theo dõi. Ultralytics Platform cho phép bạn quản lý các bộ dữ liệu và huấn luyện các mô hình có thể dễ dàng triển khai với các khả năng theo dõi này.
Dưới đây là một ví dụ ngắn gọn sử dụng Python để thực hiện theo dõi với YOLO26, trong đó trình theo dõi cơ bản tự động áp dụng bộ lọc Kalman để làm mượt các chuyển động của bounding box:
from ultralytics import YOLO
# Load the latest YOLO26 model
model = YOLO("yolo26n.pt")
# Run tracking on a video source
# The 'botsort' tracker uses Kalman Filters internally for state estimation
results = model.track(source="traffic_video.mp4", tracker="botsort.yaml")
# Process results
for result in results:
# Access the tracked IDs (assigned and maintained via KF logic)
if result.boxes.id is not None:
print(f"Tracked IDs in frame: {result.boxes.id.cpu().numpy()}")Link to this sectionTầm quan trọng đối với chất lượng dữ liệu#
Trong triển khai thực tế, dữ liệu hiếm khi hoàn hảo. Camera bị ảnh hưởng bởi nhòe chuyển động và cảm biến bị nhiễu tín hiệu. Bộ lọc Kalman đóng vai trò như một cơ chế data cleaning phức tạp 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 AI agents hoạt động dựa trên thực tế có khả năng xảy ra nhất thay vì phản ứng với mọi trục trặc nhất thời trong luồng dữ liệu đầu vào. Độ tin cậy này là tối quan trọng đối với các ứng dụng quan trọng về an toàn, từ giám sát hoạt động sân bay đến tự động hóa công nghiệp chính xác.






