Khóa luận Phát hiện mặt người trong ảnh và ứng dụng

Tài liệu Khóa luận Phát hiện mặt người trong ảnh và ứng dụng: i  ĐẠI HỌC CÔNG NGHỆ ĐẠI HỌC QUỐC GIA HÀ NỘI ----W—X---- 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 ii  ĐẠ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 HÀ NỘI - 2009 iii  Lời cảm ơn Sau một thời gian dài học tập và nghiên cứu, cuối cùng em cũng đã hoàn thành khóa luận tốt nghiệp này, đây là dịp tốt nhất để em có thể gửi lời cảm ơn đến mọi người. Em xin gửi lời cảm ơn sâu sắc đến Tiến sĩ Nguyễn Hải Châu, đã tận hình hướng dẫn, định hướng cho em trong suốt thời gian thực hiện đề tài. Thầy đã cho em những lời khuyên quý báu giúp em hoàn thành tốt khóa luận. Em 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 ...

pdf53 trang | Chia sẻ: haohao | Lượt xem: 1223 | Lượt tải: 3download
Bạn đang xem trước 20 trang mẫu tài liệu Khóa luận Phát hiện mặt người trong ảnh và ứng dụng, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
i  ĐẠI HỌC CƠNG NGHỆ ĐẠI HỌC QUỐC GIA HÀ NỘI ----W—X---- 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 ii  ĐẠ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 KHỐ 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 HÀ NỘI - 2009 iii  Lời cảm ơn Sau một thời gian dài học tập và nghiên cứu, cuối cùng em cũng đã hồn thành khĩa luận tốt nghiệp này, đây là dịp tốt nhất để em cĩ thể gửi lời cảm ơn đến mọi người. Em xin gửi lời cảm ơn sâu sắc đến Tiến sĩ Nguyễn Hải Châu, đã tận hình hướng dẫn, định hướng cho em trong suốt thời gian thực hiện đề tài. Thầy đã cho em những lời khuyên quý báu giúp em hồn thành tốt khĩa luận. Em 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 hồ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 Sinh viên Lê Mạnh Tuấn iv  TĨM TẮT 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. Trong 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ố. v  MỤ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 tốn xác định mặt người trong ảnh................................................ 3 2. Định nghĩa bài tố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 tố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 vi  1.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  vii  DANH SÁCH THUẬT NGỮ Thuật ngữ Giải thích Classifier (bộ phân loại) Một bộ phân loại được xây dựng theo một thuật tốn học máy nào đấy, dùng để phân loại các đối tượng (khuơn mặt hay khơng phải khuơn mặt) False 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 tố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 tốn phân loại. Strong classifier (bộ phân loại mạnh) Bộ phân loại được xây dựng từ nhiều bộ phân loại yếu, cĩ độ chính xác cao. Threshold (ngưỡng) 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%. viii  DANH 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 ix  DANH SÁCH TỪ VIẾT TẮT STT Kí hiệu Từ tiếng anh Ý nghĩa 1 CSDL Database Cơ sở dữ liệu 2 HMM Hidden Markov Model Mơ hình Markov ẩn 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 1  MỞ ĐẦ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 tố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 tố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 tố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 tố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 tố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 tố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 tốn phát hiện mặt người, các hướng tiếp cận giải quyết bài tốn, các nghiên cứu và thành quả đạt được của các nhà nghiên cứu trong bài tốn xác định mặt người. 2  Chương 3: Cơ sở lý thuyết : Đi sâu vào hướng tiếp cận dựa theo thuật tố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 tố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. 3  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 tố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 tốn nhận dạng mặt người. Các nghiên cứu đi từ bài tố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 tố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 tố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 tố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. 4  • 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 … 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. 5  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, …. 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 tố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 tố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. 6  • Đố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ể. 7  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. Ngồ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 tố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 tố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 tố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. 8  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 tố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. Ngồi ra cũng khĩ để mở rộng phạm vi của bải tố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 9  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. 10  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 tốn xác định khuơn mặt như là bài tố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 để 11  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 tố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 tố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 tố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 tố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. 12  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 tồ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 tồ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. 13  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ề ngồ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 14  để 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. 15  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%. Ngồ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 tốn 16  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 tố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 tồ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ề ngồ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 17  số 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 tốn giảm số chiều thường được quan tâm để tăng hiệu quả tính tố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. Ngồ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 hồn tồ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 tố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 tố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 18  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%. Ngồ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 tố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 tố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 tố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à 19  khơng phải khuơn mặt). Chất lượng của siêu phẳng này phụ thuộc vào khoảng cách giữa các vector, tức là phụ thuộc vào các đặc trưng của ảnh. Support Vector Machine đã được Osuna [5] áp dụng đầu tiên (để xác định khuơn mặt người). SVM được xem như là một kiểu phân loại mới vì trong khi hầu hết các phương pháp phân loại khác (như Mạng Bayes, Nueral, RBF) đều dùng tiêu chí tối thiểu lỗi huấn luyện (rủi ro do kinh nghiệm), trong khi SVM dùng quy nạp (được gọi là tối thiểu rủi ro cấu trúc). Phân loại SVM là một phân loại tuyến tính, do đĩ nĩ cũng dùng một siêu phẳng để tách dữ liệu. Dựa trên một số kết hợp cĩ các trọng số của một tập con nhỏ các vector huấn luyện, các vector này được gọi là support vector. Ước lượng siêu phẳng trong SVM thì tương đương giải một bài tốn tuyến tính bậc hai. Osuna [5] đã phát triển phương pháp SVM một cách hiệu quả cho bài tốn xác định khuơn mặt người. Ơng dùng 10,000,000 mẫu cĩ kích thước 19x19 pixel, hệ thống của ơng cĩ tỷ lệ lỗi ít hơn và nhanh hơn rất nhiều. d. Mơ hình Markov ẩn Mơ hình Markov ẩn ( Hidden Markov Model – HMM ) là một mơ hình thống kê trong đĩ hệ thống được mơ hình hĩa được cho là một quá trình Markov với các tham số khơng biết trước và nhiệm vụ là xác định các tham số ẩn từ các tham số quan sát được, dựa trên sự thừa nhận này. Các tham số của mơ hình được rút ra sau đĩ cĩ thể sử dụng để thực hiện các phân tích kế tiếp, ví dụ cho các ứng dụng nhận dạng mẫu. Một giả thuyết quan trọng của mơ hình Markov ẩn là các mẫu cĩ thể được đặc tính hĩa 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, đây là một trong những định nghĩa rõ ràng. Khi phát triển HMM để giải quyết bài tố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 tố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. Để hình dung về HMM, ta xét ví dụ cụ thể sau: Giả sử A cĩ một người bạn B sống ở rất xa. Hàng ngày thì B đều gọi điện cho A để kể về những việc mà B đã làm trong ngày. 20  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 để đố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. Tồ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 tố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 tố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. Hình 4: các vector quan sát để huấn luyện cho HMM 21  Hình 5: Các trạng thái ẩn Đối với bài tố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. Hình 6: Xác định khuơn mặt bằng HMM Mỗi trạng thái lại cĩ những trạng thái nhỏ bên trong: trạng thái trán cĩ ba trạng thái nhỏ bên trong; trạng thái mắt cĩ năm trạng thái nhỏ bên trong. 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. 22  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 Nạ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. 23  Chương 3 CƠ SỞ LÝ THUYẾT 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 tốn học máy Adaboost được phát triển thuật tốn boosting, do đĩ tơi sẽ trình bầy một chút về thuật tố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 tố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 tốn boosting, ta xét một bài tố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. 24  Tiếp theo, chúng ta sẽ xây dựng tập D3 từ những mẫu khơng được phân loại tốt bởi sự kết hợp giữa C1 và C2: những mẫu cịn lại trong D mà C1 và C2 cho kết quả khác nhau. Như vậy, D3 sẽ gồm những mẫu mà C1 và C2 hoạt động khơng hiệu quả. Sau cùng, 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 Hình 7: Boosting 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. 25  Để 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 tố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 đĩ chưa 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) k: ngưỡng 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 tốn AdaBoost: 26  Sơ đồ khối: 1. Cho một tập gồm n mẫu cĩ đánh dấu (x1,y1), (x2,y2),… (xn,yn) với xk = (xk1, xk2, … , xkm) là vector đặc trưng và yk {-1, 1} là nhãn của mẫu (1 ứng với object, -1 ứng với background). 2. Khởi tạo trọng số ban đầu cho tất cả các mẫu: với m là số mẫu đúng (ứng với object và y = 1) và l là số mẫu sai (ứng với background và y = -1). 3. Xây dựng T weak classifiers Lặp t = 1, …, T • Với mỗi đặc trưng trong vector đặc trưng, xây dựng một weak classifier hj với ngưỡng θj và lỗi εj. • Chọn ra hj với εj nhỏ nhất, ta được ht: • Cập nhật lại trọng số: • Trong đĩ: : Hệ số dùng để đưa về đoạn [0,1] (normalization factor) 4. Strong classifier được xây dựng : 27  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 tố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: Bắt đầu huấn luyện Khởi tạo tập đặc trưng ban đầu Xác định các đặc trưng trong từng mẫu, xây dựng các bộ phân loại yếu tương ứng Đặc trưng haar-like Tính tốn giá trị lỗi cho mỗi đặc trưng (false alarm) Xác định ngưỡng Chọn weak classifier cĩ giá trị lỗi bé nhất Lưu weak classifier được chọn False alarm ≤ max false alarm Tập các mẫu và trọng số Tập các mẫu Mẫu sai Mẫu đúng Cập nhật lại trọng số Sai Kết thúc, strong classifier đuợc xây dựng Đúng 28  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 trư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: Hình 8 : 4 đặt trưng Haar-like cơ bản Để áp dụng các đặt trưng này vào việc bài tốn xác định mặt người, 4 đặt 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): 29  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 tốn các giá trị của các đặc trưng Haar- like cho tất cả các vị trí trên ảnh địi hỏi chi phí tính tố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 tố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 tố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 tố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. P(x,y) 30  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 cĩ thể viết lại biểu thức tính D ở trên như sau: 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 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 Với các đặc trưng Haar-like xoay 45o Integral Image tại một điểm (x, y) được tính theo cơng thức: RSAT(x,y) B A C 2 4 1 3 D (a) (b) A C B D P1  P2  P3  P4  31  Tổng pixel của một vùng bất kỳ trên ảnh vẫn được tính theo cách sau: D = A + B + C + D – (A+B) – (A+C) + A Như vậy tổng các điểm ảnh trong một hình chữ nhật (kể cả trường hợp xoay 45º) bất kì đều cĩ thể được tính nhanh dựa trên integral image tại 4 đỉnh của nĩ : Sum (D ) = .4 - 2 – 3 + 1 1.4. Cascade of Classifiers Ta thấy quá trình huấn luyện, bộ phân loại phải duyệt qua tất cả các đặc trưng của các mẫu trong tập training. Việc này tốn rất nhiều thời gian. Tuy nhiên, trong các mẫu đưa vào, khơng phải mẫu nào cũng thuộc loại khĩ nhận dạng, cĩ những mẫu background rất dễ nhận ra (ta gọi đây là những mẫu background đơn giản). Đối với những mẫu này, ta chỉ cần xét một hay vài đặc trưng đơn giản là cĩ thể nhận diện được chứ khơng cần xét tất cả các đặc trưng. Nhưng đối với các bộ phân loại thơng thường thì cho dù mẫu cần nhận dạng là dễ hay khĩ thì nĩ vẫn sẽ xét tất cả các đặc trưng mà nĩ rút ra được trong quá trình học. Do đĩ, chúng tốn thời gian xử lý một cách khơng cần thiết. Cascade of Classifiers được xây dựng chính là nhằm rút ngắn thời gian xử lý, giảm thiểu false alarm cho bộ phân loại. Cascade tree gồm nhiều stage (hay cịn gọi là layer), mỗi stage của cây sẽ là một stage classifier. Một mẫu để được phân loại là đối tượng thì nĩ cần phải đi qua hết tất cả các stages của cây. Các stage classifiers ở stage sau được huấn luyện bằng những mẫu negative mà stage classifier trước nĩ nhận dạng sai, tức là nĩ sẽ tập trung học từ các mẫu background khĩ hơn, do đĩ sự kết hợp các stage classifiers này lại sẽ giúp bộ phân loại cĩ false alarm thấp. Với cấu trúc này, những mẫu background dễ nhận diện sẽ bị loại ngay từ những stages đầu tiên, giúp đáp ứng tốt nhất đối với độ phức tạp gia tăng của các mẫu đưa vào, đồng thời giúp rút ngắn thời gian xử lý. Thuật tốn Cascade training: 32  Minh họa thuật tốn Cascade training: Hình 13: cascade of classifiers Hình 13 minh họa sự huấn luyện của một cascade gồm N stages. Ở mỗi stage, weak classifier tương ứng sẽ được huấn luyện sao cho độ chính xác của nĩ là h và false alarm bằng f.      h h h 1-f 1-f 1-f 1-f stage 1 2 N-1 N…… hitrate = hN falsealarms = fN Input pattern classified as a non-object 1. Gọi: F là giá trị false alarm và d là độ chính xác của weak classifier ở mỗi stage Ftarget: Giá trị max false alarm. P, N là số lượng mẫu positive và negative. Pi, Ni là tập positive và negative cho bộ phân lớp ở tầng thứ i. Fi, Di: Giá trị false alarm và độ chính xác của cascade trước khi đến tầng thứ i. 2. Khởi tạo i=0; F0=1.0; D0 = 1.0 3. Lặp: while Fi>Ftarget • i = i+1; • Huấn luyện bộ phân loại hi từ tập Pi và Ni với detection rate d và max false alarm f. Thêm hi vào cây phân lớp. • Dùng cây phân lớp hiện cĩ để tính Fi: Duyệt qua N mẫu negative cho đến khi nào tìm đủ n mẫu mà cây phân lớp hiện cĩ phân loại sai. ( • N := • Nếu Fi >Ftarget N = { số mẫu sai ở stage hiện tại phân loại sai }. P = { số mẫu positive mà stage hiện tại phân loại dúng } 33  1.5. Cascade of boosting classifiers Cascade of boosting classifiers là mơ hình cascade of classifiers với mỗi classifier được xây dựng bằng Adaboost sử dụng haar-like. Hình 14: Cascade of boosting classifiers Viola và Jones đã sử dụng rất thành cơng cascade of boosting classifiers cho bài tốn nhận dạng mặt người. Với tập huấn luyện gồm 4196 hình mặt người được đưa về ảnh grayscale kích thước 24x24 và 9500 hình background, hai ơngđã xây dựng cấu trúc cascade tree gồm 38 stage với tổng cộng 6060 đặc trưng haar-like. Thực nghiệm đã cho thấy classifier ở stage đầu tiên sử dụng 2 đặc trưng và loại được khoảng 50% mẫu background (khơng phải mặt người) và cĩ độ chính xác là d = 100%. Classifier ở stage thứ 2 sử dụng 10 đặc trưng loại được 80% mẫu background với độ chính xác vẫn là 100%. Hệ thống này được so sánh với hệ thống của Rowley-Baluja-Kanade (sử dụng mạng neural), Schneiderman-Kanade (sử dụng phương pháp thống kê), và cho thấy tỉ lệ nhận dạng là ngang nhau, trong khi hệ thống của Viola và Jones chạy nhanh hơn đến 15 lần so với hệ thống của Rowley-Baluja-Kanade và nhanh hơn 600 lần hệ thống của Schneiderman-Kanade. Lý do mà cấu trúc cascade đạt tốc độ nhận dạng nhanh chính là nhờ nĩ sớm loại bỏ được các mẫu background đơn giản (thường cĩ số lượng lớn hơn nhiều so với các mẫu chứa object – các mẫu chưa khuơn mặt cần tiến hành nhận dạng). Bên cạnh đĩ, hệ thống của Viola và Jones cũng đạt được độ chính xác khá cao nhờ vào thuật tốn cascade training, các bộ nhận dạng được huấn luyện bằng AdaBoost với đặc trưng Haar-like mơ tả tốt thơng tin đối tượng, cùng với cách Integral Image tính nhanh các đặc trưng, khơng làm giảm tốc độ nhận dạng của hệ thống. Như vậy, mơ hình Cascade of Boosted Classifiers thật sự là một cách tiếp cận tốt cả về tốc độ lẫn khả năng nhận dạng, rất phù hợp với bài nhận dạng mặt người. I Y Y Y N N N N C L A S S NON-CLASS 34  Chương 4 XÂY DỰNG ỨNG DỤNG Phát hiện mặt người trong ảnh cĩ nhiều ứng dụng trong cuộc sống, tuy nhiên, trong khĩa luận này, tơi chỉ xây dựng một chương trình nhỏ để minh họa cho các lý thuyết ở trên. Cụ thể đấy là một chương trình phát hiện mặt người trong ảnh được viết trên nền visual c ++ của Microsoft, sử dụng thư viện mã nguồn mở OpenCV của Intel. 1. Sơ lược về OpenCV Open VC là thư viện mã nguồn mở của intel về thị giác máy tính. Nĩ cung cấp một bộ mã nguồn bao gồm hàng trăm hàm, lớp dựa trên các thuật tốn về xử lý ảnh cũng như Computer vision dùng ngơn ngữ C/C++. Open CV thể hiện sự đa dạng của trí tuệ nhân tạo. Được ứng dụng nhiều trong các bài tốn nhận dạng mặt, dị tìm mặt, phát hiện mặt, lọc Kalman, … Cấu trúc tổng quan của OpenCV bao gồm 5 phần chính. 4 trong 5 phần đĩ được chỉ ra trong hình vẽ dưới. Hình 15: Cấu trúc cơ bản của OpenCV Phần CV bao gồm các thư viện cơ bản về xử lý ảnh và các giải thuật về thị giác máy tính. ML là bộ thư viện về các thuật tốn học máy, bao gồm rất nhiều bộ phân cụm và phân loại thống kê. HighGUI chứa đựng những thủ tục vào ra, các chức năng về lưu trữ cũng như đọc các file ảnh và video. Phần thứ 4, Cxcore chứa đựng các cấu trúc dữ liệu cơ CV Các hàm về xử lý ảnh và giải thuật về thị giác máy tính CXCORE Các cấu trúc dữ liệu cơ bản, cấu trúc XML, các hàm về đồ họa … MLL Các thuật tốn học máy, bao gồm các bộ phân cụm, phân loại thống kê HighGUI Các hàm và thủ tục làm việc với file ảnh và file video 35  bản ( ví dụ như cấu trúc XML, các cây dữ liệu …). Phần cuối cùng là CvAux, phần này bao gồm các thư viện cho việc phát hiện, theo dõi và nhận dạng đối tượng (khuơn mặt, mắt …). 2. Tổng quan về một hệ thống phát hiện mặt người trong ảnh Hình 16: Tổng quan về hệ thống phát hiện mặt người trong ảnh Về cơ bản, từ ảnh gốc ban đầu, hệ thống sẽ chia ảnh thành vơ số vùng nhỏ để tính các đặc trưng, sau đấy đưa các đặc trưng. Tiếp theo, chương trình sẽ xác định các vùng khả quan (các ứng viên) cĩ thể là khuơn mặt, cuối cùng các ứng viên này sẽ được đưa vào một bộ phân loại để tiến hành xác định ứng viên nào là mặt người. 3. Phân tích – thiết kế hệ thống phát hiện mặt người 3.1. Phân tích Nhiệm vụ chính của chương trình là dị tìm khuơn mặt từ một bức ảnh, một file video hoặc từ webcam, sau đấy lưu khuơn mặt vào csdl để phục vụ cho các mục đích khác (sẽ được phát triển sau). Ảnh gốc Tính các đặc trưng nhanh từ nhiều tỉ lệ Integral Image Các hàm Haar cơ bản Ước lượng các đặc trưng Điều chỉnh thơng số Adaboost Chọn đặc trưng Số lượng lớn các đặc trưng Cấu trúc phân tầng (Cascade of classifier) Một tập nhỏ các đặc trưng Quyết định kết quả  C1  C2 Cn I Y Y N N N C L A S S NON-CLASS 36  Hình 17: Biểu đồ ngữ cảnh của hệ thống Như vậy các chức năng chương trình bao gồm: • Kết nối đến webcam, đọc các file ảnh và video. • Phát hiện các nhiều khuơn mặt cĩ trong bức ảnh, video, webcam ... • Lưu ảnh khuơn mặt được phát hiện vào csdl. 3.2. Thiết kế hệ thống Với các chức năng ở trên, chương trình được chia thành thành 3 phần chính: Phần xử lý đầu vào, phần phát hiện khuơn mặt và phần xử lý đầu ra. a. Xử lý đầu vào: Đầu vào (ảnh, video hoặc webcam) Phát hiện nhanh khuơn mặt bằng Adaboost Lưu khuơn mặt vào CSDL Cĩ khuơn mặt 0 HỆ THỐNG PHÁT HIỆN MẶT NGƯỜI TRONG ẢNH NGƯỜI DÙNG Capture ảnh Khuơn mặt đã được phát hiện 37  Chương trình nhận đầu vào là file ảnh, video hoặc webcam, tuy nhiên, việc phát hiện khuơn mặt được thực hiện trên các bức ảnh, do đĩ, với đầu vào là webcam hay file video, ta phải chuyển thành các ảnh tĩnh và xử lý trên từng ảnh tĩnh. Sau khi đã cĩ ảnh đầu vào rồi thì sẽ chuyển ảnh cho giai đoạn xử lý tiếp theo, đĩ là phát hiện các khuơn mặt cĩ trong ảnh. b. Phát hiện khuơn mặt Phần này xử lý chính nghiệp vụ của hệ thống. Sau khi cĩ ảnh truyền vào, hệ thống sẽ thực hiện chức năng phát hiện khuơn mặt cĩ trong ảnh. Việc phát hiện khuơn mặt được thực hiện nhanh bằng thuật tốn adaboost thơng qua hàm cvHaarDetectObjects() của OpenCV. Hàm này thực hiện việc phát hiện đối tượng dựa trên các đặc trưng haar-like, cụ thể là nhờ vào một bộ Cascade được truyền vào cho hàm. Bộ Cascade được xây dựng theo dạng cây (tree-node) và đã được huấn luyện từ trước. Việc huấn luyện bộ Cascade cĩ thể thực hiện từ những dữ liệu thu thập được để phục vụ cho quá trình nhận dạng. Ví dụ, muốn nhận dạng một người A, ta thu thập các ảnh khuơn mặt của người A với nhiều tư thế, gĩc chụp và điều kiện chụp khác nhau, sau đấy cho bộ nhận dạng học theo thuật tốn Cascade training. Tuy nhiên việc nhận dạng khuơn mặt là một cơng việc khĩ và tốn nhiều thời gian, do đĩ, tơi khơng thực hiện nĩ trong khĩa luận của mình. c. Xử lý đầu ra. Khuơn mặt sau khi được phát hiện sẽ được tách ra khỏi bức ảnh và lưu dưới dạng ảnh bitmap với phần mở rộng là *.jpg. Đối với đầu vào là các file ảnh, dữ liệu đầu ra cũng là file ảnh đấy nhưng cĩ lưu vị trí khuơn mặt đã được phát hiện trên bức ảnh, đồng thời tách các riêng khuơn mặt và lưu vào cơ sở dữ liệu. Đối với đầu vào là các file video hoặc webcam. Các khuơn mặt sẽ được tách ra và lưu lại thành các file ảnh riêng rẽ, và được đánh số thứ tự theo tên file video. Ví dụ như file video test.avi thì ảnh các khuơn mặt phát hiện được sẽ được đánh số theo thứ tự như sau: test.avi_1.jpg, test.avi_2.jpg … 38  Hình 18: Biểu đồ phân rã chức năng. 3.3. Thiết kế cơ sở dữ liệu Lưu trữ cơ sở dữ liệu là một phần quan trọng của ứng dụng. Việc xây dựng, tổ chức cơ sở dữ liệu ảnh hướng lớn đến tốc độ của chương trình. Do đĩ tơi đã xây dựng và quản cơ sở dữ liệu bằng hệ quản trị cơ sở Oracle, đây là hệ quản trị cơ sở dữ liệu mạnh, đáp ứng được nhiều yêu cầu về quản lý cơ sở dữ liệu của các doanh nghiệp lớn, đặc biệt là các ngân hàng hay kho bạc. Tuy hiện tại, chương trình chỉ dừng lại ở mức phát hiện khuơn mặt trong ảnh, nhưng việc xây dựng một cơ sở dữ liệu tốt sẽ là tiền đề để cĩ thể phát triển chương trình thành các ứng dụng lớn hơn sau này. Hệ thống cần lưu trữ các dữ liệu: Ảnh khuơn mặt sau khi đã được phát hiện. Đối với đầu vào là file ảnh: • Lưu ảnh đầu vào cùng vị trí khuơn mặt đã được phát hiện trên bức ảnh • Lưu từng khuơn mặt được phát hiện. Đối với đầu vào là file video, hoặc webcam: • Lưu các khuơn mặt được phát hiện Như vậy các thơng tin trong cơ sở dữ liệu bao gồm 2 thực thể sau: • ẢNH GỐC ( IMAGES ): Ảnh đầu vào. Các thuộc tính bao gồm: - ID: Mã ảnh, kiểu Integer, là khĩa chính và cĩ ràng buộc là tự tăng. 3.2.Lưu ảnh vào CSDL 2.Phát hiện nhanh khuơn mặt bằng Adaboost 1.Xử lý đầu vào 1.1. Capture ảnh 3. Xử lý đầu ra HỆ THỐNG PHÁT HIỆN MẶT NGƯỜI TRONG ẢNH 3.1. Lưu ảnh vào thư mục thích hợp trên máy 39  - Name: Tên của bức ảnh, kiểu dữ liệu varchar2(200). Trong trường hợp đầu vào là video thì tên sẽ được lấy theo tên của file video, cịn nếu đầu vào là webcam thì sẽ đặt là webcam_ID (thêm ID ở trên vào tên). - Image: Lưu mã nhị phân của bức ảnh. - URL: lưu đường dẫn đến bức ảnh, kiểu giữ liệu varchar2(1000) Lưu ý: Trong trường hợp file đầu vào là video hoặc webcam thì các trường Image, và URL sẽ nhận giá trị null. • KHUƠN MẶT ( FACES ): Các khuơn mặt phát hiện được. Các thuộc tính bao gồm: - ID: Mã ảnh, kiểu Integer, là khĩa chính và cĩ ràng buộc là tự tăng. - IMAGE_ID: ID của ảnh gốc, kiểu dữ liệu Interger, là khĩa ngoại tham chiếu đến bảng ẢNH GỐC. - Name: Tên của khuơn mặt, được đặt theo tên ảnh gốc, đồng thời thêm số thứ tự để nhận biết các khuơn mặt của cùng ảnh gốc. - Image: Lưu mã nhị phân của ảnh khuơn mặt. - URL: lưu đường dẫn đến ảnh khuơn mặt, kiểu giữ liệu varchar2(1000). Hình 19: Sơ đồ thực thể quan hệ ( ERM ). 3.4. Thiết kế giao diện Giao diện của chương trình được thiết kế thân thiện và đơn giản. Tập trung vào chức năng chính phát hiện khuơn mặt trong ảnh. Bố cục trên giao diện được chia thành 4 phần. IMAGES ID Name Image ỦRL FACES ID Name Image ỦRL Image_ID 40  Phần 1, dành cho người dùng chọn đầu vào, cĩ thể là ảnh, video hoặc webcam. Các ảnh hoặc video cĩ thể được lưu tùy ý trong các thư mục trên máy tính của người dùng. Phần thứ hai là danh sách các khuơn mặt đã được phát hiện và được lưu trong cơ sở dữ liệu. Phần thứ 3 là danh sách các Cascade. Cuối cùng là phần xử lý và hiện kết quả (số khuơn mặt phát hiện được, thời gian thực hiện). Người dùng chọn bức ảnh, chọn bộ Cascade, sau đấy nhấn vào nút “Detect” để thực hiện việc xác định khuơn mặt trên ảnh. Giao diện của chương trình được thể hiện như hình dưới. Hình 20: Giao diện của chương trình 41  KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 1. Kết luận Trên cơ sở nghiên cứu về bài tốn phát hiện mặt người trong ảnh. Đặc biệt là thuật tốn Adaboost, các đặc trưng haar-like và mơ hình Cascade of Classifier. Tơi đã áp dụng thành cơng mơ hình Cascade of Classfier vào bài tốn phát hiện mặt người trong ảnh. Tuy kết quả đạt được chưa cao, nhưng đây là bước đầu để phát triển bài tốn nhận dạng mặt (face recognition) người sau này. Bên cạnh đĩ, trong quá trình xây dựng chương trình demo, tơi đã tìm hiểu về thư viện mã nguồn mở OpenCV, hệ quản trị cơ sở dữ liệu Oracle, qua đĩ biết cách sử dụng các hàm trong thư viện OpenCV và quản lý cơ sở dữ liệu bằng hệ quản trị cơ sở dữ liệu Oracle. Về chương trình demo, sau khi thử nghiệm với tập ảnh lớn và webcam. Chương trình đạt kết quả tốt, thời gian phát hiện nhanh đối với các ảnh mặt người chụp thẳng, chất lượng ảnh tốt (chụp bằng máy kĩ thuật số), tuy nhiên đối với các ảnh chụp nghiêng hay ảnh cĩ mầu sắc quá tối thì chương trình gần như khơng thể phát hiện được khuơn mặt trong bức ảnh đấy. Đối với webcam, thì hiệu xuất của chương trình cịn tùy theo chất lượng của loại webcam được sử dụng, tuy nhiên cũng tương tự như với phát hiện khuơn mặt trong ảnh, chương trình sẽ khơng thể phát hiện mặt người trong điều kiện độ sáng quá yếu và gĩc quay nghiêng quá 20o. 2. Hướng phát triển Cĩ nhiều hướng phát triển cho chương trình này, cĩ thể phát triển cả về mặt ứng dụng và mặt thuật tốn (để cải thiện hiệu quả phát hiện mặt người). Cĩ thể xây dựng một ứng dụng chỉ cần đến phát hiện mặt người mà khơng cần nhận dạng. Ví dụ như một hệ thống ghép hình, ghép khuơn mặt phát hiện được vào trong một bức ảnh khác (chẳng hạn như ghép khuơn mặt của người sử dụng cho khuơn mặt của người nổi tiếng). Ngồi ra cĩ thể phát triển chương trình theo hướng nhận dạng khuơn mặt, xây dựng một hệ thống để học các đặc trưng của những người cần nhận dạng. Khi thực hiện, đầu tiên ta đưa qua bức ảnh qua chương trình phát hiện mặt người để phát hiện nhanh các khuơn mặt cĩ trong ảnh, sau đấy so sách các khuơn mặt đĩ với các khuơn mặt mà chương 42  trình đã được “học” từ trước, so sánh các đặc trưng của hai khuơn mặt, nếu trùng thì đưa ra thơng tin về khuơn mặt được nhận dạng.  b  Tài liệu tham khảo. [1] A. Lanitis, C.J. Taylor, and T.F. Cootes, “An Automatic Face Identification System Using lexible Appearance Models”, Image and Vision Computing, vol. 13, no. 5, pp. 393-401, 1995. [2] Andrew King, “A Survey of Methods for Face Detection”, 2003 [3] A. Yuille, P. Hallinan, and D. Cohen, “Feature Extraction from Faces Using eformable Templates”, Int’l J. Computer Vision, vol. 8, no. 2, pp. 99-111, 1992. [4] D.G. Kendall, “Shape Manifolds, Procrustean Metrics, and Complex Projective Shapes”, Bull. London Math. Soc., vol. 16, pp. 81-121, 1984. [5] E. Osuna, R. Freund, and F. Girosi, “Training Support Vector Machines: An Application to Face Detection” Proc. IEEE Conf. Computer Vision and Pattern Recognition, pp. 130-136, 1997. [6] Fuzhen Huang and Jianbo Su, “Multiple Face Contour Detection Using adaptive Flows”, Sinobiometrics 2004, LNCS 3338, pp. 137-143, Springer-Verlag Berlin eidelberg, 2004. [7] G. Yang and T. S. Huang, “Human Face Detection in Complex Background”, Pattern Recognition, vol. 27, no. 1, pp. 53-63, 1994. [8] H.P. Graf, T. Chen, E. Petajan, and E. Cosatto, “Locating Faces and Facial Parts”, Proc. First Int’l Workshop Automatic Face and Gesture Recognition, pp. 41-46, 1995. [9] J. Canny, “A Computational Approach to Edge Detection”, IEEE Trans. Pattern Analysis and Machine Intelligence, vol. 8, no. 6, pp. 679-698, June 1986. [10] J. Sobottka and I. Pitas, “Segmentation and Tracking of Faces in Color Images”, Proc. Second Int’l Conf. Automatic Face and Gesture Recognition, pp. 236-241, 1996.  c  [11] K. Lam and H. Yan, “Fast Algorithm for Locating Head Boundaries,” J.Electronic Imaging, vol. 3, no. 4, pp. 351-359, 1994. [12] K.V. Mardia and I.L. Dryden, “Shape Distributions for Landmark Data”, Advanced Applied Probability, vol. 21, pp. 742-755, 1989. [13] Ming-Hsuan Yang, David Kriegman, and Narendra Ahuja, "Detecting Faces in Images: A Survey", IEEE Transactions on Pattern Analysis and Machine Intelligence (PAMI), vol. 24, no. 1, pp. 34-58, 2002. [14] M. Kirby and L. Sirovich, “Application of the Karhunen-LoeveProcedure for the Characterization of Human Faces”, IEEE Trans. Pattern Analysis and Machine Intelligence, vol. 12, no. 1, pp. 103-108, Jan. 1990 [15] P. Sinha, “Object Recognition via Image Invariants: A Case Study”, Investigative Ophthalmology and Visual Science, vol. 35, no. 4, pp. 1735-1740, 1994. [16] P. Sinha, “Processing and Recognizing 3D Forms,” PhD thesis, Massachusetts Inst. of Technology, 1995. [17] P. Viola and M. J. Jones, “Robust Real-Time Face Detection”, International Journal of Computer Vision 57(2), 137-154, Kluwer Academic Publishers, Netherlands, 2004. [18] T.F. Cootes and C.J. Taylor, “Locating Faces Using Statistical Feature Detectors”, Proc. Second Int’l Conf. Automatic Face and Gesture Recognition, pp. 204-209, 1996. [19] T.K. Leung, M.C. Burl, and P. Perona, “Finding Faces in Cluttered Scenes Using Random Labeled Graph Matching”, Proc. Fifth IEEE Int’l Conf. Computer Vision, pp. 637-644, 1995. [20] T. Sakai, M. Nagao, and S. Fujibayashi, “Line Extraction and Pattern etection in a Photograph”, Pattern Recognition, vol. 1, pp. 233-248, 1969. [21] Robin Hewitt, “Seeing with OpenCV: A Five-Part Series”, 2007

Các file đính kèm theo tài liệu này:

  • pdfLUẬN VĂN- PHÁT HIỆN MẶT NGƯỜI TRONG ẢNH VÀ ỨNG DỤNG.pdf