Đồ án Một hướng tiếp cận trong phát hiện khuân mặt trong ảnh - Nguyễn Anh Đức

pdf 54 trang huongle 2580
Bạn đang xem 20 trang mẫu của tài liệu "Đồ án Một hướng tiếp cận trong phát hiện khuân mặt trong ảnh - Nguyễn Anh Đức", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfdo_an_mot_huong_tiep_can_trong_phat_hien_khuan_mat_trong_anh.pdf

Nội dung text: Đồ án Một hướng tiếp cận trong phát hiện khuân mặt trong ảnh - Nguyễn Anh Đức

  1. MỤC LỤC TÓM TẮT 4 CHƢƠNG 1: TỔNG QUAN VỀ PHÁT HIỆN KHUÔN MẶT 5 1.1. Giới thiệu. 5 1.2. Tổng quan kiến trúc của một hệ thống nhận dạng mặt ngƣời 5 1.3. Một số lĩnh vực ứng dụng phát hiện khuôn mặt. 6 1.4. Các hƣớng tiếp cận liên quan đến phát hiện và nhận dạng khuôn mặt 7 1.4.1. Hƣớng tiếp cận dựa trên tri thức. 8 1.4.2. Hƣớng tiếp cận dựa trên các đặc trƣng bất biến 11 1.4.3. Hƣớng tiếp cận dựa trên so khớp mẫu. 13 1.4.4. Hƣớng tiếp cận dựa trên máy học (hay diện mạo). 16 1.5. Khó khăn và thách thức trong bài toán xác định khuôn mặt. 18 CHƢƠNG 2: MỘT SỐ PHƢƠNG PHÁP MÁY HỌC 20 2.1. Khái niệm máy học 20 2.1.1. Các loại giải thuật trong máy học 20 2.1.2. Các chủ đề về máy học 21 2.2. Một số phƣơng pháp máy học ứng dụng trong phát hiện khuôn mặt 22 2.2.1. Phƣơng pháp Mạng neuron 22 2.2.2. Phƣơng pháp SVM – support vector machine 23 2.2.3. Mô hình Makov ẩn 23 2.2.4. Mô hình Adaboost 24 CHƢƠNG 3: PHÁT HIỆN KHUÔN MẶT TRONG ẢNH DỰA VÀO MÀU DA 31 3.1. Tổng quan về các kỹ thuật nhận biết màu da dựa trên tính chất điểm ảnh 31 3.1.1. Giới thiệu 31 3.1.2. Không gian màu sử dụng cho mô hình hóa màu da 32 3.1.3. Mô hình hóa màu da 35 3.1.4. Mô hình hóa phân phố màu da có tham số 38 3.1.5. So sánh kết quả các mô hình 39 3.1.6. Đánh giá phƣơng pháp 41 3.1.7. Chọn lựa không gian màu và phƣơng pháp mô hình hóa dùng để nhận biết màu da cho đồ án. 41 3.2. Nhận biết phân vùng màu da 42 3.2.1. Lọc khởi tạo 42 3.2.2. Nhận biết màu da 43 3.3. Trích chọn đặc trƣng Haar - like 43 3.4. Huấn luyện dò tìm khuân mặt 46 3.5. Quá trình dò tìm khuân mặt 47 1
  2. 3.6. Hệ thống xác định vị trí khuôn mặt ngƣời 48 CHƢƠNG 4: CÀI ĐẶT ỨNG DỤNG 50 4.1. Môi trƣờng TEST 50 4.2. Một số giao diện chính 50 4.3. Nhận xét 52 KẾT LUẬN 53 TÀI LIỆU THAM KHẢO 54 2
  3. Lời cảm ơn Em xin chân thành gửi lời cảm ơn tới các thầy cô trƣờng Đại học Dân lập Hải Phòng trong những năm vừa rồi đã dạy dỗ vun đắp kiến thức để em có điều kiện hoàn thành đồ án tốt nghiệp này. Đặc biệt em xin cảm ơn thầy giáo Ngô Trƣờng Giang khoa Công nghệ thông tin trƣờng Đại học Dân lập Hải Phòng đã chỉ bảo tận tình giúp em hoàn thành đồ án tốt nghiệp. Cuối cùng em xin gửi lời biết ơn đến gia đình, bạn bè đã ủng hộ và giúp đỡ em trong suốt thời gian qua. Do trình độ bản thân có hạn nên không tránh khỏi những thiếu xót, mong thầy cô và các bạn góp ý giúp đỡ để em có thể hoàn thiện đồ án của mình. Em xin chân thành cảm ơn! Hải Phòng, ngày tháng 10 năm 2010 Sinh viên thực hiện Nguyễn Ạnh Đức 3
  4. TÓM TẮT Phát hiện khuôn mặt là một vấn đề cơ bản trong ngành học quan sát bằng máy tính. Là một trong những giai đoạn của hệ thống nhận dạng mặt ngƣời cùng với nhiều ứng dụng rộng rãi và phổ biến khác nhƣ chỉ số hóa nội dung trong ảnh, hệ thống giám sát, hội thảo truyền hình , phát hiện khuôn mặt đã và đang dành đƣợc sự quan tâm nghiên cứu của nhiều ngƣời trong suốt hai thập kỷ qua. Tuy nhiên, với những thách thức rất lớn gây ra do tính biến động của môi trƣờng cũng nhƣ tính biến đổi cao của khuôn mặt, phát hiện mặt ngƣời vẫn đang là một trong những vấn đề mở đối với các nhà nghiên cứu. Và cho đến nay vẫn chƣa có một phƣơng pháp nào thực sự giải quyết hết các thách thức của phát hiện khuôn mặt. Nhiều cải tiến, nhiều đề xuất đã đƣợc đƣa ra nhằm cải thiện chất lƣợng phát hiện khuôn mặt. Và một trong những cải tiến đó là dựa trên những đặc điểm bất biến hoặc có sự biến động có thể phân vùng đƣợc của khuôn mặt mà màu da của con ngƣời chính là một trong những đặc điểm đó. Xuất phát từ ý tƣởng kết hợp giữa màu da và một phƣơng pháp phát hiện khuôn mặt hiệu quả, đồ án đã tập trung xây dựng một hệ thống kết hợp giữa hệ thống phát hiện khuôn mặt dựa trên đặc trƣng Haar và bộ lọc AdaBoost và phƣơng pháp phân vùng màu da. Phƣơng pháp phân vùng màu da đƣợc kết hợp vào hệ thống nhƣ là một giới hạn cho phép giảm không gian tìm kiếm, tức là khuôn mặt sẽ chỉ đƣợc tìm kiếm trên các vùng màu da. Việc phân vùng này đã giúp cho thời gian phát hiện của hệ thống cải thiện đáng kể, hơn nữa nó còn giúp cho hệ thống hoạt động hiệu quả hơn. Đồ án với tên gọi là “Một hƣớng tiếp cận trong phát hiện khuân mặt trong ảnh” đƣợc bố cục làm bốn mục chính. Chƣơng 1 : Giới thiệu, bao gồm phần giới thiệu, phần tổng quan kiến trúc của một hệ thống nhận dạng mặt ngƣời, phần một số ứng dụng liên quan tới phát hiện khuôn mặt và phần các hƣớng tiếp cận liên quan tới phát hiện và nhận dạng khuôn mặt. Chƣơng 2 : Giới thiệu tổng quan về các phƣơng pháp máy học. Chƣơng 3 : Giới thiệu về các phƣơng pháp tìm kiếm màu da trong ảnh. Chƣơng 4 : Miêu tả kết quả việc kiểm thử chƣơng trình. Đồng thời sẽ có những đánh giá và nhận xét về kết quả của chƣơng trình. 4
  5. CHƢƠNG 1: TỔNG QUAN VỀ PHÁT HIỆN KHUÔN MẶT 1.1. Giới thiệu. Hơn một thập kỷ qua có rất nhiều công trình nghiên cứu về bài toán xác định khuôn mặt ngƣời từ ảnh đen trắng, xám đến ảnh màu nhƣ ngày hôm nay. Các nghiên cứu đi từ bài toán đơn giản, mỗi ảnh chỉ có một khuôn mặt ngƣời nhìn thẳng vào thiết bị thu hình và đầu ở tƣ thế thẳng đứng trong ảnh đen trắng. Cho đến ngày hôm nay bài toán mở rộng cho ảnh màu, có nhiều khuôn mặt trong cùng một ảnh, có nhiều tƣ thế thay đổi trong ảnh. Không những vậy mà còn mở rộng cả phạm vi từ môi trƣờng xung quanh khá đơn giản (trong phòng thí nghiệm) cho đến môi trƣờng xung quanh rất phức tạp (nhƣ trong tự nhiên) nhằm đáp ứng nhu cầu của thực tế. Xác định khuôn mặt ngƣời (Face Detection) là một kỹ thuật máy tính để xác định các vị trí và các kích thƣớc của các khuôn mặt ngƣời trong các ảnh bất kỳ (ảnh kỹ thuật số). 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ể, 1.2. Tổng quan kiến trúc của một hệ thống nhận dạng mặt ngƣời Một hệ thống nhận dạng mặt ngƣời thông thƣờng bao gồm bốn bƣớc xử lý sau: phát hiện khuôn mặt (face detection), phân đoạn khuôn mặt (face alignment hay segmentation), rút trích đặc trƣng (feature extraction), và phân lớp khuôn mặt (face classification). Hình 1-1: Các bƣớc chính trong một hệ thống nhận dạng mặt ngƣời Phát hiện khuôn mặt dò tìm và định vị những vị trí khuông mặt xuất hiện trong ảnh hoặc trên các frame video. Phân đoạn khuôn mặt sẽ xác định vị trí mắt mũi, miệng, và các thành phần khác của khuôn mặt và chuyển kết quả này 5
  6. cho bƣớc rút trích đặc trƣng. Từ những thông tin về các thành phần trên khuôn mặt, chúng ta có thể dễ dàng tính đƣợc véc-tơ đặc trƣng trong bƣớc rút trích đặc trƣng. Những véc-tơ đặc trƣng này sẽ là dữ liệu đầu vào cho một mô hình đã đƣợc huấn luyện trƣớc để phân loại khuôn mặt. Bên cạnh những bƣớc chính nêu trên, chúng ta còn có thể áp dụng thêm một số bƣớc khác nhƣ tiền xử lý, hậu xử lý nhằm làm tăng độ chính xác cho hệ thống. Do một số thông số nhƣ: tƣ thế khuôn mặt, độ sáng, điều kiện ánh sáng, v.v , phát hiện khuôn mặt đƣợc đánh giá là bƣớc khó khăn và quan trọng nhất so với các bƣớc còn lại của hệ thống. Trong luận văn này, em tập trung chủ yếu vào bƣớc phát hiện khuôn mặt. 1.3. Một số lĩnh vực ứng dụng phát hiện khuôn mặt. Bài toán nhận dạng mặt ngƣời có thể áp dụng rộng rãi trong nhiều ứng dụng thực tế khác nhau. Đó chính là lý do mà bài toán này hấp dẫn rất nhiều nhóm nghiên cứu trong thời gian dài. Các ứng dụng liên quan đến nhận dạng mặt ngƣời có thể kể nhƣ: - Hệ thống phát hiện tội phạm: camera đƣợc đặt tại một số điểm công cộng nhƣ: siêu thị, nhà sách, trạm xe buýt, sân bay,v.v Khi phát hiện đƣợc sự xuất hiện của các đối tƣợng là tội phạm, hệ thống sẽ gởi thông điệp về cho trung tâm xử lý. - Hệ thống theo dõi nhân sự trong một đơn vị: giám sát giờ ra vào của từng nhân viên và chấm công. - Hệ thống giao tiếp ngƣời máy: thay thế việc tƣơng tác giữa ngƣời và máy theo những cách truyền thống nhƣ: bàn phím, chuột,v.v Thay vào đó là sử dung các giao tiếp trực quan: biểu cảm khuôn mặt, dấu hiệu, cử chỉ bằng tay (visual input, visual interaction). - Hệ thống tìm kiếm thông tin trên ảnh, video dựa trên nội dung (chỉ mục theo ngƣời). Chẳng hạn nhƣ: đài truyền hình Việt Nam (VTV) có một kho dữ liệu video tin tức khá lớn cần tìm kiếm nhanh những đoạn video nào có G. Bush hoặc Bin Laden. - Các thệ thống bảo mật dựa trên thông tin trắc sinh học: mặt ngƣời, vân tay,v.v thay vì xác nhận mật khẩu, khóa,v.v 6
  7. 1.4. Các hƣớng tiếp cận liên quan đến phát hiện và nhận dạng khuôn mặt Có rất nhiều hƣớng tiếp cận trƣớc đây đã thực hiện liên quan đến vấn đề phát hiện mặt ngƣời. Theo Ming-Hsuan Yang, có thể phân loại thành bốn hƣớng tiếp cận chính: dựa trên tri thức (knowledge-based), đặc trƣng bất biến (feature invariant), đối sánh mẫu (template matching), và dựa vào diện mạo (appearance-based) phƣơng pháp này thƣờng dùng một mô hình máy học nên còn đƣợc gọi là phƣơng pháp dựa trên máy học (machine learning-based). Các phƣơng pháp dựa trên tri thức: Hƣớng tiếp cân này chủ yếu dựa trên những luật đƣợc định nghĩa trƣớc về khuôn mặt ngƣời. Những luật này thƣờng là các mối quan hệ giữa các thành phần trên khuôn mặt. Có một số nghiên cứu từ rất sớm đã áp dụng phƣơng pháp này nhƣ của Kanade 1973, G . Yang 1994, và Kotropoulos 1997. Hƣớng tiếp cận dựa trên các đặc trƣng bất biến: Hƣớng tiếp cận này cố gắng tìm kiếm những đặc trƣng độc lập - những đặc trƣng không phụ thuộc vào tƣ thế khuôn mặt, điều kiện chiếu sáng, và các khó khăn khác. Các đặc trƣng nhƣ thế đƣợc gọi là bất biến và đƣợc sử dụng để phát hiện khuôn mặt. Những công trình sử dụng hƣớng tiếp cận này có thể kể nhƣ:K. C. Yow và R. Cipolla 1997, T. K. Leung 1995. Phƣơng pháp đối sánh mẫu: Trong hƣớng tiếp cận này, một mẫu khuôn mặt chuẩn đƣợc định nghĩa bằng tay trƣớc hoặc đƣợc tham số hóa bằng một hàm số. 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. I. Craw 1992 đã áp dụng một mẫu cứng trong khi A. Lanitis 1995 sử dụng một mẫu có thể biến dạng trong bƣớc phát hiện khuôn mặt. Phƣơng pháp dựa trên máy học (hay diện mạo): Ngƣợc với phƣơng pháp đối sánh mẫu sử dụng các mẫu đƣợc các chuyên gia định nghĩa trƣớc, phƣơng pháp này sử dụng những mẫu đƣợc rút trích qua một quá trình học. Nói cách khác, các thuật toán dựa trên máy học dùng các kỹ thuật phân tích thống kê và máy học để xấp xĩ một hàm phân lớp tuyến tính. Có nhiều mô hình máy học đƣợc áp dụng trong hƣớng tiếp cận này: Eigenface (M. Turk và A. Pentland 1991 ), Mô hình dựa trên phân phối (K. K. Sung and T. Poggio 1998 ), Mạng Nơ-ron (H. Rowley 1998 ), Support Vector Machine (E. Osuna et al 1997 ), Phân lớp Bayes (H. Schneiderman và T. Kanade 1998), Mô hình 7
  8. Markov ẩn (A. Rajagopalan et al 1998), và các mô hình tăng cƣờng (AdaBoost của P. Viola và M. Jones 2001; FloatBoost do Stan Z. Li và Zhen Qiu Zhang 2004). 1.4.1. Hƣớng tiếp cận dựa trên tri thức. Trong hƣớng tiếp cận này, các luật sẽ phụ thuộc rất lớn vào tri thức của những tác giả nghiên cứu về bài toán xác định khuôn mặt ngƣời. Đây là hƣớng tiếp cận dạng top-down. 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 nhau 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ủa các đặc trƣng có thể đƣợc mô tả nhƣ quan hệ về khoảng cách và vị trí. Thông thƣờng các tác giả sẽ trích đặc trƣng của khuôn mặt trƣớc tiên để có đƣợc các ứng viên, sau đó các ứng viên này sẽ đƣợc xác định thông qua các luật để biết ứng viên nào là khuôn mặt và ứng viên nào không phải khuôn mặt. Một vấn đề khá phức tạp khi dùng hƣớng tiếp cận này là làm sao chuyển từ tri thức con ngƣời sang các luật một cách hiệu quả. Nếu các luật này quá chi tiết (chặt chẽ) thì khi xác định có thể xác định thiếu các khuôn mặt có trong ảnh, vì những khuôn mặt này không thể thỏa mãn tất cả các luật đƣa ra. Nhƣng các luật tổng quát quá thì có thể chúng ta sẽ xác định lầm một vùng nào đó không phải là khuôn mặt mà lại xác định là khuôn mặt. Và cũng khó khăn khi cần mở rộng yêu cầu của bài toán để xác định các khuôn mặt có nhiều tƣ thế khác nhau. Hình 1-2: (a) Ảnh ban đầu có độ phân giải n=1; (b), (c), và (d) Ảnh có độ phân giải n=4, 8, và 16. Yang và Huang dùng một phƣơng thức theo hƣớng tiếp cận này để xác các khuôn mặt. Hệ thống của hai tác giả này bao gồm ba mức luật. Ở mức cao nhất, dùng một khung cửa sổ quét trên ảnh và thông qua một tập luật để tìm các ứng viên có thể là khuôn mặt. Ở mức kế tiếp, hai ông dùng một tập luật để mô tả tổng quát hình dáng khuôn mặt. Còn ở mức cuối cùng lại dùng một tập luật 8
  9. khác để xem xét ở mức chi tiết các đặc trƣng khuôn mặt. Một hệ thống đa độ phân giải có thứ tự đƣợc dùng để xác định. Các luật ở mức cao nhất để tìm ứng viên nhƣ: “vùng trung tâm khuôn mặt có bốn phần với một mức độ đều cơ bản”, “phần xung quanh bên trên của một khuôn mặt có một mức độ đều cơ bản”, và “mức độ khác nhau giữa các giá trị xám trung bình của phần trung tâm và phần bao bên trên là đáng kể”. Độ phân giải thấp nhất của ảnh dùng để tìm ứng viên khuôn mặt mà còn tìm ở các mức phân giải tốt hơn. Ở mức hai, xem xét biểu đồ histogram của các ứng viên để loại bớt ứng viên nào không phải là khuôn mặt, đồng thời dò ra cạnh bao xung quanh ứng viên. Ở mức cuối cùng, những ứng viên nào còn lại sẽ đƣợc xem xét các đặc trƣng của khuôn mặt về mắt và miệng. Hai ông đã dùng một chiến lƣợc “từ thô đến mịn” hay “làm rõ dần” để giảm số lƣợng tính toán trong xử lý. 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. Một loại tri trức của ngƣời nghiên cứu phân tích trên khuôn mặt. Kotropoulos và Pitas đƣa một phƣơng pháp dùng trên độ phân giải thấp. Hai ông dùng phƣơng pháp chiếu để xác định các đặc trƣng khuôn mặt, Kanade đã thành công với phƣơng pháp chiếu để 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: n m HI (x) y 1 I(x, y) và VI (y) x 1 I(x, y) (1.1) 9
  10. Hình 1-3: 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 Dựa trên biểu đồ hình chiếu ngang, có hai cực tiểu địa phƣơng khi hai ông xét quá trình thay đổi độ đốc của HI, đó chính là cạnh bên trái và phải của hai bên đầu. Tƣơng tự với hình chiếu dọc VI, các cực tiểu địa phƣơng cũng cho ta biết vị trí 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 1-3.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 thẳng trong ảnh và hình nền không phức tạp. Nếu hình nền phức tạp thì rất khó tìm, hình 1-3.b. Nếu ảnh có nhiều khuôn mặt thì sẽ không xác định đƣợc, hình 1- 3.c. Hình 1-4: Chiếu từng phần ứng viên để xác định khuôn mặt. Mateos và Chicote dùng kết cấu để xác định ứng viên trong ảnh màu. Sau đó phân tích hình dáng, kích thƣớc, thành phần khuôn mặt để xác định khuôn mặt. Khi tìm đƣợc ứng viên khuôn mặt, hai ông trích các ứng viên của từng thành phần khuôn mặt, sau đó chiếu từng phần này để xác thực đó có phải là thành phần khuôn mặt hay không, hình 1-4. Tỷ lệ chính xác hơn 87%. Berbar kết hợp mô hình màu da ngƣời và xác định cạnh để tìm ứng viên khuôn mặt ngƣời. Sau đó kết hợp quan hệ các đặc trƣng và phƣơng pháp chiếu các ứng viên khuôn mặt xuống hai trục: dứng và ngang để xác định ứng viên nào thật sự là khuôn mặt ngƣời. 10
  11. 1.4.2. Hƣớng tiếp cận dựa trên các đặc trƣng bất biến Đây là hƣớng tiếp cận theo kiểu bottom-up. Các tác giả cố gắng tìm các đặc trƣng không thay đổi của khuôn mặt ngƣời để xác định khuôn mặt ngƣời. Dựa trên nhận xét thực tế, con ngƣời dễ dàng nhận biết các khuôn mặt và các đối tƣợng trong các tƣ thế khác nhau và điều kiện ánh sáng khác nhau, thì phải tồn tại các thuộc tính hay đặc trƣng không thay đổi. Có nhiều nghiên cứu đầu tiên xác định các đặc trƣng khuôn mặt rồi chỉ ra có khuôn mặt trong ảnh hay không. Các đặc trƣng nhƣ: lông mày, mắt, mũi, miệng, và đƣờng viền của tóc đƣợc trích bằng phƣơng pháp xác định cạnh. Trên cơ sở các đặc trƣng này, xây dựng một mô hình thống kê để mô tả quan hệ của các đặc trƣng này và xác định sự tồn tại của khuôn mặt trong ảnh. Một vấn đề của các thuật toán theo hƣớng tiếp cận đặc trƣng cần phải điều chỉnh cho phù hợp điều kiện ánh sáng, nhiễu, và bị che khuất. Đôi khi bóng của khuôn mặt sẽ tạo thêm cạnh mới, mà cạnh này lại rõ hơn cạnh thật sự của khuôn mặt, vì thế nếu dùng cạnh để xác định sẽ gặp khó khăn. 1.4.2.1. Các đặc trƣng khuôn mặt Sirohey đƣa một phƣơng pháp xác định khuôn mặt từ một ảnh có hình nền phức tạp. Phƣơng pháp dựa trên cạnh (dùng phƣơng pháp Candy 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. Một hình ellipse dùng để 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%. Cũng dùng phƣơng pháp cạnh nhƣ Sirohey, Chetverikov và Lerch dùng một phƣong pháp dựa trên blob và streak (hình dạng giọt nƣớc và sọc xen kẽ), để xác định theo hƣớng các cạnh. Hai ông dùng hai blob tối và ba blob sáng để mô tả hai mắt, hai bên gò má, và mũi. Mô hình này dùng các treak để mô tả hình dáng ngoài của khuôn mặt, lông mày, và môi. Dùng ảnh có độ phân giải thấp theo biến đổi laplace để xác định khuôn mặt thông qua blob. Graf đƣa ra một phƣơng pháp xác định đặc trƣng rồi xác định khuôn mặt trong ảnh xám. 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. Các thành phần dính nhau đều xuất hiện trong hai ảnh nhị phân thì đƣợc xem là vùng của ứng viên 11
  12. khuôn mặt rồi phân loại xem có phải là khuôn mặt không. Phƣơng pháp đƣợc kiểm tra trên các ảnh chỉ có đầu và vai của ngƣời. Tuy nhiên còn có một vấn đề ở đây là làm sao để sử dụng các phép toán morphology và làm sao xác định khuôn mặt trên các vùng ứng viên. 1.4.2.2. Đặc trƣng kết cấu 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. Augusteijn và Skufca cho rằng hình dạng của khuôn mặt dùng làm kết cấu phân loại, gọi là kết cấu giống khuôn mặt (face-like texture). Có ba loại đặc trƣng đƣợc xem xét: màu da, tóc, và những thứ khác. Hai ông dùng mạng nơ-ron về mối tƣơng quan cascade cho phân loại có giám sát các kết cấu và một ánh xạ đặc trƣng tự tổ chức Kohonen để gom nhóm các lớp kết cấu khác nhau. Hai tác giả đề xuất dùng phƣơng pháp bầu cử khi không quyết định đƣợc kết cấu đƣa vào là kết cấu của da hay kết cấu của tóc. Dai và Nakano dùng mô hình SGLD để xác định khuôn mặt ngƣời. Thông tin màu sắc đƣợc kết hợp với mô hình kết cấu khuôn mặt. Hai tác giả xây dựng thuật giải xác định khuôn mặt trong không gian màu, với các phần tựa màu cam để xác định các vùng có thể là khuôn mặt ngƣời. Một thuận lợi của phƣơng pháp này là có thể xác định khuôn mặt không chỉ chụp thẳng và có thể có râu và có kính. Mark và Andrew dùng phân bố màu da và thuật toán DoG (Difference of Gauss) để tìm các ứng viên, rồi xác thực bằng một hệ thống học kết cấu của khuôn mặt. Manian và Ross dùng biến đổi wavelet để xây dựng tập dữ liệu kết cấu của khuôn mặt trong ảnh xám thông qua nhiều độ phân giải khác nhau kết hợp xác suất thông kê để xác định khuôn mặt ngƣời. Mỗi mẫu sẽ có chín đặc trƣng. Tỷ lệ chính xác là 87%, tỷ lệ xác định sai là 18%. 1.4.2.3. Đặc trƣng sắc màu của 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. 12
  13. 1.4.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 (tổng quát) 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 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. Yachida đƣa ra một phƣơng pháp xác định khuôn mặt ngƣời trong ảnh màu bằng lý thuyết logic mờ. Ông dùng hai mô hình mờ để mô tả phân bố màu da ngƣời và màu tóc trong không gian màu CIE XYZ. Năm mô hình hình dạng của đầu (một thẳng và bốn xoay xung quanh) để mô tả hình dáng của mặt trong ảnh. Mỗi mô hình hình dạng là một mẫu 2-chiều bao gồm các ô vuông có kích thƣớc mxn, mỗi ô có thể chứa nhiều hơn một điểm ảnh. Hai thuộc tính đƣợc gán cho mỗi ô là: tỷ lệ màu da và tỷ lệ tóc, chỉ ra tỷ lệ diện tích vùng da (tóc) trong ô so với diện tích của ô. Mỗi điểm ảnh sẽ đƣợc phân loại thành tóc, khuôn mặt, tóc/khuôn mặt, và tóc/nền trên cơ sở phân bố của mô hình, theo cách đó sẽ có đƣợc các vùng giống khuôn mặt và giống tóc. Mô hình hình dáng của đầu sẽ đƣợc so sánh với vùng giống khuôn mặt và giống tóc. Nếu tƣơng tự, vùng đang xét sẽ trở thành ứng viên khuôn mặt, sau đó dùng các đặc trƣng mắt- lông mày và mũi-miệng để xác định ứng viên nào sẽ là khuôn mặt thật sự. Sobottka và Pitas dùng các đặc trƣng về hình dáng và màu sắc để xác định khuôn mặt ngƣời. Dùng một ngƣỡng để phân đoạn trong không gian màu HSV để xác định các vùng có thể là màu da ngƣời (vùng giống màu da ngƣời). Các thành phần dính nhau sẽ đƣợc xác định bằng thuật toán tăng vùng ở độ phân giải thô. Xem xét tiền ứng viên nào vừa khớp hình dạng ellipse sẽ đƣợc chọn làm ứng viên của khuôn mặt. Sau đó dùng các đặc trƣng bên trong nhƣ: mắt và miệng, đƣợc trích ra trên cơ sở các vùng mắt và miệng sẽ tối hơn các vùng khác của khuôn mặt, sau cùng phân loại dựa trên mạng nơ-ron để biết vùng ứng viên nào là khuôn mặt ngƣời và vùng nào không phải khuôn mặt ngƣời. Tỷ lệ chính xác là 85%. 1.4.3. Hƣớng tiếp cận dựa trên so khớp mẫu. Trong so 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 xác định các tham số thông qua một hàm. Từ một ảnh đƣa vào, 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ị 13
  14. tƣơng quan này mà các tác giả 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 (đã đƣợc chứng minh). Nhiều độ phân giải, đa tỷ lệ, các mẫu con, và các mẫu biến dạng đƣợc xem xét thành bát biến về tỷ lệ và hình dáng. 1.4.3.1. Phƣơng pháp đối sánh mẫu Sakai đã cố gắng thử xác định khuôn mặt ngƣời chụp thẳng trong ảnh. Ông dùng vài mẫu con 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 đƣờng thẳng trong ảnh đƣợc trích bằng phƣơng pháp xem xét thay đổi gradient nhiều nhất 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 đoạn thứ hai là giai đoạn tinh chế để xác định có tồn tại hay không một khuôn mặt ngƣời. Ý 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 để 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. Sinha dùng một tập nhỏ các bất biến ảnh trong không gian ảnh để mô tả không gian các mẫu ảnh. 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ể. 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ả. Các vùng có độ sáng đều đƣợc xem nhƣ một mẫu tỷ số mà là mẫu thô trong không gian ảnh của một khuôn mặt với độ thích hợp ít dùng để chọn nhƣ các đặc trƣng chính của khuôn mặt nhƣ hai mắt, hai má, và trán. Lƣu giữ 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 14
  15. vùng nhỏ. Một khuôn mặt đƣợc xác định khi một ảnh thỏa 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ộ, sau này đƣợc mở rộng trên cơ sở biến đổi wavelet để biểu diễn cho 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 cho hệ thống thị giác của robot. Hình 1-5 cho thấy mẫu nổi bật trong 23 quan hệ đƣợc định nghĩa. Dùng các quan hệ này để 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 xám). Mỗi mũi tên là một quan hệ. Một quan hệ 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à 23 quan hệ này vƣợt ngƣỡng thì xem nhƣ xác định đƣợc một khuôn mặt. Phƣơng pháp so khớp mẫu theo thứ tự để xác định khuôn mặt ngƣời do Miao trình bày. Ở giai đoạn đầu tiên, ảnh sẽ đƣợc xoay từ -20o đến 20o với mỗi bƣớc là 5o và theo thứ tự. Xây dựng ảnh đa độ phân giải, hình 1-1, rồi dùng phép toán Laplace để xác định các cạnh. Một mẫu khuôn mặt gồm các cạnh mô tả sáu thành phần: hai lông mày, hai mắt, một mũi, và một miệng. Sau đó áp dụng heuristic để xác định sự tồn tại của khuôn mặt trong ảnh, phƣơng pháp này cho phép xác nhiều khuôn mặt, nhƣng kết quả không tốt bằng xác định một khuôn mặt (chụp thẳng hoặc xoay) trong ảnh xám. Hình 1-5: mẫu khuôn mặt, có 16 vùng và 23 quan hệ (các mũi tên). Wei và Lai dùng bộ lọc để phân đoạn kết hợp thuật toán tìm láng giềng gần nhất xác định ứng viên khuôn mặt, từ ứng viên này sau đó so khớp với các mẫu đã xác định trƣớc để biết ứng viên có phải là khuôn mặt hay không. Tỷ lệ chính xác là 80%. Darrell dùng phân đoạn đề tìm ứng viên, dùng ứng viên này để xác định khuôn mặt ngƣời dựa vào mẫu rồi theo vết chuyển động của ngƣời. 15
  16. Dowdall dùng phổ của màu da ngƣời để xác định ứng viên. Sau đó chiếu các ứng viên này để so sanh với các mẫu có trƣớc để xác định ứng viên nào là khuôn mặt ngƣời. Phƣơng pháp này chỉ xác định cho khuôn mặt chụp thẳng và gần thẳng, góc quay khoảng từ -10o đến 10o . 1.4.3.2. Các mẫu bị 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, mô hình này có khả năng linh hoạt cho các đặc trƣng khuôn mặt. 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. Một hàm năng lƣợng (giá trị) đƣợc định nghĩa để 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ù kết quả tốt với mẫu biến dạng trong theo vết đối tƣợng trên đặc trƣng không mô hình theo lƣới, một hạn chế của hƣớng tiếp cận này là các mẫu biến dạng phải đƣợc khởi tạo trong phạm vi gần các đối tƣợng để xác định. 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 độ. Bắt đầu với 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. Dùng một vector các điểm mẫu để mô tả hình dáng. Tác giả 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ể. 1.4.4. Hƣớng tiếp cận dựa trên máy học (hay diện mạo). Trái ngƣợc với các phƣong pháp so khớp mẫu với các mẫu đã đƣợc định nghĩa trƣớc bởi những chuyên gia, các mẫu trong hƣớng tiếp cận này đƣợc học từ các ảnh mẫu. Một các tổng quát, các phƣơng pháp theo hƣớng tiếp cận này áp dụng các kỹ thuật theo hƣớng xác suất thống kê và máy học để 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 hàm biệt số nên dùng 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. Có nhiều phƣơng pháp áp dụng xác suất thống kê để giả quyết. Một ảnh hay một vector đặc trƣng xuất phát từ một ảnh đƣợc xem nhƣ một biến ngẫu nhiên x, và biến ngẫu nhiên có đặc tính là khuôn mặt hay không phải khuôn mặt bởi công thức tính theo các hàm mật độ phân lớp theo điều kiện p(x | khuôn mặt) và p(x | không phải khuôn mặt) . Có thể dùng phân loại Bayes 16
  17. hoặc khả năng cực đại để phân loại một ứng viên là khuôn mặt hay không phải là khuôn mặt. Không thể cài đặt trực tiếp phân loại Bayes bởi vì số chiều của x khá cao, bởi vì p(x | khuôn mặt) và p(x | không phải khuôn mặt) là đa thức, và chƣa thể hiểu nếu xây dựng các dạng tham số hóa một cách tự nhiên cho p(x | khuôn mặt) và p(x | không phải khuôn mặt) . Có khá nhiều nghiên cứu theo hƣớng tiếp cận này quan tâm xấp xỉ có tham số hay không có tham số cho p(x | khuôn mặt) và p(x | không phải khuôn 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ố (nhƣ: mặt phẳng quyết định, siêu phẳng để tách dữ liệu, hàm ngƣỡng) để phân biệt hai lớp dữ liệu: khuôn mặt và không phải khuôn mặt. Bình thƣờng, các mẫu ảnh đƣợc chiếu vào không gian có số chiều thấp 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 quyết định phi tuyến bằng mạng nơ-ron đa tầng. Hoặc dùng SVM (Support Vector Machine) và các phƣơng thức kernel, chiếu hoàn toàn 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à ta có thể dùng một mặt phẳng quyết định phân loại các mẫu khuôn mặt và không phải khuôn mặt. 1.4.4.1. Eigenface. Kohonen đã đƣa ra phƣơng pháp dùng vector riêng để nhận dạng khuôn mặt, ông dùng một mạng nơ-ron đơn giản để chứng tỏ khả năng của phƣơng pháp này trên các ảnh đã đƣợc chuẩn hóa. Mạng nơ-ron tính một mô tả của khuôn mặt bằng cách xấp xỉ các vector riêng của ma trận tƣơng quan của ảnh. Các vector riêng sau này đƣợc biết đến với cái tên Eigenface. Kirby và Sirovich chứng tỏ các ảnh có các khuôn mặt có thể đƣợc mã hóa tuyến tính bằng một số lƣợng vừa phải các ảnh cơ sở. Tính chất này dựa trên biến đổi Karhunen- Lòeve, mà còn đƣợc gọi dƣới một cái tên khác là PCA và biến đổi Hotelling. Ý tƣởng này đƣợc xem là của Pearson trình bày đầu tiên vào năm 1901 và sau đó là Hotelling vào năm 1933. Cho một tập các ảnh huấn luyện có kích thƣớc n x m đƣợc mô tả bởi các vector có kích thƣớc m x m, các vector cở sở cho một không gian con tối ƣu đƣợc xác định thông qua lỗi bình phƣơng trung bình khi chiếu các ảnh huấn luyện vào không gian con này. Các tác giả gọi tập các vector cơ sở tối ƣu này là ảnh riêng sau đó gọi cho đơn giản là vector riêng của ma trận hiệp phƣơng sai đƣợc tính từ các ảnh khuôn mặt đã vector hóa trong tập huấn luyện. Nếu cho 100 ảnh, mà mỗi khuôn mặt có kích thƣớc 91x50 thì có thể chỉ dùng 50 ảnh riêng, trong khi vẫn duy trì đƣợc một khả năng giống nhau hợp lý (giữ đƣợc 95% tính chất). 17
  18. Turk và Pentland áp dụng PCA để xác định và nhận dạng khuôn mặt. Tƣơng tự, dùng PCA trên tập huấn luyện ảnh các khuôn mặt để sinh các ảnh riêng (còn gọi là eigenface) để tìm một không gian con (không gian khuôn mặt) trong không gian ảnh. Các ảnh khuôn mặt đƣợc chiếu vào không gian con này và đƣợc gom nhóm lại. Tƣơng tự các ảnh không có khuôn mặt dùng để huấn luyện cũng đƣợc chiếu vào cùng không gian con và gom nhóm lại. Các ảnh khi chiếu vào không gian khuôn mặt thì không bị thay đổi tính chất cơ bản, trong khi chiếu các ảnh không có khuôn mặt thì xuất hiện sự khác nhau cũng không ít. Xác định sự có mặt của một khuôn mặt trong ảnh thông qua tất cả khoảng cách giữa các vị trí trong ảnh và không gian ảnh. Khoảng cách này dùng để xem xét có hay không có khuôn mặt ngƣời, kết quả khi tính toán các khoảng cách sẽ cho ta một bản đồ về khuôn mặt. Có thể xác định đƣợc từ cực tiểu địa phƣơng của bản đồ này. Có nhiều nghiên cứu về xác định khuôn mặt, nhận dạng, và trích đặc trƣng từ ý tƣởng vector riêng, phân rã, và gom nhóm. Sau đó Kim phát triển cho ảnh màu, bằng cách phân đoạn ảnh để tìm ứng để không gian tìm kiếm bớt đi. 1.5. Khó khăn và thách thức trong bài toán xác định khuôn mặt. Việc xác định khuôn mặt ngƣời có những khó khăn nhất định: Hƣớng (pose) 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 (facial expression) 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. Điều kiện ảnh, đặc biệt là về độ sáng và chất lƣợng ảnh, chất lƣợng thiết bị thu hình. Trục toạ độ của máy ảnh so với ảnh. Kích thƣớc khác nhau của các khuôn mặt ngƣời, và đặc biệt là trong cùng một ảnh. 18
  19. Nhiều khuôn mặt có vùng da dính lẫn nhau. Các khó khăn trên chứng tỏ rằng bất cứ phƣơng pháp giải quyết (thuật toán) bài toán xác định khuôn mặt ngƣời nào cũng sẽ không thể tránh khỏi một số khiếm khuyết nhất định. Để đánh giá và so sánh các phƣơng pháp xác định mặt ngƣời, ngƣời ta thƣờng dựa trên các tiêu chí sau: Tỷ lệ xác định chính xác là tỷ lệ số lƣợng các khuôn mặt ngƣời đƣợc xác định đúng từ hệ thống khi sử dụng một phƣơng pháp để xây dựng so với số lƣợng khuôn mặt ngƣời thật sự có trong các ảnh (detection rate). Số lƣợng xác định nhầm là số lƣợng vùng trong ảnh không phải là khuôn mặt ngƣời mà hệ thống xác định nhầm là khuôn mặt ngƣời (false positives). Thời gian thực hiện là thời gian để máy tính xác định khuôn mặt ngƣời trong ảnh (running time). 19
  20. CHƢƠNG 2: MỘT SỐ PHƢƠNG PHÁP MÁY HỌC 2.1. Khái niệm máy học Học máy, có tài liệu gọi là Máy học, (tiếng Anh: machine learning) là một lĩnh vực của trí tuệ nhân tạo liên quan đến việc phát triển các kĩ thuật cho phép các máy tính có thể "học". Cụ thể hơn, máy học là một phƣơng pháp để tạo ra các chƣơng trình máy tính bằng việc phân tích các tập dữ liệu. Máy học có liên quan lớn đến thống kê, vì cả hai lĩnh vực đều nghiên cứu việc phân tích dữ liệu, nhƣng khác với thống kê, máy học tập trung vào sự phức tạp của các giải thuật trong việc thực thi tính toán. Nhiều bài toán suy luận đƣợc xếp vào loại bài toán NP-khó, vì thế một phần của máy học là nghiên cứu sự phát triển các giải thuật suy luận xấp xỉ mà có thể xử lí đƣợc. Máy học có tính ứng dụng rất cao bao gồm máy truy tìm dữ liệu, chẩn đoán y khoa, phát hiện thẻ tín dụng giả, phân tích thị trƣờng chứng khoán, phân loại các chuỗi DNA, nhận dạng tiếng nói và chữ viết, dịch tự động, chơi trò chơi và cử động rô-bốt (robot locomotion). Một số hệ thống máy học nỗ lực loại bỏ nhu cầu trực giác của con ngƣời trong việc phân tích dữ liệu, trong khi các hệ thống khác hƣớng đến việc tăng sự cộng tác giữa ngƣời và máy. Không thể loại bỏ hoàn toàn tác động của con ngƣời vì các nhà thiết kế hệ thống phải chỉ định cách biểu diễn của dữ liệu và những cơ chế nào sẽ đƣợc dùng để tìm kiếm các đặc tính của dữ liệu. Máy học có thể đƣợc xem là một nỗ lực để tự động hóa một số phần của phƣơng pháp khoa học. Một số nhà nghiên cứu máy học tạo ra các phƣơng pháp bên trong các khuôn khổ của thống kê Bayes. 2.1.1. Các loại giải thuật trong máy học Các thuật toán máy học đƣợc phân loại theo kết quả mong muốn của thuật toán. Các loại thuật toán thƣờng dùng bao gồm: Học có giám sát trong đó, thuật toán tạo ra một hàm ánh xạ dữ liệu vào tới kết quả mong muốn. Một phát biểu chuẩn về một việc học có giám sát là bài toán phân loại: chƣơng trình cần học (cách xấp xỉ biểu hiện của) một hàm ánh xạ một vector tới một vài lớp bằng cách xem xét một số mẫu dữ_liệu - kết_quả của hàm đó. 20
  21. Học không giám sát mô hình hóa một tập dữ liệu, không có sẵn các ví dụ đã đƣợc gắn nhãn. Học nửa giám sát kết hợp các ví dụ có gắn nhãn và không gắn nhãn để sinh một hàm hoặc một bộ phân loại thích hợp. Học tăng cƣờng trong đó, thuật toán học một chính sách hành động tùy theo các quan sát về thế giới. Mỗi hành động đều có tác động tới môi trƣờng, và môi trƣờng cung cấp thông tin phản hồi để hƣớng dẫn cho thuật toán của quá trình học. Chuyển đổi tƣơng tự học có giám sát nhƣng không xây dựng hàm một cách rõ ràng. Thay vì thế, cố gắng đoán kết quả mới dựa vào các dữ liệu huấn luyện, kết quả huấn luyện, và dữ liệu thử nghiệm có sẵn trong quá trình huấn luyện. Học cách học trong đó thuật toán học thiên kiến quy nạp của chính mình, dựa theo các kinh nghiệm đã gặp. Phân tích hiệu quả các thuật toán máy học là một nhánh của ngành thống kê, đƣợc biết với tên lý thuyết học điện toán. 2.1.2. Các chủ đề về máy học Mô hình hóa các hàm mật độ xác suất điều kiện: hồi quy và phân loại Mạng nơ-ron Cây quyết định Lập trình biểu thức gen Lập trình di truyền Hồi quy quá trình Gauss Phân tích biệt thức tuyến tính k láng giềng gần nhất Độ dài thông điệp tối thiểu Cảm tri nguyên Hàm cơ sở xuyên tâm Máy hỗ trợ vector 21
  22. Mô hình hóa các hàm mật độ xác suất qua các mô hình phát sinh: Thuật toán cực đại kì vọng Các mô hình đồ họa gồm mạng Bayes và mạng Markov Ánh xạ topo phát sinh Các kỹ thuật suy luận xấp xỉ đúng: Chuỗi Markov phƣơng pháp Monte Carlo Phƣơng pháp biến thiên Tối ƣu hóa: hầu hết các phƣơng pháp trên đều sử dụng tối ƣu hóa hoặc là các thể hiện của các thuật toán tối ƣu hóa. 2.2. Một số phƣơng pháp máy học ứng dụng trong phát hiện khuôn mặt 2.2.1. Phƣơng pháp Mạng neuron Mô phỏng hoạt động của các nơ ron thần kinh, mạng nơ ron nhân tạo là hệ thống bao gồm nhiều phần tử xử lý đơn giản (neuron) hoạt động song song. Tính năng của hệ thống này tuỳ thuộc vào cấu trúc của hệ, các trọng số liên kết nơ ron và quá trình tính toán tại các nơ ron đơn lẻ. Mạng nơ ron có thể từ dữ liệu mẫu và tổng quát hoá dựa trên các dữ liệu mẫu học. Hình 2-1: Mô hình mạng Neuron Một nhóm các nơ ron đƣợc tổ chức theo một cách sao cho tất cả chúng đều nhận cùng một vector vào X để xử lý tại cùng một thời điểm. Việc sản sinh ra tín hiệu ra của mạng xuất hiện cùng một lúc. Vì mỗi nơ ron có một tập trọng số khác nhau nên có bao nhiêu nơ ron sẽ sản sinh ra bấy nhiêu tín hiệu ra khác nhau. Một nhóm các nơ ron nhƣ vậy đƣợc gọi là một lớp mạng. Chúng ta có thể kết hợp nhiều lớp mạng tạo ra một mạng có nhiều lớp, lớp nhận tín hiệu đầu vào (vector tín hiệu vào x) đƣợc gọi là lớp vào (input layer). Trên thực tế chúng 22
  23. thực hiện nhƣ một bộ đệm chứa tín hiệu đầu vào. Các tín hiệu đầu ra của mạng đƣợc sản sinh ra từ lớp ra của mạng (output layer). Bất kỳ lớp nào nằm giữa 2 lớp mạng trên đƣợc goi là lớp ẩn (hidden layer) và nó là thành phần nội tại của mạng và không có tiếp xúc nào với môi trƣờng bên ngoài. Số lƣợng lớp ẩn có thể từ 0 đến vài lớp. Mô hình nơ ron nhân tạo đòi hỏi 3 thành phần cơ bản sau: - Tập trọng số liên kết đặc trƣng cho các khớp thần kinh. - Bộ cộng (Sum) để thực hiện phép tính tổng các tích tín hiệu vào với trọng số liên kết tƣơng ứng - Hàm kích hoạt (squashing function) hay hàm chuyển (transfer function) thực hiện giới hạn đầu vào của neuron. Trong mô hình nơ ron nhân tạo mỗi nơ ron đƣợc nối với các nơ ron khác và nhận đƣợc tín hiệu xi từ chúng với các trọng số wi. Tổng thông tin vào có trọng số là: Net = wjxj 2.2.2. Phƣơng pháp SVM – support vector machine SVM là phƣơng pháp do Vladimir N. Vapnik đề xuất năm 1995. SVM dựa trên lý thuyết thống kê và ngày càng đƣợc sử dụng phổ biến trong nhiều lĩnh vực, đặc biệt là trong lĩnh vực phân loại mẫu và nhận dạng mẫu. Đồng thời phƣơng pháp này có nhiều tính năng ƣu việt so với các phƣơng pháp cổ điển khác nhƣ dễ dàng xử lý, xử lý có tính ổn định cao trên dữ liệu phức tạp, có thể có số chiều lớn và quan trọng hơn cả là khả năng xử lý tổng quát. 2.2.3. Mô hình Makov ẩn Phƣong pháp tìm kiếm khuôn mặt dựa trên mô hình Markov ẩn cũng là một trong các hƣớng nghiên cứu đƣợc chú trọng. Mô hình Markov ẩn là một tập các mô hình thống kê đƣợc sử dụng để mô tả các đặc tính thống kê của tín hiệu. Lý thuyết về chuỗi Markov và mô hình Markov đã đƣợc nghiên cứu sâu rộng và áp dụng nhiều trong lý thuyết nhận dạng nhƣ nhận dạng tiếng nói, chữ viết. Samarie và cộng sự, Netfian và cộng dự là hai nhóm nghiên cứu hàng đầu trong việc áp dụng mô hình Markov ẩn vào tìm kiếm và nhận dạng mặt ngƣời. 23
  24. 2.2.4. Mô hình Adaboost 2.2.4.1. Hƣớng tiếp cận theo AdaBoost Phƣơng pháp dò tìm AdaBoost dựa trên ý tƣởng xây dựng các bộ dò tìm yếu mặc dù độ chính xác không cao nhƣng có thời gian xử lý rất nhanh. Tuy nhiên khi kết hợp các bộ dò tìm lại có thể đạt độ chính xác cao. Phƣơng pháp AdaBoost sử dụng kết hợp các đặc trƣng vốn dĩ tính toán rất nhanh, thích hợp cho việc dò tìm trong thời gian thực. Các bộ phân loại AdaBoost có thể xây dựng phân tầng với độ phức tạp xử lý từ thấp đến cao, nhằm loại nhanh các ứng viên xấu (không phải mặt ngƣời) vốn dĩ nhiều hơn nhiều các ứng viên là mặt nguời để cho bộ phân loại phức tạp hơn (chỉ còn lại ít ứng viên chƣa bị loại). 2.2.4.2. Thuật toán ADABOOST Xét bài toán hai lớp, mẫu huấn luyện bao gồm M bộ (xi,yi) đã đƣợc gán nhãn, với i {1,2, ,M} trong đó yi {+1,-1} là nhãn và xi Rn là các mẫu huấn luyện. Trong AdaBoost, một bộ phân loại mạnh hơn đƣợc xây dựng dựa trên sự kết hợp tuyến tính giữa M bộ phân loại yếu hơn: M H M (x) hm (x) m 1 (2.1) Các bộ phân loại yếu hơn có thể mang các giá trị thực, hm(x) R. Phân loại của x đƣợc quyết định bằng hàm H(x) = sign[HM(x)], trong đó độ lớn |HM(x)| cho ta độ tin cậy. Mỗi mẫu đƣợc kết hợp với một trọng số. Trong quá trình học, các trọng số sẽ đƣợc cập nhật động nhấn mạnh các phân loại mạnh trƣớc đó bị phân loại sai. Tuy nhiên, quá trình cập nhật trọng số chỉ cần thiết đối với thuật toán AdaBoost trƣớc đây. Đối với các thuật toán AdaBoost cải tiến gần đây, quá trình này có thể đƣợc thay thế bằng một hàm tối ƣu hóa. Lỗi xảy ra khi H (x) ≠ y hay yHM(x) < 0. Lề của mẫu (x, y) qua hàm h(x) R trên tập các mẫu huấn luyện đƣợc định nghĩa là yh(x). Lề có thể đƣợc xem là số đo độ tin cậy của giá trị đoán trƣớc của h. Lỗi phân lớp của HM có biên trên là: yi H M (xi ) J(H M ) e (2.2) Thuật toán AdaBoost xây dựng hàm h(x) bằng cách giảm tối đa (2.2). 24
  25. Cho M 1 H M 1 (x) hm (x) m 1 (2.3) HM(x) tốt nhất cho phân loại mạnh HM(x) = HM - 1(x) + hm(x) Là hàm dẫn tới giá trị nhỏ nhất: Hm = arg min J(H (x) h (x)) (2.4) và hàm có giá trị nhỏ nhất đƣợc chứng minh là: 1 P(y 1| x, (M 1) ) h (x) log M 2 (M 1) P(y 1| x, ) (2.5) với ω(M-1) là trọng lƣợng tại thời điểm M. Dùng công thức P(y| x,ω) = P(x| y,ω) P(y) và cho 1 P(x| y 1, ) LM (x) log 2 P(x| y 1, ) (2.6) 1 P(y 1) T log 2 P(y 1) (2.7) Chúng ta có đƣợc hM (x) = LM(x) – T. LM đƣợc học ra từ các mẫu của cả hai phân lớp. Ngƣỡng T đƣợc xác định bằng tỉ lệ log của các xác suất trƣớc đó. Ta có một phƣơng pháp để tính phƣơng trình (2.7), ứng dụng khi học các bộ phân lớp tối ƣu. Vì rút ra một bộ phân loại yếu trong một miền không gian nhiều chiều là công việc quan trọng, xin đƣợc đƣa ra sau đây một mô hình thống kê học theo từng giai đoạn dựa trên vài đặc điểm vô hƣớng. Một đặc điểm vô hƣớng j của x đƣợc tính bằng một phép biến đổi từ không gian dữ liệu n chiều thành đƣờng thẳng thực zj(x) Z. Một đặc điểm có thể là hệ số, hay nói trong xử lý ảnh là phép biến đổi vi ba tín hiệu. Nếu phƣơng pháp tìm kiếm ƣớc lƣợng đƣợc sử dụng nhƣ phép biến đổi zj(x) đơn giản đƣợc xem là toạ độ thứ j của x. Một danh sách K đặc điểm ứng cử viên có thể đƣợc tạo Z ={ zj(x), , zK(x)}. Trong phần sau, chúng ta sử dụng z(m) để biểu diễn cho đặc điểm đƣợc chọn trong giai đoạn m, và zk(x) là đặc điểm đƣợc tính toán từ x sử dụng phép biến đổi thứ k. 25
  26. Giả sử Z là một tập rất hoàn chỉnh, tập các phân lớp yếu có thể có cho bài toán phân lớp yếu tối ƣu có thể đƣợc lập nhƣ sau: Trƣớc tiên, tại giai đoạn M, khi M-1 đặc điểm của z(1), z(2), , z(M-1) đã đƣợc chọn và trọng lƣợng số cho là ωM-1, chúng ta xấp xỉ p(x|y, ωM-1)) bằng cách dùng phân bố của M đặc điểm: M-1 M-1 p(x|y, ω ) ≈ p(z(1), z(2), , z(M-1), zk, |y, ω ) (2.8) = p(z(1)|y, ωM-1) p(z(2) |y, z(1), ωM-1) M-1 p(z(M-1)|y, z(1), z(2), , z(M-2), ω ) M-1 p(zk, |y, z(1), z(2), , z(M-1), ω ) (2.9) Bởi vì Z là tập rất hoàn chỉnh, phép xấp xỉ vẫn tốt đối với tập M đủ lớn khi M đặc điểm đƣợc chọn thích hợp. (m-1) (m) Ghi chú: p(zm|y, z(1), z(2), , z(m-1)) thực ra là p(zm|y, ω ) bởi vì ω chứa thông tin về toàn bộ quá trình tạo ω và bao gồm các thành phần lệ thuộc trên z(1), z(2), , z(m-1). Vì vậy, chúng ra có: M-1 (0) (2) (1) p(x|y, ω ) ≈ p(z(1)| y, ω ) p(z | y, ω ) (M-2) (M-1) p(z(M-1)| y, ω ) p(zk| y, ω ) (2.10) (M-1) Mật độ xác suất p(zk| y, ω ) cho phân lớp dƣơng y = +1 và phân lớp âm y = -1 có thể phỏng đoán đƣợc từ histogram tính đƣợc qua đánh giá công nhận trọng số của các ví dụ huấn luyện sử dụng các trọng số ω(M-1). Cho : P(z | y 1, (M 1) ) (M ) k (M ) 1 (M ) Lk (x) h (x) L (x) T P(z | y 1, (M 1) ) k k k và 2 (2.11) chúng ta rút ra đƣợc tập hợp các phân lớp yếu hơn nhƣ sau: (M ) (x) h(M ) (x) | k k (2.12) Thuật toán AdaBoost Bước 0. Đầu vào 1. Tập Z = { (x1, y1), (x2, y2), , (xn, yn)} với: N = a + b; a là số mẫu thuộc phân lớp yi = +1 26
  27. b là số mẫu thuộc phân lớp yi = -1 2. Số lớp yếu tối đa Mmax được kết hợp Bước 1. Khởi tạo giá trị (0) 1 i 2a với mẫu thuộc phân lớp yi = +1 (0) 1 i 2a với mẫu thuộc phân lớp yi = -1 M = 0 Bước 2. Suy diễn tiến While M < Mmax (1) M M + 1 (2) Chọn hm theo biểu thức (4) (m) (m) (3) Cập nhật i exp yi H M (xi) và chuẩn hóa i để (m) i 1 Bước 3. Đầu ra M H(x) sign m 1 hm (x) Hình 2-2: Ví dụ minh họa cho thuật toán AdaBoost 27
  28. 2.2.4.3. Bộ dò tìm phân tầng Adaboost Với một bộ dò tìm c do phƣơng pháp AdaBoost huấn luyện đƣợc, ta có thể dò tìm với một độ chính xác nhất định và một tốc độ nhất định. Nếu nhƣ cần phải chính xác cao thì bộ dò tìm phải bao gồm nhiều đặc trƣng, điều đó kéo theo tốc độ dò tìm sẽ giảm. Nếu sử dụng bộ dò tìm kết hợp F={ci} với nhiều bộ dò tìm cơ bản fi khác nhau cũng rơi vào tình trạng tƣơng tự. Để có đƣợc độ chính xác cao, hoặc cần phải có số lƣợng lớn các bộ dò tìm, hoặc mỗi bộ dò tìm cần phải có nhiều đặc trƣng, hoặc cả hai. Do đó cũng kéo theo tốc độ sẽ giảm. Một hƣớng khắc phục nhƣợc điểm này là sử dụng bộ dò tìm phân tầng T={ti}. Bộ dò tìm phân tầng bao gồm nhiều tầng, mỗi tầng ti = {cj} là một bộ dò tìm kết hợp với số lƣợng các bộ dò tìm khác nhau nên có tốc độ và độ chính xác khác nhau. Khi dò tìm tất cả các khuôn mặt trong ảnh, tất cả các cửa sổ con W0={wi,j,s} với các kích thƣớc s khác nhau tại các tọa độ (i,j) sẽ đƣợc kiểm tra xem có phải là mặt ngƣời hay không. Qua mỗi tầng ti, Wi = ti(Wi-1) trong đó |Wi|<<|Wi-1| do qua mỗi tầng, các cửa sổ không phải ứng viên sẽ bị loại sớm. Điều này cho phép chúng ta xây dựng các tầng sao cho, càng về sau độ phúc tạp (số lƣợng các bộ dò tìm cơ bản với các đặc trƣng) càng lớn trong khi các tầng càng thấp thì độ phức tạp càng đơn giản và phải loại đƣợc nhiều ứng viên càng tốt nhƣng tỷ lệ loại sai phải thấp. Hình 2-3: Minh hoạ bộ dò tìm phân tầng Xét mỗi tầng tk = {ci} ta có tỷ lệ loại sai của tk đƣợc tính nhƣ sau: K F fi i 1 (2.13) 28
  29. Trong đó fi chính là tỷ lệ loại sai ứng với bộ dò tìm ci và K chính là số bộ dò tìm của tầng tk. Tƣơng tự, độ chính xác của tầng tk đƣợc tính nhƣ sau : K D di i 1 (2.14) Trong đó di là độ chính xác của ứng với bộ dò tìm ci. Đồng thời cũng với cách tính này, ta có thể tính đƣợc độ chính xác của toàn bộ các tầng T={ti} là: |T| |T| |ti | i G Di c j i 1 i 1 j 1 (2.15) Vậy khi cho trƣớc một tỷ lệ loại sai D và độ chính xác là F, ta có thể huấn luyện tầng bộ phân loại t sao cho t có tỷ lệ loại sai là D và đô chính xác là F. Và lặp lại quá trình huấn luyện tầng ta đƣợc bộ huấn luyện gồm nhiều tầng với độ chính xác G hoặc số tầng n nhƣ mong muốn. Dƣới đây là thuật toán huấn luyện một tầng với tỷ lệ loại sai f và độ chính xác d cho trƣớc: Bước 0. Đầu vào: f (tỉ lệ nhận sai mẫu dương tối đa chấp nhận được) d (tỉ lệ nhận đúng tối thiểu trong lớp) Ftarget (tỉ lệ nhận sai mẫu dương) P=tập mẫu dương N=tập mẫu âm Bước 1. Khởi tạo: F0=1.0 D0=1.0 i=0 Bước 2. Trong khi (Fi>Ftarget) i  i + 1 ni = 0; Fi = Fi-1 Trong khi (Fi > f × Fi-1 ) ni = ni + 1 - Sử dụng P và N để huấn luyện một phân loại H với ni đặc trưng, dùng Adaboost - Thêm bộ phân loại hiện thời vào C - Tính Fi và Di cho bộ phân loại C hiện thời trên tập hợp lệ 29
  30. - Giảm ngưỡng cho lớp thứ i cho đến khi bộ phân loại C hiện thời đạt tỉ lệ dò tìm tối thiểu là d x Di-1 (điều này cũng ảnh hưởng Fi) - N  ∅ - Nếu Fi > Ftarget thì định giá bộ dò tìm C hiện thời trên tập ảnh không phải mặt người và đưa các mẫu dò tìm bị lỗi vào tập N Bước 3. Đầu ra: bộ dò tìm đa tầng C 30
  31. CHƢƠNG 3: PHÁT HIỆN KHUÔN MẶT TRONG ẢNH DỰA VÀO MÀU DA 3.1. Tổng quan về các kỹ thuật nhận biết màu da dựa trên tính chất điểm ảnh 3.1.1. Giới thiệu Nhƣ đã trình bày trong phần trƣớc, dựa vào màu sắc của da ngƣời cũng là một trong những phƣơng pháp đƣợc dùng để phát hiện mặt ngƣời. Tuy nhiên nếu chỉ đơn thuần sử dùng màu sắc không thôi thì rất khó có thể đạt đƣợc hiệu quả cao trong phát hiện mặt nguời. Vì trong các khung cảnh thì có rất nhiều vật có màu sắc tƣơng tự nhƣ màu của khuôn mặt. Tuy nhiên nếu kết hợp phƣơng pháp này với các phƣơng pháp khác lại có thể mang lại hiệu quả cao. Vì kinh nghiệm cho thấy màu da ngƣời có đặc tính màu riêng biệt, và đặc tính này cho phép dễ dàng nhận ra đâu là da ngƣời [8]. Và thông thƣờng trong hƣớng tiếp cận phát hiện mặt ngƣời dựa trên thông tin xuẩt hiện trong ảnh, thì màu da đƣợc sử dụng nhƣ một bƣớc phân vùng các vùng ảnh có màu sắc giống màu da, điều đó cho phép giảm không gian tìm kiếm khuôn mặt, cải thiện hiệu năng của hệ thống tìm kiếm. Do đó nhiều mô hình đã đƣợc xây dựng để có thể phát hiện đựoc da ngƣời, Khi xây dựng hay mô hình hóa một hệ thống phát hiện hay phân tách vùng màu da với mục đích sử dụng cho việc phát hiện mặt ngƣời, ngƣời ta thƣờng đặt ra ba vấn đề chính. Thứ nhất là mô hình đó đƣợc xây dựng trong không gian màu nào, thứ hai là hàm phân phối của màu da đƣợc mô hình hóa chính xác đến mức độ nào và cuối cùng là sẽ xử lý vùng màu da đƣợc phân vùng cho nhận biết mặt ngƣời nhƣ thế nào. Trong phần này, sẽ chỉ đề cập đến hai câu hỏi trên, còn việc xử lý vùng da nhƣ thế nào cho việc phát hiện mặt ngƣời, sẽ đề cập đến trong chƣơng sau, với một phƣơng pháp cụ thể đƣợc chọn để sử dụng cho bài đồ án này. Phƣơng pháp đƣợc đƣợc đề ập trong phần này là phƣơng pháp phát hiện da ngƣời dựa trên đặc tính điểm ảnh, nghĩa là sẽ phân lớp điểm ảnh thành hai lớp, lớp là lớp điểm anh có thuộc màu da và lớp kia không phải là màu da. Các điểm ảnh là hoàn toàn độc lập với nhau. Ngƣợc lại với phƣơng pháp này là phƣơng pháp dựa trên đặc tính vùng ảnh. 31
  32. Phát hiện màu da dựa trên đặc tính điểm ảnh có một lịch sử phát triển khá dài, tuy nhiên trong khuôn khổ phần tổng quan này, chỉ đề cập và so sánh những kỹ thuật đã đƣợc công bố và đƣợc đánh giá hiệu quả. Mục đích cuối cùng của phần tổng quan này là thu tập các kỹ thuật đã đƣợc công bố, mô tả những ý tƣởng chính của kỹ thuật đó, tổng hợp và đƣa ra những ƣu điểm, nhƣợc điểm và những đặc trƣng của từng kỹ thuật. Từ đó sẽ đƣa ra quyết định lựa chọn kỹ thuật phù hợp dùng để phân vùng màu da áp dụng cho bài đồ án này. 3.1.2. Không gian màu sử dụng cho mô hình hóa màu da Trong lĩnh vực đo màu, cũng nhƣ các lĩnh vực trong truyền tín hiệu hình ảnh và video sử dụng rất nhiều không gian màu với các tính chất khác nhau. Và trong số đó nhiều không gian màu đƣợc áp dụng cho vấn đề mô hình hóa màu da. Sau đây là tóm lƣợc nhóm các không gian màu đƣợc sử dụng rộng rãi nhất cũng nhƣ các tính chất của chúng 3.1.2.1. Không gian màu RGB RGB là không gian màu cơ bản đƣợc áp dụng từ lâu cho màn hình CRT. Trong không gian màu này, mỗi điểm màu là sự kết hợp của ba thành phần đơn màu (Đỏ - Red, Xanh lá cây- Green và xanh da trời : Blue). Đây là một trong những không gian màu đƣợc sử dụng phổ biến nhất cho việc xử lý và lƣu trữ dữ liệu ảnh số. Tuy nhiên do tính tƣơng quan cao giữa các kênh, giá trị cảm nhận không đồng nhất, sự pha trỗn giữa dữ liệu thành phần màu và dữ liệu về độ sáng mà không gian RGB không đƣợc ƣa thích sử dụng cho việc phân tích màu cũng nhƣ trong các thuật toán nhận dạng dựa trên màu sắc. 3.1.2.2. Không gian RGB chuẩn hóa Không gian RGB chuẩn hóa là không gian màu nhận đƣợc từ không gian RGB cơ bản theo công thức chuẩn hóa đơn giản sau đây: R G B r = ; g = ; b = (3.1) R G B R G B R G B Có thể dễ dàng thấy rằng, trong không gian này, r+g +b = 1. Do đó chỉ cần hai trong ba thành phần trên là đủ để biểu diễn không gian màu này, thành phần thứ ba sẽ không còn giá trị và có thể đƣợc bỏ qua, để rút ngắn đƣợc số chiều của không gian này. Hai thành phần còn lại thƣờng đƣợc gọi là các thành 32
  33. phần “màu tinh khiết” (“pure colors”). Thông thƣờng, hai thành phần r và b thƣờng đƣợc giữ lại, còn b bị rút bỏ đi. Tính chất cần chú ý của không gian màu này đó là tính bất biến đối với của bề mặt. Nghĩa là, nếu nhƣ không quan tâm đến ánh sáng xung quanh, thì không gian chuẩn hóa RGB là bất biến đối với sự thay đổi về hƣớng bề mặt liên quan đến nguồn chiếu (tất nhiên là duới một vài giả thiết nhất định). Kết hợp với phép chuyển đổi đơn giản từ không gian màu RGB cơ bản mà không gian RGB chuẩn hóa này ngày càng đƣợc sử dụng rộng rãi trong nhiều lĩnh vực, trong đó có linh vực nhận dạng. 3.1.2.3. HIS, HSV, HSL - Độ bão hòa của màu Không gian màu dựa trên tính bão hòa màu đƣợc giới thiệu khi có những nhu cầu trong việc xác định số lƣợng tính chất màu. Chúng miêu tả màu sắc với những giá trị thuộc về trực giác, dựa trên ý kiến của các họa sỹ về những trạng thái khác nhau của màu sắc, trạng thái bão hòa cũng nhƣ từng tông màu khác nhau. Hue biểu thị cho màu trỗi (nhƣ màu đỏ, màu xanh lá cây, màu đỏ tía và màu vàng) của một vùng ảnh, saturation (độ bão hòa) là thƣớc đo cho giới mức ngƣỡng màu của một vùng ảnh. Các khái niệm nhƣ “intensity” (cƣờng độ), “lightness” (tính dịu) hay “value”(giá trị) liên quan đến độ sáng của màu. Giá trị trực giác của các thành phần trong không gian màu này và sự phân biệt rõ ràng giữa độ sáng với cá thành phần màu của không gian màu là ƣu điểm mà giúp cho không gian này đƣợc sử dụng phổ biến trong vấn đề phần vùng màu da. Công thức chuyển từ không gian RGB sang không gian này nhƣ sau: 1/ 2((R G) (R B)) H = arccos ((R G) 2 (R B)(G B)) min(R,G, B) S = 1- 3 (3.2) R G B 1 V = (R G B) 3 Ngoài ra còn có thể tính Hue và Saturation bằng cách sử dụng hàm log cho các thành phần màu của không gian màu RGB. Phƣơng pháp này có thể làm giảm sự độc lập của các thành phần màu theo mức sáng. 33
  34. Hệ tọa độ cực giữa Hue và Saturation có thể gây ra nhiều khó khăn trong mô hình màu da, chính vì vậy ngƣời ta còn chuyển nó sang hệ tọa độ Đề các theo công thức sau: X = ScosH, Y= SsinH (3.3) 3.1.2.4. TSL – Tint, Saturation, Lightness(sắc thái, độ bão hòa, độ dịu ) Không gian chuẩn hóa thành phần màu và độ sáng TSL đƣợc chuyển từ không gian chuẩn hóa RGB theo công thức sau đây: S = [9/5( r '2 g '2 )]1/ 2 arctan(r’/g’)/2 + 1/4 (g’ > 0) T = arctan(r’/g’)/2 + 3/4 (g’ < 0) (3.4) 0 (g’ = 0) L = 0.299R + 0.587G + 0.114B Trong đó, r’ = r – 1/3, g’ = g – 1/. Theo kết quả nghiên cứu, so sánh chín không gian màu sử dụng cho mô hình màu da thi không gian chuẩn hóa TSL thực hiện mô hình hóa màu da nhanh hơn các không gian khác. 3.1.2.5. YcrCb YCrCb là không gian màu đƣợc sử dụng nhiều trong vấn đề nén ảnh. Màu sắc dƣợc biểu diễn bởi luma (đó là giá trị độ sáng đƣợc tính toán từ không gian RGB), gồm ba thành phần, một thành phần là tổng các trọng số từ RGB, hai thành phần màu khác nhau Cr và Cb đƣợc tạo ra bằng cách từ từ hai thành phần Red và Blue trong không gian màu RGB. Công thức để chuyển đổi nhƣ sau: Y = 0.299R + 0.587G + 0.114B Cr = R – Y (3.5) Cb = B - Y Việc chuyển đổi đơn giản, tính phân chia rõ ràng của độ sáng và các thành phần màu là những đặc tính giúp cho không gian này lôi cuốn các nhà nghiên cứu sử dụng cho việc mô hình hóa màu da. 34
  35. 3.1.2.6. Các hệ tọa độ không gian màu khác Bên cạnh YcrCb, một vài không gian màu khác đựoc tạo ra từ chuyển đổi tuyến tính không gian RGB đƣợc sử dụng trong vấn đề phát hiện màu da. Nhƣ là YES, YUV hay YIQ. Tuy nhiên chúng ít đƣợc sử dụng hơn. 3.1.3. Mô hình hóa màu da Mục đích cuối cùng của phát hiện màu da là xây dựng một quy tắ có tính quyết định. Đây là quy tắc sẽ giúp phân biệt một điểm ảnh là da hay không phải là da ngƣời. Thông thƣờng, quy tắc này sẽ thiết lập một giá trị đo cho phép tính toán mức độ tƣơng đồng giữa một điểm ảnh màu với đặc trƣng màu da. Giá trị đo này đƣợc thiết lập nhƣ thế nào, công thức ra sao tùy thuộc vào từng phƣơng pháp mô hình hóa màu da. 3.1.3.1. Xác định ngƣỡng cụ thể một điểm ảnh là màu da Trong một số không gian màu, phƣơng pháp xây dựng và xếp lớp màu da bằng cách xác định rõ ràng (thông qua một số quy tắc) biên giới các giá trị của điểm ảnh là màu da hay không. Ví dụ nhƣ: Trong không gian RGB: (R,G,B) được xếp thuộc lớp màu da nếu như: R>95 và G>40 và B>20 và Max(R,G,B) – Min(R,G,B) >15 và |R-B| > 15 và R>g và R>B Tính đơn giản của phƣơng pháp này cũng thu hút nhiều sự tập trung nghiên cứu. Ƣu điểm dễ thấy của phƣuơng pháp này đó là tính đơn giản của quy tắc nhận biết màu da. Điều này cho phép phân lớp một cách nhanh chóng và dễ dàng. Tuy nhiên kết quả đạt đƣợc khi phân lớp là không cao trong trƣờng hợp tổng quát. Vì vậy khó khăn chính của phƣơng pháp này nếu muốn có đƣợc hệ số nhận dạng cao đó là phải tìm ra đƣợc một không gian màu thích hợp cũng nhƣ các quy tắc tốt để nhận biết màu da trong không gian màu này. Hiện nay ngƣời ta đang đề xuất sử dụng thuật toán máy học để tìm ra một không gian màu thích hợp cũng nhƣ các quy tắc phân lớp màu da với mong muốn có đƣợc hệ số nhận dạng cao. Tuy nhiên đó cũng chỉ mới là đề xuất và chƣa có một kết quả cụ thể của một nghiên cứu nào đựoc công bố. 35
  36. Tuy nhiên, giữa và kết quả đạt đƣợc, chúng ta vẫn có thể tìm ra đƣợc những quy tắc cho phép nhận biết chắc chắn một điểm ảnh không phải là màu da. Những quy tắc này có thể đƣợc sử dụng làm bƣớc lọc khởi tạo cho các phƣơng phân lớp pháp phức tạp hơn giữa vùng màu da và vùng không phải màu da. Nó giúp cho quá trình phân lớp đƣợc thực hiện nhanh chóng hơn và đỡ tốn công hơn. 3.1.3.2. Phƣong pháp mô hình hóa màu da sử dụng phân phối không tham số Ý tƣởng chính của phƣong pháp mô hình hóa màu da không tham số đó là ƣớc lƣợng phân phối màu da từ dữ liệu huấn luyện mà không xuất phát từ một mô hình rõ ràng nào của màu da. Kết quả của phƣơng pháp này thƣờng đƣợc biểu diễn dƣới dạng một bản đồ phân bố màu da (SPM – Skin Probability Map). Mỗi một giá trị phân bố đƣợc gán cho mỗi điểm trong không gian màu. 3.1.3.3. Bảng tra cứu chuẩn hóa (LUT – Lookup Table) Một số thuật toán phát hiện mặt ngƣời và bám sát mặt ngƣời sử dụng một lƣợc đồ mức xám dựa trên hƣớng tiếp cận phân vùng các điểm ảnh là màu da. Không gian màu đƣợc lƣợng tự hóa thành từng nhóm, mỗi một nhóm đáp ứng cho một khoảng các thành phần màu. Các nhóm lƣợc đồ này đƣợc tham chiếu tới một bảng gọi là bảng tra cứu. Mỗi một nhóm lƣu trữ một số lƣợng lần xuất hiện của một màu khi tiến hành huấn luỵện ảnh da ngƣời. Sau quá trình huấn luyện, biểu đồ sẽ tính toán và chuẩn hóa, chuyển sang giá trị biểu đô trong phân phối xác suất miền rời rạc: Pskin(c) = skin[c]/Norm (3.6) Trong đó, skin[c] nhận giá trị của nhóm lƣợc đồ, đáp ứng cho véc tơ màu c, Norm là một hệ số chuẩn hóa (tổng tất cả các giá trị của các nhóm biểu đồ) hay là giá trị lớn nhất của một nhóm biểu đồ. Giá trị chuẩn hóa của của bảng tra cứu các nhóm biểu đồ là căn cứ để cho phép quyết định một màu có là màu da hay không. 3.1.3.4. Phân lớp Bayes (Bayes Classifier) Giá trị của Pskin(c) trong công thức trên là một điều kiện xác suất – P(c|skin) – xác suất một màu quan sát c là một pixel màu da. Và xác suất thích 36
  37. hợp đƣợc dùng để phát hiện màu da đó là P(skin|c) – xác suất quan sát màu đƣợc màu da khi xuất hiện một giá trị màu c rời rac. Để tính giá trị này, ta sử dụng công thức Bayes quen thuộc: P(c | skin)P(skin) P(skin|c) = (3.7) P(c | skin)P(skin) P(c | skin)P( skin) Trong đó P(c|skin) và P(c|-skin) đựoc tính trực tiếp từ biểu đồ màu da và không màu da. Xác suất toàn phần P(skin) và P(-skin) thì đƣợc ƣớc lƣợng từ một số lƣợng các mẫu là màu da và không màu da trong tập mẫu huấn luyện. Bất đẳng thức P(skin|c) > Θ, trong đó Θ là một giá trị ngƣỡng, có thẻ đƣợc sử dụng để trở thành quy tắc trong phát hiện màu da. Công thức trên đôi khi hơi phức tạp, và để có thể tránh điều này, nếu nhƣ thực sự không cần phải biết một cách chính xác suất P(skin|c) và P(-skin|c) mà chỉ cần biết tỉ số giữa chúng thì ngƣời ta thƣờng đƣa vê công thức nhƣ sau: P(skin| c) P(c | skin)P(skin) = (3.8) P( skin| c) P(c | skin)P( skin) So sánh công thức này với một ngƣỡng có thể tạo ra một quy tắc cho phép phát hiện tỉ số màu da/không phải màu da. Sau một vài phép biến đổi, chúng ta nhận đƣợc công thức P(skin| c) > (3.9) P( skin| c) 1 P(skin) = K P(skin) Công thức trên có thể thấy rằng, việc chọn lựa giá trị của xác suất toàn phần không ảnh hƣởng đến chất lƣợng của bộ phát hiện, vì với bất kì một xác suất toàn phần P(skin) đều có thể chọn đƣợc một giá trị K phù hợp sao cho giá trị của ngƣỡng là θ. 3.1.3.5. Tổng kết phƣơng pháp không tham số Hai ƣu điểm dễ thấy của phƣơng pháp mô hình hóa phân phối không tham số đó là: thứ nhất, chúng có thể huấn luyện và sử dụng đƣợc một cách nhanh chóng. Thứ hai, chúng độc lập với lý thuyết vè hình dạng của phân phối màu da (điều này không đúng trong mô hình hóa màu da có tham số). Tuy nhiên nhƣợc điểm của phƣơng pháp này đó là chúng yêu cầu nhiều bộ nhớ để lƣu trữ và không có khả năng nội suy hay tạo ra dữ liệu huấn luyện. Lấy ví dụ nhƣ, chúgn ta lƣợng tử hóa điểm ảnh trong không gian RGB về 8bit cho mỗi màu, khi đó 37
  38. chúng ta phải cần một mảng có tới 224 phần tử để lƣƣ trữ tập tất cả các xác suất của mô hình. Để có thể giảm bớt kích thƣớc này bằng cách loại bỏ những dữ liệu huấn luyện nhỏ lẻ, không gian màu thƣờng sử dụng kích thƣớc 128*128*128, 64*64*64, 32*32*32. Theo nhƣ nghiên cứu thì kích thƣớc 32*32*32 là kích thƣớc không gian mang lại hiệu quả cao nhất. 3.1.4. Mô hình hóa phân phố màu da có tham số Hầu hết các mô hình màu da không tham số dựa trên biểu đồ xám đều yêu cầu rất nhiều bộ nhớ và hiệu năng của chúng phụ thuộc hoàn toàn của tập ảnh huấn luyện cố định. Vì vậy cần có một mô hình màu da có thê tự thêm hoặc tự tạo ra dự liệu huấn luyện để, điều đó dẫn đến sự ra đời ủa mô hình phân phối tham số. 3.1.4.1. Mô hình dựa trên phấn phối Gaussian đơn. Phân phối màu da có thể đựoc mô hình hóa bởi phân phối Gaussian thêm vào hàm mật độ xác suất. Đĩnh nghĩa nhƣ sau: 1 1/ 2(c )t 1 (c ) e s s s P(c|skin) = 2 | |1/ 2 (3.10) s Ở đây, c là một vecto màu, µs và Σs là hai tham số phân phối (véc tơ trùng bình và ma trận hiệp phƣơng sai). Phƣong pháp mô hình hóa dựa trên phân phối đơn Gaussian đã đƣợc triển khai và nghiên cứu. 3.1.4.2. Mô hình kết hợp dựa trên phân phối Gaussian Một mô hình công phu, phức tạp hơn, có khả năng biểu diễn đƣợc phân phối phức tạp đó là mô hình két hợp dựa trên phân phối Gaussian. Đây là mô hình mở rộng từ mô hình đơn Gaussian trên, trong trƣờng hợp này, hàm phân phối mật độ xác suất là: k P(c|skin) = i pi (c | skin) (3.11) i 1 Trong đó, k là số lƣợng các thành phần đƣợc kết hợp, πi là tham số kết k hợp, thỏa mãn ràng buộc Σ i = 1 πi = 1, và pi(c|skin) thỏa mãn hàm phối mật độ xác suất Gaussian, với mỗi véc tơ trung bình và ma trận hiệp phƣơng sai của 38
  39. nó. Huấn luyện mô hình đựoc thực hiện với một kĩ thuật đƣợc biết đến nhiều gọi là thuật toán kì vọng tối đa (EM - Expectation Maximization), trong đó giả sử rằng số lƣợngcác thành phần k là đã biết trƣớc. Chi tiết việc huấn luyện mô hình kết hợp Gaussian với thuật toán EM này có thể đƣợc tìm thấy trong nhiều nghiên cứu. Việc phân lớp trong mô hình kết hợp Gaussian đƣợc thực hiện nhờ việc so sánh xác suất p(c|skin) với một vài giá trị ngƣỡng. Việc chọn lựa số lƣợng thành phần k ở đây là quan trọng. Vì nó ảnh hƣởng đến độ chính xác của việc huấn luyện cho mô hình. Theo nhƣ những nghiên cứu hiện nay, k = 8 là sự lựa chọn mang hiệu năng cao nhất cho mô hình kết hợp phân phối Gausian. 3.1.4.3. Đa phân phối Gausian Mức độ gần đúng của các nhóm màu da với phân phối Gaussian 3D trong không gian YcbCr đã đƣợc miêu tả trong nhiều bài báo. Một số lƣợng khác nhau các thuật toán phân nhóm K-trung bình đƣợc sử dụng cho nhóm Gaussian thực hiện việc huấn luyện mô hình. Các điểm ảnh đƣợc phân lớp thành lớp màu da nếu nhƣ khoảng cách Mahalanobis từ véctơ màu c đến trung tâm của cụm gần nhất trong mô hình nhỏ lớn hơn một ngƣỡng cho trƣớc. 3.1.4.4. Tổng kết các phƣong pháp mô hình hóa theo tham số Tất cả các phƣơng pháp mô hình hóa theo tham số đƣợc miêu tả nhƣ trên (ngoại trừ phƣơng pháp 3.1.4.3) đều tính toán trên mặt phẳng các thành phần màu của không gian màu mà bỏ qua thông tin về độ sáng. Dĩ nhiên, khi một mô hình phân phối cụ thể đƣợc sử dụng, sẽ có câu hỏi đặt ra về sự xác thực về giá trị của mô hình đó. Hiển nhiên, mô hình độc lập với hình dạng của phân phối trong không gian màu thì càng tốt hơn, do đó mô hình không tham số xét về mặt này hiển nhiên sẽ tốt hơn mô hình có tham số. Tuy nhiên do yêu cầu quá cao về bộ nhớ mà khi đánh giá hiệu năng thì mô hình có tham số lại có hiệu năng cao hơn. Điều này có thể thấy trong các bảng đánh giá ở nhiều bài báo. 3.1.5. So sánh kết quả các mô hình Để có thể đánh giá và so sánh hiệu năng của các phƣơng pháp mô hình hóa màu da là không dễ, vì mỗi phƣơng pháp thƣờng đƣợc đề xuât của một nhóm các nhà nghiên cứu và đƣợc thử nghiệm trên cơ sơ dữ liệu riêng. Và chƣa 39
  40. có một cơ sở dữ liệu chuẩn nào đƣợc công bố rộng rãi cho vấn đề này. Cơ sở dữ liệu huấn luyện và kiểm định đƣợc biết đến nhiều nhất đó là cơ sở dữ liệu của Compaq. Trong bảng so sánh đƣợc đƣa ra dƣới đây, là kết quả tốt nhất mà mỗi phƣơng pháp đạt đƣợc, đƣợc tổng hợp bởi [Valimir Vezhnevets, Vassili Sazonov Alla Andreeva ], với kết quả thử nghiệm dựa trên có ở dữ liệu của Compaq nêu trên. Bảng sau đây sẽ so sánh hệ số phát hiện đúng và không đúng của từng phƣơng pháp. Mặc dù các phƣơng pháp là khác nhau về dữ liệu huấn luyện và tập dữ liệu test, cũng nhƣ chiến lƣợc huấn luyện, bảng dƣới đây vẫn mô tả một bức tranh toàn cảnh về hiệu năng của các phƣơng pháp Phƣơng Pháp Nhận biết đúng Nhận biết sai Bayes SPM trong RGB 80% 8.5% (Jones và Regh 1999) 90% 14.2% Bayes SPM trong RGB 93.4 % 19.8% (Bran và Mason 2000) Maximum Entropy Model trong RGB 80% 8% (Jedynak và al. 2002) Gaussian Mixture models trong RGB 80% ~9.5% (Jones và Rehg 1999) 90% ~15.5% SOM in TS 78% 32% (Brown và al. 2002) Elliptical boundary model trong CIE – 90% 20.9% xy (Lee và Yoo 2002) Single Gaussian trong Cb và Cr 90% 33.3% (Lee và Yoo 2002) Gausian Mixture trong IQ 90% 30,0% (Lee và Yoo 2002) Thresholding của trục I trong YIQ 94.7% 30.2% (Brand và Mason 2000) Bảng 3-1: Kết quả nhận biết đúng và sai của các phƣơng pháp 40
  41. 3.1.6. Đánh giá phƣơng pháp Ƣu điểm chính của các phƣơng pháp sử dụng các ngƣỡng để phân lớp điểm ảnh là màu da hay không đó là tính đơn giản và tính trực giác cao trong các quy tắc phân lớp. Tuy nhiên, điểm khó khăn đó là cần phải tìm đƣợc cả một không gian màu tốt và các quy tắc xứng đáng trong không gian đó. Phƣơng pháp đƣợc đề xuất hiện này sử dụng thuật toán máy học để có thể tìm đƣợc không gian và các quy tắc thích hợp, tuy nhiên đề xuất này vẫn đang là một vấn đề mở trong tƣơng lai Các phƣơng pháp sử dụng mô hình hóa không tham số thật sự nhanh trong cả việc huấn luyện và phân lớp, độc lập với phân bố hình dạng của màu da và cả không gian màu. Tuy nhiên, phƣơng pháp này lại yêu cầu quá nhiều bộ nhớ lƣu trữ và phụ thuộc cố dịnh vào tập dữ liệu huấn luyện. Các phƣơng pháp mô hình hóa có tham số cũng xử lý khá nhanh. Hơn nữa chúng lại có khả năng tự tạo ra các dữ liệu huấn luyện phù hợp, chúng đƣợc miêu tả bằng một số lƣợng không nhiều các tham số và đặc biệt chúng cần không đáng kể bộ nhớ lƣu trữ. Tuy nhiên, chúng có thể sẽ thực sự chậm trong cả huấn luyện và làm việc, và hiệu năng của chúng phụ thuộc nhiều vào hình dạng của phân phối màu da. Bên cạnh đó, hầu hết các phƣơng pháp mô hình hóa màu da có tham số đều bỏ qua những thống kê về màu không phải là tham số. 3.1.7. Chọn lựa không gian màu và phƣơng pháp mô hình hóa dùng để nhận biết màu da cho đồ án. Với mục đích là sử dụng nhận biết màu da để tiến hành phần vùng màu da, giảm không gian tìm kiếm khuôn mặt trong ảnh màu. Vì vậy, phƣơng pháp cần thiết cho đồ án phải có hiệu năng cao, thời gian thực hiện nhanh, yêu cầu bộ nhớ không lớn. Thời gian huấn luyện không phải là vấn đề. Không gian nhớ phải phù hợp với phƣơng pháp nhận biết màu da. Chính vì vậy, xem xét tất cả các phƣơng pháp, các đặc trƣng cũng nhƣ hiệu năng của từng phƣơng pháp. Chúng ta sẽ sử dụng phƣơng pháp mô hình hóa có tham số để tiến hành phân vùng màu da cho ảnh. Cụ thể phƣơng pháp đƣợc lựa chọn đó là phƣơng pháp mô hình hóa màu da có tham số dựa trên phân phối Gaussian. Và không gian màu đƣợc lựa chọn đó là không gian RGB do đặc điểm đơn, sự phân biệt rõ ràng giữa độ sáng và các thành phần màu. Đồng thời, để nâng cao hiệu năng và 41
  42. giảm thời gian tính toán cho phƣơng pháp chọn lựa này, chúng ta sẽ xem xét các quy tắc đựoc đề xuất trong nhóm phƣơng pháp dùng nguỡng để lọc khởi tạo loại bỏ những điểm ảnh chắc chắn không phải màu da. 3.2. Nhận biết phân vùng màu da Với mỗi ảnh đầu vào ta tiến hành nhận biết và phân vùng màu da cho ảnh. Quá trình nhận biết là quá trình phân lớp các pixel trong ảnh ra làm hai lớp, lớp là pixel màu da và lớp pixel không phải màu da. Sau quá trình nhận biết, chúng ta sẽ tiến hành phân vùng để sƣ dụng làm giảm không gian tìm kiếm trong quá trình phát hiện mặt ngƣời. Nghĩa là chúng ta sẽ chỉ tìm kiếm mặt ngƣời trên vùng màu da đƣợc nhận biết. 3.2.1. Lọc khởi tạo Nhƣ đã từng đề cập, trƣớc khi một pixel đƣợc nhận biết nó có là pixel màu da hay không nó sẽ đƣợc đƣa qua một bộ lọc khởi tạo. Thực chất, bộ lọc này là một tập các quy tắc đƣợc chọn lọc từ các phƣơng pháp chọn ngƣỡng để phân vùng màu da. Tập quy tắc này đƣợc kiểm định từ thực nghiệm là đúng đắn với mọi màu da cần nhật biết. Sau khi tham khảo một số các quy tắc đƣợc đề xuất, tiền hành chọn lọc và thử nghiệm trên nhiều ảnh màu khác nhau, đồ án đã đề xuất một tập các quy tắc sau nhằm giúp lọc ngay từ ban đầu các pixel không phải màu da. Điều này cho phép giảm khối lƣợng tính toán của ảnh đáng kể. Tập quy tắc này đƣợc phát biểu trong không gian màu RGB nhƣ sau: Một pixel sẽ không phải là pixel màu da nếu nó thỏa mãn một trong các điều kiện sau đây: 1. ( (B > 160 && R 160 && R 200) – pixel màu xanh lá cây Green 5. (R 100 && B > 110 && G < 140 && B < 160) – Màu xanh đại dương 42
  43. Hoặc là: 1. R > 95 && G > 40 && B 15 3. |R - G| > 15 && R > G && R > B Hoặc là: 1. R > 220 && G > 210 && B > 170 && |R - G| = 15 && R > B && G > B 3.2.2. Nhận biết màu da Kết quả của quá trình nhận biết có thể đƣợc thấy trong hình cạnh bên. Ảnh phân vùng sẽ có dạng ảnh nhị phân. Pixel màu da đƣợc giữ nguyên, còn pixel không phải màu da sẽ đƣợc đại diễn bởi màu đen. Hình 3-1: Ảnh trƣớc và sau khi nhận biết màu da 3.3. Trích chọn đặc trƣng Haar - like Đặc trƣng Haar like do Viola và Jones công bố, gồm 4 đặc trƣng cơ bản để 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: 43
  44. Hình 3-2: 4 đặc trƣng Haar-like cơ bản Để sử dụng các đặt trƣng này vào việc xác định khuôn 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): 3. Đặc trƣng xung quanh tâm (center-surround features): Hình 3-3: Các đặc trƣng mở rộng của các đặc trƣng Haar-like cơ sở Dùng các đặc trƣng trên, ta có thể tính đƣợc giá trị của đặc trƣng Haar-like là 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(các mức xám của pixel) - Tổngvùng trắng(các mức xám của pixel) Sử dụng giá trị này, so sánh với các giá trị của các giá trị pixel thô, các đặc trƣng Haar-like có thể tăng/giảm sự thay đổi in-class/out-of-class (bên trong hay bên ngoài lớp khuôn mặt ngƣời), do đó sẽ làm cho bộ phân loại dễ hơn. Nhƣ vậy ta có thể thấy rằng, để tính các giá trị của đặc trƣng Haar-like, ta phải tính tổng của các vùng pixel trên ảnh. Nhƣng để tính toán các giá trị của các đặc trƣng Haar-like cho tất cả các vị trí trên ảnh đòi hỏi chi phí tính toán khá lớn, không đáp ứng đƣợc cho các ứng dụng đòi hỏi tính run-time. Do đó Viola và Jones đƣa ra một khái niệm gọi là Integral Image, 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í 44
  45. dƣới, phải của ảnh, việc tính toán này đơn thuần chỉ đựa trên phép cộng số nguyên đơn giản, do đó tốc độ thực hiện rất nhanh. ' ' P(x,y) = i(x , y ) (4.1) x' x,y' y Hình 3-4: Cách tính Integral Image của ảnh Sau khi đã tính đƣợc Integral Image, việc tính tổng các giá trị mức xám 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 các giá trị mức xám của vùng D nhƣ trong hình 4, ta có thể tính nhƣ sau: D = A + B + C + D – (A+B) – (A+C) + A (4.2) 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: (4.3) Hình 3-5: Ví dụ cách tính nhanh các giá trị mức xám của vùng D trên ảnh Tiếp theo, để chọn các đặc trƣng Haar-like dùng cho việc thiết lập ngƣỡng, Viola và Jones sử dụng một phƣơng pháp máy học đƣợc gọi là AdaBoost. AdaBoost sẽ kết hợp các bộ phân loại yếu để tạo thành một bộ phân loại mạnh. Với bộ phân loại yếu chỉ cho ra câu trả lời chính xác chỉ hơn viện 45
  46. đoán một cách ngẫn nhiên một chút, còn bộ phân loại mạnh có thể đƣa ra câu trả lời chính xác trên60%. 3.4. Huấn luyện dò tìm khuân mặt AdaBoost 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 [2]. Adaboost cũng hoạt động trên nguyên tắc kết hợp tuyến tính các weak classifiers để hình thành một strong classifier. Là một cải tiến của tiếp cận boosting, AdaBoost sử dụng thêm khái niệm trọng số (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 classifiers đƣợc xây dựng, thuật toán sẽ tiến hành cập nhật lại trọng số để chuẩn bị cho việc xây dựng weak classifier kế tiếp: tăng trọng số của các mẫu bị nhận dạng sai và giảm trọng số của các mẫu đƣợc nhận dạng đúng bởi weak classifier vừa xây dựng. Bằng cách này weak classifer sau có thể tập trung vào các mẫu mà các weak classifiers trƣớc nó làm chƣa tốt. Sau cùng, các weak classifers sẽ đƣợc kết hợp tùy theo mức độ tốt của chúng để tạo nên strong classifier. Viola và Jones dùng AdaBoost kết hợp các bộ phân loại yếu sử dụng các đặc trƣng Haar-like theo mô hình phân tầng (cascade) nhƣ sau: Hình 3-6: Mô hình phân tầng kết hợp các bộ phân loại yếu để xác định khuôn mặt 46
  47. Trong đó, hk là các bộ phân loại yếu, đƣợc biểu diễn nhƣ sau: Hk = 1 nếu pkfk(x) = 0 là hệ số chuẩn hoá cho các bộ phân loại yếu Hình 3-7: Kết hợp các bộ phân loại yếu thành bộ phân loại mạnh 3.5. Quá trình dò tìm khuân mặt Việc dò tìm khuôn mặt trong ảnh qua bộ phân tầng đã huấn luyện gặp một vấn đề là số sửa sổ với các kích thƣớc khác nhau quá lớn. Để khắc phục vấn đề này, phƣơng pháp dò theo kiến trúc tháp đƣợc áp dụng nhƣ sau: xét ảnh s kích thƣớc (wxh) , step = 0 , hệ số co scale = 1.2  Lặp trong khi kích thƣớc (w x h) còn lớn hơn cửa sổ ảnh mặt ngƣời huấn luyện (w0 x h0): - Duyệt toàn bộ các vị trí (x,y) cửa sổ với kích thƣớc (w0 x h0) , với mỗi vị trí tiến hành: Áp dụng bộ dò tìm phân tầng để xác định có phải mặt ngƣời hay không Nếu là mặt ngƣời tại vị trí (x,y) thì thực tế mặt ngƣời tại vị trí step step step (x*scale , y*scale ) và kích thƣớc cửa sổ là (w0*scale , step h0*scale ) - Gán w1 = w / scale và h1 = h / scale 47
  48. - Thu nhỏ ảnh từ kích thƣớc (w x h) đến (w1 x h1) - Gán w = w1 và h = h1 - step = step + 1 Nhận xét : Hệ số co scale quyết định độ mịn của các cửa sồ dò tìm, nếu nhƣ scale càng nhỏ (≥1 ) thì càng có nhiều cửa sổ dò tìm nên càng chính xác hơn. Áp dụng thuật toán dò theo kiến trúc tháp nhƣ trên ta có thể dò tìm tất cả các khuôn mặt ở tất cả các vị trí, song kích thƣớc dò tìm ở mỗi bƣớc nhƣ sau : - Bƣớc 1 : kích thƣớc từ (w0, h0) đến (w0*scale,h0*scale) 2 2 - Bƣớc 2 : kích thƣớc từ (w0*scale,h0*scale) đến (w0*scale ,h0*scale ) - . Bƣớc n : kích thƣớc từ (w0*scalen-1,h0*scalen-1) đến (w0*scale,h0*scale) 3.6. Hệ thống xác định vị trí khuôn mặt ngƣời Hình 3-8: Hệ thống xác định vị trí khuôn mặt ngƣời (Face detection system) Nhƣ trong hình trên, từ ảnh gốc ban đầu, ta sẽ đƣợc tính Integral Image, là mảng 2 chiều với phần tử (x, y) sẽ đƣợc tính bằng tổng của các phần tử (x', y') với x' < x và y' < y, mục đích là để tính nhanh tổng của các giá trị mức xám của 48
  49. một vùng hình chữ nhật bất kỳ trên ảnh gốc. Các vùng ảnh con này sẽ đƣợc đƣa qua các hàm Haar cơ bản để ƣớc lƣợng đặc trƣng, kết quả ƣớc lƣợng sẽ đƣợc đƣa qua bộ điều chỉnh AdaBoost để loại bỏ nhanh các đặc trƣng không có khả năng là đặc trƣng của khuôn mặt ngƣời. Chỉ có một tập nhỏ các đặc trƣng mà bộ điều chỉnh AdaBoost cho là có khả năng là đặc trƣng của khuôn mặt ngƣời mới đƣợc chuyển sang cho bộ quyết định kết quả. Bộ quyết định sẽ tổng hợp kết quả là khuôn mặt ngƣời nếu kết quả của các bộ phân loại yếu trả về là khuôn mặt ngƣời. 49
  50. CHƢƠNG 4: CÀI ĐẶT ỨNG DỤNG 4.1. Môi trƣờng TEST Phần cứng : Một máy tính Pentum IV 2.8 Ghz. Card đồ họa 128 MB. Ram 512 MB . Phần mềm : Ngôn ngữ sử dụng: VC++ trong bộ Visual Studio 2005. Bộ cài OpenCV và OpenCV.NET 4.2. Một số giao diện chính Hình 4-1: Giao diện chính của chƣơng trình 50
  51. Hình 4-2: Ảnh sau khi đƣợc mở Hình 4-3: Ảnh sau khi đƣợc lọc màu da 51
  52. Hình 4-4: Ảnh kết quả phát hiện khuôn mặt 4.3. Nhận xét Chƣơng trình cho kết quả tƣơng đối tốt, dò tìm đƣợc hầu hết các khuôn mặt. Tuy nhiên vẫn còn những phát hiện thừa hoặc thiếu, điều này là do tập huấn luyện chƣa đƣợc chính xác và các tƣ thế cũng nhƣ màu da của ngƣời chụp chƣa đựoc chuẩn xác nhƣ đứng lệch về một phía, màu da bị chói sáng quá, 52
  53. KẾT LUẬN Phát hiện khuôn mặt là bài toán cơ bản và quan trọng trong lĩnh vực thị giác máy tính. Những công nghệ hiện có đang còn rất non trẻ và còn nhiều vấn đề cần phải tiếp tục nghiên cứu. Với đề tài “Dò tìm khuôn mặt trong ảnh dựa vào màu da”, khoá luận đã trình bày tổng quan một số phƣơng pháp phát hiện khuôn mặt, tập trung trình bày hai phƣơng pháp “phát hiện khuôn mặt dựa vào màu da” và “phát hiện khuôn mặt sử dụng đăc trƣng Haar và AdaBoost”. Khoá luận đã xây dựng đƣợc một hệ thống phát hiện khuôn mặt sử dụng bộ lọc màu da cùng đặc trƣng Haar và bộ lọc AdaBoost cho kết quả phát hiện đƣợc khuôn mặt nhanh chóng và chính xác. Việc cài đặt thử nghiệm thuật toán trên bằng ngôn ngữ MS VC++ 2005 đã đƣợc thực hiện, bƣớc đầu cho kết quả tốt. Trong tƣơng lai em sẽ tiếp tục nghiên cứu thêm để có thể hoàn thiện hơn nữa về độ chính xác và thời gian dò tìm, và cố gắng để ứng dụng đƣợc chƣơng trình vào một số hệ thống phục vụ các lĩnh vực: giám sát, theo dõi, an ninh trí tuệ nhân tạo Tuy nhiên do hạn chế về điều kiện và thời gian, khoá luận sẽ không thể tránh khỏi những thiếu xót. Kính mong đƣợc sự đóng góp ý kiến của thầy cô và các bạn, để em có thể hoàn thiện tốt hơn đề tài nghiên cứu của mình trong đợt khoá luận của em. Em xin trân trọng cảm ơn! 53
  54. TÀI LIỆU THAM KHẢO [1]. Phạm Thế Bảo, Nguyễn Thành Nhựt, Cao Minh Thịnh, Trần Anh Tuấn, Phan Phúc Doãn - Tổng quan các phƣơng pháp xác định khuôn mặt ngƣời [2]. Nguyễn Tuấn Nghĩa (2005) – Sử dụng mô hình Entropy cực đại nhận dạng màu da trên ảnh màu – Luận văn tốt nghiệp Trƣờng Đại học Công nghệ, Đại học Quốc gia Hà Nội. [3]. CBCL Face Database, CMU and MIT, [4]. Tài liệu về OpenCV 54