Tải bản đầy đủ (.docx) (36 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (930.34 KB, 36 trang )

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.


Việc xác định khuôn mặt người có những khó khăn nhất định như:
• Hướng của khuôn mặt đối với máy ảnh, như: nhìn thẳng, nhìn nghiêng hay nhìn từ trên xuống.
Cùng trong một ảnh có thể có nhiều khuôn mặt ở những tư thế khác nhau.
• Sự có mặt của các chi tiết không phải là đặc trưng riêng của khuôn mặt người, như: râu quai
nón, mắt kính, ….
• Các nét mặt khác nhau trên khuôn mặt, như: vui, buồn, ngạc nhiên, ….
• Mặt người bị che khuất bởi các đối tượng khác có trong ảnh. rất khác khi người đấy cười, tức
giận hay sợ hãi …
4. Các ứng dụng của xác định mặt người
Xác định mặt người thường là một phần của một hệ thống (facial recognition system). Nó
thường được dùng trong giám sát video, giao tiếp người máy và quản lý cơ sở dữ liệu ảnh… Các
ứng cơ bản của xác định mặt người có thể kể đến là:
4.1. Xác minh tội phạm.
Dựa vào ảnh của một người, nhận dạng xem người đấy có phải là tội phạm hay không
bằng cách so sách với các ảnh tội phạm đang được lưu trữ. Hoặc có thể sử dụng camera để phát
hiện tội phạm trong đám đông. Ứng dụng này giúp cơ quan an ninh quản lý con người tốt hơn.
4.2. Camera chống trộm.
Các hệ thống camera sẽ xác định đâu là con người và theo dõi xem con người đó có
làm gì phạm pháp không, ví dụ như lấy trộm đồ, xâm nhập bất hợp pháp vào một khu vực
nào đó.
4.3. Bảo mật.
Các ứng dụng về bảo mật rất đa dạng, một trong số đó là công nghệ nhận dạng mặt người
của laptop, công nghệ này cho phép chủ nhân của máy tính chỉ cần ngồi trước máy là có thể đăng
nhập được. Để sử dụng công nghệ này, người dùng phải sử dụng một webcam để chụp ảnh
khuôn mặt của mình và cho máy “học” thuộc các đặc điểm của khuôn mặt giúp cho quá trình
đăng nhập sau này.
4.4. Lưu trữ khuôn mặt
Xác định mặt người có thể được ứng dụng trong các trạm rút tiền tự động (ATM) để lưu
trữ khuôn mặt của người rút tiền. Hiện nay có những người bị người khác lấy trộm thẻ ATM và
mã PIN, và bị rút tiền trộm, hoặc có những chủ tài khoản đi rút tiền nhưng lại báo với ngân hàng

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.

Dựa vào tính chất của các phương pháp xác định mặt người trên ảnh, các phương pháp
này được chia thành bốn loại chính, tương ứng với bốn hướng tiếp cận khác nhau. Ngoài ra cũng
có rất nhiều nghiên cứu mà phương pháp xác định mặt người không chỉ dựa vào một hướng mà
có liên quan đến nhiều hướng.
• Hướng tiếp cận dựa trên tri thức: Dựa vào các thuật toán, mã hóa các đặc trưng và quan hệ giữa
các đặc trưng của khuôn mặt thành các luật. Đây là hướng tiếp cận theo kiểu top-down.
• Hướng tiếp cận dựa trên đặc trưng không thay đổi: Xây dựng các thuật toán để tìm các đặc
trưng của khuôn mặt mà các đặc trưng này không thay đổi khi tư thế khuôn mặt hay vị trí đặt
camera thay đổi. Hướng tiếp cận này là hướng tiếp cận theo kiểu bottom-up.
• Hướng tiếp cận dựa trên so sánh khớp mẫu: Dùng các mẫu chuẩn của khuôn mặt (các mẫu này
được định nghĩa bằng tay trước hoặc được tham số hóa bằng mộ hàm số) để mô tả các khuôn mặt
hay các đặc trưng của khuôn mặt. Mẫu này được sử dụng để phát hiện khuôn mặt bằng cách quét
nó qua ảnh và tính toán giá trị tương đồng cho mỗi vị trí. Việc xuất hiện một khuôn mặt tại một
vị trí nào đó trong ảnh phụ thuộc vào giá trị tương đồng của điểm đó so với mẫu chuẩn
• 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 khuôn mẫu, các mô
hình (hay các mẫu) sẽ được học từ một tập ảnh huấn luyện mà thể hiện tính chất tiêu biểu của sự
xuất hiện của mặt người trong ảnh. Sau đó hệ thống (mô hình) sẽ xác định mặt người. Phương
pháp này còn được biết đến với tên gọi tiếp cận theo các phương pháp học máy.
1.1. Hướng tiếp cận dựa trên tri thức
1.1.1. Tư tưởng
Trong hướng tiếp cận này, các phương pháp xác định mặt người được xây dựng dựa vào
các luật, các luật này phụ thuộc vào tri thức của các tác giả nghiên cứu về bài toán xác định
khuôn mặt. Dễ dàng xây dựng các luật cơ bản để mô tả các đặc trưng của khuôn mặt và các quan
hệ tương ứng. Ví dụ, một khuôn mặt thường có hai mắt đối xứng qua trục thẳng đứng giữa khuôn
mặt và có một mũi một miệng. Các quan hệ đặc trưng có thể là quan hệ về vị trí và khoảng cách
tương đối. Khó khăn của hướng tiếp cận này đó là làm thế nào để chuyển các tri thức của con
người về khuôn mặt sang các luật cho máy tính một cách hiệu quả. Nếu các luật này quá chi tiết,
chặt chẽ thì sẽ có thể xác định thiếu các khuôn mặt có trong ảnh, nhưng nếu các luật quá tổng
quát thì sẽ dẫn đến xác định sai khu vực không phải là khuôn mặt thành khuôn mặt. Ngoài ra
cũng khó để mở rộng phạm vi của bải toán để xác định các khuôn mặt có nhiều tư thế khác nhau.

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ụ

về cách xác định như trên. Cách xác định này có tỷ lệ xác định chính xác là 86.5% cho trường
hợp chỉ có một khuôn mặt trực diện và hình nền không phức tạp. Nếu hình nền phức tạp như
hình 2.b thì rất khó tìm. Còn nếu ảnh có nhiều khuôn mặt (hình 2.c) thì sẽ không xác định được
Hình 2: Phương pháp chiếu
(a) Ảnh chỉ có một khuôn mặt và hình nền đơn giản;
(b) Ảnh chỉ có một khuôn mặt và hình nền phức tạp;
(c) Ảnh có nhiều khuôn mặt
1.2. Hướng tiếp cận dựa trên đặc trưng không thay đổi.
Tiếp cận dựa trên các đặc trưng không thay đổi là tiếp cận theo kiểu bottom up. Dựa trên
thực tế, chúng ta cố gắng tìm ra những đặc điểm không thay đổi khi của khuôn mặt khi ở các tư
thế khác nhau và các điều kiện môi trường như ánh sáng khác nhau. Đã có rất nhiều nghiên cứu
về hướng tiếp cận này, các đặc điểm không thay đổi được tìm thấy như lông mày, mắt, mũi,
miệng hay các đường viền trên tóc … Trên cơ sở các đặc trưng này, các nhà nghiên cứu xây
dựng lên một mô hình thống kê mô tả quan hệ của các đặc trưng và từ đó xác định sự xuất hiện
của khuôn mặt trong bức ảnh. Khó khăn của hướng tiếp cận này đó là phải mô tả các đặc trưng
không thay đổi và quan hệ giữa chúng phù hợp với điều kiện ánh sáng, độ nhiễu hay bị che
khuất.
1.2.1. Các đặc trưng của khuôn mặt
Có rất nhiều nghiên cứu về các đặc trưng của khuôn mặt. Có thể dựa vào các đặc trưng
như hai mắt, hai lỗ mũi, miệng, phần nối giữa mũi và miệng … hoặc dựa vào đường viền của
khuôn mặt
Leung đã đưa ra một mô hình xác xuất để xác định khuôn mặt trong ảnh có hình nền
phức tạp dựa trên việc tìm kiếm các đặc trưng không thay đổi của khuôn mặt trong ảnh,sau đó
dùng đồ thị ngẫu nhiên để xác định khuôn mặt. Tư tưởng của phương pháp này đó là xem bài
toán xác định khuôn mặt như là bài toán tìm kiếm với mục tiêu là tìm thứ tự các đặc trưng không
thay đổi của khuôn mặt. Dùng năm đặc trưng (hai mắt, hai lỗ mũi, phần nối giữa mũi và miệng)
để mô tả một khuôn mặt. Đồng thời tính quan hệ khoảng cách cho tất cả các cặp đặc trưng (như
mắt trái, mắt phải), sau đấy dùng phân bố Gauss để mô hình hóa. Một mẫu khuôn mặt được đưa
ra thông qua trung bình tương ứng cho một tập đa hướng, đa tỷ lệ của bộ lọc đạo hàm Gauss. Từ
một ảnh, các đặc trưng của ứng viên được xác định bằng cách so khớp từng điểm ảnh khi lọc

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

khuôn mặt dựa trên sắc thái của màu da người. Sau khi có ứng viên, hai ông dùng các quan hệ về
hình dáng khuôn mặt, mức độ cân đối của các thành phần khuôn mặt để xác định khuôn mặt
người. Tương tự, Chang và Hwang cũng dùng không gian mầu Ycg’Cr’ với tỷ lệ chính xác hơn
80% trong ảnh xám. Jin xây dựng một bộ lọc để xác định ứng viên khuôn mặt người theo màu da
người
Từ ứng viên này tác giả xác định khuôn mặt người theo hình dáng khuôn mặt và các quan hệ đặc
trưng về thành phần khuôn mặt, với mắt phải được chọn làm gốc tọa độ để xét quan hệ. Tỷ lệ
chính xác cho khuôn mặt chụp thẳng trên 80%.
1.2.2. Kết cấu của khuôn mặt.
Khuôn mặt con người có những kết cấu riêng biệt mà có thể dùng để phân loại so với các
đối tượng khác. Từ kết cấu của khuôn mặt xây dựng lên một bộ phân loại, gọi là kết cấu giống
khuôn mặt (face-like texture).
1.2.3. Mầu sắc da.
Thông thường các ảnh màu không xác định trực tiếp trên toàn bộ dữ liệu ảnh mà các tác
giả dùng tính chất sắc màu của da người (khuôn mặt người) để chọn ra được các ứng viên có thể
là khuôn mặt người (lúc này dữ liệu đã thu hẹp đáng kể) để xác định khuôn mặt người.
1.2.4. Đa đặc trưng.
Gần đây có nhiều nghiên cứu sử dụng các đặc trưng toàn cục như: màu da người, kích
thước, và hình dáng để tìm các ứng viên khuôn mặt, rồi sau đó sẽ xác định ứng viên nào là khuôn
mặt thông qua dùng các đặc trưng cục bộ (chi tiết) như: mắt, lông mày, mũi, miệng, và tóc. Tùy
mỗi tác giả sẽ sử dụng tập đặc trưng khác nhau.
1.3. Hướng tiếp cận dựa trên so sánh khớp mẫu.
1.3.1. Tư tưởng của so sánh khớp mẫu
Trong hướng tiếp cận dựa trên so sánh khớp mẫu, các mẫu chuẩn của khuôn mặt (thường
là khuôn mặt được chụp thẳng) sẽ được xác định trước hoặc được biểu diễn thành một hàm với
các tham số cụ thể. Từ ảnh đầu vào, ta tính các giá trị tương quan so với các mẫu chuẩn về
đường viền khuôn mặt, mắt, mũi và miệng. Thông qua các giá trị tương quan này mà hệ thống sẽ
quyết định có hay không có tồn tại khuôn mặt trong ảnh. Hướng tiếp cận này có lợi thế là rất dễ
cài đặt, nhưng không hiệu quả khi tỷ lệ, tư thế, và hình dáng thay đổi.
1.3.2. Xác định các mẫu.

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

xuất phát từ sự khác biệt của cường độ giữa các vùng kề cục bộ trên ảnh, sau này nó được mở
rộng trên cơ sở biến đổi wavelet để xác định người đi bộ, xác định xe hơi, xác định khuôn mặt. Ý
tưởng của Sinha còn được áp dụng trong các nghiên cứu về thị giác của robot. Hình 3 cho thấy
mẫu khuôn mặt với 16 cùng và 23 quan hệ. Các quan hệ này được dùng để phân loại, có 11 quan
hệ thiết yếu (các mũi tên màu đen) và 12 quan hệ xác thực (các mũi tên mầu xám). Mỗi mũi tên
là một quan hệ. Một quan hệ của hai vùng thỏa mãn mẫu khuôn mặt khi tỷ lệ giữa hai vùng vượt
qua một ngưỡng và một khuôn mặt được xác đinh khi có 23 quan hệ thỏa mãn điều kiện trên
Hình 3: Một mẫu khuôn mặt
Mẫu khuôn mặt có kích thước 14 x 16 pixel được sử dụng trong phương pháp định vị
khuôn mặt của Sinha. Mẫu gồm 16 vùng trên khuôn mặt và 23 quan hệ ( các mũi tên).
Một số phương pháp khác như của Froba và Zink lọc cạnh ở độ phân giải thấp rồi dùng
biến đổi Hough để so khớp mẫu theo hướng cạnh để xác định hình dáng khuôn mặt ở dạng chụp
hình thẳng ở dạng xám. Tỷ lệ chính xác trên 91%. Ngoài ra Shu và Jain còn xây dựng ngữ nghĩa
khuôn mặt. Ngữ nghĩa xây dựng theo hình dáng và vị trí các thành phần khuôn mặt. Hai ông từ
bộ ngữ nghĩa này tạo một đồ thị quan hệ để dễ dàng so khớp khi xác định khuôn mặt người …
1.3.3. Các mẫu biến dạng
Yuille dùng các mẫu biến dạng để mô hình hóa các đặc trưng của khuôn mặt [3].
Trong hướng tiếp cận này, các đặc trưng khuôn mặt được mô tả bằng các mẫu được tham số hóa
và có một hàm năng lượng (giá trị) được để liên kết các cạnh, đỉnh, và thung lũng trong ảnh để
tương ứng với các tham số trong mẫu. Mô hình này tốt nhất khi tối thiểu hàm năng lượng qua
các tham số, Mặc dù có kết quả tốt nhưng phương pháp này có một số hạn chế đó là các mẫu
biến dạng phải được khởi tạo trong phạm vi gần với các đối tượng mà nó xác định. Rất nhiều
hướng tiếp cận dựa trên dường gấp khúc (snake) và các mẫu để xác định khuôn mặt. Đầu tiên
ảnh sẽ được làm xoắn lại bởi một lọc làm mờ rồi dùng phép toán morphology để làm nổi bật
cạnh lên. Tiếp theo dùng một đường gấp khúc có n điểm ảnh (giá trị n nhỏ) để tìm và ước lượng
các đọan cong nhỏ. Mỗi khuôn mặt được xấp xỉ bằng một ellipse và biến đổi Hough, rồi tìm một
ellipse nổi trội nhất. Các ứng viên sẽ có bốn tham số mô tả nột ellipse (để xác định khuôn mặt).
Với mỗi ứng viên, một phương thức tương tự như phương thức mẫu biến dạng được dùng để xác
định các đặc trưng ở mức chi tiết. Nếu tìm thấy số lượng đáng kể các đặc trưng khuôn mặt và
thỏa mãn tỷ lệ cân đối thì xem như đã xác định được một khuôn mặt. Lam và Yan cũng dùng

đườ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).

Một các tiếp cận khác trong hướng tiếp cận dựa trên diện mạo là tìm một hàm biệt số ví
dụ như các hàm mô tả mặt phẳng hay siêu phẳng quyết định (các ranh giới) để phân biệt hai lớp
khuôn mặt và không phải khuôn mặt. Thông thường, một bức ảnh được chiếu vào không gian có
số chiều ít hơn rồi sau đó dùng một hàm biệt số (dựa trên các độ đo khoảng cách) để phân loại
hoặc xây dựng một mặt quyết định phi tuyến bằng mạng neural đa tầng. Ngoài ra có thể dùng
SVM (Super Vector Machine) và các phương thức kernel chiếu các mẫu vào không gian có số
chiều cao hơn để dữ liệu bị rời rạc hoàn toàn và từ đó có thể sử dụng mặt phẳng phân loại để
phân loại các mẫu là khuôn mặt hay không phải là khuôn mặt[5].
1.4.2. Một số phương pháp cụ thể trong hướng tiếp cận dựa trên diện mạo
Có rất nhiều phương pháp học máy được sử dụng trong hướng tiếp cận dựa trên diện
mạo. Trong phần này chỉ nêu ra một số phương pháp cùng những nghiên cứu liên quan đến
phương pháp đấy. Riêng phương pháp adaboost sẽ được trình bầy trong phần sau của báo cáo.
a. Adaboost
Adaboost được đánh giá là phương phát tiếp cận nhanh nhất trong các thuật toán học
máy. Nó thường được kết hợp với các mô hình cascade of classifiers để tăng tốc độ phát hiện
khuôn mặt trong ảnh. Tư tưởng của thuật toán adaboost đấy là kết hợp các bộ phân loại yếu
thành một bộ phân loại mạnh. Trong quá trình xây dựng, bộ phân loại yếu tiếp theo sẽ được xây
dựng dựa trên các đánh giá về các bộ phân loại yếu trước, cuối cùng các bộ phân loại yếu sẽ
được kết hợp để trở thành bộ phân loại mạnh
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-like. Tốc độ xử lý khá nhanh và tỷ lệ chính xác hơn 80%. Ngoài ra
Schneiderman và Kanade dùng wavelet để trích đặc trưng, sau đấy cũng xây dựng hệ thống học
với Adaboost, dựa trên xác suất để xác định khuôn mặt người. Tỷ lệ chính xác trên của phương
pháp này lên đến 90%.
b. Mạng Neural
Về cơ bản mạng neural là một mạng các phần tử (gọi là neuron) kết nối với nhau thông
qua các liên kết (các liên kết này được gọi là trọng số liên kết) để thực hiện một công việc cụ thể
nào đó. Khả năng xử lý của mạng neuron được hình thành thông qua quá trình hiệu chỉnh trọng
số liên kết giữa các neuron, nói cách khác là học từ tập hợp các mẫu huấn luyện.
Mạng neural rất hay được sử dụng trong các bài toán nhận dạng mẫu, nhận dạng mặt người cũng

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

Baum-Welch. Sau khi huấn luyện xong, dựa vào xác suất để xác định một quan sát thuôc lớp
nào.
.
Đối với bài toán phát hiện và nhận dạng mặt người, ta chia khuôn mặt thành các vùng
khác nhau như đầu, mắt, mũi, miệng, và cằm. Có thể nhận dạng một mẫu khuôn mặt người bằng
cách thực hiện tiến trình xem xét các vùng quan sát theo một thứ tự thích hợp (từ trên xuống
dưới, từ trái qua phải). Mục tiêu của hướng tiếp cận này là kết hợp các vùng đặc trưng khuôn mặt
với các trạng thái của mô hình.
Thường các phương pháp dựa vào HMM sẽ xem xét một mẫu khuôn mặt như một chuỗi
các vector quan sát, với mỗi vector là một dãy các điểm ảnh (hình 4 và hình 6) Trong quá trình
huấn luyện và kiểm tra, một ảnh được quét theo một thứ tự và một quan sát được xem như một
khối các điểm ảnh (hình 4 và hình 6). Sau đấy, áp dụng một định hướng theo xác suất để chuyển
từ trạng thái này sang trạng thái khác ( hình 5 ), dữ liệu ảnh được mô hình hóa bằng phân bố
Gauss đa biến. Một chuỗi quan sát bao gồm tất cả giá trị cường độ từ mỗi khối. Kết quả xuất ra
cho biết quan sát thuộc lớp nào.
Một nghiên cứu điển hình trong các tiếp cận này đó là của Samaria. Samaria đã dùng năm
trạng thái tương ứng năm vùng như trong hình 6 để mô hình hóa tiến trình xác định khuôn mặt
người. Ông huấn luyện từng vùng cho HMM. Mỗi trạng thái sẽ phụ trách xem xét một vùng
tương ứng để đưa ra quyết định phù hợp. Nếu kết quả xem xét cuối cùng vượt qua một ngưỡng
thì quan sát này sẽ là khuôn mặt người.
d. Phân loại Bayes
Bayes là một bộ phân loại tuyến tính dựa trên xác xuất. Tư tưởng của nó là dựa vào xác
xuất của các đặc trưng xuất hiện trong khuôn mặt. Đây là phương pháp đơn giản, cài đặt không
phức tạp, tốc độ nhanh, với tập huấn luyện lớn thì cho kết quả vẫn tương đối chính xác. Một
nghiên cứu điển hình dùng phân loại Bayes vào xác định mặt người trong hướng tiếp cận dựa
trên diện mạo đó là nghiên cứu của Schneiderman và Kanade. Hai ông đã mô tả một phân loại
Naïve Bayes để ước lượng xác xuất chung của diện mạo cục bộ và vị trí của các mẫu (các vùng
trên khuôn mặt) ở nhiều độ phân giải khác nhau. Ứng với mỗi độ phân giải, khuôn mặt người
được chia thành bốn vùng chữ nhật, các vùng này được chiếu xuống không gian có số chiều bé
hơn và được lượng tử hóa thành tập các mẫu có giới hạn. Sau đấy thống kê các vùng đã được

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 .

Những vector và giá trị vô hướng chính là những vector riêng và trị riêng tương ứng của ma trận .
là tích vô hướng giữa hai vector u , v .
A=[]
Ta thấy ma trận A có kích thước M*N × P , còn ma trận có kích thước M*N×M*N , do kích thước ma
trận này quá lớn nên ta không thể tìm được những vector riêng và những trị riêng trực tiếp được , thay
vào đó ta sẽ tìm những vector riêng của ma trận có kích thước P×P .
Nếu v là một vector riêng của và λ là trị riêng tương ứng , khi đó ta có :
v = λv

v = λAv , tức là Av là một trị riêng của ma trận .
Thông thường ta chỉ lấy một số Q vector riêng ứng với Q trị riêng có giá trị lớn nhất .
Sau khi có các vector riêng của ma trận , ta sẽ chuẩn hóa chúng để thu được một cơ sở trực chuẩn của
không gian khuôn mặt .
Đặt L= , tìm V là tập hợp các vector riêng của L , D là tập hợp các trị riêng tương ứng .
V bao gồm Q vector riêng ứng với những trị riêng lớn hơn một giá trị nào đó hoặc ứng với Q trị
riêng lớn nhất trong D .
E = AV là tập các vector riêng của . Do đây là những vector riêng , mà nó lại có dạng khuôn mặt
nên còn đuợc gọi là Eigenfaces . E là ma trận M*N×Q , mỗi cột là một vector riêng .
Chuẩn hóa các vector cột trong E ( chia mỗi vector cho độ dài của vector đó ) .
Bây giờ , ta có thể coi E là một cơ sở trực chuẩn của không gian khuôn mặt .
Với H là bức ảnh có cùng kích thước với những bức ảnh trong tập huấn luyện . Ta sẽ xét nó có
phải là bức ảnh khuôn mặt hay không , cũng như tìm bức ảnh giống với nó nhất trong tập huấn
luyện .
H được xem là một vector trong không gian M*N chiều .
Đặt K=H-m với m là vector ảnh trung bình .
Cho V là một không gian có tích vô hướng hữu hạn chiều và W là một không gian con của V . Giả sử W
có một cơ sở trực chuần là {, … , . Khi đó hình chiếu trực giao của vector u bất kỳ lên W được xác định
như sau :
=
Độ dài được gọi là khoảng cách từ u đến W .

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

phải mặt người tới không gian mặt .
Dưới đây là một ví dụ khác , ta có một tập huấn luyện gồm những bức ảnh kích thước 18x27
pixel , ta cũng tìm các Eigenface và sau đó tìm face map của một bức ảnh kiểm tra . Trong ví dụ
này thì ảnh con H(x,y) vùng hình chữ nhật có tâm tại (x,y) trên bức ảnh và có kích thước 18x27
pixel .
Hình trên là face map của bức ảnh ban đầu .
Ta thấy vị trí của mổi khuôn mặt chính là những vùng cực tiểu địa phương trên bức ảnh ( là
những đốm đen trong những vùng trắng hình chữ nhật ) .
Bây giờ nếu ta có một cơ sở dữ liệu những ảnh không phải khuôn mặt ( ta thường tập trung vào
những hình ảnh xung quanh khuôn mặt như cổ áo , một phần của khuôn mặt …) . Tìm face map
của bức ảnh ban đầu với không gian không phải khuôn mặt này , ta thu được kết quả sau :
Hình trên cũng khá giống với face map ứng với không gian khuôn mặt nhưng tại mỗi vùng sáng
hình chữ nhật thì không hề có tâm ở giữa .
Thực ra từ face map ứng với không gian khuôn mặt , nếu ta có một thuật toán tốt để tìm những vị
trí cực tiểu địa phương thì đã có thể xác định vị trí các khuôn mặt . Face map ứng với không
gian không phải khuôn mặt chỉ là một cách đơn giản để giúp ta tìm chính xác hơn thôi .
Tất cả những điều thu được ở trên chỉ là kết quả hoàn toàn dựa trên lý thuyết , trong thực tế
những thuật toán nhận dạng mặt người đã phát triển lên rất nhiều từ ý tưởng của PCA mới có
được độ chính xác yêu cầu .
3.Nhận xét
PCA là phương pháp dùng để xây dựng đặc trưng khuôn mặt , nó là một nền tảng để phát triển
những thuật toán khác . Thực tế có rất nhiều tác giả áp dụng PCA , kết hợp với những phương
pháp như mạng neural , xác suất thống kê để xây dựng những thuật toán có độ chính xác cao .
Ưu điểm của PCA là nó dễ cài đặt , nếu ta xét bài toán tìm khuôn mặt giống nhau thì chỉ cần áp
dụng hoàn toàn theo lý thuyết là đã có độ chính xác khá cao , nếu áp dụng cho bài toán tìm vị trí
khuôn mặt thì cần phải có một thuật toán nữa để sử dụng face map thu được theo lý thuyết .
Khuyết điểm của PCA là các mẫu khuôn mặt hoàn toàn phụ thuộc vào tập huấn luyện , có nghĩa
là các khuôn mặt trong ảnh kiểm tra phải giống với các ảnh huấn luyện về kích thước , tư thế , độ
sáng . Thực tế trong tập huấn luyện thường gồm nhiều nhóm hình , mỗi nhóm là hình của một
người với tư thế , độ sáng khác nhau .

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

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
huấn luyện C2 từ D2 chúng ta sẽ huấn luyện bộ phân loại C3 từ D3.
Bây giờ chúng ta đã có một strong classifier: sự kết hợp C1, C2 và C3. Khi tiến hành nhận dạng
một mẫu X, kết quả sẽ được quyết định bởi sự thỏa thuận của 3 bộ C1, C2 và C3: Nếu cả 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
1.2. Adaboost
Như đã biết, AdaBoost (Adaptive Boost) là một bộ phân loại mạnh phi tuyến phức dựa trên
hướng tiếp cận boosting được Freund và Schapire đưa ra vào năm 1995. Adaboost hoạt động trên
nguyên tắc kết hợp tuyến tính các weak classifier dựa trên các đặc trưng Haar- Line để hình
thành một strong classifier. Để có thể kết hợp các bộ phân loại yếu, adaboost sử dụng một trọng
số (weight) để đá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ố để chuẩn bị cho việc xây
dựng weak classifier tiếp theo: 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 xây dựng. Bằng cách này, các weak
classifier sau có thể tập trung vào các mẫu mà các weak classifier trước đó thực hiện tốt. Sau
cùng các weak classifier sẽ được kết hợp tùy theo mức độ ‘tốt’ của chúng để tạo nên một strong
classifier. Các weak classifiers hk(x) là các bộ phân loại yếu, được biểu diễn như sau:
Trong đó:
x : mẫu hay cửa sổ con cần xét (x = (x1,x2,…,xn) là vector đặc trưng của mẫu)
fk: giá trị của đặc trưng Haar-like
pk: hệ số quyết định chiều của bất phương trình
Công thức trên có thể diễn giải như sau: Nếu giá trị đặc trưng của mẫu cho bởi hàm đánh giá của
bộ phân loại vượt qua một ngưỡng cho trước thì mẫu đấy là khuôn mặt ( gọi là object : đối tượng
cần nhận dạng ), ngược lại thì mẫu là background ( không phải là đối tượng ).
Thuật toán AdaBoost:
Sơ đồ khối
Quá 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 weak classifier ht thực hiện việc phân loại với lỗi εt nhỏ nhất (do sẽ là bộ
phân loại tốt nhất) để bổ sung vào strong classifier. Mỗi khi chọn được 1 bộ phân loại ht,

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ở

Lợi ích của các đặc trưng Haar-like là 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. Để tính giá trị các đặc trưng haar-like, ta tính sự chênh lệch giữa
tổng của các pixel của các vùng đen và các vùng trắng như trong công thức sau:
f(x) = Tổngvùng đen(pixel) - Tổngvùng trắng(pixel)
Như vậy ta có thể thấy rằng, để tính các giá trị của đặc trưng Haar-like, ta phải tính tổng
của các vùng pixel trên ảnh. Nhưng để tính toán các giá trị của các đặc trưng Haar-ike cho tất cả
các vị trí trên ảnh đòi hỏi chi phí tính toán khá lớn, không đáp ứng được cho các ứng dụng đòi
hỏi tính run-time. Do đó Viola và Jones đưa ra một khái niệm gọi là Integral Image để tính toán
nhanh cho các đặc trưng cơ bản. Sau này, Lienhart kế thừa Integral Image (SAT) và đưa thêm
khái niệm Rotated Summed Area Table (RSAT) dùng để tính toán nhanh cho các đặc trưng xoay
1 góc 45o. Integral Image là một mảng 2 chiều với kích thước bằng với kích của ảnh cần tính các
đặc trưng Haar-like, với mỗi phần tử của mảng này được tính bằng cách tính tổng của điểm ảnh
phía trên (dòng-1) và bên trái (cột-1) của nó. Bắt đầu từ vị trí trên, bên trái đến vị trí dưới, phải
của ảnh, việc tính toán này đơn thuần chỉ đựa trên phép cộng số nguyên đơn giản, do đó tốc độ
thực hiện rất nhanh.
Hình 10: Cách tính Integral Image của ảnh
Sau khi đã tính được Integral Image, việc tính tổng điểm ảnh của một vùng bất kỳ
nào đó trên ảnh thực hiện rất đơn giản theo cách sau: (Giả sử ta cần tính tổng điểm ảnh
của vùng D như trong hình 11):
D = A + B + C + D – (A+B) – (A+C) + A
Với A + B + C + D chính là giá trị tại điểm P4 trên Integral Image, tương tự như vậy
A+B là giá trị tại điểm P2, A+C là giá trị tại điểm P3, và A là giá trị tại điểm P1. Vậy ta

×