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 ướ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)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.

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

Thuật toán hoạt động theo chu trình hai bước: dự đoáncậ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).

  1. Dự đoán: Bộ lọc sử dụng mô hình vật lý để dự đoán trạng thái hiện tại trong tương lai. Ví dụ, nếu một vật thể đang chuyển động 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 chuẩn. Bước này cũng ước tính độ bất định liên quan đến dự đoán đó.
  2. Cập nhật: Khi nhận được dữ liệu đo mới từ cảm biến, bộ lọc sẽ so sánh trạng thái dự đoán với dữ liệu quan sát được. Nó tính toán giá trị trung bình có trọng số — được xác định bởi hệ số Kalman Gain — giúp ưu tiên giá trị (dự đoán hoặc đo lường) có độ bất định thấp hơn. Kết quả là một ước tính trạng thái được tinh chỉnh, đóng vai trò là cơ sở cho chu kỳ tiếp theo.

Ứng dụng trong Thị giác máy tính và Trí tuệ nhân tạo

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.

  • Theo dõi đối tượng: Đâ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 khung hình video, nó sẽ cung cấp một ảnh chụp tĩnh. Để hiểu chuyển động, các bộ theo dõi như BoT-SORT sử dụng bộ lọc Kalman để liên kết các phát hiện giữa các khung hình. Nếu một đối tượng bị che khuất tạm thời (bị chặn khỏi tầm nhìn), bộ lọc sẽ 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ữ liệu. track "hoặc chuyển đổi ID."
  • Ghép nối cảm biến trong robot: Trong robot , máy móc phải điều hướng bằng cách sử dụng nhiều cảm biến nhiễu. Một robot giao hàng có thể sử dụng GPS (có thể bị sai lệch), bộ mã hóa bánh xe (có thể bị trượt) và IMU (có nhiều nhiễu). Bộ lọc Kalman ghép nối các tín hiệu đầu vào khác nhau 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 hoạt động an toàn của các phương tiện tự hành .

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à phương án thay thế của nó trong trí tuệ nhân tạo thống kê 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 (đường thẳng). Tuy nhiên, chuyển động trong thế giới thực—như máy bay không người lái nghiêng khi rẽ—thường không 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 của hệ thống ở 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.
  • So sánh bộ lọc Kalman và bộ lọc hạt: Trong khi bộ lọc Kalman dựa trên giả định phân bố Gaussian, bộ lọc hạt sử dụng một tập hợp các mẫu ngẫu nhiên (các hạt) để biểu diễn các phân bố 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 lớn hơn đáng kể, có khả năng ả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 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()}")

Tầm quan trọng đối với chất lượng dữ liệu

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.

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