Bộ lọc Kalman

Một phần của tài liệu Lọc kalman ứng dụng hệ thống dò vết đối tượng trong chuỗi video (Trang 44 - 52)

C. Phương pháp pháp dựa trên sự chênh lệnh tạm thời giữa các khung hình

2.2.5.1.Bộ lọc Kalman

Bộ lọc Kalman được đặt tên theo tên người phát minh ra bộ lọc này, R.E Kalman. Vào năm 1960, R.E Kalman đã công bố bài báo nổi tiếng về một giải pháp truy hồi để giải quyết bài toán lọc thông tin rời rạc tuyến tính (discrete data linear

filtering)[32]. Từđó đến nay cùng với sự phát triển của tính toán kỹ thuật số, bộ lọc Kalman đã trở thành chủđề nghiên cứu sôi nổi và được ứng dụng trong nhiều ngành kỹ thuật công nghệ khác nhau : trong tự động hóa, trong định vị cũng như trong viễn thông và nhiều lĩnh vực khác nữa.

Một cách khái quát, bộ lọc Kalman là một tập hợp các phương trình toán học mô tả một phương pháp tính toán truy hồi hiệu qủa cho phép ước đoán trạng thái của một quá trình sao cho trung bình phương sai của độ lệch (giữa giá trị thực và giá trịước đoán) là nhỏ nhất. Bộ lọc Kalman rất hiệu quả trong việc ước đoán các trạng thái trong quá khứ, hiện tại và tương lai thậm chí ngay cả khi tính chính xác của hệ thống mô phỏng không được khẳng định.

NGUYÊN LÝ HOẠT ĐỘNG CỦA BỘ LỌC KALMAN

Hình 2-15. Thông tin vào ra bộ lọc

A. Khái niệm vềước lượng

Giả sử chúng ta có một chiếc xe di chuyển với vận tốc 20m/s theo một phương x. Vị trí ban đầu của xe là 0.

Khi đó, vận tốc của xe sẽ là:

Kết quả, nếu bây giờ chúng ta cần xác định vị trí của xe sau 2 phút. Và giả sử chúng ta chỉ quan tâm đến cảm biến đo vị trí hoặc cảm biến đo vận tốc của xe. Chúng ta sẽ chỉ ra 2 phương pháp ước lượng như sau:

a) Phương pháp 1:

(thời điểm tiếp theo) (thời điểm tiếp theo nữa) ....

Đây là ước lượng vị trí của xe, chỉ nhờ vào cảm biến vị trí của xe, trong đó, là các giá trị vị trí xe đo được.

b) Phương pháp 2:

(vị trí ban đầu của xe)

(1 giây sau nếu giả sử x di chuyển với vận tốc 20m/s) (1 giây sau nữa)

...

Như vậy, cả hai phương pháp trên, cũng đều là một cách để chúng ta ước lượng vị trí của xe. Chúng ta thấy rằng, nếu dùng hai phương pháp ước lượng khác nhau, sẽ thu được các giá trịước lượng khác nhau. Chúng ta sẽ tin cách ước lượng nào?

c) Phương pháp 3:

Chúng ta tìm hiểu xem phương pháp ước lượng thứ ba như sau:

nhiệm vụ của bộ lọc Kalman là tìm ra hệ số alpha tối ưu để tìm gần đúng với x(t) nhất. Nói rõ hơn một chút, đó là tìm ước lượng gần đúng với x(t) nhất (giá trịước lượng gần đúng với giá trị thực tế nhất) thông qua hiểu biết của chúng ta về mô hình của hệ thống.

Hình 2-16. Mô hình hóa hoạt động của mạch lọc Kalman.

Hoạt động mạch lọc như sau: từ tín hiệu đo được và mô hình đòi hỏi tuyến tính của tín hiệu đo được ta áp dụng vào trong hệ thống phương trình của mạch lọc để ước lượng trạng thái quan tâm. Thực ra tín hiệu đo là không khó, phương trình đã có sắn, cái chung ta cần chính là mô hình hoá hệ thống. Để có thể ứng dụng một cách hiệu quả mạch lọc Kalman thì chúng ta phải mô hình hóa được một cách tuyến tính sự thay đổi của trạng thái cần ước lượng (estimate) hoặc ước đoán (predict).

C. Bộ lọc Kalman rời rạc

Bộ lọc Kalman đề cập đến bài toán tổng quát đi ước lượng trạng thái của một quá trình được mô hình hóa một cách rời rạc theo thời gian bằng một phương trình ngẫu nhiên tuyến tính như sau

(1) và kết quảđo đạc

(2)

Trong đó wv là 2 vector biến ngẫu nhiên đại diện cho nhiễu hệ thống và nhiễu đo đạc. Hai biến ngẫu nhiên này độc lập và được giả sử là tuân theo phân bố Gauss với trung bình =0 và ma trận hiệp phương sai (covariance) lần lượt là QR

w ~N(0,Q)

v ~N(0,R)

Nếu vector trạng thái x có kích thước là n, thì ma trận A sẽ có kích thước là n x n. B (n x l) là ma trận phụ thuộc vào điều khiển tối ưu u với u là vector có kích thước là l. Vector đo đạc z có kích thước là m nên ma trận H sẽ là m x n. Chú ý rằng các ma trận Q, R, A, H có thể thay đổi theo thời gian (từng bước k), nhưng ởđây chúng được giả sử không đổi.

Hình 2-17. Cơ chế lọc Kalman với ô vuông thể hiện cho ma trận (F~A), các hình elip biểu diễn cho phân bố chuẩn Gauss (với trung bình=0 và ma trận hiệp phương sai), các giá trị không đóng khung là các vector.

Bài toán lc Kalman chính là đi tìm giá trước lượng và ước đoán ca trng thái x khi ta biết được s biến thiên ca nó và ta đo được mt đại lượng z mà ph

thuc tuyến tính vào x.

Ví dụ trong bài toán chuyển động, ta biết được qui luật thay đổi của vận tốc, ta lại có thể đo được sự thay đổi của vị trí. Sử dụng bộ lọc Kalman để tìm vận tốc ước lượng.

Nếu ta giả sửxk và lần lượt là tiên nghiệm và tiền nghiệm ước lượng của giá trị x tại thời điểm k. Giá trị tiên nghiệm thu được chỉ dựa vào mô hình hệ thống CT(1), còn giá trị hậu nghiệm là giá trị thu được sau khi đã có kết quảđo đạc CT(2). Khi đó sai số của ước đoán tiên nghiệm và hậu nghiệm lần lượt là

Ma trận hiệp biến của 2 sai số trên được tính lần lượt theo công thức

Mục đích của chúng ta bây giờ là đi tìm hệ số K sao cho thỏa mãn phương trình sau: (3)

Như vậy, ta thấy K cũng chính là alpha giới thiệu ở trên. Phương trình (3) có nghĩa là giá trị hậu nghiệm của ước lượng x sẽ được tính bằng giá trị tiên nghiệm của nó và sau đó thêm/bớt đi một tí dựa vào sai số giữa giá trịđo được và giá trịđo đạc ước đoán . K ởđây chính là độ lợi (gain) của mạch lọc Kalman.

Vậy làm thế nào để chọn K tối ưu nhất. Tối ưu ở đây theo nghĩa là hiệp phương sai của sai số của ước lượng hậu nghiệm là nhỏ nhất. Bằng cách thay e-k vào trong biểu thức tính P-k, rồi sau đó lấy đạo hàm của P-k

theo K, ta sẽ tìm ra được giá trị K mà tương ứng với nó P-k là nhỏ nhất.

thay đổi theo thời gian k và cũng chính là độ lợi cần tìm của mạch lọc Kalman trong mỗi ước đoán tương ứng với từng vòng lặp.

Tóm lại mạch lọc Kalman bao gồm 2 bước : 1- Ước đoán trạng thái tiên nghiệm, và sau đó, 2-dựa vào kết quảđo để hiệu chỉnh lại ước đoán. Ta có thể tóm tắt lại hoạt động của mạch lọc Kalman bằng các phương trình sau:

Hình 2-18. Tóm tắt cơ bản của mạch lọc Kalman

Giả sử đã có giá trị ước đoán ở tại thời điểm (k-1) và biết được giá trị điều khiển . (Giá trị ban đầu tại thời điểm 0 được chọn ). Lúc đó lần lượt tiến hành các tính toán từ 1 đến 2 ở bước 1 rồi từ 1 đến 3 trong bước 2 như trong hình dưới đây.

Cái khó của mạch lọc Kalman là làm thế nào để mô hình hóa các trạng thái và đo đạc để có được 2 phương trình (1) và (2) để có thể áp dụng Kalman.

D. Bộ lọc Kalman mở rộng

Trong một số bài toán thị giác máy tính có sử dụng lọc Kalman (gồm cả theo vết đối tượng), các mô hình trạng thái và độ đo có thể không tuyến tính. Trong những trường hợp như vậy, lọc Kalman chuẩn không thể sử dụng được, người ta dùng một bộ lọc được biết đến với tên gọi là lọc Kalman mở rộng. Bộ lọc này có khả năng tuyến tính hóa giá trị trung bình và hiệp phương sai hiện thời được sử dụng trong các trường hợp theo vết đối tượng . Như mô tả ở Kalman rời rạc, wk và vk biểu thị tương ứng cho nhiễu tiến trình và nhiễu độ đo. Mô hình hệ thống mô tả sự thay đổi của trạng thái đối tượng theo thời gian : xk = f(xk-1, uk-1,wk-1)

Hai mô hình này đều là phi tuyến (các công thức vẫn giữ nguyên như ở lọc Kalman rời rạc chỉ khác duy nhất là các hàm f h là phi tuyến).

Mặc dù giá trị của của nhiễu độđo và nhiễu tiến trình chưa được biết song chúng ta vẫn có thể tính được xấp xỉ các vector trạng thái và vector độ đo mà không cần chúng:

với là ước lượng tiền nghiệm của trạng thái ở thời điểm trước. Sử dụng cùng các ký hiệu với lọc Kalman điển hình, theo tiến trình tuyến tính hóa và đạo hàm, công thức trong bước ước đoán:

với Ak là ma trận đạo hàm riêng Jacobi của hàm f(.) đối với xk, Wk là ma trận đạo hàm riêng Jacobi của hàm f(.) đối với wk, và Qk là ma trận hiệp phương sai nhiễu tiến trình.

Các công thức ở bước hiệu chỉnh:

với Hk là ma trận đạo hàm riêng Jacobi của hàm h(.) đối với xk , Vk là ma trận đạo hàm riêng Jacobi cuả hàm h(.) đối với vk, và Rk là ma trận hiệp phương sai nhiễu độ đo.

Các biến thể khác của lọc Kalman được đưa ra để cải thiện hiệu năng của nó đối với các ứng dụng của bài toán thị giác máy tính. Ví dụ như bộ lọc UKF (Unscented Kalman Filter) là một cải tiến của EKF.

Một phần của tài liệu Lọc kalman ứng dụng hệ thống dò vết đối tượng trong chuỗi video (Trang 44 - 52)