Tài liệu Đề tài: Phát hiện khuôn mặt trong ảnh - Pdf 10

TÓM TẮT
Nhận diện mặt người là bài toán mới chỉ xuất hiện cách đây không lâu , chỉ khoảng vài
thập niên , nhưng đã có rất nhiều nghiên cứu về nó . Các nghiên cứu ban đầu rất đơn giản , ảnh là
đen trắng và chỉ có một khuôn mặt chụp thẳng , sau này mở rộng ra cho ảnh màu , ảnh có nhiều
khuôn mặt với nhiều góc , môi trường xung quanh cũng đi từ đơn giản đến rất phức tạp …
Ngày nay các hệ thống nhận dạng mặt người đang được ứng dụng trong nhiều lĩnh vực,
đặc biệt là an ninh và bảo mật. Nhận dạng mặt người tức là đưa ra những thông tin về đối tượng
được đưa vào từ một bức ảnh, hay từ camera quan sát. Bước đầu tiên của một hệ thống nhận
dạng mặt người là phát hiện khuôn mặt, tức xác định vị trí khuôn mặt trên bức ảnh, sau đấy tách
khuôn mặt ra khỏi ảnh để tiến hành nhận dạng. Sau khi đã xem xét các hướng tiếp cận khác
nhau, em chọn phương pháp PCA và phương pháp tiếp cận học máy bằng Adaboost và mô hình
Cascade of classifiers. Điểm mạnh của Adaboost là tốc độ phát hiện khuôn mặt khá nhanh. Kết
quả thử nghiệm cho thấy chương trình đạt độ chính xác khá cao với các ảnh mặt người được
chụp trực diện bằng máy kĩ thuật số.
CHƯƠNG 1- TỔNG QUAN VỀ CÁC PHƯƠNG PHÁP XÁC ĐỊNH MẶT NGƯỜI
1. Giới thiệu về bài toán xác định mặt người trong ảnh.
Trong nhiều năm qua, có rất nhiều công trình nghiên cứu về bài toán nhận dạng mặt
người. Các nghiên cứu đi từ bài toán đơn giản, từ việc nhận dạng một mặt người trong ảnh đen
trắng cho đến mở rộng cho ảnh mầu và có nhiều mặt người trong ảnh. Đến nay các bài toán xác
định mặt người đã mở rộng với nhiều miền nghiên cứu như nhận dạng khuôn mặt, định vị khuôn
mặt, theo dõi mặt người hay nhận dạng cảm xúc mặt người… Phát hiện mặt người trong ảnh là
phần đầu tiên của một hệ thống nhận dạng mặt người. Các hệ thống nhận dạng khuôn mặt được
bắt đầu xây dựng từ những năm 1970, tuy nhiên do còn hạn chế về các luật xác định mặt người
nên chỉ được áp dụng trong một số ứng dụng như nhận dạng thẻ căn cước. Nó chỉ được phát triển
mạnh mẽ từ những năm 1990 khi có những tiến bộ trong công nghệ video và ngày nay thì các
ứng dụng của xác định mặt người đã trở nên phổ biến trong cuộc sống.
2. Định nghĩa bài toán xác định mặt người.
Xác định khuôn mặt người là một kỹ thuật máy tính để xác định các vị trí và kích thước
của các khuôn mặt người trong các ảnh bất kì. Kỹ thuật này nhận biết các đặc trưng của khuôn
mặt và bỏ qua những thứ khác như: tòa nhà, cây cối, cơ thể …
3. Những khó khăn và thách thức đối với bài toán xác định mặt người.

là bị mất thẻ và bị rút tiền trộm. Nếu lưu trữ được khuôn mặt của người rút tiền, ngân hàng có thể
đối chứng và xử lý dễ dàng hơn.
4.5. Các ứng dụng khác
• Điều khiển vào ra: văn phòng, công ty, trụ sở, máy tính, Palm, …. Kết hợp thêm vân tay và
mống mắt. Cho phép nhân viên được ra vào nơi cần thiết.
• An ninh sân bay, xuất nhập cảnh (hiện nay cơ quan xuất nhập cảnh Mỹ đã áp dụng). Dùng
camera quan sát để xác thực người nhập cảnh và kiểm tra xem người đấy có phải là tội phạm hay
phần tử khủng bố không. Tìm kiếm và tổ chức dữ liệu liên quan đến con người thông qua khuôn
mặt người trên nhiều hệ cơ sở dữ liệu lưu trữ thật lớn, như internet, các hãng truyền hình, ….
• Kiểm tra trạng thái người lái xe có ngủ gật, mất tập trung hay không, và hỗ trợ thông báo khi
cần thiết.
• Tương lai sẽ phát triển các loại thẻ thông minh có tích hợp sẵn đặc trưng của người dùng trên
đó, khi bất cứ người dùng khác dùng để truy cập hay xử lý tại các hệ thống sẽ được yêu cầu kiểm
tra các đặc trưng khuôn mặt so với thẻ để biết nay có phải là chủ thẻ hay không. người
• Hãng máy chụp hình Canon đã ứng dụng bài toán xác định khuôn mặt người vào máy chụp
hình thế hệ mới để cho kết quả hình ảnh đẹp hơn, nhất là khuôn mặt người.
5. Xác định phạm vi đề tài
Trong đề tài này, tôi tập trung vào việc xác định khuôn mặt trong ảnh. Từ đấy lưu khuôn
mặt tìm được vào CSDL để phục vụ cho các mục đích khác ( chẳng hạn như nhận dạng mặt
người hoặc ghép khuôn mặt vào bức ảnh khác … ). Do các điều kiện khó khăn đã nêu ở trên
( mục 3 chương 1) tôi xin đưa ra những giả định và rành buộc sau để giảm độ phức tạp của bài
toán:
• Các khuôn mặt được chụp thẳng hoặc góc nghiêng không đáng kể (bé hơn 10o)
• Phông nền của ảnh không quá phức tạp
• Ảnh được chụp trong điều kiện ánh sáng bình thường.
• Đối với video hoặc webcam, do có thể tách thành các xử lý trên ảnh nên với những video phức
tạp hay webcam quá kém, chương trình sẽ không thực hiện được tốt nhất có thể.

CHƯƠNG 2- CÁC CÔNG TRÌNH NGHIÊN CỨU
1. Các phương pháp chính để xác định mặt người.

1.1.2. Các nghiên cứu
Có nhiều cách để xây dựng chương trình xác định mặt người theo hướng tiếp cận dựa
trên tri thức. Thông thường chương trình sẽ được xây dựng theo hướng dựa vào một phương
pháp nào đấy chọn ra các ứng viên trong bức ảnh trước, sau đó sẽ áp dụng các luật để xác định
ứng viên nào là khuôn mặt, ứng viên nào không phải là khuôn mặt. Quá trình này có thể được áp
dụng nhiều lần để giảm sai sót.
Hình 1: Một phương pháp xác định khuôn mặt điển theo hướng tiếp cận top-down.
Trên hình 1, Các luật được xây dựng dựa vào tri thức của người nghiên cứu về các đặc
trưng của khuôn mặt (ví dụ như cường độ phân phôi và sự khác nhau ) của các vùng trên khuôn
mặt
Yang và Huang đã sử dụng hướng tiếp cận dựa trên tri thức để xác định khuôn mặt [7].
Hệ thống của hai tác giả bao gồm ba mức luật. Đầu tiên các ông sử dụng một khung cửa sổ để
quét trên bức ảnh và thông qua một số tập luật để xác định các ứng viên có thể là mặt người, ví
dụ như tìm phần trung tâm của khuôn mặt (phần tối hơn trong hình 1). Tiếp theo, dùng một tập
luật để mô tả tổng quát hình dáng khuôn mặt, lọc các ứng viên ở mức một thành một tập các ứng
viên mới có xác xuất là khuôn mặt cao hơn. Cuối cùng, các ông lại dùng một tập luật khác để
xem xét ở mức chi tiết các đặc trưng khuôn mặt ( có thể là đặc trưng về mắt, mũi, miệng … ), từ
đó lọc ra các ứng viên chính xác nhất. Có thể nói cách làm của hai ông là một cách làm mịn dần
để đạt được kết quả tốt nhất, mặc dù tỷ lệ chính xác chưa cao, nhưng đây là tiền đề cho nhiều
nghiên cứu sau này.
Có rất nhiều công trình nghiên cứu sử dụng phương pháp chiếu để xác định khuôn mặt.
Kotropoulos và Pitas đưa ra một phương pháp gần tương tự với Yang và Huang. Đầu tiên, các
vùng của khuôn mặt được định vị bởi phương pháp chiếu (đã được Kanade sử dụng thành công)
để xác định biên của khuôn mặt. Với I(x,y) là giá trị xám của một điểm trong ảnh có kích thước
m x n ở tại vị trí (x,y), các hàm để chiếu ảnh theo phương ngang và thẳng đứng được định nghĩa
như sau:
Dựa trên biểu đồ hình chiếu ngang, khi xét biểu đồ biến thiên của HI hai ông tìm được
hai cực tiểu địa phương tương ứng với hai đỉnh đầu bên trái và bên phải của khuôn mặt. Còn theo
hình chiếu dọc, xét biến thiên và tìm cực tiểu địa phương của VI cũng cho ta các vị trí của
miệng, đỉnh mũi và hai mắt. Các đặc trưng này đủ để xác định khuôn mặt Hình 2.a cho một ví dụ

tương ứng với vector mẫu. Hai ứng viên có đặc trưng đứng đầu sẽ được chọn để tìm kiếm cho
các đặc trưng khác của khuôn mặt. Từ các đặc trưng không thay đổi, các đặc trưng khác sẽ được
xác định thông qua sự đánh giá xác xuất khoảng cách giữa các đặc trưng, hơn nữa phương sai
của phép thống kê này có thể được tính toán trước để xác định các đặc trưng với xác xuất lớn. Tỷ
lệ chính xác của phương pháp này là 86%.
Bên cạnh tính khoảng cách liên quan để mô tả quan hệ giữa các đặc trưng như Leung.
Kendall [4], Mardia and Dryden [12] dùng lý thuyết xác suất thống kê về hình dáng. Dùng hàm
mật độ xác suất (Probility Density Function - PDF) qua N điểm đặc trưng, tương ứng (xi, yi) là
đặc trưng thứ i với giả sử là phân bố Gauss có 2N-chiều. Các tác giả áp dụng phương thức cực
đại khả năng (Maximum-Likelihood - ML) để xác địnhvị trí khuôn mặt. Một thuận lợi của
phương pháp này là các khuôn mặt bị che khuất vẫncó thể xác định được. Hạn chế phương pháp
này đó là không xác định được nhiều khuôn mặt trong cùng một ảnh.
Không dùng phương pháp xác xuất, Sirohey đưa một phương pháp khác xác định khuôn
mặt từ một ảnh có hình nền phức tạp [10], gọi là phương pháp dựa trên cạnh. Ông dùng phương
pháp Candy [9] và heuristics loại bỏ các cạnh để còn lại duy nhất một đường bao xung quanh
khuôn mặt. Dùng một hình ellipse để bao khuôn mặt, tách biệt vùng đầu và hình nền. Tỷ lệ chính
xác của thuật toán là 80%.
Graf đưa ra một phương pháp khác để xác định đặc trưng, từ đó xác định khuôn mặt
trong ảnh xám [8]. Dùng bộ lọc để làm nổi các biên, các phép toán hình thái học (morphology)
được dùng để làm nổi bật các vùng có cường độ cao và hình dáng chắc chắn (như mắt). Thông
qua histogram để tìm các đỉnh nổi bật để xác định các ngưỡng chuyển ảnh xám thành hai ảnh nhị
phân. Tiếp theo, ông xác định các ứng viên khuôn mặt nhờ vào các thành phần đều xuất hiện
trong cả hai ảnh nhỉ phân, sau đó phân loại xem các ứng viên có phải là khuôn mặt không.
Phương pháp được kiểm tra và cho kết quả tốt trên các ảnh chỉ có đầu và vai của người. Tuy
nhiên phương pháp này còn một vấn đề đấy là sử dụng các phép toán morphology như thế nào và
làm sao xác định khuôn mặt trên các vùng ứng viên.
Park dùng Gaze để tìm ứng viên góc mắt, miệng và tâm mắt. Ông xây dựng SVM
(Support Vector Machine) đã được học trước đó để xác định các vị trí ứng viên có phải là góc
mắt, miệng, và tâm mắt hay không để theo vết con mắt người.
Juan và Narciso xây dựng một không gian màu mới YCg’Cr’ để lọc các vùng là ứng viên

Sakai đã cố gắng thử xác định khuôn mặt người chụp thẳng trong ảnh [20]. Ông dùng vài
mẫu con (sub template) về mắt, mũi, miệng, và đường viền khuôn mặt để mô hình hóa một
khuôn mặt. Mỗi mẫu con được định nghĩa trong giới hạn của các đoạn thẳng. Các đoạn thằng
trong ảnh được trích bằng cách xem xét thay đổi của hệ số góc và so khớp các mẫu con. Đầu tiên
tìm các ứng viên thông qua mối tương quan giữa các ảnh con và các mẫu về đường viền. Sau đó,
so khớp với các mẫu con khác. Hay nói một cách khác, giai đoạn đầu xem như là giai đoạn sơ
chế để tìm ứng viên, giai đọan thứ hai là giai đoạn tinh chế để xác định ứng viên có phải là
khuôn mặt hay không. Ý tưởng này được duy trì cho đến các nghiên cứu sau này. Craw đưa ra
một phương pháp xác định khuôn mặt người dựa vào các mẫu về hình dáng của các ảnh được
chụp thẳng (dùng vẻ bề ngoài của hình dáng khuôn mặt). Đầu tiên dùng phép lọc Sobel (Phép lọc
Sobel dựa vào tích vô hướng của hai vector gradient) để tìm các cạnh. Các cạnh này sẽ được
nhóm lại theo một số ràng buộc. Sau đó, tìm đường viền của đầu, quá trình tương tự được lặp đi
lặp lại với mỗi tỷ lệ khác nhau để xác định các đặc trưng khác như: mắt, lông mày, và môi. Sau
đó Craw mô tả một phương thức xác định dùng một tập có 40 mẫu để tìm các đặc trưng khuôn
mặt và điều khiển chiến lược dò tìm.
Một số nhà nghiên cứu sử dụng hình chiếu như các mẫu để xác định khuôn mặt người.
Silhouettes dùng PCA (phân tích thành phần chính – Principal Component Analysis - PCA) để
có một tập hình chiếu cơ bản từ các mẫu khuôn mặt, hình chiếu được mô tả như một mảng các
bit. Sau đấy dùng đặc trưng hình chiếu kết hợp biến đổi Hough để xác định khuôn mặt người.
Phương pháp này định nghĩa một số giả thuyết để mô tả các khả năng của các đặc trưng khuôn
mặt. Với một khuôn mặt sẽ có một tập giả thuyết, gọi là lý thuyết DepsterShafer. Dùng một nhân
tố tin cậy để kiểm tra sự tồn tại hay không của các đặc trưng của khuôn mặt, và kết hợp nhân tố
tin cậy này với một độ đo để xem xét có hay không có khuôn mặt trong ảnh. Sinha dùng một tập
nhỏ các ảnh bất biến trong không gian ảnh để mô tả không gian các mẫu ảnh [15, 16]. Tư tưởng
chính của ông dựa vào sự thay đổi mức độ sáng của các vùng khác nhau của khuôn mặt (như hai
mắt, hai má, và trán), (quan hệ về mức độ sáng của các vùng còn lại thay đổi không đáng kể).
Sau đấy xác định các cặp tỷ số của mức độ sáng của một số vùng (một vùng tối hơn hay sáng
hơn) cho ta một lượng bất biến khá hiệu quả. Ông lưu sự thay đổi độ sáng của các vùng trên
khuôn mặt trong một tập thích hợp với các cặp quan hệ sáng hơn – tối hơn giữa các vùng nhỏ.
Một khuôn mặt được xác định nếu nó thỏa mãn tất cả các cặp sáng hơn – tối hơn. Ý tưởng này

đường gấp khúc để xác định vị trí đầu với thuất toán greedy để cực tiểu hóa hàm năng lượng
[11].
Thay vì dùng đường gấp khúc thì Huang và Su [6] dùng lý thuyết dòng chảy để xác định
đường viền khuôn mặt dựa trên đặc tính hình học. Hai ông dùng lý thuyết tập hợp đồng mức
(Level Set) để loang từ các khởi động ban đầu để có được các khuôn mặt người.
Lanitis mô tả một phương pháp biểu diễn khuôn mặt người với cả hai thông tin: hình
dáng và cường độ [12]. Bắt đầu bằng các tập ảnh được huấn luyện với các đường viền mẫu như
là đường bao mắt, mũi, cằm/má đã được gán nhãn(phân loại). Ông dùng một vector các điểm
mẫu để mô tả hình dáng. Sau đó dùng một mô hình phân bố điểm (Point Distribution Model –
PDM) để mô tả vector hình dáng qua toàn bộ các cá thể. Dùng cách tiếp cận như của Kirby và
Sirovich [14] để mô tả cường độ bề ngoài của hình dáng đã được chuẩn hóa. Để tìm kiếm và ước
lượng vị trí khuôn mặt cũng như các tham số về hình dáng ông sử dụng một mô hình PDM có
hình dáng như khuôn mặt (xác định khuôn mặt bằng mô hình hình dáng tích cực - Active Shape
Model - ASM). Các mảnh của khuôn mặt được làm biến dạng về hình dáng trung bình rồi trích
lấy các tham số cường độ. Sau đấy các tham số hình dáng và cường độ được dùng để phân loại
và xác định khuôn mặt.
1.4. Hướng tiếp cận dựa trên diện mạo.
1.4.1. Tư tưởng của hướng tiếp cận dựa trên diện mạo
Trái ngược với hướng tiếp cận dựa trên so sánh khớp mẫu (các mẫu đã được các nhà nghiên cứu
định nghĩa trước), các mẫu trong hướng tiếp cận này được học từ một tập ảnh mẫu. Có thể nói
hướng tiếp cận dựa trên diện mạo áp dụng các kỹ thuật theo hướng xác suất thống kê và học máy
để tìm những đặc tính liên quan của khuôn mặt và không phải là hiệu quả xác định.
Trong hướng tiếp cận này, phương pháp xác xuất tiếp tục được nhiều nhà nghiên cứu sử
dụng. Một bức ảnh hoặc một vector (đặc trưng cho bức ảnh) được xem như một biến ngẫu nhiên.
Biến ngẫu nhiên này sẽ được xác định là có mô tả các đặc tính của khuôn mặt hay không thông
qua các xác xuất có điều kiện p(x/face) và p(x/nonface). Có thể dùng bộ phân loại Bayesian để
phân loại các ứng viên là khuôn mặt hay không phải khuôn mặt. Tuy nhiên, việc cài đặt bộ phân
loại Bayesian với số chiều x lớn là một điều khá khó khăn, do đó có rất nhiều nghiên cứu theo
hướng tiếp cận này quan tâm tới việc tham số hóa hay không tham số các xác xuất p(x/face) và
p(x/nonface).

có thể xem là một bài toán nhận dạng với hai loại mẫu (mặt người hoặc không phải mặt người)
và như vậy có thể sử dụng mạng neural khá hiệu quả kể cả khi các mẫu khuôn mặt có độ phức
tạp cao. Tuy nhiên, một điều trở ngại đó là các kiến trúc mạng đều có tính tổng quát cao, do đó,
khi áp dụng ta phải tính toán rõ số lượng tầng, số lượng node, tỷ lệ học … cho từng trường hợp
cụ thể.
c. Support Vector Machine
Support Vector Machine (SVM) được Vladimir Vapnik đưa ra vào năm 1995 để giải
quyết vấn đề nhận dạng mẫu hai lớp sử dụng nguyên tắc cực tiểu hóa rủi ro cấu trúc (Structural
Risk Minimization). Đây là phương pháp tiếp cận phân loại văn bản rất hiệu quả. Ưu điểm của
SVM là giải thuật này được xây dựng trên ý tưởng cực tiểu rủi ro cấu trúc. Nguồn gốc của SVM
dựa trên sự chắc chắn về lỗi chính xác, có thể phân loại ngẫu nhiên các mẫu đối tượng được chọn
mà lỗi được giữ sao cho nhỏ nhất. Vì vậy, giải thuật SVM giúp giảm thiểu biên trên các lỗi chính
xác và làm cho hệ thống tin cậy hơn
Cho trước một tập huấn luyện, các ảnh được biểu diễn dưới dạng vector. Trong không gian
vector, mỗi vertor được biểu diễn bởi một điểm. Phương pháp SVM sẽ tim một siêu phẳng quyết
định để phân chia không gian vector thành hai lớp (khuôn mặt và B chỉ có 3 việc mà anh ta thích
làm đó là: việc thứ nhất là đi dạo, thứ hai là đi chợ và thứ ba là dọn phòng. Và việc anh ta làm
việc gì trong ngày phụ thuộc rất lớn vào thời tiết của ngày hôm đấy. Như vậy, dù không nhận
được thông tin cụ thể về thời tiết trong ngày ở nơi người B ở, nhưng người A vẫn có thể dựa vào
việc B làm trong ngày để đoán về thời tiết hôm đấy. Như vậy nếu coi thời tiết chỉ có hai trạng
thái là nắng và mưa thì thời tiết là một chuỗi Markov cụ thể, và nó là ẩn đối với người A. Dữ liệu
quan sát được ở đây là việc làm trong ngày của người B. Toàn bộ hệ thống này là một mô hình
Mackov ẩn.
Một giả thuyết quan trọng của mô hình Markov ẩn là các mẫu có thể được xem như
các tiến trình ngẫu nhiên có tham số và các tham số này được ước lượng chính xác. Khi phát
triển HMM để giải quyết bài toán nhận dạng mẫu, phải xác định rõ có bao nhiêu trạng thái ẩn
đầu tiên cho hình thái mô hình. Sau đó, huấn luyện HMM học xác suất chuyển tiếp giữa các
trạng thái từ các mẫu, mà mỗi mẫu được mô tả như một chuỗi các quan sát. Mục tiêu huấn luyện
HMM là cực đại hóa xác suất của quan sát từ dữ liệu huấn luyện bằng cách điều chỉnh các tham
số trong mô hình HMM thông qua phương pháp phân đoạn Viterbi chuẩn và các thuật toán

chiếu để mã hóa diện mạo cục bộ. Nếu xác xuất lớn hơn xác xuất đạt được lớn hơn xác xuất tiền
nghiện thì kết luận có khuôn mặt người. Hướng tiếp cận này còn cho phép xác định các khuôn
mặt bị xoay hoặc góc nhìn nghiêng.
CHƯƠNG 3- NHẬN DẠNG DỰA TRÊN PCA
1.Thuật toán
Khuôn mặt con người có rất nhiều nét để nhận biết , nếu như ta gặp lại một người bạn sau
một thời gian dài , ta có thể nhận ra ngay người đó dù những chi tiết cụ thể trên mặt có thể thay
đổi như da , mái tóc . Ta nhận ra không phải vì nhớ đôi mắt , hay mũi hay môi hay tóc , lông mày
người đó mà ta nhận ra vì nhớ diện mạo của người đó . Tức là trên khuôn mặt tồn tại một nét
tổng thể nào đó để có thể nhận diện , thuật toán của ta bắt đầu từ ý tưởng này .
Phân tích thành phần chính (Principal Component Analysis ) gọi tắt là PCA là thuật toán nhận
dạng ảnh dựa trên những nét tổng thể của khuôn mặt , ta sẽ áp dụng thuật toán này để thực hiện
hai công việc sau :
- Thứ nhất là tìm một khuôn mặt giống với khuôn mặt cho trước
- Thứ hai là xác định vị trí những khuôn mặt người trong một bức ảnh .
Ban đầu ta có một tập ảnh khuôn mặt gọi là tập ảnh huấn luyện (training set) . Giả sử mỗi ảnh có
kích thước M×N , ta coi mỗi bức ảnh này là một vector trong không gian M*N chiều . Bây giờ
mỗi khuôn mặt là một vector , ta thấy những vector này không phân bố ngẫu nhiên trong không
gian ảnh mà phân bố theo một quy luật tương đối nào đó , ta có thể nói những vector này nằm
trong một không gian con gọi là không gian khuôn mặt . Từ những vector trong tập huấn luyện ,
ta sẽ tìm một cơ sở trực chuẩn cho không gian khuôn mặt . Những vector thuộc cơ sở này có thể
coi là những vector mang những nét tổng thể đặc trưng về khuôn mặt .
Giả sử tập huấn luyện có P ảnh , khi đó ta sẽ có P vector : , , … , .
Tính vector ảnh trung bình : m = .
Sự khác biệt giữa những khuôn mặt với ảnh trung bình là những vector : , i=1…P
Ý tưởng của việc phân tích thành phần chính là tìm một tập những vector trực chuẩn sao cho những
vector này mô tả tốt nhất sự phân bố những vector khuôn mặt trong không gian . Những vector được
chọn sao cho :

lớn nhất .

Tập hợp , i=1,… , Q được gọi là tọa độ của trong không gian W .
Tìm C=K là tọa độ của hình chiếu của K lên không gian khuôn mặt . C là vector cột Q ×1

= với = C( i , 1) ; = E( : , i ) .
Với là một cột trong ma trận A ( tương ứng với bức ảnh trong tập huấn luyện ) . Ta tính
= là tọa độ của hình chiếu của lên không gian khuôn mặt .
Ta tính hai đại lượng sau :
- s = xem như khoảng cách từ bức ảnh H đến không gian mặt
- = xem như khoảng cách từ H đến bức ảnh trong tập huấn luyện
Xét α và β là hai ngưỡng nào đó .
- s < α thì H là bức ảnh khuôn mặt ( do H đủ gần với không gian mặt )
- β thì là bức ảnh của cùng một người với H . ( H đủ gần với )
Vậy là ta đã có thể tìm bức ảnh trong tập huấn luyện giống với bức ảnh H hay xác định đó có
phải là bức ảnh khuôn mặt hay không . Tuy nhiên ảnh H phải có cùng kích thước với những bức
ảnh trong tập huấn luyện . Bây giờ trong một bức ảnh lớn H có nhiều khuôn mặt , ta sẽ xác định
vị trí những khuôn mặt trong bức ảnh .
Tại mỗi vị trí (x,y) trong H , đặt H(x,y) là một vùng trong ảnh H có kích thước M×N tại (x,y) ,
ta xem ảnh con H(x,y) là một vector M*N chiều .
K(x,y) = H(x,y) – m ;
Tìm (x,y) là hình chiếu của K(x,y) lên không gian khuôn mặt .
Tính s(x,y)= .
Tập hợp các giá trị s(x,y) tạo thành một bản đồ khuôn mặt (face map) của H , từ đó ta có thể xác
định vị trí những khuôn mặt trong ảnh .
2.Hình ảnh minh họa
Trong ví dụ này ta có một tập huấn luyện gồm những bức ảnh khuôn mặt kích thước 180x200
pixel , dưới đây là một số hình ảnh của những eigenfaces thu được ( lưu ý là đây chỉ là các vector
trực giao , những eigenfaces thực sự chính là những vector này được chuẩn hóa ) .
Như ta thấy nếu bức ảnh là khuôn mặt người thì hình chiếu sẽ khá giống với ảnh gốc , còn khi
bức ảnh không phải là khuôn mặt thì hình chiếu sẽ khác ảnh gốc rất nhiều , do đó khoảng cách từ
bức ảnh mặt người tới không gian mặt sẽ nhỏ hơn rất nhiều so với khoảng cách từ bức ảnh không

Có rất nhiều thuật toán nhận dạng mặt người dựa trên những chi tiết của khuôn mặt như đôi mắt ,
lông mày , cấu trúc của khuôn mặt , hay màu da …Khác hoàn toàn với những thuật toán trên ,
PCA nhận dạng dựa trên những nét tổng thể của khuôn mặt . Còn hơn một thuật toán , PCA đã
cung cấp một cơ sở rất rõ ràng cho việc mô tả đặc trưng của khuôn mặt , để từ đó có thể phát
triển những thuật toán nhận dạng khác . Vì vậy có thể PCA không là thuật toán tốt nhất , nhưng
là thuật toán phổ biến nhất được áp dụng trong bài toán nhận diện mặt người .
CHƯƠNG 4- CƠ SỞ LÝ THUYẾT VỀ ADABOOST VÀ ĐẶC TRUNG HAAR-LIKE
1. Tổng quan về Adaboost
Học theo adaboost là một cách trong hướng tiếp cận dựa trên diện mạo, Viola và Jones dùng
AdaBoost kết hợp cascade để xác định khuôn mặt người [17] với các đặc trưng dạng Haar
wavelet-like. Tốc độ xử lý khá nhanh và tỷ lệ chính xác hơn 80% trên
ảnh xám.
Thuật toán học máy Adaboost được phát triển thuật toán boosting, do đó tôi sẽ trình bầy một
chút về thuật toán boosting trước khi trình bầy về adaboost.
1.1. Tiếp cận Boosting
Về lịch sử, boosting bắt nguồn từ câu hỏi nổi tiếng được đưa ra bời Kearns vào năm 1989
: “Liệu có thể tạo ra một strong classifier từ một tập các bộ phân loại yếu?”. Năm 1990, Robert
Schapire đưa ra thuật toán boosting đầu tiên, tiếp đến năm 1993 thì nó được Drucker, Schapire
và Simard kiểm nghiệm trong trong các chương trình nhận dạng ( OCR application ). Freund đã
tiếp tục các nghiên cứu của Schaprire, và đến năm 1995 thì ông cùng với Schapire phát triển
boosting thành adaboost.
Như vậy, nguyên lý cơ bản của boosting là sự kết hợp các weak classifiers thành một strong
classifier. Trong đó, weak classifier là các bộ phân loại đơn giản chỉ cần có độ chính xác trên
50%. Bằng cách này, chúng ta nói bộ phân loại đã được “boost”.
Để hiểu cách hoạt động của thuật toán boosting, ta xét một bài toán phân loại 2 lớp (mẫu cần
nhận dạng chỉ thuộc một trong hai 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

Adaboost sẽ tính giá trị αt theo công thức ở trê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):
Ta thấy tất cả các bộ phân loại ht đều có đóng góp vào kết quả của bộ phân loại H(x), và mức độ
đóng góp của chúng phụ thuộc vào giá trị αt tương ứng: ht với αt càng lớn thì nó càng có vài trò
quan trọng trong H(x).
• Trong công thức tính αt:
Dễ thấy giá trị αt tỉ lệ nghịch với εt. Bởi vì ht được chọn với tiêu chí đạt εt nhỏ nhất, do
đó nó sẽ đảm bảo giá trị αt lớn nhất.
Sau khi tính được giá trị αt, Adaboost tiến hành cập nhật lại trọng số của các mẫu: tăng
trọng số các mẫu mà ht phân loại sai, giảm trọng số các mẫu mà ht phân loại đúng. Bằng cách
này, trọng số của 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 xây dựng strong classifier sẽ dừng lại sau T lần lặp. Trong thực tế cài đặt thư viện
OpenCV của Intel), người ta ít sử dụng giá trị 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.
1.3. Các đặc trưng Haar-Like
Viola và Jones dùng 4 đặc trưng cơ bản [20] để xác định khuôn mặt người. Mỗi đặc rưng Haar–
like là sự kết hợp của hai hay ba hình chữ nhật "trắng" hay "đen" như trong hình sau:
Để áp dụng các đặt trưng này vào việc bài toán xác định mặt người, 4 đặc trưng Haar-like cơ bản
được mở rộng ra, và được chia làm 3 tập đặc trưng như sau:
1. Đặc trưng cạnh (edge features):
2. Đặc trưng đường (line features):
3. Đặc trưng xung quanh tâm (center-surround features):
Hình 9: Các đặc trưng mở rộng của các đặc trưng Haar-like cơ sở


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status