Đã có các hệ thống nhận dạng mặt người dựa trên các phương pháp dò tìm với mạng nơron nhân tạo, SVM và nhận dạng mặt người dựa trên phương pháp mạng nơron nhân tạo, ICA, SVM…Các ứng dụng
Trang 1NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
Trang 2
Lời Cảm Ơn
Em xin chân thành cảm ơn thầy Tiến sĩ Nguyễn Đình Thuân đã tận tình hướng dẫn, giúp đỡ em trong suốt thời gian thực hiện đồ án tốt nghiệp này, chân cảm ơn quý thầy cô khoa Công nghệ thông tin Trường Đại Học Nha Trang đã tận tình giảng dậy, trang bị cho chúng em những kiến thức cần thiết trong suốt quá trình học tập
Em cũng xin gửi lòng biết ơn đến gia đình, cha, mẹ, và bạn bè đã ủng hộ, giúp đỡ
và động viên em trong suốt quá trình làm đồ án tốt nghiệp
Đề tài được thực hiện trong một thời gian tương đối gian, nên dù đã hết sức cố gắng hoàn thành nhưng chắc chắn sẽ không thể tránh khỏi những thiếu sót nhất định Rất mong nhận được sự thông cảm và đóng góp ý kiến của các thầy cô, bạn bè nhằm tạo tiền đề thuận lợi cho việc phát triển đề tài tốt hơn nữa trong tương lai
Nha Trang, ngày 8/12/2008
Trang 3Lời Mở Đầu
Trong những năm gần đây, các ứng dụng về nhận dạng mặt người ngày càng phát triển và được đánh giá cao Đã có các hệ thống nhận dạng mặt người dựa trên các phương pháp dò tìm với mạng nơron nhân tạo, SVM và nhận dạng mặt người dựa trên phương pháp mạng nơron nhân tạo, ICA, SVM…Các ứng dụng vừa nêu trên mặc dù được dựa trên các lý thuyết khá cổ điển như HMM, nơron nhưng ứng dụng thực tế thì chưa được nhiều vì giới hạn về tốc độ
Hệ thống nhận dạng khuôn mặt người vốn có phạm vi ứng dụng lớn nên việc phát triển hệ thống nhận dạng khuôn mặt người theo các phương pháp mới có ý nghĩa hết sức quan trọng, đó là lý do tôi chọn đề tài:
“NGHIÊN CỨU VÀ XÂY DỰNG HỆ THỐNG NHẬN DẠNG MẶT NGƯỜI DỰA TRÊN ADABOOST”
Để có hệ thống nhận dạng khuôn mặt với chất lượng tốt trong thời gian khá nhanh, tôi đã tiếp cận mô hình học AdaBoost làm công cụ xử lý chính cho việc dò tìm mặt người dựa vào thông tin trên khuôn mặt và hai phương pháp PCA và LDA
để nhận dạng
Đề tài được tổ chức thành 7 chương với nội dung:
Chương 1: Phát biểu bài toán
Chương 2: Dò tìm khuôn mặt theo phương pháp AdaBoost
Chương 3: Tổng quan về PCA và LDA
Chương 4: Ứng dụng phương pháp PCA và LDA nhận dạng mặt người
Chương 5: Cài đặt chương trình
Trang 4MỤC LỤC
Trang
Chương 1 6
TỔNG QUAN VỀ BÀI TOÁN 6
1.1 Tổng quan và các khái niệm liên quan đến nhận dạng khuôn mặt 6
1.1.1 Hệ thống nhận dạng khuôn mặt 6
1.1.2 Hệ thống xác minh 6
1.1.3 Hệ thống nhận dạng tĩnh - tĩnh, tĩnh - động, động - động 6
1.2 Những khó khăn trong bài toán nhận dạng khuôn mặt 7
1.3 Các hướng tiếp cận chính trong lĩnh vực nhận dạng khuôn mặt 7
1.3.1 Các công trình nghiên cứu về phương pháp dò tìm và nhận dạng khuôn mặt 7
1.3.2 Hướng tiếp cận trong luận văn 8
1.4 Thu thập dữ liệu 9
1.5 Biểu diễn dữ liệu khuôn mặt trong máy tính 10
Chương 2 11
DÒ TÌM KHUÔN MẶT NHANH THEO PHƯƠNG PHÁP ADABOOST 11
2.1 Giới thiệu 11
2.1.1 Các vấn đề trong việc dò tìm khuôn mặt nhanh 11
2.1.2 Các hướng tiếp cận dò tìm khuôn mặt 11
2.1.3 Hướng tiếp cận theo phương pháp AdaBoost 12
2.2 Phương pháp chọn đặc trưng cho AdaBoost 12
2.3 Phương pháp AdaBoost (Adaptive Boost) 15
2.3.1 Tiếp cận Boosting 15
2.3.2 AdaBoost (Adaptive Boost) 16
2.4 Dò tìm khuôn mặt với AdaBoost 21
Chương 3 22
TỔNG QUAN VỀ PCA VÀ LDA 22
3.1 Giới thiệu về việc nhận dạng khuôn mặt người 22
3.2 Sơ lược về toán đại số tuyến tính trong thống kê 22
3.2.1 Vector riêng, trị riêng và sự chéo hóa của ma trận 22
3.1.1.1 Vector riêng và trị riêng 22
3.2.1.2 Ma trận chéo hóa 23
3.2.2 Kỳ vọng và phương sai trong thống kê đa chiều 23
3.1.2.1 Kỳ vọng 23
3.2.2.2 Phương sai trong thống kê đa chiều 23
3.3 Sơ lược về PCA và LDA 25
3.4 Trích rút đặc trưng từ không gian khuôn mặt theo PCA, LDA 27
Chương 4 30
ỨNG DỤNG PHƯƠNG PHÁP PCA VÀ LDA TRONG NHẬN DẠNG KHUÔN MẶT NGƯỜI 30 4.1 Eigenface là gì? 30
4.2 Rút trích đặc trưng chính thông qua các eigenfaces 30
4.3 Thuật toán PCA 36
4.4 Thuật toán LDA 37
4.5 PCA và LDA phân lớp một ảnh khuôn mặt 38
Chương 5 43
CÀI ĐẶT CHƯƠNG TRÌNH 43
5.1 Giới thiệu 43
Trang 55.2 Các module của chương trình 43
5.3 Giao diện màn hình và hướng dẫn sử dụng 55
5.4 Nhận xét 55
TÀI LIỆU THAM KHẢO 56
Trang 61.1.2 Hệ thống xác minh
Hệ thống xác minh/ xác thực khuôn mặt là một hệ thống được thiết kế để xác minh thông tin của một người Kĩ thuật xác minh là kiểm tra sự phù hợp trên phép
so sánh một – một cụ thể là đối chiếu thông tin mới nhận về một người với thông tin
đã lưu trữ về người này có khớp hay không dựa trên thông tin khuôn mặt
1.1.3 Hệ thống nhận dạng tĩnh - tĩnh, tĩnh - động, động - động
Hệ thống nhận dạng tĩnh – tĩnh
Hệ thống nhận dạng tĩnh – tĩnh là hệ thống được thiết kế bằng cách sử dụng một số ảnh tĩnh làm mẫu để nhận dạng khuôn mặt người trong ảnh tĩnh Kĩ thuật nhận dạng này kiểm tra sự phù hợp dựa trên phép so sánh một nhiều như hệ thống nhận dạng nói chung ở trên
Hệ thống nhận dạng tĩnh – động
Hệ thống nhận dạng tĩnh – động là hệ thống được thiết kế bằng cách sử dụng một số ảnh tĩnh làm mẫu để nhận dạng khuôn mặt người trong ảnh động Kĩ thuật nhận dạng này kiểm tra sự phù hợp dựa trên phép so sánh một nhiều như hệ thống nhận dạng nói chung ở trên, song ảnh cần kiểm tra là các khung ảnh động trong các đoạn phim từ các máy camera Kĩ thuật này dĩ nhiên không thể chính xác vì chuyển động của mặt người trong phim khá phức tạp song thể hiện trong ảnh tĩnh để huấn luyện lại ít
Trang 7Hệ thống nhận dạng động – động
Hệ thống nhận dạng động – động là hệ thống được thiết kế bằng cách sử dụng các ảnh động làm mẫu để nhận dạng khuôn mặt người trong ảnh động Kĩ thuật nhận dạng này kiểm tra sự phù hợp dựa trên phép so sánh một nhiều như hệ thống nhận dạng chung nói trên Tuy nhiên, kĩ thuật này chính xác hơn kĩ thuật sử dụng trong hệ thống nhận dạng tĩnh – động do sự chuyển động phức tạp của khuôn mặt người cũng được huấn luyện bằng các khung ảnh động
1.2 Những khó khăn trong bài toán nhận dạng khuôn mặt
Những biến đổi quá lớn giữa các ảnh khuôn mặt khác nhau từ một người cần nhận dạng gồm trạng thái cảm xúc trên khuôn mặt, ánh sáng và các thay đổi vị trí của khuôn mặt
Giới hạn về số ảnh cần thiết cho việc nhận dạng, tập học không thể bao quát được tất cả các biến đổi có thể có trên khuôn mặt của một người cần nhận dạng trong thế giới thực
1.3 Các hướng tiếp cận chính trong lĩnh vực nhận dạng khuôn mặt
1.3.1 Các công trình nghiên cứu về phương pháp dò tìm và nhận dạng khuôn mặt
Bài toán nhận dạng khuôn mặt cần xác định hai vấn đề chính: dùng thông tin nào để nhận dạng (chân mày, cặp mắt, mũi, môi, tai, hay kết hợp các thông tin trên)
Và dùng phương pháp nào để huấn luyện cho máy nhận dạng dùng nguồn thông tin
đó Nhận dạng khuôn mặt trên máy tính trải qua nhiều bước thăng trầm với các kết quả như sau:
Wenyi Zhao, Arvindh Krishnaswamy, Rama Chellappa, Danie L.Swets, John Weng (1998) sử dụng phương pháp PCA (phân tích thành phần chính) kết hợp LDA (phân tích độc lập tuyến tính) Bước 1, chiếu ảnh khuôn mặt từ không gian ảnh thô sang không gian các không gian khuôn mặt (mỗi lớp khuôn mặt được nhận dạng sẽ được mô hình hóa bằng một không gian khuôn mặt) dùng PCA Bước 2, sử dụng phương pháp LDA để tạo bộ phân loại tuyến tính có khả năng phân lớp các lớp khuôn mặt
Emmanuel Viennet và Francoise Fogelman Soulie (1998), sử dụng phương pháp mạng neural nhân tạo để xử lý và nhận dạng khuôn mặt
Trang 8Antonio J.Colmenarez và Thomas S.Huang (1998) sử dụng kỹ thuật học thị giác và phù hợp mẫu 2D Ông quan niệm bài toán dò tìm khuôn mặt là thao tác phân loại khuôn mặt trong đó khuôn mặt thuộc về một lớp và các đối tượng khác thuộc về lớp còn lại bằng cách ước lượng mô hình xác suất cho mỗi lớp và việc dò tìm sử dụng luật quyết định Maximum- likehood
Ara V.Nefian và Monson H.Hayes III (1998) trình bày hướng tiếp cận theo mô hình Markov (HMM) trong đó ảnh mẫu khuôn mặt được lượng hóa thành chuỗi quan sát trên khuôn mặt theo quan niệm dựa trên thứ tự xuất hiện các đặc trưng khuôn mặt (hai chân mày, hai lông mi, mũi, miệng, cằm) Trong chuỗi quan sát đó, mỗi quan sát lại là một vector nhiều chiều và mỗi vector quan sát này được
sử dụng để đặc trưng cho mỗi trạng thái trong chuỗi trạng thái của HMM Mỗi người được ước lượng bằng một mô hình của HMM
Guodong Guo, Stan Z.Li, Kap Luk Chan (17 January 2001), dùng phương pháp SVM để nhận dạng khuôn mặt Sử dụng chiến lược kết hợp nhiều bộ phân loại nhị phân để xây dựng bộ phân loại SVM đa lớp
Hichem Sahbi (7 April 2003) sử dụng phương pháp SVM để dò tìm khuôn mặt, áp dụng các chiến lược đa cấp để tối ưu hóa tốc độ
ZhenQui Zhang, Long Zhu, Stan Z.Li và HongJiang Zhang (2001) sử dụng phương pháp AdaBoost để dò tìm khuôn mặt trong thời gian thực với nhiều góc nhìn khác nhau
1.3.2 Hướng tiếp cận trong luận văn
Trong bài luận văn tốt nghiệp này đã sử dụng hai phương pháp đó là: phương pháp PCA (phân tích thành phần chính) và phương pháp LDA (Phân tích biệt số tuyến tính) để nhận dạng khuôn mặt
Việc cô lập khuôn mặt trong ảnh đầu vào (ảnh chứa khuôn mặt – cửa sổ chứa khuôn mặt) được thực hiện với phương pháp dò tìm khuôn mặt trong ảnh dùng AdaBoost Hình dưới mô phỏng các thao tác trong hệ thống nhận dạng mặt người
Trang 9Hình 1: Sơ đồ hệ thống nhận dạng khuôn mặt
1.4 Thu thập dữ liệu
Cơ sở dữ liệu ảnh khuôn mặt gồm nhiều người được thu thập từ nhiều nguồn khác nhau
Tập huấn luyện bộ dò tìm (phát hiện) khuôn mặt được lấy từ trang web
http://www.ai.mit.edu/projects/cbcl của trung tâm CBCL thuộc trường đại học MIT Tập ảnh gồm hai bộ ảnh như sau: ảnh huấn luyện (gồm khoảng trên 2000 mặt người
và trên 4000 không phải mặt người) và ảnh thử nghiệm
Cơ sở dữ liệu ảnh để nhận dạng khuôn mặt:
- Cho PCA: gồm 30 người, được chụp từ webcam và lấy từ các ảnh của các bạn sinh viên lớp 46TH
- Cho LDA: gồm 20 người, mỗi người bao gồm khoảng 10-15 ảnh khác nhau Nhận xét về tập mẫu dữ liệu: Hầu hết các khuôn mặt xuất hiện trong ảnh là khuôn mặt trực diện mặt phẳng và mỗi khuôn mặt đều đầy đủ thông tin đặc trưng như (hai chân mày, hai mắt, mũi, miệng, cằm)
Ảnh tĩnh
Webcam
Phát hiện khuôn mặt bằng AdaBoost
Trích chọn đặc trưng bằng eigenface
…
? Nhận dạng với PCA, LDA
Trang 10Kích thước chuNn hóa của mỗi mẫu trong tập huấn luyện là 250x250 pixels
1.5 Biểu diễn dữ liệu khuôn mặt trong máy tính
Dữ liệu ảnh biểu diễn trong máy tính là cường độ sáng của điểm ảnh, tại vị trí (x, y) là I(x, y)
Để biểu diễn dữ liệu cho các thuật toán học nhận dạng, ta dùng cách tổ chức
dữ liệu như xau:
Đọc từng dòng ảnh theo thứ tự từ trên xuống, mỗi dòng ảnh được bố trí liên tục nhau trên một mảng số thực nhiều chiều hay chính là vector có kích thước 250x250: x =(x1,x1, ,x62500) Đây là cách bố trí cho phương pháp PCA và LDA
Trang 11Dò tìm khuôn mặt nhanh theo phương pháp AdaBoost là một bài toán quan trọng vì là quá trình nhận dạng đối tượng sẽ thiếu chính xác nếu như thiếu bước dò tìm và định vị được đối tượng
2.1.1 Các vấn đề trong việc dò tìm khuôn mặt nhanh
Bản thân việc dò tìm khuôn mặt trên ảnh đã có nhiều vấn đề như:
o Biến đổi mặt phẳng ảnh (quay, hướng vv… của khuôn mặt)
o Biến đổi độ sáng và ngữ cảnh
o Biến đổi nền
o Biến đổi hình dáng (các sắc thái khuôn mặt khác nhau)
2.1.2 Các hướng tiếp cận dò tìm khuôn mặt
o Hướng dò tìm khuôn mặt trên ảnh màu dựa trên sự phân tích màu sắc của vùng da Mặc dù việc xử lý khá nhanh nhưng hướng này có giới hạn chỉ
xử lý trên ảnh màu và thường nhạy cảm với ảnh, thường chỉ sử dụng làm các bước tiền xử lý cho các hướng khác
o Hướng dò tìm khuôn mặt dựa trên đặc trưng chủ yếu dựa vào các đặc trưng của khuôn mặt người được quy định trước Thành công nhất trong dò tìm khuôn mặt người trong thời gian thực là phương pháp ASM (Active shape Models)
o Hướng dò tìm khuôn mặt dựa trên thông tin hình ảnh gồm mạng nơron nhân tạo, các hướng thống kê (SVM, AdaBoost…) Phương pháp SVM và mạng nơron nhân tạo cũng đạt được kết quả khá cao trong thời gian khá nhanh song cũng chỉ vài ảnh trong một giây nhưng với AdaBoost thì cho kết quả khả quan hơn
Trang 122.1.3 Hướng tiếp cận theo phương pháp AdaBoost
Trong đồ án tốt nghiệp này việc dò tìm khuôn mặt người theo phương pháp AdaBoost với các lý do sau:
o Phương pháp AdaBoost dựa trên ý tưởng xây dựng các bộ dò tìm yếu, mặc dù độ chính xác không cao nhưng có thời gian xử lý rất nhanh Tuy nhiên, khi kết hợp các bộ dò tìm lại có thể đạt độ chính xác cao
o Phương pháp AdaBoost sử dụng kết hợp các đặc trưng vốn dĩ tính toán rất nhanh, thích hợp cho việc dò tìm trong thời gian thực
2.2 Phương pháp chọn đặc trưng cho AdaBoost
Một phương pháp chọn đặc trưng thích hợp cho AdaBoost là phép biến đổi Haar-like Haar feature là một loại đặc trưng thường được dùng cho bài toán nhận dạng trên ảnh Haar feature được xây dựng từ các hình chữ nhật có kích thước bằng nhau, dùng để tính độ chênh lệch giữa các giá trị điểm ảnh trong các vùng kề nhau
Có ba tập hợp miền hình học chính như sau:
Hình 2- Các miền hình học đặc trưng Haar-like
Giả sử miền đen là dương và miền trắng là miền âm thì đặc trưng Haar-like tính bằng tổng giá trị pixel của các ô đen trừ cho tổng giá trị pixel của các ô trắng
Trang 13Hình 3- Haar Feature cơ bản
Trong hình 3.2a và 3.2b, giá trị của feature cho bởi 1 ảnh bằng hiệu số giữa tổng các điểm ảnh thuộc 2 vùng hình chữ nhật sáng và tối Trong hình 3.2c thì giá trị feature bằng tổng các điểm ảnh trong hai vùng hình chữ nhật bên ngoài trừ cho tổng các điểm ảnh nằm trong hình chữ nhật ở giữa Trong hình 3.2d, giá trị feature bằng tổng các điểm ảnh nằm trong vùng 2 hình chữ nhật mầu tối trừ cho tổng các điểm ảnh nằm trong 2 hình chữ nhật màu sáng
Haar-like được ưa thích vì các lý do sau:
• Nó diễn đạt được tri thức về các đối tượng trong ảnh (bởi vì nó biểu diễn mối liên hệ giữa các bộ phận của đối tượng), điều mà bản thân từng điểm ảnh không diễn đạt được
• Nó phân loại mạnh trong việc xác định khuôn mặt người hay không phải khuôn mặt người
• Có hiệu quả khi dùng bảng tổng các vùng hoặc các kỹ thuật ảnh đầy
Trang 14Hình 4- Haar Feature cho mặt người
Trong quá trình huấn luyện, số lượng xử lý trên các Haar Feature là rất lớn, việc tính tổng các điểm ảnh cho bởi từng feature làm cho thời gian xử lý tăng đáng
kể Để khắc phục điều này, Viola và Jones đã đưa ra khái niệm Integral Image để tính toán nhanh cho các feature cơ bản
Integral image
Cách tính nhanh phương pháp Haar-like dựa trên đạo hàm ảnh bậc nhất ii(x,y) của ảnh i(x,y) Đạo hàm ii(x,y) của ảnh i(x,y) chính là tổng giá trị các pixel tính từ góc trái trên đến (x,y):
x ii
' , ' ,
Hình 5- Ý nghĩa hình học của đạo hàm ảnh
Việc tính toán đạo hàm ảnh được thực hiện rất nhanh bằng việc cộng tích lũy như sau:
( )x y ii(x y) ( )s x y ii
y x i y x s y x s
,,
1,
,1,,
Trang 15Sau khi có được đạo hàm ảnh, ta chỉ việc tính giá trị một ô chữ nhật bằng cách như sau: chẳng hạn ta cần tính ô hình chữ nhật D thì ta có công thức sau ( )D val(ABCD) val( )AC val( )AB val ( A)
Ví dụ, xét một bài toán phân loại hai lớp (mẫu cần nhận dạng sẽ được phân vào 1 trong 2 lớp) với D là tập huấn luyện gồm có n mẫu Trước tiên, chúng ta sẽ chọn ngẫu nhiên ra n1 mẫu từ tập D (n1<n) để tạo tập D1 Sau đó, chúng ta sẽ xây dựng weak classifier đầu tiên C1 từ tập D1 Tiếp theo, chúng ta xây dựng tập D2 để huấn luyện bộ phân loại C2 D2 sẽ được xây dựng sao cho một nửa số mẫu của nó được phân loại đúng bởi C1 và nửa còn lại bị phân loại sai bởi C1 Bằng cách này,
D2 chứa đựng những thông tin bổ sung cho C1 Bây giờ chúng ta sẽ xây dựng huấn luyện C2 từ D2
Tiếp theo, chúng ta sẽ xây dựng tập D3 từ những mẫu không được phân loại tốt bởi sự kết hợp giữa C1 và C2: những mẫu còn lại trong D mà C1 và C2 cho kết
Trang 16quả khác nhau Như vậy, D3 sẽ gồm những mẫu mà C1 và C2 hoạt động không có hiệu quả Sau cùng, chúng ta sẽ huấn luyện bộ phân loại C3 từ D 3
Bây giờ, chúng ta đã có một strong classifier: sự kết hợp C1, C2 và C1 Khi tiến hành nhận dạng một mẫu X, kết quả sẽ được thỏa thuận của 3 bộ C1, C2 và C3 Nếu
C1 và C2 đều phân X vào cùng một lớp thì lớp này chính là kết quả phân loại của X; ngược lại, nếu C1 và C2 phân X vào 2 lớp khác nhau, C3 sẽ quyết định X thuộc về lớp nào
Hình 7- Boosting
2.3.2 AdaBoost (Adaptive Boost)
AdaBoost là một tiếp cận boosting được Freund và Schapire đưa ra vào năm
1995 AdaBoost cũng hoạt động trên nguyên tắc kết hợp tuyến tính các weak classifiers để có một strong classifier
Là một cải tiến của tiếp cận boosting, AdaBoost sử dụng thêm khái niệm trọng
số (weigth) để đánh dấu các mẫu khó nhận dạng Trong quá trình huấn luyện, cứ mỗi weak classifier được xây dựng, thuật toán sẽ tiến hành cập nhật lại trọng số để chuNn bị cho việc xây dựng weak classifier kế tiếp: tăng trọng số của các mẫu bị nhận dạng sai và giảm trọng số của các mẫu được nhận dạng đúng bởi weak classifier vừa được xây dựng Bằng cách này, các weak classifier sau có thể tập
Trang 17trung vào các mẫu mà các weak classifiers trước đó chưa làm tốt Sau cùng, các weak classifiers sẽ được kết hợp tùy theo mức độ “tốt” của chúng để tạo dựng nên strong classifier
Có thể hình dung một cách trực quan như sau: để biết một ảnh có phải là mặt người hay không, ta hỏi T người (tương đương với T weak classifiers xây dựng từ T vòng lặp của boosting), đánh giá của mỗi người (tỉ lệ sai dưới 50%) Sau đó, ta sẽ đánh trọng số cho đánh giá của từng người (thể hiện qua hệ số α), người nào có khả năng đánh giá tốt các mẫu khó thì mức độ quan trọng của người đó trong kết luận cuối cùng sẽ cao hơn những người chỉ đánh giá tốt được các mẫu dễ Việc cập nhật lại trọng số của các mẫu sau mỗi vòng boosting chính là để đánh giá độ khó của các mẫu (mẫu càng có nhiều người đánh giá sai là mẫu càng khó)
Hình 8- Strong classifier H(x) xây dựng bằng AdaBoost
Dữ liệu huấn luyện
k h x sign
x H
1
)
Trang 18Các weak classifiers hk(x) được biểu diễn như sau:
, 0
) ( , 1 )
Trong đó:
• X= (x1, x2,…, xn): vector đặc trưng của mẫu
• θ: ngưỡng
• fk: hàm lượng giá vector đặc trưng của mẫu
• pk: hệ số quyết định chiều của bất phương trình
Công thức trên có thể được diễn giải như sau: nếu giá trị vector đặc trưng của mẫu cho bởi hàm lượng giá của bộ phân loại vượt qua một ngưỡng cho trước thì mẫu object (đối tượng cần nhận dạng), ngược lại là background (không phải đối tượng nhận dạng)
Thuật toán AdaBoost:
1 Cho m ộ t t ậ p hu ấ n luy ệ n g ồ m n m ẫ u có đ ánh d ấ u (x1, y1), (x2, y2), …, (x , N y N) v ớ i x k ∈X =(x k1,x k2, ,x kM) là vector đặ c tr ư ng và y k∈{ }−1,1 là nhãn
k k t
k k t t
k t k t
y x h e
y x h e Z
W W
t t
)
, , 1
( ,
) ( ,
α α
Trang 19Quá trình huấn luyện bộ phân loại được thực hiện bằng một vòng lặp mà ở mỗi bước lặp, thuật toán sẽ chọn ra một weak classifier ht thực hiện việc phân loại với lỗi ε nhỏ nhất (do đó sẽ là bộ phân loại tốt nhất) để bổ sung vào strong classifier tMỗi khi chọn được 1 bộ phân loại ht, AdaBoost sẽ tính giá trị α theo công thức ở ttrên, αt cũng được chọn trên nguyên tắc làm giảm thiểu giá trị lỗi εt
Hệ số αt nói lên mức độ quan trọng của ht:
- Trong công thức của bộ phân loại H(x):
t h x sign
x H
1
) ( )
Dễ thấy giá trị αt tỉ lệ nghịch với εj Bởi vì ht được chọn với tiêu chí đạt εj
nhỏ nhất, do đó nó sẽ đảm bảo giá trị αt lớn nhất Công thức này do Freund và Schapire đưa ra
Sau khi tính được giá trị αt, AdaBoost tiến hành cập nhật trọng số của các mẫu: tăng trọng số của các mẫu mà ht phân loại sai, giảm trọng số các mẫu mà ht
o Z t : h ệ s ố dùng để đư a W t+1, k v ề đ ạ n [0,1] ( normalization factor)
4 Strong classifier xây d ự ng đượ c
t h x sign
x H
1
) (α
Trang 20phân loại đúng Bằng cách này, trọng số của các mẫu phản ánh được mức độ khó nhận dạng của mẫu đó và ht+1 sẽ ưu tiên học cách phân loại những mẫu này
Vòng lặp sẽ dừng lại sau T lần lặp Trong thực tế cài đặt, người ta ít sử dụng T
vì không có công thức nào đảm bảo tính được giá trị T tối ưu cho quá trình huấn luyện Thay vào đó, người ta sử dụng giá trị max false positive hay max false alarm (tỉ lệ nhận dạng sai tối đa các mẫu background) Tỉ lệ này của bộ phân loại cần xây dựng không được phép vượt quá giá trị này Khi đó, qua các lần lặp, false alarm của strong classifier Ht(x) xây dựng được (tại lần lặp thứ t) sẽ giảm dần, và vòng lặp kết thúc khi tỉ lệ này thấp hơn max false alarm
Lỗi xảy ra trong quá trình huấn luyện
Lỗi xảy ra khi H( )x ≠ y hay yH( )x < 0 Lề của mẫu ( )x, y qua hàm h( )x ∈R
trên tập các mẫu huấn luyện được định nghĩa là yh( )x Lề có thể được xem là các số
đo độ tin cậy của giá trị đoán trước của h Lỗi phân lớp của HM có biên trên là:
=
i
x H y M
i M i
e H
M m
, 1 log
2
1 )
x y P
x y P x
) , 1 (
log 2
1 ) (
y x P x
) 1 ( log
2
1
y P
y P
T (1) chúng ta có được h M(x)=L M(x)−T L M là các mẫu của cả hai phân lớp Ngưỡng T được xác định bằng tỉ lệ log của các xác suất trước
đó
Trang 212.4 Dò tìm khuôn mặt với AdaBoost
Trong đồ án này sử dụng 4 loại đặc trưng cơ bản và với kích thước các mẫu huấn luyện là 19x19
Hình 9 Các features cơ bản được sử dụng trong luận văn
và tập các features là 53130 features Tuy nhiên, không phải feature nào cũng thực hiện tốt việc phân loại mà chỉ có một số lượng nhỏ trọng số 53130 features này là thực sự hữu dụng Nhiệm vụ của bộ phân loại là phải tìm ra các feature này
Mỗi weak classifier có 1 feature và 1 ngưỡng, ngưỡng này chính là giá trị của một mẫu cụ thể cho bởi feature này Như vậy, với N mẫu và M features thì số weak classifiers có thể là MxN, tức là với 1100 mẫu và 53130 features thì hệ thống sẽ phải chọn được 1 weak classifier trong số 1100 x 53130 = 58443000 weak classifiers trong mỗi vòng boosting
AdaBoost được thiết kế để có thể chọn nhanh các features, cũng là chọn nhanh các weak classifiers
Trang 22Chương 3
TỔNG QUAN VỀ PCA VÀ LDA 3.1 Giới thiệu về việc nhận dạng khuôn mặt người
Mặc dù việc nhận dạng mặt người là một vấn đề thuộc về mặt thị giác, có một
số phương pháp lạm dụng chức năng này Chúng ta khai thác một số mô hình trên
và đưa ra mô hình nhận dạng dựa vào cách tiếp cận lý thuyết thông tin, tìm kiếm những thông tin quan trọng nhất trong nhóm mặt người; nó sẽ phân biệt rất tốt giữa các khuôn mặt với nhau Phương pháp này chuyển đổi những ảnh mặt người thành các chuỗi ảnh mang nét đặc trưng, chúng là các thành phần chính của dãy huấn luyện ban đầu của những ảnh mặt người Việc nhận dạng được thực hiện bằng cách chiếu bức ảnh mới vào không gian con được trải rộng bởi không gian mặt và sau đó phân loại mặt người bằng cách so sánh vị trí của nó trong không gian mặt người với
vị trí các cá thể đã biết trước Việc học và nhận dạng ảnh mặt người mới chính là phần kiểm chứng quan trọng của phương pháp này Việc nhận dạng mặt người dưới những điều kiện thay đổi là nhờ huấn luyện hướng nhìn đặc trưng (góc nhìn thẳng, góc nhìn 450 ) lợi điểm của phương pháp hơn các phương pháp nhận dạng mặt người khác là tốc độ, sự đơn giản, khả năng học , sự thay đổi từ từ của mặt người
3.2 Sơ lược về toán đại số tuyến tính trong thống kê
3.2.1 Vector riêng, trị riêng và sự chéo hóa của ma trận
3.1.1.1 Vector riêng và trị riêng
Xét một toán tử tuyến tính f trong không gian R n với các vector cơ sở:
Ei= [0…1…0]T ( với giá trị 1 nằm tại vị trí thứ i) (1) Toán tử tuyến tính này sẽ được biểu diễn bởi một ma trận vuông T kích thước
hay T*x=λx (3)
Trang 23Khi đó λ được gọi là trị riêng của f, và vector f được gọi là vector riêng của f, hay của T, ứng với giá trị riêng λ Ma trận T với kích thước n × n sẽ có tối đa n trị riêng và n vector riêng tương ứng Một ma trận T khả nghịch đảo sẽ có đủ n trị riêng (kể cả trị riêng bội) và n vector riêng tương ứng
Định lý: Điều kiện để một ma trận chéo hóa được
Ma trận vuông T cấp n chéo hóa được nếu và chỉ nếu T có n vector riêng độc lập tuyến tính trong không gian Rn nghĩa là A có n giá trị riêng (kể cả số lần bội) và ứng với vector riêng bội m có m vector riêng độc lập tuyến tính
3.2.2 Kỳ vọng và phương sai trong thống kê đa chiều
3.1.2.1 Kỳ vọng
Đối với thống kê đa chiều, mỗi một mẫu thống kê là một vector đa chiều Giả
sử ta có một biến ngẫu nhiên X trong không gian tuyến tính n chiều
n x x x
Khi đó kỳ vọng của biến ngẫu nhiên X cũng là một vector n chiều, trong thống
kê, kỳ vọng E[X] của một biến ngẫu nhiên X có thể được ước lượng bằng trung bình mẫu X, và được tính bằng công thức:
=
i i X M
X
1
1
(7)
trong đó M là tổng số mẫu có trong thống kê
3.2.2.2 Phương sai trong thống kê đa chiều
Trang 24Hiệp phương sai là độ đo sự biến thiên cùng nhau của hai biến ngẫu nhiên
(phân biệt với phương sai là độ đo mức độ phân tán của một biến ngẫu nhiên xung quanh giá trị kỳ vọng)
Hai biến có xu hướng thay đổi cùng nhau (nghĩa là, khi một biến có giá trị cao hơn giá trị kỳ vòng thì biến kia có xu hướng cũng cao hơn giá trị kỳ vọng), thì hiệp phương sai giữa hai biến này có giá trị dương Mặt khác, nếu một biến nằm trên giá trị kì vọng còn biến kia có xu hướng nằm dưới giá trị kì vọng, thì hiệp phương sai của hai biến này có giá trị âm
Hiệp phương sai giữa hai biến ngẫu nhiên giá trị thực X và Y, với các có giá trị
kỳ vọng E(X) = µ và E(Y) = ν được định nghĩa như sau:
( −µ −ν )
=E X Y Y
X Cov( , ) , (8)
trong đó E là hàm giá trị kỳ vọng Công thức trên còn có thể được viết là:
( ⋅ )−µν
Y X Cov( , ) (9)
Nếu X và Y độc lập, thì hiệp phương sai của chúng bằng 0 Đó là do khi có sự độc lập
,
Tuy nhiên, điều ngược lại không đúng: nếu X và Y có hiệp phương sai bằng 0,
hai biến này không nhất thiết độc lập
Ma trận hiệp phương sai ( chính là phương sai trong thống kê đa chiều)
Xét ví dụ, chúng ta tạo ra một ma trận hiệp phương sai cho tập dữ liệu 3 chiều
x, y và z Ta được ma trận hiệp phương sai với 3 hàng, 3 cột:
) , cov(
) , cov(
) , cov(
) , cov(
) , cov(
) , cov(
) , cov(
) , cov(
z z y
z x
z
z y y
y x
y
z x y
x x
x C
Trong ví dụ trên ta thấy, các phần tử nằm trên đường chéo (từ trái sang phải, từ trên xuống dưới) lần lượt là phương sai tương ứng của các biến này Một điểm khác
là từ cov( )a,b =cov( )b,a nên ma trận chéo hóa đối xứng qua đường chéo chính
Trang 25Định nghĩa: Ma trận hiệp phương sai của tập hợp m biến ngẫu nhiên là một ma
trận vuông hạng (m × m) mà mỗi phần tử cij của ma trận là hiệp phương sai giữa hai thành phần xi và xj là độc lập hay không phụ thuộc lẫn nhau
3.3 Sơ lược về PCA và LDA
Có nhiều phương pháp thống kê khác nhau cho việc nhận dạng khuôn mặt
đã được đưa ra trong những năm gần đây và những nhóm tìm kiếm khác nhau đã đưa ra những kết quả trái ngược nhau khi so sánh chúng với nhau Và nhận dạng mặt người đã thu hút được sự quan tâm của nhiều người, nhiều đối tượng
Trong đồ án tốt nghiện này tôi sử dụng 2 giải thuật nhận dạng mặt người phổ biến sau: PCA (Principal Component Analysis) – Phân tích thành phần chính; LDA (Linear Discriminant Analysis) – Phân tích biệt số tuyến tính PCA tìm thấy một tập các vector phép chiếu tiêu biểu nhất mà những mẫu được chiếu giữ lại thông tin quan trọng nhất về những mẫu ban đầu LDA sử dụng lớp thông tin và đi tìm một tập các vector mà làm cực đại sự phân bố giữa các lớp trong khi làm cực tiểu sự phân bố trong mỗi lớp
Tất cả 2 giải thuật đều được gọi là những phương pháp phân tích không gian con Một ảnh hai chiều Γ (m×n) có thể được xem như một vector (hay một điểm) trong không gian N chiều (N =m×n) Và công việc của các giải thuật là tìm cách
để tối ưu các vector không gian mặt, làm giảm số chiều của vector để phục vụ cho việc xử lý nhanh hơn Dưới đây là mô hình nhận dạng
Trang 26Hình 10- Mô hình nhận dạng theo PCA, LDA
PCA: Đưa cho một vector đại diện N chiều cho mỗi ảnh trong tập huấn
luyện gồm M ảnh, PCA sẽ tìm một không gian con M chiều (M<<N) với những vector cơ sở phù hợp để làm cực đại sự khác biệt trong không gian ảnh gốc Những vector cơ sở mới này định nghĩa một không gian con của những ảnh mặt người được gọi là không gian mặt người Tất cả những ảnh mặt người đã biết được chiếu lên không gian mặt người để tìm ra một tập những trọng số mô tả sự đóng góp của mỗi vector Để xác định một ảnh chưa được biết, ta chiếu ảnh đó lên không gian mặt để thu được tập các trọng số của nó Bằng việc so sánh một tập các trọng số cho khuôn mặt người chưa biết tới tập các trọng số của những khuôn mặt đã biết, khuôn mặt có thể được xác định Nếu những phần tử ảnh được xem như những biến ngẫu nhiên, thì những vector cơ sở PCA được định nghĩa như những vector riêng (eigenvectors) của ma trận hiệp phương sai :
T i M
i i
PCA
x =
Tính khoảng cách
d(Px,P1) d(Px,P2)
… d(P x ,P M )
min(d)
Kết quả nhận dạng
xmin
WT Px
Chun hóa
DataBase Lưu trữ các phép chiếu của M ảnh huấn luyện
Trang 27LDA: Tìm thấy các vector trong không gian phân biệt tốt nhất giữa các
lớp Cho tât cả các lớp ma trận hiệp phương sai giữa các lớp Sb và trong lớp Swđược xác định
T i i
C i i
i C j
i j
ma trận hình chiếu (WLDA) là các vector riêng (eigenvector) của ma trận S w−1S b Để
mà hạn chế ma trận Sw là duy nhất, PCA được sử dụng như những bước tiền xử lý
và phép biến đổi cuối cùng là T
PCA T LDA T
3.4 Trích rút đặc trưng từ không gian khuôn mặt theo PCA, LDA
Mục tiêu của phương pháp PCA, LDA là giảm số chiều của một tập các vector sao cho vẫn đảm bảo được tối đa thông tin quan trọng nhất của tập dữ liệu huấn luyện Có thể nói phương pháp PCA, LDA tìm cách giữ lại những thành phần thống
kê quan trọng nhất của tập mẫu Ngoài ra LDA ngoài xét giữa các ảnh trong tập huấn luyện LDA còn xét giữa các ảnh trong cùng một lớp
Giả sử ta cần giảm số chiều của tập mẫu huấn luyện từ n chiều
x=a1v1+a2v2+ +a N v N (14)
với v1, v2,…, vN là cơ sở trong không gian N chiều xuống còn k chiều với K<N
K
K u b u
b u b
y= 1 1+ 2 2+ + (15)
với u1, u2,…, uK là cơ sở trong không gian k chiều
Nghĩa là ta cần tìm một ánh xạ từ không gian N chiều xuống không gian nhỏ hơn chỉ có k chiều (K<N) Gọi x là một vector trong không gian n chiều, y là một
Trang 28vector trong không gian k chiều Ta có trung bình phương lỗi MSE (mean square
error) x − y khi loại bỏ một số thành phần trong x để thu được y sẽ bẳng tổng
phương sai của những thành phần bị loại bỏ Phương pháp PCA, LDA sẽ tìm một
biến đổi tuyến tính T, thỏa:
Y=T*x T là ma trận K × N (15)
sao cho trung bình phương lỗi là bé nhất
N KN K
K k
N N
N N
a t a
t a t b
a t a
t a t b
a t a
t a t b
+ + +
=
+ + +
=
+ + +
2 2
22 1 21 2
1 2
12 1 11 1
M
N N
t t
t
t t
t
t t
t T
2 22
21
1 12
m
1
1
(16)
M là số phần tử trong tập huấn luyện
Gọi C là ma trận hiệp phương sai của các phần tử trong tập huấn luyện X
x M
Người ta chứng minh rằng T là một ma trận mà mỗi hàng là một vector riêng
của C và M vector riêng này (M hàng của ma trận T) ứng với M trị riêng lớn nhất
thì T chính là phép biến đổi tuyến tính thỏa mãn điều kiện để MSE nhỏ nhất
Gọi Φ là ma trận vuông N × N mà mỗi cột là một vector riêng của C đã được
chuNn hóa với phép biến đổi:
x T
y=Φ * , với y=(y1,y2, ,y N) được gọi là biến đổi Hotelling (18)