Learn how the Extended Kalman Filter (EKF) handles non-linear systems for accurate object tracking and sensor fusion. Enhance your [YOLO26](https://docs.ultralytics.com/models/yolo26/) projects on the [Ultralytics Platform](https://platform.ultralytics.com).
Bộ lọc Kalman mở rộng (EKF) là một thuật toán toán học mạnh mẽ được thiết kế để ước tính trạng thái của một hệ thống động hoạt động phi tuyến tính. Trong khi bộ lọc Kalman tiêu chuẩn (KF) cung cấp giải pháp tối ưu cho các hệ thống chuyển động theo đường thẳng hoặc tuân theo các phương trình tuyến tính đơn giản, vật lý thực tế hiếm khi có thể dự đoán được như vậy. Hầu hết các vật thể vật lý, chẳng hạn như máy bay không người lái chống lại sức cản của gió hoặc cánh tay robot quay trên nhiều trục, đều đi theo các đường cong hoặc phức tạp. EKF giải quyết sự phức tạp này bằng cách tạo ra một phép xấp xỉ tuyến tính của hệ thống tại một thời điểm cụ thể, cho phép các kỹ sư và nhà khoa học dữ liệu áp dụng các kỹ thuật lọc hiệu quả cho các nhiệm vụ mô hình hóa dự đoán ngay cả khi cơ chế cơ bản phức tạp.
Để xử lý các động lực phức tạp, bộ lọc Kalman mở rộng (EKF) sử dụng một quy trình toán học gọi là tuyến tính hóa, về cơ bản ước tính độ dốc của một hàm tại điểm hoạt động hiện tại. Điều này thường liên quan đến việc tính toán ma trận Jacobian để xấp xỉ cách hệ thống thay đổi trong các khoảng thời gian ngắn. Thuật toán hoạt động trong một vòng lặp đệ quy gồm hai giai đoạn chính: dự đoán và cập nhật. Trong giai đoạn dự đoán, bộ lọc chiếu trạng thái hiện tại về phía trước bằng cách sử dụng mô hình vật lý về chuyển động. Trong giai đoạn cập nhật, nó hiệu chỉnh phép chiếu này bằng cách sử dụng dữ liệu mới, thường là dữ liệu nhiễu từ các cảm biến như con quay hồi chuyển hoặc gia tốc kế. Chu kỳ liên tục dự đoán và hiệu chỉnh này giúp giảm nhiễu dữ liệu và cung cấp ước tính mượt mà hơn, chính xác hơn về trạng thái thực so với bất kỳ cảm biến đơn lẻ nào có thể cung cấp.
Trong lĩnh vực thị giác máy tính (CV) , bộ lọc Kalman mở rộng (EKF) đóng vai trò quan trọng trong việc duy trì nhận dạng của các vật thể chuyển động. Các mô hình tiên tiến như YOLO26 rất xuất sắc trong việc phát hiện đối tượng trong các khung hình đơn lẻ, nhưng chúng không tự hiểu được sự liên tục của chuyển động theo thời gian. Bằng cách tích hợp EKF hoặc logic tương tự, hệ thống theo dõi đối tượng có thể dự đoán vị trí xuất hiện của hộp giới hạn trong khung hình video tiếp theo dựa trên vận tốc và quỹ đạo trước đó của nó. Điều này đặc biệt hữu ích để xử lý các trường hợp che khuất, khi một đối tượng tạm thời bị che khuất khỏi tầm nhìn; bộ lọc giữ nguyên " track "Hoạt động bằng cách ước tính vị trí của vật thể cho đến khi nó hiển thị trở lại, một kỹ thuật thiết yếu cho việc theo dõi nhiều vật thể (MOT) mạnh mẽ."
Tính linh hoạt của EKF khiến nó trở thành một công nghệ nền tảng trong nhiều ngành công nghệ cao, nơi mà học máy (ML) giao thoa với phần cứng vật lý:
Việc phân biệt Bộ lọc Kalman mở rộng với các phương pháp lọc liên quan sẽ giúp hiểu rõ hơn về công dụng cụ thể của nó:
Trong ultralytics Gói phần mềm này sử dụng các thuật toán theo dõi dựa trên khái niệm lọc Kalman (EKF) để làm mượt quỹ đạo và liên kết các phát hiện giữa các khung hình. Mặc dù bạn không cần tự viết mã toán học ma trận EKF khi sử dụng các công cụ cấp cao, nhưng việc hiểu rằng nó là nền tảng của trình theo dõi sẽ giúp bạn cấu hình các tham số cho trình theo dõi.
Ultralytics Nền tảng.
Dưới đây là cách khởi tạo một trình theo dõi với mô hình YOLO , sử dụng các kỹ thuật lọc này để ước tính trạng thái:
from ultralytics import YOLO
# Load the latest YOLO26 model (nano version for speed)
model = YOLO("yolo26n.pt")
# Track objects in a video source
# Trackers like BoT-SORT or ByteTrack use Kalman filtering logic 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()}")