Tải bản đầy đủ (.pdf) (112 trang)

ứng dụng lọc particle trong bài toán theo vết đối tượng

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.33 MB, 112 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN KHOA CÔNG NGHỆ THÔNG TIN

BỘ MÔN CÔNG NGHỆ TRI THỨC

<b>LÊ NGUYỄN TƯỜNG VŨ - NGUYỄN MINH TRANG </b>

<b>ỨNG DỤNG LỌC PARTICLE TRONG </b>

<b>BÀI TOÁN THEO VẾT ĐỐI TƯỢNG</b>

<b>KHOÁ LUẬN CỬ NHÂN TIN HỌC </b>

<b>TP. HCM, 2005 </b>

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN KHOA CÔNG NGHỆ THÔNG TIN

BỘ MÔN CÔNG NGHỆ TRI THỨC

<b>LÊ NGUYỄN TƯỜNG VŨ - 0112082 NGUYỄN MINH TRANG - 0112159 </b>

<b>ỨNG DỤNG LỌC PARTICLE TRONG </b>

<b>BÀI TOÁN THEO VẾT ĐỐI TƯỢNG</b>

<b>KHOÁ LUẬN CỬ NHÂN TIN HỌC GIÁO VIÊN HƯỚNG DẪN </b>

<b>T.S LÊ HỒI BẮC </b>

<b>NIÊN KHĨA 2001 - 2005</b>

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

<b>LỜI CẢM ƠN </b>

Đầu tiên, chúng tôi xin chân thành gửi lời tri ân đến Thầy Lê Hồi Bắc. Luận này này sẽ khơng thể hồn thành nếu khơng có sự hướng dẫn, tin tưởng và tạo cơ hội của thầy. Chúng em xin chân thành cảm ơn sự chỉ bảo của thầy.

Chúng tôi cũng xin chân thành gửi lời tri ân đến Thầy Phạm Nam Trung. Thầy đã tận tình hướng dẫn, giúp đỡ, góp ý cho chúng em trong thời gian qua, cũng như tiếp thêm động lực và ý chí, giúp chúng em hoàn thành được luận văn.

Chúng em xin trân trọng cảm ơn quý Thầy cô trong Khoa Công nghệ thông tin trường Đại học Khoa học Tự nhiên Tp.Hồ Chí Minh đã tận tình giảng dạy, truyền đạt những kiến thức quý báu và tạo điều kiện cho chúng em được thực hiện luận văn này.

Đề tài này thuộc về một lĩnh vựa nghiên cứu mới trên thế giới là lại rất mới ở Việt Nam cộng thêm năng lực hạn chế của người thực hiện cho nên đề tài chắc chắn là chưa hoàn thiện và có nhiều sai sót. Chúng tơi mong nhận được nhiều ý kiến đóng góp và giúp để đề tài hoàn thiện hơn và được ứng dụng trong thực tiễn…

Sinh viên thực hiện

Nguyễn Minh Trang

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

<b>Nhận xét của giáo viên hướng dẫn </b>

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

<b>Nhận xét của giáo viên phản biện </b>

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

<b>TÓM TẮT LUẬN VĂN </b>

Lọc Particle là một phương pháp thành cơng trong bài tốn theo vết đối tượng theo thời gian thực. Nó là một phương pháp mới đang là sự tập trung của nhiều nghiên cứu hiện nay bởi nó khắc phục được nhược điểm của các phương pháp cổ điển như lọc Kalman, so khớp mẫu (Template Matching)…

Trong luận văn này, chúng tơi sẽ trình bày cơ sở lý thuyết của phương pháp lọc Particle, cũng như hai phương pháp mở rộng của lọc Particle: lọc Particle kết hợp với Mean shift ứng dụng cho bài toán theo vết 1 đối tượng, lọc Particle ứng dụng cho bài toán theo vết nhiều đối tượng. Qua khảo sát và cài đặt thử nghiệm cho thấy, hai phương pháp này thật sự là hai phương pháp mạnh mẽ và hiệu quả có thể là giải pháp cho các bài toán theo vết đối tượng thực tế.

Một số từ khóa: lọc Particle (Particle Filter), theo vết đối tượng (object tracking), phát hiện chuyển động (motion detection), ước lượng Bayesian (Bayesian Estimation).

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

<b>MỞ ĐẦU </b>

<i>Theo dõi đối tượng theo thời gian thực (real-time object tracking) là một công đoạn quan trọng trong rất nhiều ứng dụng thị giác máy tính (computer vision applications). </i>

Những hệ thống thuộc loại này có thể kể ra như là: hệ thống quan sát – theo dõi đối

<i>tượng, hệ thống giao diện người dùng dựa vào cảm nhận (perceptual user interface), những căn phịng thơng minh, hệ thống nén video dựa vào đối tượng (object-based </i>

<i>video compression) và những hệ thống thông minh hỗ trợ tài xế lái xe tự động. </i>

Mặc dù đã được nghiên cứu nhiều năm, bài toán “theo dõi đối tượng” vẫn là một vấn đề nghiên cứu mở cho đến ngày nay. Mức khó khăn của vấn đề này phụ thuộc nhiều vào đối tượng được phát hiện và theo vết như thế nào. Hiện nay, có rất nhiều phương pháp theo vết như: So khớp mẫu (Template Matching), Mean shift, lọc Kalman, lọc Particle … Mỗi phương pháp có điểm mạnh và điểm yếu riêng, tuy nhiên phương pháp lọc Particle có thể khắc phục được những nhược điểm của các phương pháp khác như: theo vết đối tượng theo thời gian thực, theo vết tốt các đối tượng trong trường hợp phi tuyến và không phải nhiễu Gauss …

Với mong muốn tiếp cận một hướng nghiên cứu mới trên thế giới và có nhiều ứng dụng thực tế ngay tại Việt Nam, chúng tôi đã đầu tư thực hiện đề tài “ỨNG DỤNG LỌC PARTICLE TRONG BÀI TỐN THEO VẾT ĐỐI TƯỢNG” với hai mục đích:

• Tìm hiểu phương pháp theo vết mới “lọc Particle”

• Ứng dụng phương pháp này trong bài tốn theo vết đối tượng Luận này được trình bày gồm bốn chương:

• <b><small>Chương 1:</small></b> Tổng quan về bài toán theo dõi đối tượng, giới thiệu chung về bài toán theo dõi đối tượng bao gồm: giới thiệu, các ứng dụng, các thách thức cùng với các hướng tiếp cận. Đồng thời đưa ra vấn đề mà đề tài tập trung: các phương pháp theo vết thơng dụng.

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

• <b><small>Chương 2:</small></b> Lọc Particle, giới thiệu phương pháp mà đề tài hướng đến: lọc Particle. Trong chương này, sẽ trình bày từ tổng quan cho đến các cơ sở lý thuyết của phương pháp lọc Particle.

• <b><small>Chương 3: </small></b>Ứng dụng lọc Particle trong bài toán theo vết đối tượng, giới thiệu về áp dụng phương pháp lọc Particle trong bài toán theo vết đối tượng thực tế, với hai phuơng pháp mở rộng của lọc Particle mà đề tài hướng đến: áp dụng phương pháp lọc Particle kết hợp với Mean shift trong bài toán theo vết một đối tượng; áp dụng phương pháp lọc Particle trong bài toán theo vết nhiều đối tượng (thuật toán ODAPF).

• <b><small>Chương 4: </small></b>Kết luận, tổng kết lại những phần đã nghiên cứu, tóm tắt lại kết quả đạt được, đồng thời đưa ra một số hướng phát triển cho việc giải quyết bài toán.

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

<b>MỤC LỤC </b>

LỜI CẢM ƠN ...i

Nhận xét của giáo viên hướng dẫn...ii

Nhận xét của giáo viên phản biện... iii

TÓM TẮT LUẬN VĂN ...iv

MỞ ĐẦU ...v

MỤC LỤC ...vii

Danh mục hình vẽ ...x

Danh mục bảng biểu ...xii

1. Tổng quan về bái toán theo dõi đối tượng ...1

1.1. Giới thiệu ...1

1.2. Hệ thống theo dõi đối tượng ...3

1.2.1. Phát hiện đối tượng ...3

1.2.2. Phân đoạn...5

1.2.3. Theo vết đối tượng...6

1.3. Các phương pháp theo vết thông thường...6

1.3.1. So khớp mẫu (Template matching)...6

2.2.1. Phương pháp Monte Carlo...19

2.2.2. Phương pháp hàm tích lũy xác suất nghịch đảo ...22

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

2.2.3. Phương pháp lấy mẫu loại trừ...23

2.2.4. Phương pháp Metropolis-Hasting...24

2.2.5. Phương pháp lấy mẫu quan trọng ...27

2.3. Phương pháp lấy mẫu quan trọng tuần tự ...31

2.4. Giả lập thuật toán SIS ...34

2.5. Các vấn đề về thuật toán SIS ...37

2.5.1. Sự thối hóa của thuật tốn SIS ...37

2.5.2. Vấn đề chọn hàm mật độ đề xuất...40

2.5.3. Tái chọn mẫu...43

2.6. Thuật toán lọc Particle ...50

2.7. Giả lập thuật toán lọc Particle...52

2.8. Nhận xét ...56

3. Mở rộng của lọc Particle và ứng dụng trong theo vết đối tượng dựa vào video .583.1. Mở rộng của lọc Particle...58

3.1.1. Multi-modal Particle Filter ...60

3.1.2. Thuật toán ODAPF ...66

3.1.3. Thuật toán MeanShift Particle ...70

3.2. Ứng dụng ...75

3.2.1. Phát hiện đối tượng ...76

3.2.2. Theo vết đối tượng...81

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

4.2. Hướng phát triển ...94DANH MỤC TÀI LIỆU THAM KHẢO...96

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

<b>Danh mục hình vẽ </b>

Hình 1 Ví dụ về phương pháp lấy mẫu loại trừ ...23

Hình 2 Thuật tốn Sequential Importance Sampling...34

Hình 3 Dữ liệu giả lập thuật tốn SIS ...35

Hình 4 Kết quả lọc bằng SIS...36

Hình 5 Sự thối hóa của thuật tốn SIS ...37

Hình 6 Ví dụ về trường hợp dẫn đến sai lầm khi chọn hàm mật độ đề xuất tối ưu.43Hình 7 Thuật tốn tái chọn mẫu hệ thống...47

Hình 8 Ví dụ về thuật toán tái chọn mẫu với 3 mẫu ...48

Hình 9 Thuật tốn Particle Filter ...51

Hình 10 Dữ liệu giả lập thuật tốn lọc Particle...53

Hình 11 Kết quả lọc bằng Particle Filter ...53

Hình 12 Hiện tượng thối hóa mẫu đã được loại bỏ...54

Hình 13 Mật độ đề xuất kết hợp ...67

Hình 14 Thuật tốn ODAPF Tracker...70

Hình 15 Thuật tốn Mean Shift kết hợp Particle Filter ...72

Hình 16 Kết quả lọc Particle qua các frame 2, 3, 4, 5, 6 (từ trái qua phải, từ trên xuống dưới) ...73

Hình 17 Kết quả lọc MS+Particle qua các frame 2, 3, 4, 5, 6 (từ trái qua phải, từ trên xuống dưới)...73

Hình 18 Kết quả lọc Particle qua các frame 12, 13, 14, 15, 15 (từ trái qua phải, từ trên xuống dưới)...74

Hình 19 Kết quả lọc MS+Particle qua các frame 12, 13, 14, 15, 16 (từ trái qua phải, từ trên xuống dưới)...74

Hình 20 Hình nền và mặt nạ vùng chuyển động...78

Hình 21 Kết quả học nền ...79

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

Hình 22 Kết quả phát hiện đối tượng...80

Hình 23 Thuật tốn phát hiện đối tượng dựa trên luật...81

Hình 24 Mơ hình màu đa vùng ...83

Hình 25 Một kết quả thành cơng của ODAPF...86

Hình 26 Một kết quả thành cơng của ODAPF...87

Hình 27 Một kết quả theo dõi đa đối tượng...88

Hình 28 Thuật toán ODAPF bù lỗi cho thuật toán phát hiện đối tượng...88

Hình 29 Thuật tốn ODAPF bù lỗi cho thuật tốn phát hiện đối tượng...89

Hình 30 Thuật tốn ODAPF bù lỗi cho thuật tốn phát hiện đối tượng...89

Hình 31 Trường hợp lỗi của ODAPF ...89

Hình 32 Trường hợp lỗi của ODAPF ...90

Hình 33 Trường hợp lỗi của ODAPF ...90

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

<small>Luận văn tốt nghiệp </small>

<b>1. Tổng quan về bài toán theo dõi đối tượng</b>

<b>1.1. Giới thiệu </b>

Theo dõi đối tượng theo thời gian thực (real-time object tracking) là một công đoạn quan trọng trong rất nhiều ứng dụng thị giác máy tính (computer vision applications). Những hệ thống thuộc loại này có thể kể ra như là: hệ thống quan sát – theo dõi đối tượng, hệ thống giao diện người dùng dựa vào cảm nhận (perceptual user interface), những căn phịng thơng minh, hệ thống nén video dựa vào đối tượng (object-based video compression) và những hệ thống thông minh hỗ trợ tài xế lái xe tự động.

Một trong những mục tiêu quan trọng nhất của theo dõi đối tượng là để “hiểu” được những chuyển động của đối tượng. “Hiểu” những thông tin về đối tượng như vị trí trong khơng gian, vận tốc chuyển động và những đặc trưng vật lý khác, một hệ thống thơng minh có thể thực hiện các bước xử lý khác ở cấp cao hơn như nhận dạng đối tượng, nhận dạng chuyển động, lý luận (reasoning) và tính toán trên những đặc trưng vật lý này.

Mặc dù đã được nghiên cứu nhiều năm, bài toán “theo dõi đối tượng” vẫn là một vấn đề nghiên cứu mở cho đến ngày nay [Guo2001]. Mức khó khăn của vấn đề này phụ thuộc nhiều vào đối tượng được phát hiện và theo vết như thế nào. Nếu như chỉ có một vài đặc trưng thị giác, chẳng hạn như màu sắc … được dùng để biểu diễn đối tượng, thì khá dễ dàng để xác định tất cả các pixel cùng màu với đối tượng. Nhưng thực tế lại hồn tồn khác, ví dụ như khn mặt của một người cụ thể sẽ có đầy đủ các chi tiết tri giác và thông tin nhiễu chẳng hạn như các tư thế và sự chiếu sáng khác nhau, rất khó để mà phát hiện, nhận diện và theo vết. Hầu hết các khó khăn này nảy sinh từ khả năng biến động của ảnh video bởi vì các đối tượng video thường là các đối tượng chuyển động. Khi một đối tượng chuyển động qua vùng quan sát của camera, hình ảnh

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">

<small>Luận văn tốt nghiệp </small>

về đối tượng có thể thay đổi rất nhiều. Sự thay đổi này đến từ 3 nguồn chính: sự thay đổi tư thế đối tượng đích hay sự biến dạng của đối tượng đích, sự thay đổi về độ chiếu sáng, và sự che khuất (occlusion) một phần hay tồn bộ đối tượng đích.

Có rất nhiều phương pháp giải quyết bài tốn này, ta có thể phân loại thành bốn cách tiếp cận chính: tiếp cận dựa trên mơ hình, tiếp cận dựa trên miền, tiếp cận dựa trên đường viền và tiếp cận dựa trên đặc trưng.

<b>• Tiếp cận dựa trên mơ hình </b>

Cách tiếp cận dựa trên mơ hình bao gồm việc tạo mơ hình hình học cấu trúc của đối tượng. Các ràng buộc trên việc mơ hình được cho phép biến dạng như thế nào có thể được kết hợp vào quá trình so khớp. Vấn đề với cách tiếp cận này là quá trình khởi tạo tự động thì khó và chi phí tính tốn cao do độ phức tạp của mơ hình.

<b>• Tiếp cận dựa trên miền </b>

Cách tiếp cận dựa trên miền bao gồm việc kết hợp một miền với mỗi đối tượng đang được theo vết. Miền được theo vết qua thời gian bằng phép đo độ tương tự. Lợi ích của cách tiếp cận này là khởi tạo khá dễ dàng, chỉ có vị trí và kích thước của cửa sổ cần được định nghĩa. Các tham số của thuật tốn cũng có ý nghĩa vật lý, dễ dàng khái niệm hóa.

<b>• Tiếp cận dựa trên đường viền </b>

Cách tiếp cận dựa trên đường viền bao gồm tìm đường viền bao của một đối tượng và sau đó cố gắng làm khớp đường viền với các đối tượng trong các frame sau. Nơi khớp nhất sẽ là đường viền hiện tại, mơ hình sẽ cập nhật đường viền hiện tại để phản ánh hình dáng của đối tượng trong frame hiện tại. Q trình này được lặp lại với mơ hình đường viền được cập nhật. Ưu điểm của cách tiếp cận này là là khả năng xử lý hiệu quả sự che khuất một

</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">

<small>Luận văn tốt nghiệp </small>

phần (partial occlusion). Tuy nhiên vấn đề với mơ hình là nó u cầu sự khởi tạo chính xác, và điều này thì khó để thực hiện tự động.

<b>• Tiếp cận dựa trên đặc trưng </b>

Khác với các cách tiếp cận trên đều theo vết toàn bộ đối tượng, cách tiếp cận dựa trên đặc trưng chỉ theo vết một tập các đặc trưng của đối tượng. Ví dụ như chỉ theo vết các điểm ở góc của đối tượng, vị trí của đối tượng trong frame sau sẽ được tìm thấy bằng cách tìm các điểm góc mà khớp với các điểm của mơ hình nhất. Ưu điểm của cách tiếp cận này là xử lý được sự che khuất một phần. Khi đối tượng bị che khuất, một số các đặc trưng vẫn cịn thấy được và có thể được dùng trong quá trình theo vết. Khuyết điểm của phương pháp này là chất lượng theo vết phụ thuộc nhiều vào việc chọn các đặc trưng. Các đặc trưng phải được chọn sao cho chúng cung cấp sự nhận diện duy nhất cho đối tượng, nó thì khơng phải là một nhiệm vụ dễ.

<b>1.2. Hệ thống theo dõi đối tượng </b>

Một hệ thống theo dõi đối tượng thơng thường gồm 3 phần: • Phát hiện đối tượng (Object Detection)

• Phân đoạn (Segmentation)

• Theo vết đối tượng (Object Tracking)

Dưới đây, sẽ mô tả nhiệm vụ của mỗi phần và một số cách tiếp cận để giải quyết các phần trên. Các hệ thống theo dõi hiệu quả thường kết hợp nhiều phương pháp khác nhau.

<b>1.2.1. Phát hiện đối tượng </b>

Phát hiện đối tượng trong video [Guo2001] là xác minh sự hiện diện của một đối tượng trong chuỗi ảnh và cũng có thể định vị chính xác. Các hệ thống theo dõi đối tượng

</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">

<small>Luận văn tốt nghiệp </small>

thường bắt đầu bằng q trình phát hiện đối tượng, ngồi ra phát hiện đối tượng được lặp lại trong chuỗi ảnh sau thường cần thiết hỗ trợ và xác minh cho quá trình theo vết.

Một số cách tiếp cận phát hiện đối tượng thông dụng:

<b>a) Phát hiện đối tượng dựa trên đặc trưng </b>

Tùy vào đặc trưng được chọn, ta có các cách tiếp cận khác nhau như: dựa trên hình dáng, dựa trên màu sắc. Trong đó, cách tiếp cận dựa trên màu sắc được xem là thơng dụng nhất vì đặc trưng màu sắc thì dễ dàng lấy được và chi phí tính tốn thấp.

<b>b) Phát hiện đối tượng dựa trên mẫu </b>

Nếu như có một mẫu mơ tả đối tượng, thì việc phát hiện đối tượng trở thành quá trình so khớp các đặc trưng giữa mẫu và chuỗi ảnh dưới sự phân tích. Phát hiện đối tượng với việc so khớp chính xác thường tốn nhiều chi phí và chất lượng so khớp phụ thuộc vào chi tiết và mức độ chính xác của mẫu đối tượng. Có hai kiểu so khớp mẫu, so khớp mẫu cố định và so khớp mẫu biến dạng.

<b>c) Phát hiện đối tượng chuyển động </b>

Phần lớn các nghiên cứu về cách giải quyết bài toán theo dõi đối tượng được tập trung trên vấn đề phát hiện đối tượng chuyển động trong thập kỷ qua. Bởi hầu hết các hệ thống theo dõi thì quan tâm đến các đối tượng đang chuyển động. Có rất nhiều thuật tốn phát hiện chuyển động đã được đề nghị. Chúng được phân loại tương đối thành các nhóm sau.

• Dựa trên các kỹ thuật lấy ngưỡng

Cách tiếp cận này dựa trên việc phát hiện những thay đổi theo thời gian tại mức pixel hay khối. Kỹ thuật lấy ngưỡng được sử dụng nhằm chống nhiễu, gia tăng hiệu quả của thuật toán. Một số phương

</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">

<small>Luận văn tốt nghiệp </small>

pháp theo cách tiếp cận này như: phát hiện chuyển động dựa trên sự khác biệt theo thời gian, phát hiện chuyển động dựa trên trừ nền. • Dựa trên các kiểm tra thống kê

Sự khác biệt giữa các frame được mơ hình như hỗn hợp của phân bố Gaussian và Laplacian.

• Dựa trên việc xây dựng hàm chi phí tồn cục

Vấn đề phát hiện chuyển động được đưa vào công thức nhằm giảm thiểu hàm mục tiêu tồn cục. Mơ hình được sử dụng rộng rãi là các trường ngẫu nhiên Markov theo không gian (Spatial Markov Random Fields) qua phân bố Gibbs. Phương pháp này thì mạnh, nhưng cũng tốn khá nhiều chi phí.

<b>1.2.2. Phân đoạn </b>

Phân đoạn các chuỗi ảnh [Smith1997] thành các đối tượng chuyển động khác nhau là bước kế tiếp sau khi phát hiện đối tượng. Việc phân đoạn này thường dựa trên thông tin vận tốc chuyển động ví dụ như từ các đối tượng ở giai đoạn đầu, ta kết hợp các đối tượng có cùng vận tốc chuyển động theo một ràng buộc nào đó chẳng hạn là tính lân cận.

Ta có các cách tiếp cận sau:

• Phân đoạn dựa trên các phép đo cục bộ (Local Measurements)

• Phân đoạn dựa trên phân cụm đơn giản (Simple Clustering) hay sự mâu thuẫn với vận tốc nền (Inconsistency with Background Flow)

• Phân đoạn dựa trên các phép biến đổi ảnh phân tích (Analytic Image Transformations)

• Phân đoạn dựa trên q trình quy tắc hóa (Regularization)

</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20">

<small>Luận văn tốt nghiệp </small>

• Phân đoạn dựa trên phân cụm có sắp xếp toàn cục (Globally Organized Clustering)

<b>1.2.3. Theo vết đối tượng </b>

Theo vết đối tượng [Guo2001] là giám sát các thay đổi theo không gian và thời gian của đối tượng trong suốt chuỗi video, bao gồm sự hiện diện, vị trí, kích thước, hình dáng… của đối tượng.

Một số phương pháp theo vết thơng thường: • So khớp mẫu

• Theo vết Meanshift

• Tiếp cận Bayesian (lọc Kalman, lọc Particle)

<b>1.3. Các phương pháp theo vết thông thường </b>

<b>1.3.1. So khớp mẫu (Template matching) </b>

Thủ tục trong so khớp mẫu như sau: một miền nhỏ chung quanh điểm cần được theo vết sẽ được dùng làm mẫu. Mẫu này sau đó dùng để tìm ra frame ảnh kế tiếp bằng cách sử dụng các kỹ thuật tương quan [Krattenthaler1994]. Vị trí với kết quả cao nhất sẽ là so khớp tốt nhất giữa mẫu và ảnh.

Bằng cách cập nhật các mẫu theo chuỗi ảnh, các biến dạng lớn cũng có thể được theo vết [Jain1996]. Sử dụng một trong 3 luật cập nhật cơ bản như sau:

1. Nếu có một sự thay đổi lớn giữa vị trí mẫu ban đầu và vị trí mới thì vị trí mẫu mới được chọn. Trong trường hợp này, các mẫu được hốn đổi hồn tồn bởi hình dạng mới của chúng.

2. Nếu có các thay đổi nhỏ giữa vị trí ban đầu và mới của mẫu, một phiên bản trung bình giữa mẫu mới và cũ sẽ được tính và được cập nhật như mẫu mới.

</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21">

<small>Luận văn tốt nghiệp </small>

Bằng cách này, các đạo hàm nhỏ liên quan đến nhiễu sẽ là trung bình, do đó gia tăng được khả năng theo vết tránh nhiễu.

3. Nếu chỉ có các thay đổi quá nhỏ giữa các vị trí ban đầu và mới, thì mẫu cũ sẽ được sử dụng. Điều này rất quan trọng cho các đối tượng tịnh tiến bởi các lượng nhỏ hơn một pixel: nếu như ta cập nhật lại thì sẽ bị mất các thơng tin dịch pixel nhỏ.

• Ưu điểm: khơng chịu ảnh hưởng bởi nhiễu và hiệu ứng chiếu sáng, theo vết được các đối tượng biến dạng.

• Khuyết điểm: độ phức tạp tính tốn cao, chất lượng so khớp phụ thuộc vào chi tiết và độ chính xác của mẫu đối tượng.

<b>1.3.2. Theo vết Meanshift </b>

Dorin Comaniciu đã giới thiệu phương pháp theo vết màu Meanshift [Comaniciu2003].

<i>Đây là một phương pháp theo vết tối ưu hóa tối thiểu cục bộ. Mỗi vị trí x<small>i </small></i>trong miền ứng viên của theo vết sẽ tương ứng với một trọng số . <i>w<sub>i</sub></i>

−= <i><sup>m</sup></i>

)()ˆ(ˆ

</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22">

<small>Luận văn tốt nghiệp </small>

<small>ˆ</small> <i> </i> (2)

Với <i>g</i>(<i>x</i>)=−<i>k</i>'(<i>x</i>)<i> và k(x) là một hàm nhân (kernel function). </i>

Quá trình được lặp lại cho đến khi khơng có sự thay đổi trong vị trí mới. Các bước tính tốn cơ bản trong phương pháp theo vết Meanshift:

Cho trước mơ hình đích

{ }

<i>q</i>ˆ<i><sub>u u</sub></i><sub>=</sub><sub>1...</sub><i><sub>m</sub></i> và vị trí của nó trong frame trước

<i>ˆy</i>

<sub>0</sub>.

1. Khởi tạo vị trí của đích trong frame hiện tại với

<i>ˆy</i>

<sub>0</sub>, tính mơ hình ứng viên

{

<i>p y</i>ˆ ˆ<i><sub>u</sub></i>( )<sub>0</sub>

}

<i><sub>u</sub></i><sub>=</sub><sub>1...</sub><i><sub>m</sub></i> và tính

( )

<small>001</small>

3. Tìm vị trí đích ứng viên kế tiếp theo (2)

4. Tính ra mơ hình mới

{

<i>p y</i>ˆ ˆ<i><sub>u</sub></i>( )<sub>1</sub>

}

<i><sub>u</sub></i><sub>=</sub><sub>1...</sub><i><sub>m</sub></i> và tính được

6. Nếu <i><small>y</small></i><small>ˆ</small><sub>1</sub><small>−</small> <i><small>y</small></i><small>ˆ</small><sub>0</sub> <small><</small>ε thì dừng, nếu khơng <i>y</i>ˆ<sub>0</sub> ← <i>y</i>ˆ<sub>1</sub>, tiếp tục bước 2.

Meashift là một phương pháp đơn giản và hiệu quả cho theo vết thời gian thực. Nhưng nó chỉ tối ưu hố cục bộ chứ khơng tồn cục. Khi màu nền và màu đối tượng giống nhau, phương pháp này sẽ khơng cịn tác dụng.

</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="23">

<small>Luận văn tốt nghiệp </small>

<b>1.3.3. Tiếp cận Bayesian </b>

<b>1.3.3.1. Ước lượng Bayesian</b>

Tiếp cận theo phương pháp Bayesian [Morrell2003] là phương pháp dựa trên xác suất, sử dụng các phương trình dự đốn (prediction) để dự đốn trạng thái của đối tượng và phương trình cập nhật (updation) - hay còn gọi là hàm trơn (smoothing) - để hiệu chỉnh lại các dự đốn trước đó về trạng thái của đối tượng dựa trên những tri thức thu thập được từ các quan sát (observation) trên đối tượng.

Quy ước một số ký hiệu sau:

Đối với trạng thái (q trình khơng được biết):

• Chuỗi các trạng thái từ thời điểm 0 đến k:

X

<sub>0:k</sub>

=X ,X ,...,X

<sub>0</sub> <sub>1</sub> <sub>k</sub>

• Chuỗi các giá trị trạng thái từ thời điểm 0 đến k:

x

<sub>0:k</sub>

=x , x ,..., x

<sub>0</sub> <sub>1</sub> <sub>k</sub>

• Hàm mật độ của

X

<sub>k</sub>:

p x( )

<sub>k</sub>

• Hàm mật độ ghép từ

X

<sub>0</sub> đến

X

<sub>k</sub>:

p x(

<sub>0:k</sub>

)=p x , x ,..., x(

<sub>0</sub> <sub>1</sub> <sub>k</sub>

)

Tương tự, đối với quá trình quan sát

• Chuỗi các quan sát từ thời điểm 1 đến k:

Z

<sub>1:k</sub>

=Z , Z ,..., Z

<sub>1</sub> <sub>2</sub> <sub>k</sub> • Giá trị quan sát tại thời điểm k:

z

<sub>k</sub>

</div><span class="text_page_counter">Trang 24</span><div class="page_container" data-page="24">

<small>Luận văn tốt nghiệp </small>

Lỗi ước lượng: <sub>X</sub><sup></sup><sub>k|k</sub> =<sub>X</sub><sub>k</sub>−<sub>X</sub>ˆ<sub>k|k</sub>.

Hàm chi phí như là bình phương cho lỗi ước lượng:

( )g .

<small>1:k</small>

( )(

<small>1:kk</small>

)

<small>1:k0:k1:k1:k</small>

=

</div><span class="text_page_counter">Trang 25</span><div class="page_container" data-page="25">

<small>Luận văn tốt nghiệp </small>

<b>1.3.3.2. Một số phương pháp dựa trên ước lượng Bayesian </b>

Một số phương pháp theo vết thông dụng dựa trên ước lượng Bayesian là: • Lọc Kalman

• Lọc HMM

• Lọc Particle

Lọc Kalman đã được biết như là một phương pháp cổ điển, nổi tiếng được phát minh từ năm 1960 bởi R.E.Kalman. Nó là một thuật toán theo vết tối ưu nhất trong trường hợp hệ là tuyến tính và nhiễu có phân phối Gauss. Extended Kalman và Unscented Kalman tuy giải quyết được trường hợp phi tuyến và không phải nhiễu Gauss nhưng cũng chỉ giải quyết tốt bài toán trong trường hợp phương trình biến đổi có bậc 2.

Lọc HMM (Hidden Markov Model) là thuật toán lọc tối ưu rời rạc. Nó khơng địi hỏi những u cầu về tuyến tính cũng như phân phối của hệ. Tuy nhiên, lọc HMM chỉ có thể được áp dụng trong trường hợp hệ có trạng thái hữu hạn và xác định.

Lọc Particle được phát minh nhằm giải quyết tốt hơn bài tốn lọc, đặc biệt là nó có thể khắc phục được mọi nhược điểm của lọc Kalman và cũng khơng u cầu hệ phải có tập trạng thái hữu hạn.

<b>1.3.3.3. Lọc Kalman </b>

Vấn đề chung của Kalman Filter [Welch2003] là cố gắng ước lượng trạng thái <i>x</i>∈

R

<i><small>m</small></i>

của một q trình được kiểm sốt theo thời gian rời rạc theo phương trình “stochastic difference” tuyến tính

</div><span class="text_page_counter">Trang 26</span><div class="page_container" data-page="26">

<small>Luận văn tốt nghiệp </small>

Các tham số ngẫu nhiên và thể hiện nhiễu của quá trình và nhiễu của phép đo. Chúng được giả định là độc lập với nhau, trắng và với phân bố chuẩn.

Lưu ý rằng các ma trận <i>A B H</i>, , có thể thay đổi theo mỗi bước, nhưng ta giả định rằng chúng là không đổi.

Thuật tốn Discrete Kalman Filter:

Tóm lại, thuật tốn Discrete Kalman Filter là quy trình lặp lại hai bước sau: Bước 1: Time Update (Dự đoán)

Ta dự đoán trạng thái và hiệp biến lỗi ước lượng tại bước k từ bước k-1.

Bước 2: Measurement Update (Hiệu chỉnh)

Nhiệm vụ đầu tiên trong suốt quá trình cập nhật là tính “gain” Kalman, <i>K<sub>k</sub></i>.

</div><span class="text_page_counter">Trang 27</span><div class="page_container" data-page="27">

<small>Luận văn tốt nghiệp </small>

Sau mỗi bước Dự đóan_Hiệu chỉnh, q trình “sử dụng ước lượng posteriori trước

<i>x</i> <sub>−</sub> để dự đoán một ước lượng priori mới <i>x</i>ˆ<i><sub>k</sub></i><sup>−</sup>” lặp lại. Tính chất đệ quy này là một trong những đặc điểm hấp dẫn của Kalman Filter_ dễ thực hiện hơn bởi vì nó khơng phải ước lượng trạng thái mới dựa trên tất cả các dữ liệu trước đó.

<b>1.3.3.4. Lọc Kalman mở rộng(Extended Kalman) </b>

Lọc Kalman ban đầu không thể áp dụng được cho trường hợp phi tuyến tính. Vì thế một số nghiên cứu mở rộng được thực hiện trên lọc Kalman nhằm giải quyết các các vấn đề phi tuyến và không phải nhiễu Gauss. Phương pháp thông dụng nhất đã được biết là lọc Extended Kalman [Welch2003] (Gelb 1996; Grewal và Andrew 1993; Jazwinski 1970). Đây là hệ thống phi tuyến tính được định nghĩa bởi:

Với ˆ<i>x là ước lượng posterior của trạng thái (từ thời điểm trước bước ). <sub>k</sub>k</i>

Thuật toán Extended Kalman Filter:

Thuật tốn Extended Kalman là quy trình lặp lại của hai bước sau: Bước 1: Time Update (Dự đoán)

Ta dự đoán trạng thái và hiệp biến lỗi ước lượng tại bước k từ bước k-1.

<i><sub>k</sub><sub>k -1</sub><sub>k</sub></i>

<i>x = f x ,u ,0 </i>

</div><span class="text_page_counter">Trang 28</span><div class="page_container" data-page="28">

<small>Luận văn tốt nghiệp </small>

= <i><small>T</small></i> + <i><small>Tkk kkkkk</small></i>

Bước 2: Measurement Update (Hiệu chỉnh)

Nhiệm vụ đầu tiên trong suốt quá trình cập nhật là tính “gain” Kalman,

<i>K</i>

<i><sub>k</sub></i>.

<b>1.4. Kết luận </b>

Trong các phương pháp theo vết hiện nay, mỗi phương pháp có điểm yếu và điểm mạnh của nó. Tuy nhiên, phương pháp lọc Particle có thể khắc phục được các nhược điểm đó. Nó được biết như là phương pháp theo vết tốt nhất hiện nay. Các chương sau, sẽ đưa ra chi tiết về phương pháp lọc Particle cũng như ứng dụng lọc Particle vào bài toán theo dõi đối tượng.

</div><span class="text_page_counter">Trang 29</span><div class="page_container" data-page="29">

<small>Luận văn tốt nghiệp </small>

<b>2. Lọc Particle </b>

<b>2.1. Giới thiệu </b>

<i>Lọc (Filtering) là bài toán ước lượng trạng thái của hệ thống ngay khi một tập các quan </i>

sát về hệ thống đó được thu nhận và có hiệu lực [Merwe2000]. Các quan sát này có thể bao gồm các tín hiệu thu nhận từ: ra-đa, hệ thống định vị bằng sóng âm, thiết bị thu nhận hình ảnh (video), từ kế, gia tốc kế,… Bài toán này đóng vai trị cực kỳ quan trọng trong rất nhiều lĩnh vực khoa học, công nghệ và kinh tế, tài chính. Để giải bài tốn này, chúng ta thực hiện mơ hình hóa sự biến đổi của hệ thống và nhiễu trong các phép đo (quan sát). Kết quả thu được từ quá trình này thường là các đại lượng phi tuyến và có

<i>phân phối phi Gauss (Non-Gaussian). </i>

Như ta đã biết, hai phương pháp tối ưu đã được áp dụng là lọc Kalman và lọc HMM. Những phương pháp này cho chúng ta một giải pháp hồn chỉnh bằng giải tích

<i>(Analytical Solution). Tuy nhiên, để áp dụng, hệ cần phải thỏa những ràng buộc sau </i>

• <b><small>Đối với lọc Kalman:</small></b> Hệ tuyến tính và nhiễu Gauss.

• <b><small>Đối với lọc HMM:</small></b> Hệ có tập trạng thái là xác định và hữu hạn.

Điều này thực sự gây ra nhiều trở ngại trong việc giải quyết nhiều vấn đề trong thực tế vì như đã nói ở trên, các độ đo thu được thường là các đại lượng phi tuyến và có phân phối phi Gauss.

Vào năm 1979, Anderson và Moore đưa ra thuật toán lọc Kalman mở rộng

<i>(Extended Kalman Filter - EKF). Thuật toán này là một trong những thuật toán tốt nhất </i>

để giải bài toán phi Gauss và phi tuyến lúc bấy giờ. Thuật tốn này hoạt động dựa trên

<i>ý tưởng tuyến tính hóa (Linearization) các quan sát thu được bằng cách ước lượng các </i>

đại lượng này bằng một chuỗi khai triển Taylor. Tuy nhiên, trong nhiều trường hợp, chuỗi ước lượng trong EKF mơ hình hóa rất kém những hàm phi tuyến và phân phối xác suất cần quan tâm. Và kết quả là thuật tốn sẽ khơng hội tụ.

</div><span class="text_page_counter">Trang 30</span><div class="page_container" data-page="30">

<small>Luận văn tốt nghiệp </small>

Vào năm 1996, Julier và Uhlmann đề xuất một thuật toán lọc dựa trên quan điểm rằng để xấp xỉ một hàm phân phối xác suất dạng Gauss thì dễ hơn là phải xấp xỉ một hàm phân phối phi tuyến bất kỳ. Thuật toán này được đặt tên là Unscented Kalman

<i>Filter (UKF). Thuật toán này đã được chứng minh là có kết quả tốt hơn EKF. Tuy </i>

nhiên, một lần nữa, giới hạn của UKF là nó khơng thể được áp dụng trong các bài tốn có phân phối phi Gauss tổng quát.

Các bộ lọc kể trên đều hoạt động dựa vào nhiều giả định của hệ nhằm đảm bảo về khả năng giải quyết bài tốn bằng các phương trình giải tích. Tuy nhiên, như trên đã nói, dữ liệu trong thực tế có thể rất phức tạp, thông thường bao gồm nhiều thành phần phi Gauss, phi tuyến và rất lớn (theo nghĩa dữ liệu có rất nhiều chiều). Điều này làm cho việc tìm ra một giải pháp hợp lý bằng phương pháp giải tích là hầu như khơng thể.

Vào khoảng năm 1998, cùng với sự ra đời của thuật toán CONDENSATION [Blake1998], một loạt các thuật toán lọc tổng quát dựa vào phương pháp Monte Carlo

<i>Tuần Tự (Sequential Monte Carlo – SMC) với nhiều tên gọi khác nhau như lọc Bootstrap (Bootstrap Filters), lọc Particle (Particle Filters), lọc Monte Carlo (Monte </i>

<i>Carlo Filters) được ra đời, đã giúp giải quyết bài toán lọc tổng quát một cách triệt để. </i>

Các phương pháp này khơng địi hỏi phải đặt ra bất kỳ giả định nào về hệ, ngồi ra, chúng cịn rất linh động, mềm dẻo, dễ cài đặt, có khả năng mở rộng để thực hiện trong mơi trường tính tốn song song và đặc biệt là hoạt động rất hiệu quả trong trường hợp bài toán tổng quát. Gần đây, các phương pháp này được thống nhất gọi với tên lọc Particle.

Lọc Particle hiện đang được áp dụng trong rất nhiều lĩnh vực như mơ hình hóa tài

<i>chính, kinh tế lượng (Econometrics), theo dõi đối tượng, dẫn đường cho tên lửa (Missle </i>

<i>Guidance), di chuyển dựa vào địa hình (Terrain Navigation), thị giác máy tính, mạng </i>

neuron, máy học, robot,... Ứng dụng của lọc Particle trong thị giác máy tính đang được

</div><span class="text_page_counter">Trang 31</span><div class="page_container" data-page="31">

<small>Luận văn tốt nghiệp </small>

rất nhiều người quan tâm, đặc biệt là trong lĩnh vực theo vết đối tượng dựa vào thông tin thị giác.

<b>2.2. Nền tảng toán học </b>

Trước khi tiếp tục xem xét về lọc Particle, sẽ là cần thiết nếu chúng ta nhắc lại một số các quy ước toán học và phát biểu của bài toán lọc cần quan tâm. Khơng mất tính tổng qt, ta xét một hệ (có thể là một hệ tín hiệu; hệ cơ học trong đó có các đại lượng vị trí, vận tốc, gia tốc;...) có khơng gian trạng thái được mơ hình hóa bởi một hàm phân phối<sup>1</sup>phi tuyến, phi Gauss, thỏa 2 giả định của bài toán lọc Bayes đệ quy như sau

• Chuỗi trạng thái (xích trạng thái) của hệ thỏa giả định về hệ Markov bậc I

(

<i><sub>t</sub></i> | <small>0: 1</small><i><sub>t</sub></i>

)(

<i><sub>t</sub></i> <small>1</small>

)

<i>p</i> <b>x x</b> <sub>−</sub> = <i>p</i> <b>x x</b>| <i><sub>t</sub></i><sub>−</sub> (2.1) • Các giá trị độ đo có được tại một thời điểm bất kỳ chỉ phụ thuộc vào trạng thái

của hệ tại thời điểm đó

(2.2)

(

<small>1:1:</small>

)(

| <i><sup>t</sup><sub>t</sub><sub>t</sub></i>

<b>zxz x</b>|

)

Các trạng thái

{

<b>x</b><i><sub>t</sub></i>;<i>t</i>∈

}

,<b>x</b><i><sub>t</sub></i>∈<b>X của hệ có phân phối xác suất ban đầu </b> <i><b>p x và </b></i>

( )

<small>0</small>

xác suất chuyển trạng thái <i>p</i>

(

<b>x x</b><i><sub>t</sub></i> | <i><sub>t</sub></i><sub>−</sub><small>1</small>

)

,

{

<b>z</b><i><sub>t</sub></i>;<i>t</i>∈ * ,

}

<b>z</b><i><sub>t</sub></i>∈<b>Y là các quan sát tương ứng </b>

với các thời điểm. Đồng thời, ta định nghĩa <b>x</b><small>0:</small><i><sub>t</sub></i>

{

<b>x</b><small>0</small>, ,… <b>x</b><i><sub>t</sub></i>

}

và <b>z</b><small>1:</small><i><sub>t</sub></i>

{

<b>z</b><small>1</small>, ,… <b>z</b><i><sub>t</sub></i>

}

lần

<i>lượt là chuỗi trạng thái và chuỗi quan sát cho đến thời điểm t . </i>

Vậy hệ đang xét có thể được đặc trưng bởi các hàm phân phối xác suất sau

<small>1 Kể từ phần này trở đi, để tiện cho việc ký hiệu và nếu khơng có gì q nhầm lẫn về ngữ nghĩa, chúng ta sẽ </small>

<i><small>dùng qua lại giữa thuật ngữ phân phối xác suất </small></i><small>Pr</small>

(

<i><small>X</small></i> <small>=</small><b><small>x</small></b><small>|</small><i><small>Z</small></i> <small>=</small><b><small>z</small></b>

))

<small> trong trường hợp không gian trạng thái rời </small>

<i><small>rạc và mật độ xác suất </small><b><small>p x z</small></b></i>

(

<small>| trong trường hợp khơng gian trạng thái liên tục. Bên cạnh đó, các ký hiệu </small><i><small>p i</small></i>

( )

<small>của mật độ xác suất sẽ được sử dụng như ký hiệu chung của hai khái niệm này. </small>

</div><span class="text_page_counter">Trang 32</span><div class="page_container" data-page="32">

<small>Luận văn tốt nghiệp </small>

( )

| ,| ,

<b>xx x</b>

<b>z x</b>

<i>Mục tiêu của bài tốn lọc là tìm được lời giải cho phân phối xác suất posterior </i>

(

<small>0:</small><i><sub>t</sub></i> | <small>1:</small><i><sub>t</sub></i>

)

<i><b>p x</b></i> <b>z</b> , các đại lượng đặc trưng của nó (quan trọng nhất là phân phối lề

<i>, còn được gọi là mật độ lọc – filtering distribution) và kỳ vọng toán học </i>

<i>về hàm này bao gồm trung bình có điều kiện (Conditional Mean) f<small>t</small></i>

( )

<b>x</b><small>0:</small><i><small>t</small></i> =<b>x hoặc </b><small>0:</small><i><sub>t</sub></i>

<i>hiệp phương sai có điều kiện (Conditional Covariance) </i>

.

( )

<i><small>T</small></i> <sub>(</sub> <i><sub>t</sub></i><sub>|</sub><sub>1:</sub><i><sub>t</sub></i><sub>)</sub> <i><small>T</small></i><sub>(</sub> <i><sub>t</sub></i><sub>|</sub> <sub>1:</sub><i><sub>t</sub></i><sub>)</sub>

<i>f</i> <b>x</b> =<b>x x</b> −<i>E</i> <b><sub>x z</sub></b> ⎡ ⎤<sub>⎣ ⎦</sub><b>x</b> <i>E</i> <b><sub>x z</sub></b> ⎡ ⎤<sub>⎣ ⎦</sub><b>x</b>

<i>Tại một thời điểm bất kỳ, hàm phân phối xác suất posterior được cho bởi quy tắc </i>

Bayes như sau

()<sub>(</sub><sup>(</sup>

<small>1:0:</small>

<sub>) ( )</sub><sup>) ( )</sup>

<small>0:0:1:</small>

||

</div><span class="text_page_counter">Trang 33</span><div class="page_container" data-page="33">

<small>Luận văn tốt nghiệp </small>

()<sup>(</sup><sub>(</sub><sup>)</sup><sub>)</sub><sup>(</sup><sub>(</sub>

<small>1: 1</small>

<sup>)</sup><sub>)</sub>

<small>1:</small>

<small>1: 1</small>

| ||

| |

<b>z xx zx z</b>

<b>z xx z</b>

Những phương trình và biểu thức đệ quy ở trên tuy có vẻ đơn giản nhưng trong thực tế, chúng ta không thể tính được chúng bởi để tính được

<i>p</i>

(

<b>z x</b><i><sub>t</sub></i> | <i><sub>t</sub></i>

)

<i>p</i>

(

<b>x z</b><i><sub>t</sub></i> | <small>1: 1</small><i><sub>t</sub></i><sub>−</sub>

)

và , đòi hỏi phải thực hiện phép tính tích phân trong đó dữ liệu có số chiều rà rất lớn và rất phức tạp.

<b>2.2.1. Phương pháp Monte Carlo </b>

Trong phần này, chúng ta sẽ xem xét một trong những nền tảng lý thuyết quan trọng nhất – phương pháp Monte Carlo – của lọc Particle. Khơng mất tính tổng qt, ta xem

<i>xét bài tốn tính tích phân trong đó dữ liệu rất lớn, nhiều chiều (High-Dimensional </i>

<i>Intergral) như sau </i>

( )( ) (

|

)

<i>I f</i> =

<i>f</i> <b>x</b> <i>p</i> <b>x z x (2.3) </b><i>d</i>

Trong đó, <i>f i là một hàm </i>

( )

<i><b>p x z - khả tích. Giả sử ta có thể sinh ngẫu nhiên </b></i>

(

|

)

<i>mẫu ngẫu nhiên phân phối độc lập và đồng nhất (Independent and Identically </i>

<i>Distributed – i.i.d) </i>

<small>( )</small>

{

<b>x</b><i><sup>i</sup></i> ;<i>i</i>=1, ,<i>… N từ phân phối xác suất </i>

}

<i><b>p x z . Như vậy, phân phối </b></i>

(

|

)

xác suất <i><b>p x z</b></i>

(

|

)

có thể được ước lượng như sau

</div><span class="text_page_counter">Trang 34</span><div class="page_container" data-page="34">

<small>Luận văn tốt nghiệp </small>

<b><small>x</small>x ký hiệu hàm delta-Dirac có tâm tại x</b><sup>( )</sup><i><sup>i</sup></i> . Vậy, <i>I f có thể được </i>

( )

<i>xấp xỉ bằng tích phân Monte Carlo (Monte Carlo Integration) như sau </i>

được <i>I f . Dựa vào ước lượng này, kết hợp với phương trình (2.7), ta cũng có thể dễ </i>

( )

dàng tính được mức độ hội tụ của phép ước lượng, hay mức độ lỗi của nó.

Khơng những thế, điểm mạnh của phương pháp tích phân Monte Carlo cịn nằm ở chỗ nó khơng phụ thuộc vào số chiều của dữ liệu. Thật vậy, nếu ta phải tính (2.3) bằng phương pháp xấp xỉ tích phân Riemann, trong đó khơng gian trạng thái được mơ hình hóa bằng một phương trình giải tích, độ chính xác của phéwp xấp xỉ sẽ là <i>O N</i>

(

<sup>−</sup><i><small>1/ n</small></i><b><small>x</small></b>

)

đối với tích phân trên miền dữ liệu có số chiều là , nghĩa là mức độ hội tụ của phép <i>n</i><b><sub>x</sub></b>

</div><span class="text_page_counter">Trang 35</span><div class="page_container" data-page="35">

<small>Luận văn tốt nghiệp </small>

xấp xỉ càng giảm khi số chiều của phép tính tích phân càng tăng. Trong khi đó, áp dụng phương pháp tích phân Monte Carlo, phương pháp mơ phỏng ngẫu nhiên không gian trạng thái từ phân phối xác suất của nó, độ chính xác của phép xấp xỉ là <i>O N</i>

(

<small>−1/ 2</small>

)

và không phụ thuộc vào số chiều của dữ liệu. Điều này có nghĩa là, phương pháp tích

<i>phân Monte Carlo độc lập với số chiều của phép tính tích phân. </i>

Tuy nhiên, một vấn đề gặp phải khi áp dụng phương pháp tích phân Monte Carlo chính là làm sao để có thể tạo ra một tập các mẫu ngẫu nhiên từ phân phối xác suất đích bất kỳ một cách hiệu quả. Thật không may là chúng ta thường khơng có cách nào để sinh ra tập mẫu này một cách trực tiếp từ phân phối xác suất đích

(

|

<i><b>p x z</b></i>

)

(

|

)

<i><b>p x z , </b></i>

vì , trong trường hợp tổng quát, thường là đa biến và khơng có một dạng chuẩn

<i>nhất định (non-standard) mà chúng ta có thể biết trước (dạng của </i> có thể biến đổi theo thời gian).

(

|

<i><b>p x z</b></i>

)

)(

|

</div><span class="text_page_counter">Trang 36</span><div class="page_container" data-page="36">

<small>Luận văn tốt nghiệp </small>

<b>2.2.2. Phương pháp hàm tích lũy xác suất nghịch đảo </b>

<i>Phương pháp này (Inversed CDF - ICDF) là phương pháp cổ điển và đơn giản nhất </i>

được sử dụng để sinh một mẫu ngẫu nhiên từ một hàm mật độ (phân phối) xác suất bất

<i>kỳ. Phương pháp này được phát biểu như sau. Cho trước một biến ngẫu nhiên X , có </i>

hàm mật độ xác suất . Bài toán đặt ra là sinh các giá trị ngẫu nhiên tương ứng với biến ngẫu nhiên nói trên.

<i>F</i><sup>−</sup> <b>x của hàm tích lũy xác suất này. Vậy mẫu ngẫu nhiên có thể được </b>

sinh ra bằng thuật tốn sau

• <b><small>Bước 1:</small></b> Sinh ngẫu nhiên <i>u U</i><sub>⎡</sub><sub>0,1</sub><sub>⎤</sub>

∼ . • <b><small>Bước 2:</small></b> Giải <small>1</small>

( )

<i>f</i> <b>x và tích lũy xác suất </b><i>F<small>X</small></i>

( )

<b>x</b> =

<i>f<small>X</small></i>

( )

<i><b>x dx , tương ứng </b></i>

<i>với biến ngẫu nhiên X . </i>

Thoạt nhìn, phương pháp ICDF có thể được sử dụng trong nhiều ứng dụng và bài tốn thực tế vì sự ngắn gọn của thuật toán. Tuy nhiên, vấn đề lại nằm ở chính sự đơn giản của nó. Trong thực tế, ngoại trừ một vài trường hợp đơn giản trong đó hàm tích lũy xác suất <i><b>F x</b><small>X</small></i>

( )

có dạng đơn giản và có thể giải được, ngoài ra, việc giải

</div><span class="text_page_counter">Trang 37</span><div class="page_container" data-page="37">

<small>Luận văn tốt nghiệp </small>

<b>2.2.3. Phương pháp lấy mẫu loại trừ </b>

Cho trước một hàm mật độ xác suất π

(

<b>x z , giả sử chúng ta có thể tìm được một hằng </b>|

)

<i>số C sao cho </i>

(

|

)(

|

)

<i>C</i>π <b>x z</b> ≥ <i>p</i> <b>x z </b>

với mọi . Như vậy, thuật toán lấy mẫu loại trừ được thực hiện như sau: <b>x</b>

• <b><small>Bước 1:</small></b> sinh mẫu <b>x</b><sup>( )</sup><i><sup>i</sup></i> từ π

(

<b>x z và tính </b>|

)

<small>( )</small>

• <b><small>Bước 3:</small></b> nếu <i>u r</i>≤ , chọn <b>x</b><sup>( )</sup><i><small>i</small></i> ; ngược lại, loại trừ <b>x</b><sup>( )</sup><i><small>i</small></i> .

Chúng ta có thể chứng minh được, các mẫu ngẫu nhiên <b>x</b><sup>( )</sup><i><sup>i</sup></i> được sinh ra đều tuân theo mật độ xác suất <i><b><small>p x z</small></b></i>

(

<small>|</small>

)

.

<b><small>Hình 1 Ví dụ về phương pháp lấy mẫu loại trừ </small></b>

</div><span class="text_page_counter">Trang 38</span><div class="page_container" data-page="38">

<small>Luận văn tốt nghiệp </small>

Hình 1 cho chúng ta thấy một ví dụ đơn giản về phương pháp lấy mẫu loại trừ. Trong ví dụ này, hàm mật độ xác suất <i>p x z có miền xác định </i>

(

|

)

{

<i>x p x z</i>: | >0

}

=<small>⎡⎣</small>0,<i>x</i><small>max⎤⎦</small>; ta chọn hàm mật độ π

(

<i>x z</i>|

)

∼<i>U</i>

(

0,<i>x</i><small>max</small>

)

. Rõ ràng, mẫu ngẫu nhiên <i>x</i><sup>( )</sup><i><sup>i</sup></i> được sinh ra từ hàm mật độ π

(

<i>x z</i>|

)

∼<i>U</i>

(

0,<i>x</i><small>max</small>

)

đã chọn. Trong trường hợp này, xác suất để chấp nhận một mẫu

<i>x</i>

<sup>( )</sup><i><sup>i</sup></i>

∼<i>U</i>(0,<i>x</i>

<small>max</small>

)

<i>Dễ thấy, khi C càng tăng, phương pháp này càng trở nên kém hiệu quả vì xác suất </i>

chấp nhận một mẫu là rất nhỏ, thuật tốn phải thực hiện nhiều lần thì mới có thể chọn được một mẫu mong muốn. Ngồi ra, để tìm được giá trị hợp lý của , thuật toán địi hỏi phải tính được

()(

<sup>|</sup>

)

max

<i>p x zx z</i>

<i>bất kỳ. Hơn nữa, nếu áp dụng phương pháp tìm C tăng dần, ta cũng không thể đảm </i>

bảo được tính hiệu quả của thuật tốn. Một cách tổng qt, cũng như thuật tốn tích lũy xác suất nghịch đảo, thuật toán lấy mẫu loại trừ cũng gặp phải nhiều vấn đề về chi phí tính tốn mà khơng thể được áp dụng trong những ứng dụng thời gian thực, trong đó địi hỏi dữ liệu phải được xử lý cực nhanh, ngay khi dữ liệu về quan sát được thu nhận.

<b>2.2.4. Phương pháp Metropolis-Hasting </b>

<i>Thuật toán Metropolis-Hasting, thuật tốn dựa vào phương pháp Monte Carlo xích </i>

<i>Markov (Markov Chain Monte Carlo - MCMC), được đề xuất bởi Metropolis năm </i>

1953 và được Hasting cải tiến vào năm 1970. Ý tưởng chính của thuật toán này dựa

</div><span class="text_page_counter">Trang 39</span><div class="page_container" data-page="39">

<small>Luận văn tốt nghiệp </small>

trên việc mơ phỏng một xích Markov trong không gian trạng thái của , sao cho mật

<i>độ (phân phối) xác suất tĩnh (Stationary Distribution) của xích là </i> .

(

|

)

<i><b>p x z</b></i>

<i>Trong hầu hết các bài tốn dựa vào mơ phỏng (Simulation), vấn đề cần quan tâm là </i>

ước lượng biểu thức <i>E<small>f</small><sub>X</sub></i> <small>⎡⎣</small><i>g</i>

( )

<b>x</b> <small>⎤⎦</small>. Nếu đã có một tập mẫu ngẫu nhiên

{

<b>x</b><small>1</small>, ,… <b>x</b><i><sub>n</sub></i>

}

độc lập, đồng nhất từ biến ngẫu nhiên có mật độ xác suất <i>f<small>X</small></i>

( )

i , ta có thể ước lượng biểu thức này bằng

( )

<sup>1</sup> <sub>1</sub>

( )

Cho một xích Markov được đặc trưng bởi π

(

<b>x</b><i><sub>t</sub></i><sub>+</sub><small>1</small>|<b>x , trong đó, tại mỗi thời điểm </b><i><sub>t</sub></i>

)

, được sinh ra phụ thuộc vào trước đó và là giá trị khởi tạo của xích (hàm

( )

π i còn được gọi là hàm mật độ đề xuất như sẽ được đề cập trong phần sau). Để sinh ra các mẫu ngẫu nhiên, thuật toán Metropolis-Hasting dùng hàm π

(

<b>x</b><i><sub>t</sub></i><sub>+</sub><small>1</small>|<b>x nhằm sinh </b><i><sub>t</sub></i>

)

ra một mẫu mới và tương tự như trong thuật tốn loại trừ, nó dùng một luật phân loại nhằm quyết định xem có chọn mẫu mới này hay vẫn giữ nguyên giá trị cũ. Đây cũng chính là điểm cải tiến của thuật tốn Metropolis-Hasting so với thuật toán lấy mẫu loại trừ.

Thuật tốn này có thể được tóm tắt như sau

• <b><small>Bước 1:</small></b> Sinh ngẫu nhiên <b>x</b>∼π

( )

i|<b>x</b><sup>( )</sup><i><sup>i</sup></i> và tính

</div><span class="text_page_counter">Trang 40</span><div class="page_container" data-page="40">

<small>Luận văn tốt nghiệp </small>

<small>( )</small>

| |, min 1,

| |

∼ , trong đó <i>U</i><sub>⎡</sub><sub>0,1</sub><sub>⎤</sub>

<small>⎣⎦</small> là phân phối đều trên khoảng đóng <small>⎡</small><sub>⎣</sub>0,1<small>⎤</small><sub>⎦</sub>.

• <b><small>Bước 3:</small></b> Nếu <i>u r</i><b>< x x</b>

( )

, <sup>( )</sup><i><sup>i</sup></i> ,<b>x</b><small>( )</small><i><sup>i</sup></i><sup>+</sup><small>1</small> = . Ngược lại, <b>xx</b><sup>( )</sup><i><small>i</small></i><small>+1</small> =<b>x . </b><sup>( )</sup><i><small>i</small></i>

So với phương pháp lấy mẫu loại trừ, phương pháp Metropolis-Hasting khơng địi hỏi ta phải tính được cực đại của hàm số <i>p</i>

(

<b>x z</b>|

) (

/π <b>x z . Hơn nữa, tại mỗi bước thực </b>|

)

hiện của thuật toán, ta đều chọn được tối thiểu một mẫu <b>x</b><sup>( )</sup><i><sup>i</sup></i><sup>+</sup><sup>1</sup> =<b>x hoặc x</b><sup>( )</sup><i><sup>i</sup></i><sup>+</sup><sup>1</sup> =<b>x , điều </b><sup>( )</sup><i><sup>i</sup></i>

này thực sự là một cải tiến đáng kể về hiệu suất so với thuật tốn lấy mẫu loại trừ, vì ta có thể biết được khi nào thì nên dừng thuật tốn để đảm bảo về thời gian thực hiện.

Tuy nhiên, thuật toán Metropolis-Hasting gặp phải hai vấn đề khiến nó cũng khơng thể được sử dụng trong các ứng dụng thời gian thực.

• <b><small>Một là,</small></b> thuật tốn này địi hỏi phải được thực hiện rất nhiều lần (có thể lên đến hàng nghìn lần) trước khi xích Markov đủ khả năng mô phỏng được mật độ xác suất tĩnh cần quan tâm, hay nói cách khác, mẫu ngẫu nhiên kết quả thực sự được sinh ra bởi <i><b>p x z . </b></i>

(

|

)

• <b><small>Hai là,</small></b> trên lý thuyết, khi số lần lặp của thuật toán tiến đến vơ cực, thuật tốn sẽ hội tụ và các mẫu ngẫu nhiên sinh ra là độc lập nhưng trong thực tế, số lần lặp của thuật toán là hữu hạn. Do đó, các mẫu ngẫu nhiên kết quả hiển nhiên là phụ thuộc nhau. Điều này chúng ta khơng mong muốn trong phép tính tích phân Monte Carlo, trong đó các mẫu ngẫu nhiên địi hỏi phải độc lập và đồng nhất với nhau.

Vì những lý do kể trên, mặc dù Metropolis-Hasting là thuật toán rất hiệu quả để giải quyết bài toán sinh mẫu ngẫu nhiên từ phân phối bất kỳ. Tuy nhiên, do tính chất

</div>

×