ứng dụng lọc particle trong bài toán theo vết đối tượng
Trang 1TRƯỜ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
LÊ NGUYỄN TƯỜNG VŨ - NGUYỄN MINH TRANG
ỨNG DỤNG LỌC PARTICLE TRONG
BÀI TOÁN THEO VẾT ĐỐI TƯỢNG
KHOÁ LUẬN CỬ NHÂN TIN HỌC
TP HCM, 2005
Trang 2TRƯỜ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
LÊ NGUYỄN TƯỜNG VŨ - 0112082 NGUYỄN MINH TRANG - 0112159
ỨNG DỤNG LỌC PARTICLE TRONG
BÀI TOÁN THEO VẾT ĐỐI TƯỢNG
KHOÁ LUẬN CỬ NHÂN TIN HỌC GIÁO VIÊN HƯỚNG DẪN
T.S LÊ HOÀI BẮC
NIÊN KHÓA 2001 - 2005
Trang 3LỜI CẢM ƠN
Đầu tiên, chúng tôi xin chân thành gửi lời tri ân đến Thầy Lê Hoài Bắc Luận này này sẽ không thể hoà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
Trang 4Nhận xét của giáo viên hướng dẫn
Trang 5Nhận xét của giáo viên phản biện
Trang 6TÓM TẮT LUẬN VĂN
Lọc Particle là một phương pháp thành công trong bài toá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)
Trang 7MỞ ĐẦU
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ặ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 TOÁ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 toán theo vết đối tượng Luận này được trình bày gồm bốn chương:
• Chương 1: 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
Trang 8• Chương 2: 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
• Chương 3: Ứ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)
• Chương 4: 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
Trang 9MỤC LỤC
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
Trang 102.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ự thoái hóa của thuật toá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
Trang 114.2 Hướng phát triển 94DANH MỤC TÀI LIỆU THAM KHẢO 96
Trang 12Danh mục hình vẽ
Hình 1 Ví dụ về phương pháp lấy mẫu loại trừ 23
Hình 2 Thuật toán Sequential Importance Sampling 34
Hình 3 Dữ liệu giả lập thuật toán SIS 35
Hình 4 Kết quả lọc bằng SIS 36
Hình 5 Sự thoái hóa của thuật toá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 toá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 toán Particle Filter 51
Hình 10 Dữ liệu giả lập thuật toá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 thoá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 toán ODAPF Tracker 70
Hình 15 Thuật toá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
Trang 13Hình 22 Kết quả phát hiện đối tượng 80
Hình 23 Thuật toá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 toán ODAPF bù lỗi cho thuật toán phát hiện đối tượng 89
Hình 30 Thuật toán ODAPF bù lỗi cho thuật toá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
Trang 15Luận văn tốt nghiệp
1 Tổng quan về bài toán theo dõi đối tượng
1.1 Giới thiệu
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 hoàn toàn khác, ví dụ như khuôn 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
Trang 16Luận văn tốt nghiệp
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 toàn bộ đối tượng đích
Có rất nhiều phương pháp giải quyết bài toá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
• Tiếp cận dựa trên mô hình
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 toán cao do độ phức tạp của mô hình
• Tiếp cận dựa trên miền
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 toán cũng có ý nghĩa vật lý, dễ dàng khái niệm hóa
• Tiếp cận dựa trên đường viền
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 Quá 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
Trang 17Luận văn tốt nghiệp
phần (partial occlusion) Tuy nhiên vấn đề với mô hình là nó yê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
• Tiếp cận dựa trên đặc trưng
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ễ
1.2 Hệ thống theo dõi đối tượng
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
1.2.1 Phát hiện đối tượng
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
Trang 18Luận văn tốt nghiệp
thường bắt đầu bằng quá trình phát hiện đối tượng, ngoà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:
a) Phát hiện đối tượng dựa trên đặc trưng
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 toán thấp
b) Phát hiện đối tượng dựa trên mẫu
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
c) Phát hiện đối tượng chuyển động
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 toá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
Trang 19Luận văn tốt nghiệp
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í toà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 toà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í
1.2.2 Phân đoạn
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 quá trình quy tắc hóa (Regularization)
Trang 20Luận văn tốt nghiệp
• Phân đoạn dựa trên phân cụm có sắp xếp toàn cục (Globally Organized Clustering)
1.2.3 Theo vết đối tượng
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)
1.3 Các phương pháp theo vết thông thường
1.3.1 So khớp mẫu (Template matching)
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 hoán đổi hoàn toà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
Trang 21Luận văn tốt nghiệp
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 toá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
1.3.2 Theo vết Meanshift
Dorin Comaniciu đã giới thiệu phương pháp theo vết màu Meanshift [Comaniciu2003]
Đâ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í xi trong miền ứng viên của theo vết sẽ tương ứng với một trọng số wi
−= m
)()ˆ(ˆ
Trang 22Luận văn tốt nghiệp
ˆ (2)
Với g(x)=−k'(x) và k(x) là một hàm nhân (kernel function)
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 toán cơ bản trong phương pháp theo vết Meanshift:
Cho trước mô hình đích { }qˆu u=1 m và vị trí của nó trong frame trước ˆy0
1 Khởi tạo vị trí của đích trong frame hiện tại với ˆy0, tính mô hình ứng viên
{p yˆ ˆu( )0 }u=1 m và tính ( )001
3 Tìm vị trí đích ứng viên kế tiếp theo (2)
4 Tính ra mô hình mới {p yˆ ˆu( )1 }u=1 m và tính được
6 Nếu yˆ1− yˆ0 <ε thì dừng, nếu không yˆ0 ← yˆ1, 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 hoá cục bộ chứ không toà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
Trang 23Luận văn tốt nghiệp
1.3.3 Tiếp cận Bayesian
1.3.3.1 Ước lượng Bayesian
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ự đoán (prediction) để dự đoá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ự đoá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 (quá trình không được biết):
• Chuỗi các trạng thái từ thời điểm 0 đến k: X0:k =X ,X , ,X0 1 k
• Chuỗi các giá trị trạng thái từ thời điểm 0 đến k: x0:k =x , x , , x0 1 k
• Hàm mật độ của Xk: p x( )k
• Hàm mật độ ghép từ X0 đến Xk: p x( 0:k)=p x , x , , x( 0 1 k)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: Z1:k=Z , Z , , Z1 2 k • Giá trị quan sát tại thời điểm k: zk
Trang 24Luận văn tốt nghiệp
Lỗi ước lượng: Xk|k =Xk−Xˆk|k
Hàm chi phí như là bình phương cho lỗi ước lượng:
( )g 1:k
( )( 1:kk)1:k0:k1:k1:k
=∫
Trang 25Luận văn tốt nghiệp
1.3.3.2 Một số phương pháp dựa trên ước lượng Bayesian
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 yê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 toá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 yêu cầu hệ phải có tập trạng thái hữu hạn
1.3.3.3 Lọc Kalman
Vấn đề chung của Kalman Filter [Welch2003] là cố gắng ước lượng trạng thái x∈Rm
của một quá trình được kiểm soát theo thời gian rời rạc theo phương trình “stochastic difference” tuyến tính
Trang 26Luận văn tốt nghiệp
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 A B H, , có thể thay đổi theo mỗi bước, nhưng ta giả định rằng chúng là không đổi
Thuật toán Discrete Kalman Filter:
Tóm lại, thuật toá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, Kk
Trang 27Luận văn tốt nghiệp
Sau mỗi bước Dự đóan_Hiệu chỉnh, quá trình “sử dụng ước lượng posteriori trước
x − để dự đoán một ước lượng priori mới xˆk−” 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 đó
1.3.3.4 Lọc Kalman mở rộng(Extended Kalman)
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 ˆx là ước lượng posterior của trạng thái (từ thời điểm trước bước ) kk
Thuật toán Extended Kalman Filter:
Thuật toá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
kk -1k
x = f x ,u ,0
Trang 28Luận văn tốt nghiệp
= T + Tkk kkkkk
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, Kk
1.4 Kết luận
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
Trang 29Luận văn tốt nghiệp
2 Lọc Particle
2.1 Giới thiệu
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
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 toá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ó
phân phối phi Gauss (Non-Gaussian)
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 hoàn chỉnh bằng giải tích
(Analytical Solution) Tuy nhiên, để áp dụng, hệ cần phải thỏa những ràng buộc sau
• Đối với lọc Kalman: Hệ tuyến tính và nhiễu Gauss
• Đối với lọc HMM: 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
(Extended Kalman Filter - EKF) Thuật toán này là một trong những thuật toán tốt nhất
để giải bài toán phi Gauss và phi tuyến lúc bấy giờ Thuật toán này hoạt động dựa trên
ý 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 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 toán sẽ không hội tụ
Trang 30Luận văn tốt nghiệp
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
Filter (UKF) Thuật toán này đã được chứng minh là có kết quả tốt hơn EKF Tuy
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 toá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 toá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
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
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 để
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ệ, ngoà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 toá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
chính, kinh tế lượng (Econometrics), theo dõi đối tượng, dẫn đường cho tên lửa (Missle
Guidance), di chuyển dựa vào địa hình (Terrain Navigation), thị giác máy tính, mạng
neuron, máy học, robot, Ứng dụng của lọc Particle trong thị giác máy tính đang được
Trang 31Luận văn tốt nghiệp
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
2.2 Nền tảng toán học
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 quát, 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ối1phi 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 ( t | 0: 1t )( t 1)
p x x − = p x x| t− (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) ( 1:1: )(
| ttt
zxz x| )
Các trạng thái {xt;t∈ },xt∈X của hệ có phân phối xác suất ban đầu p x và ( )0
xác suất chuyển trạng thái p(x xt | t−1), {zt;t∈ * ,} zt∈Y là các quan sát tương ứng
với các thời điểm Đồng thời, ta định nghĩa x0:t {x0, ,… xt} và z1:t {z1, ,… zt} lần
lượt là chuỗi trạng thái và chuỗi quan sát cho đến thời điểm t
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
1 Kể từ phần này trở đi, để tiện cho việc ký hiệu và nếu không có gì quá nhầm lẫn về ngữ nghĩa, chúng ta sẽ
dùng qua lại giữa thuật ngữ phân phối xác suất Pr(X =x|Z =z))
trong trường hợp không gian trạng thái rời
rạc và mật độ xác suất p x z( | 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 p i( )
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
Trang 32Luận văn tốt nghiệp
( )
| ,| ,
xx x
z x
Mục tiêu của bài toán lọc là tìm được lời giải cho phân phối xác suất posterior
( 0:t | 1:t)
p x z , các đại lượng đặc trưng của nó (quan trọng nhất là phân phối lề
, còn được gọi là mật độ lọc – filtering distribution) và kỳ vọng toán học
về hàm này bao gồm trung bình có điều kiện (Conditional Mean) ft( )x0:t =x hoặc 0:t
hiệp phương sai có điều kiện (Conditional Covariance)
( ) T ( t|1:t) T( t| 1:t)
f x =x x −E x z ⎡ ⎤⎣ ⎦x E x z ⎡ ⎤⎣ ⎦x
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
Bayes như sau
()(( 1:0:) ( )) ( )0:0:1:
||
Trang 33Luận văn tốt nghiệp
()(())(( 1: 1))1:
1: 1
| ||
| |
z xx zx z
z xx z
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 ∫p(z xt | t)p(x zt | 1: 1t− ) 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
2.2.1 Phương pháp Monte Carlo
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 quát, ta xem
xét bài toán tính tích phân trong đó dữ liệu rất lớn, nhiều chiều (High-Dimensional
Intergral) như sau
( )( ) ( | )
I f =∫ f x p x z x (2.3) d
Trong đó, f i là một hàm ( ) p x z - khả tích Giả sử ta có thể sinh ngẫu nhiên ( | )
mẫu ngẫu nhiên phân phối độc lập và đồng nhất (Independent and Identically
Distributed – i.i.d)
( )
{xi ;i=1, ,… N từ phân phối xác suất } p x z Như vậy, phân phối ( | )
xác suất p x z( | ) có thể được ước lượng như sau
Trang 34Luận văn tốt nghiệp
xx ký hiệu hàm delta-Dirac có tâm tại x( )i Vậy, I f có thể được ( )
xấp xỉ bằng tích phân Monte Carlo (Monte Carlo Integration) như sau
được 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ễ ( )
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à O N( −1/ nx)
đố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 nx
Trang 35Luận văn tốt nghiệp
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à O N( −1/ 2) 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
phân Monte Carlo độc lập với số chiều của phép tính tích phân
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
( |
p x z)
( | )
p x z ,
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
nhất định (non-standard) mà chúng ta có thể biết trước (dạng của có thể biến đổi theo thời gian)
( |
p x z)
)( |
Trang 36Luận văn tốt nghiệp
2.2.2 Phương pháp hàm tích lũy xác suất nghịch đảo
Phương pháp này (Inversed CDF - ICDF) là phương pháp cổ điển và đơn giản nhất
đượ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
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ó
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
F− 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
sinh ra bằng thuật toán sau
• Bước 1: Sinh ngẫu nhiên u U⎡0,1⎤
∼ • Bước 2: Giải 1( )
f x và tích lũy xác suất FX ( )x =∫ fX ( )x dx , tương ứng
với biến ngẫu nhiên X
Thoạt nhìn, phương pháp ICDF có thể được sử dụng trong nhiều ứng dụng và bài toá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 F xX ( ) có dạng đơn giản và có thể giải được, ngoài ra, việc giải
Trang 37Luận văn tốt nghiệp
2.2.3 Phương pháp lấy mẫu loại trừ
Cho trước một hàm mật độ xác suất π(x z , giả sử chúng ta có thể tìm được một hằng | )
số C sao cho
( | )( | )
Cπ x z ≥ p x z
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: x
• Bước 1: sinh mẫu x( )i từ π(x z và tính | )( )
• Bước 3: nếu u r≤ , chọn x( )i ; ngược lại, loại trừ x( )i
Chúng ta có thể chứng minh được, các mẫu ngẫu nhiên x( )i được sinh ra đều tuân theo mật độ xác suất p x z( | )
Hình 1 Ví dụ về phương pháp lấy mẫu loại trừ
Trang 38Luận văn tốt nghiệp
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 p x z có miền xác định ( | )
{x p x z: | >0}=⎡⎣0,xmax⎤⎦; ta chọn hàm mật độ π(x z| )∼U(0,xmax) Rõ ràng, mẫu ngẫu nhiên x( )i được sinh ra từ hàm mật độ π(x z| )∼U(0,xmax) đã chọn Trong trường hợp này, xác suất để chấp nhận một mẫu x( )i ∼U(0,xmax) là
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
chấp nhận một mẫu là rất nhỏ, thuật toá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 Ngoài ra, để tìm được giá trị hợp lý của , thuật toán đòi hỏi phải tính được
()( | )max
p x zx z
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
bảo được tính hiệu quả của thuật toán Một cách tổng quát, cũng như thuật toá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 toá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
2.2.4 Phương pháp Metropolis-Hasting
Thuật toán Metropolis-Hasting, thuật toán dựa vào phương pháp Monte Carlo xích
Markov (Markov Chain Monte Carlo - MCMC), được đề xuất bởi Metropolis năm
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
Trang 39Luận văn tốt nghiệp
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
độ (phân phối) xác suất tĩnh (Stationary Distribution) của xích là
( | )
p x z
Trong hầu hết các bài toán dựa vào mô phỏng (Simulation), vấn đề cần quan tâm là
ước lượng biểu thức EfX ⎡⎣g( )x ⎤⎦ Nếu đã có một tập mẫu ngẫu nhiên {x1, ,… xn} độc lập, đồng nhất từ biến ngẫu nhiên có mật độ xác suất fX ( )i , ta có thể ước lượng biểu thức này bằng
( ) 1 1 ( )
Cho một xích Markov được đặc trưng bởi π(xt+1|x , trong đó, tại mỗi thời điểm t), đượ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 π(xt+1|x nhằm sinh t)ra một mẫu mới và tương tự như trong thuật toá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 toán Metropolis-Hasting so với thuật toán lấy mẫu loại trừ
Thuật toán này có thể được tóm tắt như sau
• Bước 1: Sinh ngẫu nhiên x∼π( )i|x( )i và tính
Trang 40Luận văn tốt nghiệp
( )
| |, min 1,
| |
∼ , trong đó U⎡0,1⎤
⎣⎦ là phân phối đều trên khoảng đóng ⎡⎣0,1⎤⎦
• Bước 3: Nếu u r< x x( ), ( )i ,x( )i+1 = Ngược lại, xx( )i+1 =x ( )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ố p(x z| ) (/π x z Hơn nữa, tại mỗi bước thực | )
hiện của thuật toán, ta đều chọn được tối thiểu một mẫu x( )i+1 =x hoặc x( )i+1 =x , điều ( )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 toá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 toá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
• Một là, thuật toá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 p x z ( | )
• Hai là, 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 toá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