Mô hình đề xuất trong luận văn được gọi là AB – LBP. Đây là mô hình kết hợp AdaBoost và LBP cho bài toán phát hiện mặt người. Trong mô hình này, AdaBoost có trách nhiệm loại bỏ nhanh các cửa số non – face, sau đó các vùng ứng viên sẽ được biểu diễn bởi phương pháp LBP và được phân lớp bởi phương pháp ANN để giảm tỉ lệ phát hiện sai. Hình 9 minh họa tiến trình phát hiện khuôn mặt của phương pháp AB – LBP.
                
              
                                            
                                
            
 
            
                 12 trang
12 trang | 
Chia sẻ: vietpd | Lượt xem: 1928 | Lượt tải: 2 
              
            Bạn đang xem nội dung tài liệu Mô hình kết hợp của AdaBoost và LBP cho bài toán phát hiện mặt người, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
 27
Chương 4. Mô hình kết hợp của AdaBoost và LBP cho bài toán 
phát hiện mặt người 
4.1 Mô hình đề xuất 
Mô hình đề xuất trong luận văn được gọi là AB – LBP. Đây là mô hình kết hợp 
AdaBoost và LBP cho bài toán phát hiện mặt người. Trong mô hình này, AdaBoost có 
trách nhiệm loại bỏ nhanh các cửa số non – face, sau đó các vùng ứng viên sẽ được 
biểu diễn bởi phương pháp LBP và được phân lớp bởi phương pháp ANN để giảm tỉ lệ 
phát hiện sai. Hình 9 minh họa tiến trình phát hiện khuôn mặt của phương pháp AB – 
LBP. 
Hình 9. Quá trình phát hiện khuôn mặt của bộ phát hiện AB – LBP 
Với mỗi vùng ứng viên, chúng tôi xem xét các cửa sổ có được bằng cách tăng và giảm 
kích thước vùng ứng viên đến 120% và 80%, mỗi lần tăng hoặc giảm 2%. Như vậy, 
tương ứng với mỗi vùng ứng viên, chúng tôi xem xét tối đa (120 - 80)/2 = 20 cửa sổ. 
Nếu một trong số các cửa sổ được xác nhận là khuôn mặt, vùng ứng viên tương ứng sẽ 
được kết luận là khuôn mặt. Ngược lại, vùng ứng viên sẽ bị kết luận là không có khuôn 
mặt. Trong [2], A. Hadid và các đồng nghiệp đã sử dụng SVM để phân lớp vector đặc 
trưng được rút trích bởi phương pháp LBP. Tuy nhiên trong luận văn này, chúng tôi 
quyết định sử dụng ANN trong bước phân lớp bởi vì nếu sử dụng SVM để phân lớp thì 
 28
tốc độ phát hiện khuôn mặt quá chậm. Trong thực nghiệm của chúng tôi, khi huấn 
luyện dữ liệu đề cập trong mục 3.3.1 SVM tạo ra 17604 vector hỗ trợ và tốn tới 0.031 
giây để xử lí một ảnh kích thước 20 × 20. Từ bảng 1, với phương pháp AB20, tỉ lệ phát 
hiện chính xác khá cao với 467 khuôn mặt phát hiện chính xác, tuy nhiên số phát hiện 
sai là 202 Æ số vùng ứng viên sau khi sử dụng bộ phát hiện AdaBoost là 467 + 202 = 
669. Nghĩa là, trung bình chúng ta có 669/130 = 5 vùng ứng viên trong một ảnh. Nếu 
chúng ta sử dụng SVM Æ thời gian trung bình để kiểm tra một vùng ứng viên là 0.031 
× (5 + 20/2) = 0.465 giây. Rõ ràng, đây là một chi phí quá lớn nếu so sánh với thời gian 
0.179 của AdaBoost. Trong khi đó ANN chỉ tốn 0.00015 × (5 + 20/2) = 0.00225 giây, 
chi phí này không đáng kể nếu so sánh 0.179 giây của AdaBoost Æ Nếu sử dụng ANN 
để phân lớp các vector đặc trưng LBP thì mô hình AB – LBP có thể áp dụng để phát 
hiện mặt người thời gian thực. 
4.2 Các kết quả thực nghiệm và thảo luận 
Các bộ phát hiện AdaBoost và LBP đã được huấn luyện trong mục 3.3.1 và 3.3.3. Các 
thực nghiệm được tiến hành trên bộ dữ liệu MIT + CMU [7]. Bảng 2 trình bày kết quả 
thực nghiệm của bộ phát hiện khuôn mặt AB – LBP. 
Bảng 2. HIỆU SUẤT CỦA BỘ PHÁT HIỆN AB - LBP TRÊN TẬP DỮ LIỆU MIT – CMU 
Cấu trúc AdaBoost Phương 
pháp Số bộ phân lớp 
mạnh 
Số đặc trưng 
Haar - like 
Cấu trúc LBP Số khuôn 
mặt phát 
hiện chính 
xác 
Số khuôn 
mặt phát 
hiện sai 
Tỉ lệ phát 
hiện chính 
xác 
Thời gian xử 
lí 130 ảnh 
(giây) 
Thời gian 
trung bình để 
xử lí một ảnh 
(giây) 
AB20-
LBP 
20 1925 465 14 91.72% 24.576 0.189 
AB25-
LBP 
25 2913 
1,4LBP + 
2
1,8
uLBP 
 (phân lớp bởi 
ANN) 
451 3 88.95% 25.510 0.196 
Chúng ta có thể nhận thấy rằng tiếp cận của chúng tôi đạt được kết quả tốt hơn hoặc 
bằng tiếp cận AdaBoost trong 3.3.2. Bộ phát hiện AB20 – LBP và AB25 – LBP đạt kết 
 29
quả xấp xỉ với AB20 và AB25 nhưng với một số lượng phát hiện sai ít hơn đáng kể. 
AB20 – LBP đạt tỉ lệ phát hiện chính xác là 91.72%; xấp xỉ với 92.11% của AB20 và 
cao hơn 89.15% của AB25. Số lượng phát hiện sai của AB20 – LBP chỉ là 14, rất nhỏ 
so với 202 của AB20 và nhỏ hơn 40 của AB25. Hơn nữa, thời gian để xử lí 130 là 
24.576 giây, xấp xỉ với thời gian của bộ phát hiện AdaBoost. Trong trường hợp bộ phát 
hiện AB25 – LBP, tỉ lệ phát hiện chính xác là 88.95%, tương đương với tỉ lệ của 
AB25. Thời gian xử của bộ phát hiện AB – LBP cho một ảnh kích thước 276 × 343 
khoảng 0.174 giây trên một máy P4 1.8 GHz PC. Bảng 3 trình bày kết quả của bộ phát 
hiện AB – LBP với bộ phát hiện của H. A. Rowley [7]. 
Bảng 3. TỈ LỆ PHÁT HIỆN CHÍNH XÁC VỚI SỐ PHÁT HIỆN SAI KHÁC NHAU TRÊN DỮ LIỆU 
MIT - CMU 
 Số phát hiện sai 
Bộ phát hiện 
3 10 14 31 95 167 
AB - LBP 88.95% - 91.72% - - - 
H. A. Rowley - 83.2% - 86.0% 89.2% 90.1% 
Rõ ràng, tiếp cận AB – LBP hiệu quả hơn tiếp cận của H. A. Rowley cả về tỉ lệ phát 
hiện chính xác và số lượng phát hiện sai. Hình 10 chỉ ra một số kết quả của bộ phát 
hiện AB – LBP trên tập dữ liệu MIT + CMU. 
 30
 31
 32
 33
Hình 10. Kết quả của bộ phát hiện AB – LBP trên một số ảnh test trên tập dữ liệu 
MIT + CMU 
Trong hình 10A, bộ phát hiện AB20 – LBP phát hiện chính xác 12 khuôn mặt tương 
đương với AB20, và cao hơn của AB25 (11 khuôn mặt) (hình 6A, 6B). Trong hình 
10B, AB20 – LBP phát hiện chính xác 6 khuôn mặt với số lượng khuôn mặt phát hiện 
sai là 0 trong khi số lượng phát hiện sai của AB20 và AB25 lần lượt là 5 và 3 (hình 7C, 
7D). Bộ phát hiện AB20 phát hiện chính xác 6 khuôn mặt trong hình 10C và số phát 
hiện sai là 1 trong khi bộ phát hiện AB25 chỉ phát hiện chính xác 5 khuôn mặt và bị sót 
một khuôn mặt (hình 10D). Chú ý rằng khuôn mặt bị sót này là một mẫu khó bởi vì nó 
tối hơn các khuôn mặt khác. Trong khi đó AB20 – LBP phát hiện chính xác 6 khuôn 
mặt và không có phát hiện sai nào (hình 10E). Tương tự trong hình 10F và 10G, AB25 
phát hiện được 2 trong tổng số 3 khuôn mặt trong khi AB20 – LBP phát hiện chính xác 
 34
3 khuôn mặt.Trong hình 10H và 10I, cả AB25 và AB20 – LBP cùng phát hiện chính 
xác 3 trong 3 khuôn mặt có trong ảnh. Tuy nhiên, AB25 có 3 phát hiện sai trong khi số 
phát hiện sai của AB20 – LBP là 0. Một chú ý quan trọng nữa là trong hầu hết các 
trường hợp, bộ phát hiện AB20 – LBP có thời gian xử lí ít hơn hoặc xấp xỉ bộ phát 
hiện AB25. Các ví dụ trên tổng quát các khía cạnh chính của bộ phát hiện mặt người 
được đề xuất trong luận văn: AB – LBP. Các kết quả thực nghiệm đã chỉ ra rằng AB – 
LBP không chỉ đạt được xấp xỉ độ chính xác và thời gian xử lí so với bộ phát hiện 
AdaBoost mà còn cực tiểu hóa số phát hiện sai. 
Bảng 4 so sánh kết quả của bộ phát hiện AB – LBP đề xuất với kết quả của P.Viola và 
M.Jones trong [1] trên tập dữ liệu CMU – MIT. 
Bảng 4. TỈ LỆ PHÁT HIỆN CHÍNH XÁC VỚI SỐ PHÁT HIỆN SAI KHÁC NHAU TRÊN DỮ LIỆU 
MIT - CMU 
 Số phát hiện sai 
Bộ phát hiện 
3 10 14 31 50 65 78 95 167 
P.Viola and M.Jones - 81.1% - 89.7% 92.1% 93.1% 93.1% 93.2 % 93.7% 
AB - LBP 88.95% - 91.72% - - - - - - 
Tuy nhiên, một vấn cần chú ý là trong [1], P.Viola và M.Jones huấn luyện hệ thống của 
họ với 4 đặc trưng Haar – like và 38 bộ phân lớp mạnh trong cascade of booted 
classifier; thời gian huấn luyện bộ phân lớp của họ khoảng vài tuần. Tuy nhiên kết quả 
chúng tôi thực nghiệm trên thư viện OpenCv lại không đạt được như kết quả của Viola 
báo cáo trong [1]. (trình bày trong phần kết quả của phương pháp AdaBoost mục 3.3.2) 
Chúng tôi cũng đã huấn luyện lại thư viện OpenCv nhưng kết quả cũng không như 
mong đợi. Do đó, kết quả của bộ phát hiện AdaBoost được thống kê dựa vào kết quả 
chúng tôi thực nghiệm được dựa vào thư viện OpenCv. Chúng tôi cũng lấy kết quả từ 
bộ phát hiện AdaBoost của OpenCv để so sánh với kết quả đạt được của chúng tôi. 
 35
Trong [2], A. Hadid và các đồng nghiệp đã thực hiện việc kiểm tra phương pháp rút 
đặc trưng LBP của họ trên một phần tập dữ liệu CMU + MIT (227 khuôn mặt trong 80 
ảnh), kết quả báo cáo là LBP đạt hiệu suất phát hiện chính xác là 97.4%, số phát hiện 
sai là 0. Tuy nhiên, trong [2], các tác giả không trình bày rõ là 80 kiểm tra là các ảnh 
nào trong 130 ảnh của bộ dữ liệu CMU – MIT, nên luận văn không có cơ sở để so 
sánh. 
4.3 Kết quả thực nghiệm của phương pháp đề xuất trên tập dữ liệu CalTech 
Để kiếm chứng hiệu suất của bộ phát hiện AB – LBP, chúng tôi thực hiện thêm kiểm 
tra trên tập dữ liệu CalTech của Markus Weber, học viện kỹ thuật California [25]. Tập 
ảnh gồm 447 ảnh (không xét các ảnh vẽ, họa). Đây là tập dữ liệu chụp các khuôn mặt 
thẳng, chụp dưới nền phức tạp và đa dạng gồm cả trong nhà và ngoài trời. Điều kiện 
chiếu sáng khá đa dạng gồm cả các ảnh chụp cùng chiều chiếu sáng và ngược sáng. 
Tập ảnh còn có các ảnh chụp phức tạp do một phần của khuôn mặt bị che khuất. Tập 
ảnh dùng để kiểm tra là 447 ảnh. Kích thước của mỗi ảnh trong tập CalTech là 896 × 
592. Hình 11 minh họa một số ảnh trong tập dữ liệu CalTech. 
 36
Hình 11. Một số ảnh trong tập dữ liệu CalTech 
Bảng 5 thống kê kết quả bộ phát hiện AdaBoost trên tập dữ liệu CalTech 
Bảng 5. HIỆU SUẤT CỦA BỘ PHÁT HIỆN ADABOOST TRÊN TẬP DỮ LIỆU CALTECH 
Phương 
pháp 
Số phân 
lớp mạnh 
Tổng số 
đặc trưng 
Haar – like 
đã sử dụng 
Số khuôn 
mặt phát 
hiện chính 
xác 
Số khuôn 
mặt phát 
hiện sai 
Tỉ lệ 
phát 
hiện 
chính 
xác (%) 
Tổng thời 
gian xử lí 
447 ảnh 
(giây) 
Thời gian 
trung bình 
để xủ lí 
một ảnh 
(giây) 
AB25 25 2913 444 152 99.33 123.442 0.274 
Bảng 6 thống kê kết quả bộ phát hiện AB – LBP trên tập dữ liệu CalTech 
 37
Bảng 6. HIỆU SUẤT CỦA BỘ PHÁT HIỆN AB - LBP TRÊN TẬP DỮ LIỆU CALTECH 
Cấu trúc AdaBoost Phương 
pháp Số bộ phân 
lớp mạnh 
Số đặc 
trưng 
Haar - 
like 
Cấu trúc LBP Số 
khuôn 
mặt phát 
hiện 
chính 
xác 
Số khuôn 
mặt phát 
hiện sai 
Tỉ lệ phát 
hiện chính 
xác(%) 
Thời gian 
xử lí 447 
ảnh (giây) 
Thời gian 
trung bình 
để xử lí 
một ảnh 
(giây) 
AB25-
LBP 
25 2913 
1,4LBP + 
2
1,8
uLBP 
 (phân lớp bởi 
ANN) 
443 9 99.11 126.056 0.280 
Hình 12 so sánh một số kết quả tiêu biểu trên tập dữ liệu CalTech của bộ phát hiện 
AdaBoost và AB – LBP. 
Trên tập dữ liệu CalTech, kết quả phát hiện khuôn mặt chính xác của phương pháp 
AB25 và AB20 là như nhau vì các ảnh trong tập dữ liệu tuy có một số ảnh phức tạp 
nhưng chỉ chứa một khuôn mặt trong mỗi ảnh. Có 3 khuôn mặt trong 3 ảnh không 
được phát hiện bởi AB25 lẫn AB20. Vì vậy trong thực nghiệm, chúng tôi chỉ trình bày 
kết quả của phương pháp AB25 cũng như kết quả của phương pháp AB25LBP. Từ kết 
quả thực nghiệm ta có thấy, phương pháp AB25LBP phát hiện ít hơn AB25 một khuôn 
mặt. Nhưng thay vào đó số phát hiện sai của AB25LBP chỉ là 9, rất nhỏ so với 152 
phát hiện sai của AB25. Một điều quan trọng nữa là thời gian xử lí của AB25LBP và 
AB25 xấp xỉ nhau. 
 38
Hình 12. Một số kết quả phát hiện khuôn mặt của AdaBoost và AB – LBP trên tập 
dữ liệu CalTech