Phát hiện mặt người trong ảnh dựa trên các đặc trưng haar - Like và mẫu nhị phân cục bộ
Trang nhan đề
Lời cảm ơn
Mục lục
Chương_1: Bài toán phát hiện khuôn mặt- mục đích, sự cần thiết của nghiên cứu và kết quả nghiên cứu đạt được
Chương_2: Các công trình liên quan
Chương_3: ÁP dụng AdaBoost và LBP cho bài toán phát hiện mặt người
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
Chương_5: Kết luận và phương hướng phát triển
Danh mục công trình tác giả
Tài liệu tham khảo
Phụ lục
Mục lục
Danh Mục Các Bảng
Bảng 1. Hiệu suất của bộ phát hiện ADABOOST trên tập dữ liệu MIT – CMU .20
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 .28
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 .29
MIT - CMU . .29
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 .34
MIT - CMU . .34
Bảng 5. Hiệu suất của bộ phát hiện ADABOOST trên tập dữ liệu CALTECH .36
Bảng 6. Hiệu suất của bộ phát hiện AB - LBP trên tập dữ liệu CALTECH .37
Danh Mục Các Hình
Hình 1. Cascade của các bộ phân lớp mạnh. Nơi một vùng ứng viên có thể bị loại
tại bất kì giai đoạn nào .1 4
Hình 2. Ví dụ sự tính toán LBP 15
Hình 3. Minh họa toán tử LBP mở rộng với các giá trị P và R khác nhau Giá trị các
pixel được nội suy cho các điểm không nằm trong tâm của một pixel 16
Hình 4. Từ trái sang phải, các mẫu vân cơ bản: điểm chấm, điểm chấm nhạt, điểm
cuối đường thẳng, biên cạnh, góc được phát hiện bởi LBPu2 17
Hình 5. Sự biễu diễn khuôn mặt: histogram đặc trưng được tạo bằng cách kết hợp
histogram LBP cục bộ và histogram LBP toàn cục. 18
Hình 6. Ví dụ của các ảnh khuôn mặt được sử dụng để huấn luyện AdaBoost .19
Hình 7. Kết quả phát hiện khuôn mặt trên tập MIT + CMU. Nếu một số lượng lớn
bộ phân lớp mạnh được sử dụng trong cascade tree thì thời gian xử lí sẽ tăng và một số
khuôn mặt bị sót. Một vài background khó bị phân lớp sai là khuôn mặt (false positive)
2
Hình 8. Vài cửa sổ kích thước 20×20 được rút trích ngẫu nhiên từ một ảnh không
chứa khuôn mặt nào để tạo các mẫu non – face cho bộ phát hiện LBP .24
Hình 9. Quá trình phát hiện khuôn mặt của bộ phát hiện AB – LBP .27
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 .33
Hình 11. Một số ảnh trong tập dữ liệu CalTech .36
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 38
Hình 13. Sử dụng nội suy để tính toán giá trị p g .51
Nội Dung
Mục lục . .1
Chương 1. Bài toán phát hiện khuôn mặt – mục đích, sự cần thiết của nghiên cứu
và kết quả nghiên cứu đạt được 4
1.1 Sự cần thiết của nghiên cứu . 4
1.2 Mục đích nghiên cứu .5
1.3 Kết quả đạt được của luận văn .5
Chương 2. Các công trình liên quan .7
2.1 Nhóm phương pháp dựa trên tri thức .7
2.2 Nhóm phương pháp dựa trên đặc trưng bất biến .7
2.3 Nhóm phương pháp dựa trên đối sánh mẫu . 7
2.4 Nhóm phương pháp dựa trên máy học 7
2.5 Một số nghiên số nghiên cứu về bài toán phát hiện mặt người tại khoa Công
Nghệ Thông Tin, ĐH Khoa Học Tự Nhiên Tp. HCM . 9
Chương 3. Áp dụng AdaBoost và LBP cho bài toán phát hiện mặt người .12
3.1 AdaBoost .12
3.1.1 Tổng quan về AdaBoost .12
3
3.1.2 Áp dụng AdaBoost cho bài toán phát hiện khuôn mặt .12
3.2 Local Binary Pattern(Mẫu nhị phân cục bộ) . .14
3.2.1 Local Binary Pattern . 14
3.2.2 Áp dụng LBP cho bài toán phát hiện khuôn mặt .17
3.3 Phân tích và đánh giá phát hiện mặt người sử dụng AdaBoost và LBP 18
3.3.1 Cơ sở dữ liệu cho huấn luyện phát hiện khuôn mặt với phương pháp
AdaBoost .18
3.3.2 Kết quả thực nghiệm của phương pháp AdaBoost .19
3.3.3 Cơ sở dữ liệu cho huấn luyện phát hiện khuôn mặt với phương pháp LBP 23
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 .27
4.1 Mô hình đề xuất .2 7
4.2 Các kết quả thực nghiệm và thảo luận .28
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 34
Chương 5. Kết luận và hướng phát triển . 39
Danh mục công trình của tác giả 40
Tài liệu tham khảo .41
Phụ lục . 44
A. Cơ sở toán học của AdaBoost .44
1. AdaBoost .44
B. Nội suy song tuyến tính . 51
12 trang |
Chia sẻ: lvcdongnoi | Lượt xem: 3539 | Lượt tải: 2
Bạn đang xem nội dung tài liệu Phát hiện mặt người trong ảnh dựa trên các đặc trưng haar - Like và mẫu nhị phân cục bộ, để 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