Với mục tiêu chính là tìm hiểu giải thuật adaboost, các đặc trưng haar-like, mô hình Cascade of Classifiers, đồng thời áp dụng vào bài toán phát hiện mặt người trong ảnh, khóa luân được
Trang 1ĐẠI HỌC CÔNG NGHỆ ĐẠI HỌC QUỐC GIA HÀ NỘI
WX
Lê Mạnh Tuấn
PHÁT HIỆN MẶT NGƯỜI TRONG ẢNH
VÀ ỨNG DỤNG
KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công Nghệ Thông Tin
Hà Nội – 2009
Trang 2ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Lê Mạnh Tuấn
PHÁT HIỆN MẶT NGƯỜI TRONG ẢNH
VÀ ỨNG DỤNG
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công nghệ thông tin
Cán bộ hướng dẫn: TS Nguyễn Hải Châu
Trang 3Em xin cảm ơn khoa Công Nghệ Thông Tin trường Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội, cảm ơn các thầy cô trong khoa đã tận tình giảng dậy, truyền đạt cho
em những kiến thức quý báu trong những năm học vừa qua, giúp cho em có một nền tảng kiến thức vững chắc để thực hiện khóa luận cũng như nghiên cứu học tập sau này
Tôi xin cảm ơn tất cả bạn bè, anh, chị, những người đã giúp đỡ, khích lệ cũng như phê bình, góp ý, giúp tôi hoàn thành khóa luận một cách tốt nhất
Cuối cùng, con cảm ơn bố, mẹ, những người luôn luôn quan tâm, chăm sóc cho con
cả về vật chất lẫn tinh thần, luôn tạo điều kiện tốt nhất cho con có thể chuyên tâm học tập, nghiên cứu Gia đình luôn là nguồn động viên, là chỗ dựa tinh thần vững chắc cho con
Hà nội, ngày 24 tháng 5 năm 2009
Lê Mạnh Tuấn
Trang 4Trong khóa luận này em xin nêu một trong những phương pháp để phát hiện khuôn mặt trong ảnh, sau đấy mở rộng ra với phát hiện mặt người trong video và webcam Sau khi đã xem xét các hướng tiếp cận khác nhau, em chọn 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ố
Trang 5MỤC LỤC
TÓM TẮT iv
MỤC LỤC v
DANH SÁCH THUẬT NGỮ vii
DANH MỤC HÌNH VẼ viii
DANH SÁCH TỪ VIẾT TẮT ix
MỞ ĐẦU 1
Chương 1 TỔNG QUAN VỀ CÁC PHƯƠNG PHÁP XÁC ĐỊNH MẶT NGƯỜI 3
1 Giới thiệu về bài toán xác định mặt người trong ảnh 3
2 Định nghĩa bài toán xác định mặt người 3
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 3
4 Các ứng dụng của xác định mặt người 4
4.1 Xác minh tội phạm 4
4.2 Camera chống trộm 4
4.3 Bảo mật 4
4.4 Lưu trữ khuôn mặt 4
4.5 Các ứng dụng khác 5
5 Xác định phạm vi đề tài 5
Chương 2 CÁC CÔNG TRÌNH NGHIÊN CỨU 7
1 Các phương pháp chính để xác định mặt người 7
1.1 Hướng tiếp cận dựa trên tri thức 8
1.2 Hướng tiếp cận dựa trên đặc trưng không thay đổi 10
1.3 Hướng tiếp cận dựa trên so sánh khớp mẫu 13
1.4 Hướng tiếp cận dựa trên diện mạo 16
Chương 3 CƠ SỞ LÝ THUYẾT 23
1 Tổng quan về Adaboost 23
1.1 Tiếp cận Boosting 23
1.2 Adaboost 24
1.3 Các đặc trưng Haar-Like 28
1.4 Cascade of Classifiers 31
Trang 61.5 Cascade of boosting classifiers 33
Chương 4 XÂY DỰNG ỨNG DỤNG 34
1 Sơ lược về OpenCV 34
2 Tổng quan về một hệ thống phát hiện mặt người trong ảnh 35
3 Phân tích – thiết kế hệ thống phát hiện mặt người 35
3.1 Phân tích 35
3.2 Thiết kế hệ thống 36
3.3 Thiết kế cơ sở dữ liệu 38
3.4 Thiết kế giao diện 39
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 41
Trang 7False alarm Là tỉ lệ nhận dạng sai của các bộ phân loại
Feature
(đặc trưng)
Các thông tin giúp nhận biết đối tượng
Haar-like feature Các đặc trưng của đối tượng trong ảnh Các đặc trưng này
thường được định nghĩa bằng các tính toán với tổng điểm ảnh của một vùng nào đó trên bức ảnh
Hit rate Là tỉ lệ nhận dạng đúng của bộ phân loại
Max false alarm Đạt được tỉ lệ sai này thì bộ phân loại được xây dựng thành
công, tỉ lệ sai này là một giá trị bé, có thể chấp nhận được trong bài toán phân loại
Ngưỡng là giá trị ranh giới giữa các lớp, giá trị của ngưỡng
có thể điều chỉnh được thường được chọn từ thực nghiệm (Người ta thử bộ nhận dạng với các giá trị ngưỡng khác nhau
để chọn ra ngưỡng cho tỉ lệ nhận dạng đúng tốt nhất)
Weak classifier
(bộ phân loại yếu)
Bộ phân loại đơn giản có độ chính xác khoảng 50%
Trang 8DANH MỤC HÌNH VẼ
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 .8
Hình 2: Phương pháp chiếu 10
Hình 3: Một mẫu khuôn mặt 15
Hình 4: các vector quan sát để huấn luyện cho HMM 20
Hình 5: Các trạng thái ẩn 21
Hình 6: Xác định khuôn mặt bằng HMM 21
Hình 7: Boosting 24
Hình 8 : 4 đặt trưng Haar-like cơ bản 28
Hình 9: Các đặc trưng mở rộng của các đặc trưng Haar-like cơ sở 29
Hình 10: Cách tính Integral Image của ảnh 30
Hình 11:Ví dụ cách tính nhanh tổng các điểm ảnh của vùng D trên ảnh 30
Hình 12: Ví dụ cách tính nhanh tổng điểm ảnh của vùng D trên ảnh với các đặc trưng xoay 45o 30
Hình 13: cascade of classifiers 32
Hình 14: Cascade of boosting classifiers 33
Hình 15: Cấu trúc cơ bản của OpenCV 34
Hình 16: Tổng quan về hệ thống phát hiện mặt người trong ảnh 35
Hình 17: Biểu đồ ngữ cảnh của hệ thống 36
Hình 18: Biểu đồ phân rã chức năng .38
Hình 19: Sơ đồ thực thể quan hệ ( ERM ) 39
Hình 20: Giao diện của chương trình 40
Trang 9DANH SÁCH TỪ VIẾT TẮT
3 ML Maximum-Likelihood Phương thức cực đại khả năng
4 PCA Principal Component Analysis Phân tích thành phần chính
5 PDF Probility Density Hàm mật độ xác xuất
6 RSAT Rotated Summed Area Table Mảng hai chiều dùng để tính
nhanh các đặc trưng xoay 45o
7 SAT Summed Area Table Mảng hai chiều dùng để tính
nhanh các đặc trưng haar-like cơ bản
Trang 10MỞ ĐẦU
Công nghệ thông tin đang được ứng dụng trong mọi lĩnh vực của cuộc sống Với một hệ thống máy tính, chúng ta có thể làm được rất nhiều việc, tiết kiện thời gian và công sức Điển hình như công việc nhận dạng mặt người Ngày xưa, muốn tìm kiếm một
kẻ tình nghi trong siêu thị hay sân bay, các nhân viên an ninh phải tìm kiếm trên từng màn hình camera theo dõi Ngày nay, công việc đấy đã được làm tự động nhờ các hệ thống nhận dạng mặt người Phát hiện mặt người trong ảnh là một phần quan trọng của hệ thống nhận dạng mặt người đó, giải quyết tốt việc phát hiên mặt người sẽ giúp tiết kiệm thời gian và nâng cao độ chính xác của việc nhận dạng khuôn mặt
Phát hiện mặt người cũng là một bài toán nhận dạng đơn giản, hệ thống chỉ cần phân loại đối tượng đưa vào có phải mặt người hay không phải mặt người Ở mức độ cao hơn, sau khi đã phát hiện được khuôn mặt, các khuôn mặt đó sẽ được so sánh với các khuôn mặt có trong dữ liệu để nhận dạng xem khuôn mặt đấy là của ai (thường áp dụng trong nhận dạng khuôn mặt của người nổi tiếng hoặc của tội phạm đang bị truy nã)
Bài toán phát hiện mặt người được bắt đầu nghiên cứu từ những năm 1990s, và đã
có rất nhiều công trình nghiên cứu về phát hiện khuôn mặt trong ảnh, tuy nhiên cho đến nay, các nhà khoa học vẫn không ngừng tìm các hướng tiếp cận mới, các thuật toán mới nhằm nâng cao hiệu suất của việc phát hiện khuôn mặt cũng như việc nhận dạng mặt người
Với mục tiêu chính là tìm hiểu giải thuật adaboost, các đặc trưng haar-like, mô hình Cascade of Classifiers, đồng thời áp dụng vào bài toán phát hiện mặt người trong ảnh, khóa luân được trình bầy trong bốn chương với bố cục như sau:
Chương 1: Tổng quan về các phương pháp xác định mặt người : Giới thiệu tổng
quan về bài toán xác định mặt người trong ảnh, các ứng dụng và những khó khăn của bài
toán, đồng thời xác định phạm vi của đề tài
Chương 2: Các công trình nghiên cứu : Nêu chi tiết bài toán phát hiện mặt người,
các hướng tiếp cận giải quyết bài toán, các nghiên cứu và thành quả đạt được của các nhà
Trang 11Chương 3: Cơ sở lý thuyết : Đi sâu vào hướng tiếp cận dựa theo thuật toán học
máy adaboost Giới thiệu về các đặc trưng haar-like của khuôn mặt, cách tính các đặc trưng haar-like Tiếp theo là giới thiệu về mô hình cascade of classifiers và cách áp dụng
vào bài toán phát hiện mặt người trong ảnh
Chương 4: Xây dựng ứng dụng : Xây dựng một chương trình demo về phát hiện mặt người trong ảnh Nêu lên các phân tích – thiết kế về chương trình
Cuối cùng là kết luận và hướng phát triển: Tóm tắt những kết quả đạt được, những hạn chế và nêu lên các hướng phát triển trong tương lai
Trang 12Chươ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, …
Trang 13• Sự biểu cảm của khuôn mặt : sự biểu cảm có thể làm thay đổi đáng kể các đặc trưng và thông số của khuôn mặt, ví dụ như khuôn mặt của cùng một người sẽ rất khác khi người đấy cười, tức giận hay sợ hãi …
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.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
Trang 14• 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, …
Ví dụ: tìm các đoạn video có tổng thống Bush phát biểu, tìm các phim có diễn viên Tăng Thanh Hà đóng, tìm các trận đá bóng có Công Vinh đá, …
• 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
• 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, video hoặc webcam 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
Trang 15• Đố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ể
Trang 16Chươ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
Trang 171.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
Trang 18Yang 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
Trang 191.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 để
Trang 20mô 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 định
vị 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ẫn
có 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à
Trang 21Park 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
Trang 221.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
Trang 23để 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
Trang 24Hì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 …
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
Trang 25morphology để 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à khuôn mặt Các đặc tính đã được học ở trong hình thái các mô hình phân bố hay các tham
Trang 26số của một hàm số nên có thể dùng các đặc tính này để xác định khuôn mặt người Đồng thời, bài toán giảm số chiều thường được quan tâm để tăng hiệu quả tính toán cũng như 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