Module theo dõi đối tượng ảnh sử dụng bộ lọc Kalman Filter

Một phần của tài liệu Nghiên cứu và xây dựng module theo dõi tự động các đối tượng ảnh (Trang 39)

2.2.1. Phạm vi nghiên cứu

Dựa trên thông tin về các phương pháp theo dõi đối tượng ảnh đã và đang được phát triển, căn cứ vào những khó khăn và giả thiết của bài toán, với mục tiêu nghiên cứu một phương pháp có khả năng đáp ứng theo thời gian thực, đòi hỏi chi phí tính toán thấp, như đã đề cập ở các phần trình bày trên, đề tài sẽ tập trung xây dựng một mô hình sử dụng bộ lọc Kalman. Đối tượng thử nghiệm là chuyển động của người và phạm vi thử nghiệm là thực hiện theo dõi một hoặc nhiều người di chuyển trong khung cảnh tĩnh với camera đặt cố định.

2.2.2. Sơ đồ khối module

Đề tài đề xuất một hệ thống theo dõi đối tượng ảnh trong video với sơ đồ khối như ở hình 2-6.

Hệ thống bao gồm hai bước, phát hiện đối tượng và theo dõi đối tượng: 9 Bước 1- Phát hiện đối tượng: Bước này làm nhiệm vụ tìm các đối tượng

chuyển động trong từng frame ảnh.

Do trọng tâm của đề tài không phải là bài toán phát hiện đối tượng mà là bài toán theo dõi đối tượng nên đề tài sẽ lựa chọn một phương pháp đơn giản, phương pháp trừ nền, để thực hiện bước này.

Ngoài ra, vì hệ thống cài đặt mang tính module hóa nên bất kỳ giải thuật phát hiện đối tượng nào khác cũng có thể được sử dụng thay thế.

9 Bước 2 - Theo dõi đối tượng: Thực hiện dự báo vị trí của từng đối tượng cho frame tiếp theo.  

26

Bước theo dõi đối tượng sử dụng bộ lọc Kalman, và đây là nội dung chính mà đề tài đề cập tới. 

 

 

Hình 2-6. Sơ đồ khối module theo dõi đối tượng ảnh sử dụng bộ lọc Kalman

Trong bước phát hiện đối tượng lại được chia thành hai khối: mô hình hóa nền và tách đối tượng chuyển động. Khối mô hình hóa nền thực hiện xây dựng ảnh nền từ một số lượng nhất định những frame đầu vào. Khối tách đối tượng chuyển động thực hiện trừ frame ảnh xử lý cho ảnh nền, sau đó áp dụng một số biện pháp lọc bỏ nhiễu, liên kết thành phần, đặt ngưỡng để thu về kết quả là các vùng chuyển động thỏa mãn điều kiện đặt ra, và cũng chính là đối tượng cần quan tâm trong frame ảnh xử lý.

Bước theo dõi đối tượng được chia thành ba khối: dự báo vị trí của đối tượng, gán quan sát - đối tượng, cập nhật thông tin đối tượng. Khối gán quan sát - đối tượng, căn cứ vào một số đặc trưng của đối tượng, như kích thước, màu sắc xác

27

định sự tương ứng giữa các đối tượng trong những frame liên tiếp. Khối dự báo vị trí và cập nhật thông tin, sử dụng mô hình bộ lọc Kalman, sẽ tiến hành ước lượng vị trí đối tượng ở frame tiếp theo, sau đó sử dụng thông tin thu được ở frame hiện tại hiệu chỉnh lại thông số bộ ước lượng cho phù hợp

Những phần trình bày sau đây mô tả các kỹ thuật được sử dụng trong mỗi bước của module.

2.3. Phương pháp trừ nền

Mục này giới thiệu nguyên tắc chung của phương pháp trừ nền, là kỹ thuật sử dụng cho bước pháp hiện đối tượng. Bên cạnh đó, cũng sẽ đề cập đến các quá trình tiền xử lý nhằm có được vùng đối tượng ảnh thích hợp, dùng làm dữ liệu quan sát hoặc dữ liệu khởi tạo cho bước theo dõi kế tiếp.

2.3.1. Giới thiệu

Bởi vì tính đơn giản, và do thực tế ví trí lắp đặt camera quan sát thường cố định, nên phương pháp trừ nền (background subtraction) được sử dụng rộng rãi trong các ứng dụng liên quan đến ảnh và video. Để thực hiện phương pháp trừ nền, đầu tiên chúng ta phải học một mô hình nền (background model). Sau quá trình học, mô hình nền, hay ảnh nền (background) sẽ được so sánh với ảnh hiện tại. Khi đó, những phần giống nhau trên hai ảnh bị loại bỏ. Và những gì còn lại sau phép trừ này là thành phần mới xuất hiện trong khung cảnh (foreground), hay các đối tượng mà ta quan tâm.

Tất nhiên, nền chỉ là khái niệm gần đúng khi áp dụng thực tế. Ví dụ, nếu chúng ta quan sát một đoạn đường, có thể xem dòng phương tiện chuyển động là một nền. Nhưng nói chung, nền được coi như là tĩnh hoặc có những phần tử chuyển động mang tính chu kỳ. Chẳng hạn như cây cối đu đưa theo gió vào buổi sáng hay buổi tối và đứng yên vào buổi trưa, ánh đèn huỳnh quang thay đổi theo tần số dòng

28

điện. Ngoài ra, còn phải thấy rằng, có thể phân khung cảnh quan sát thành hai dạng, môi trường trong nhà và ngoài trời với những đặc điểm hoàn toàn phân biệt,.

2.3.2. Điều kiện thực hiện

Khi tiến hành các phương pháp mô hình nền, thực ra chúng ta đã mặc nhiên quan niệm: toàn bộ các pixel là độc lập. Điều này có nghĩa là, trong quá trình xây dựng mô hình với từng pixel, chúng ta không xem xét đến những pixel lân cận. Để giải quyết vấn đề này, có thể tiến hành xây dựng mô hình nhiều lớp. Tuy nhiên, biện pháp đó thường gây tốn kém chi phí về tài nguyên bộ nhớ và thời gian tính toán [7]. Vì vậy, thông thường, các kỹ thuật trừ nền sẽ bỏ qua những ngữ cảnh quá phức tạp. Đồng thời bổ sung thêm một số biện pháp xử lý ảnh, loại đi các pixel sai lệch (false positive pixels).

2.3.3. Phát hiện chuyển động

Việc phát hiện chuyển động trong video theo phương pháp trừ nền được thực hiện bằng cách tiến hành tính hiệu giữa frame ảnh hiện tại cho một ảnh nền

thu được sau quá trình học (background difference) :

(2-1) Như vậy, tại mỗi điểm ảnh bất kỳ, để biết nó có thuộc về đối tượng chuyển động hay không, ta áp dụng một luật quyết định như sau [9]:

Trong đó, là một giá trị ngưỡng và là tập pixel tương ứng của một đối tượng chuyển động. Giá trị ngưỡng được lựa chọn dựa trên các kết quả thực nghiệm sao cho việc tách đối tượng chuyển động khỏi nền hiệu quả nhất.

      yes,   

            (2-2) 

29

2.3.4. Giải thuật codebook

Trong thực tế, các khung cảnh quan sát thường có các đối tượng chuyển động như lá cây đu đưa theo gió, cánh quạt trần quay, màn che lay động… hoặc có sự thay đổi về ánh sáng như đám mây di chuyển, cửa sổ bị che khuất…

Do đó, như đã trình bày, phương pháp trừ nền tốt là phương pháp xây dựng mô hình nền theo chuỗi thời gian cho mỗi pixel hay những nhóm pixel. Tất nhiên, mô hình kiểu như vậy gây tốn kém về bộ nhớ cũng như thời gian tính toán. Ví dụ hệ thống Wallflower [34] của K.Toyama và nhóm nghiên cứu của ông, nếu chạy mô hình này trong 2 giây ở 30 Hz, thì cần đến 60 mẫu cho mỗi pixel, và mỗi pixel phải tiến hành quá trình học với 60 trọng số khác nhau [7].

Để giải quyết vấn đề thời gian thực hiện, cũng như xây dựng một mô hình trừ nền hiệu quả, K.Kim, T.H.Chalidabhongse, D.Harwood và L.Davis [20] đã đưa giải thuật trừ nền thông qua quá trình phân đoạn ảnh nền theo thời gian thực (Real-time

foreground-background segmentation) dựa trên mô hình bảng mã (codebook model)

hay kỹ thuật lượng tử hóa-tạo chùm (quantization/clustering techniques). Giải thuật sẽ tiến hành mã hóa theo chuỗi thời gian các giá trị màu quan sát được của mỗi vùng pixel ảnh vào một hay nhiều từ mã (codewords). Tức là bằng kỹ thuật lượng tử hóa vector, tạo ra một chùm các giá trị màu quan sát của mỗi pixel. Số lượng

codewords cần thiết cho mỗi pixel có thể thay đổi, nhưng thường ít khi vượt quá

sáu. Thước đo độ tương tự (similarity measure) sử dụng trong mã hóa là độ biến dạng màu (color distortion) và khoảng độ chói (brightness range). Sau khi ảnh nền được mã hóa, để phát hiện đối tượng trên frame mới, giải thuật sẽ quan sát từng vùng pixel của frame, so sánh màu và độ chói tại mỗi vùng với các giá trị tương ứng lưu trong codewords, Một pixel được xác định là pixel nền nếu nó thỏa mãn hai điều kiện.:

1) Biến dạng màu của pixel tương ứng với một số codewords nhỏ hơn một

30

2) Độ chói tại các pixel nằm trong khoảng độ chói của codeword.

Kết quả thực nghiệm về giải thuật trừ nền codebook cùng với so sánh giữa

giải thuật với những kỹ thuật trừ nền khác như MOG (Mixture of Gaussians), Kernel density xem thêm tại [20].

K.Kim thực hiện giải thuật với không gian màu RGB [20]. Tuy nhiên, không gian màu RGB chưa thực sự tối ưu. Các phát triển sau đó sử dụng những không gian màu khác, có một trục biểu diễn độ sáng như không gian màu HSV, YUV. Nguyên nhân là phần lớn những thay đổi của nền diễn ra trên trục ánh sáng chứ không phải trục màu sắc.

G.Bradski, A.Kaehler [7] đã cải tiến giải thuật của K.Kim bằng cách thay thế những  mô hình từ mã dạng ống (learning‐oriented tubes) trên không gian màu RGB bằng  các  từ  mã  dạng  hộp  (axis‐aligned  boxes)  dọc  theo  trục  không  gian  màu 

YUV.

31

Tiếp theo, chúng ta sẽ tìm hiểu giải thuật codebook xây dựng bởi G.Bradski,  A.Kaehler hoạt động như thế nào (hình 2-7). Một codebook gồm các codewords

dạng hộp, sẽ tăng dần kích thước, bao phủ toàn bộ giá trị màu quan sát theo thời gian. Nếu có giá trị mới xuất hiện, và nằm quá xa những hộp này, thì một nhóm

codewords mới được tạo ra, bao phủ giá trị mới và lại tiếp tục quá trình như các

codewords cũ tại vị trí mới. Trong quá trình học của phương pháp codebook, mỗi

codewords được xác định bởi hai ngưỡng (max, min) trên mỗi trục không gian màu

YUV. Các ngưỡng biên của chúng có thể mở rộng (max có thể lớn hơn, min có thể nhỏ đi) nếu một những mẫu nền mới xuất hiện rơi vào bên trong một ngưỡng học (LearnHigh, LearnLow), nằm trên giá trị max hoặc dưới giá trị min. Nếu mẫu nền mới nằm ngoài các hộp và các ngưỡng học, một codewords mới sẽ được tạo ra. Ở bước trừ nền, sẽ có hai giá trị ngưỡng so sánh (maxMode, minMode). Nếu giá trị

một pixel nằm ngoài khoảng max+maxMode phía trên và min-minMode phía dưới

thì sẽ được xác định là không thuộc nền.

2.3.5. Lọc bỏ nhiễu và liên kết thành phần liên thông

Sau khi thực hiện trừ nền, ảnh kết quả (background difference) thu được vẫn có thể còn nhiễu. Đó là những vùng phát hiện không mong muốn do giải thuật trừ nền chắc chắn không thể nào loại bỏ hết các yếu tố ảnh hưởng. Do đó, trước khi đưa vào phục vụ như dữ liệu quan sát của bài toán theo dõi, phải thực hiện một giai đoạn xử lý nhằm loại bỏ các nhiễu này (foreground cleanup) cũng như tiến hành phân tích và kết nối các thành phần liên thông (connected-components analysis) để giữ lại những kết quả có ích.

Để loại bỏ nhiễu, cần đưa ảnh kết quả, là một ảnh xám, vào công đoạn mô hình hóa hình thái (morphological) [7], gồm hai bước: morphological operation open xóa những vùng nhiễu về không, và morphological operation close cấu trúc

lại các vùng đó trả lại cho ảnh. Hai bước này hoạt động trên cơ sở các thuật toán co ảnh (erosion) và giãn ảnh (dilation).

32

Kết nối các thành phần liên thông tức là tìm những vùng kết quả trên ảnh có đường bao đủ lớn (large enough) trong số các vùng kết quả còn lại sau quá trình lọc bỏ nhiễu, thông qua so sánh kích thước của chúng với một số ngưỡng. Công việc gồm hai bước : xấp xỉ các vùng thành phần theo dạng đa giác hay đường bao lồi, và đặt giá trị ngưỡng cho các vùng thành phần để không bị loại bỏ [7].

2.4. Bộ lọc Kalman 2.4.1. Giới thiệu 2.4.1. Giới thiệu

Được Rudolph E.Kalman đưa ra năm 1960, bộ lọc Kalman (Kalmna Filter) nhanh chóng mở ra một cuộc cách mạng trong lĩnh vực xử lý tín hiệu. Ý tưởng cơ bản đằng sau bộ lọc Kalman là, bằng những giả thiết nhất định (set of assumptions), từ những kết quả đo trước đó của hệ thống, chúng ta hoàn toàn có khả năng xây dựng một mô hình trạng thái cho hệ thống, với mục tiêu tối đa hóa xác xuất hậu nghiệm (posteriori probability) những phép đo đã thực hiện [2]. Điểm quan trọng của bộ lọc Kalman nằm chỗ, có thể tiến hành tối đa hóa xác suất hậu nghiệm mà không cần giữ lại thông tin về những phép đo trước đó. Thay vào đó, chỉ cần cập nhật mô hình trạng thái hệ thống và lưu giữ lại mô hình này cho bước lặp tiếp theo. Điều này làm đơn giả hóa rất nhiều công việc tính toán khi sử dụng bộ lọc Kalman vào các ứng dụng.

Trước khi đi sâu tìm hiểu bộ lọc Kalman hoạt động như thế nào, chúng ta cần quan tâm đến các giả thiết (set of assumptions) khi áp dụng bộ lọc. Có ba giả thiết quan trọng đối với mô hình lý thuyết của bộ lọc Kalman :

1) Hệ thống được mô hình hóa là tuyến tính (linear system). 2) Nhiễu của phép đo là nhiễu trắng (white noise).

3) Nhiễu có phân phối Gaussian (Gaussian distribution).

Giả thiết thứ nhất mang ý nghĩa là trạng thái của hệ thống tại thời điểm k bất kỳ có thể được mô hình hóa bằng một phép nhân ma trận với trạng thái trước đó ở

33

thời điểm k-1. Hai giả thiết tiếp theo đảm bảo nhiễu là trắng và Gaussian, tức là nhiễu không liên hệ với nhau theo thời gian và biên độ của nó có thể mô tả chính xác thông qua giá trị trung bình và hiệp phương sai. Mặc dù, ba giả thiết này dường như đem lại các hạn chế, chúng vẫn đem lại những kết quả tốt trong nhiều trường hợp áp dụng [2].

Tiếp theo, chúng ta cần hiểu thế nào gọi là tối đa hóa xác xuất hậu nghiệm

của tập phép đo trước đó. Điều này có nghĩa là khi xây dựng một mô hình trạng thái hệ thống mới sau khi thực hiện phép đo, bằng cách kết hợp mô hình trạng thái trước đó, kèm theo một sai số nhất định và phép đo mới, cũng kèm theo sai số, phải là mô hình có xác xuất cao nhất. Vì mục đích này, bộ lọc Kalman cần có ba giả thiết như trên, nhằm đưa ra cách tốt nhất kết hợp thông tin từ những nguồn khác nhau hay từ một nguồn tại các thời điểm khác nhau.

2.4.2. Phương trình toán học

2.4.2.1. Các phương trình trạng thái và phép đo

Trong bài toán theo dõi ta gọi z là các quan sát, x là trạng thái của đối tượng cần theo dõi.

Xét trạng thái của một quá trình có điều khiển rời rạc theo thời gian (a discrete-time controlled process) cho bởi một phương trình sai phân ngẫu nhiên tuyến tính (linear stochastic difference equation):

với một phép đo z ∈ℜm là :

(2-3)

34

Các tham số ngẫu nhiên wk và vk thể hiện nhiễu của quá trình và nhiễu của phép đo (process and measurement noise). Chúng được giả định độc lập với nhau, trắng và có phân bố xác suất chuẩn:

Trong thực tế, các ma trận hiệp phương sai nhiễu quá trình (process noise

covariance) Q và hiệp phương sai nhiễu phép đo (measurement noise covariance) R

có thể thay đổi theo thời gian và phép đo, tuy nhiên thường giả định rằng chúng là hằng số.

Ma trận A kích thước n n× trong phương trình (2-3) liên kết trạng thái tại thời điểm trước đó k-1 với trạng thái tại thời điểm hiện tại k, nếu không xét đến thông số nhiễu quá trình. Chú ý là A có thể thay đổi sau mỗi bước, nhưng thường giả thiết nó cố định vì nói chung một hệ thống sẽ không thay đổi quá nhiều tại hai thời điểm liên tiếp. Ma trận B kích thước n l× thể hiện quan hệ giữa đầu vào điều khiển với trạng thái x. Ma trận H kích thước m n× trong phương trình (2-4) liên kết zk và xk. Thực tế H cũng có thể thay đổi sau mỗi bước hoặc sau mỗi phép đo, nhưng cũng thường giả thiết nó không đổi.

2.4.2.2. Các phương trình tính toán của bộ lọc

Chúng ta định nghĩa là ước lượng trạng thái tiên nghiệm (priori

state estimate) tại thời điểm k, mang thông tin về quá trình tại thời điểm k, và là ước lượng trạng thái hậu nghiệm (posteriori state estimate) tại bước k

Một phần của tài liệu Nghiên cứu và xây dựng module theo dõi tự động các đối tượng ảnh (Trang 39)

Tải bản đầy đủ (PDF)

(89 trang)