Khám phá cách bộ lọc Kalman ước tính 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. 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. Ban đầu được giới thiệ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 đổi 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 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 dựa trên một phép đo đơn lẻ. Trong lĩnh vực học máy (ML) và trí tuệ nhân tạo (AI) , nó đóng vai trò là một công cụ quan trọng cho mô hình dự đoán , làm mịn các điểm dữ liệu gồ ghề để tiết lộ xu hướng thực sự tiềm ẩn.
Thuật toán hoạt động theo chu trình hai bước: dự đoán và cập nhật (còn 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 bố Gaussian (đường cong hình chuông).
Mặc dù ban đầu xuất phát từ lý thuyết điều khiển và định vị hàng không vũ trụ, bộ lọc Kalman hiện nay được sử dụng rộng rãi trong các quy trình xử lý hình ảnh máy tính (CV) hiện đại.
Việc phân biệt bộ lọc Kalman tiêu chuẩn với các biến thể và phương án thay thế của nó trong trí tuệ nhân tạo thống kê là rất hữu ích:
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 thuật toán theo dõi. Bạn không cần phải tự viết các phương trình; bạn có thể tận dụng chúng bằng cách kích hoạt các chế độ theo dõi. Nền tảng Ultralytics cho phép bạn quản lý tập 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 bằng 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 hộp giới hạn :
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()}")
Trong thực tế triển khai, dữ liệu hiếm khi hoàn hảo. Camera bị mờ do chuyển động, và cảm biến gặp phải nhiễu tín hiệu. Bộ lọc Kalman hoạt động như một cơ chế làm sạch dữ liệu tinh vi 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 hoạt động dựa trên thực tế có khả năng xảy ra cao nhất thay vì phản ứng với mọi sự 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.