Hệ thống phát hiện khuôn mặt dựa trên mạng nEUral & phương pháp phân vùng màu da

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 kh

doc79 trang | Chia sẻ: huyen82 | Lượt xem: 2051 | Lượt tải: 2download
Tóm tắt tài liệu Hệ thống phát hiện khuôn mặt dựa trên mạng nEUral & phương pháp phân vùng màu da, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
uô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 mạng neural và phương pháp phân vùng màu da dựa trên mô hình màu da có tham số sử dụng phân phố Gaussian. Hệ thống phát hiện được xây dựng về cơ bản có nguyên tắc hoạt động theo mô hình mạng neural kinh điển. Đó là mô hình mạng neural Perceptron đa lớp, sử dụng thuật toán lan truyền nguợc và phương pháp giảm gradient để học mạng. Về cơ bản kiến trúc mạng neural xây dựng không có gì thay đổi, tuy nhiên, ở đây chúng ta sẽ cải tiến kiến trúc một điểm với việc sử dụng thêm mô hình xác suất dựa trên lý thuyết Bayes để có thể có sự mềm dẻo hơn trong việc đánh giá kết quả cuối cùng của mạng. Ngoài ra, đồ án cũng nêu ra một chiến thuật huấn luyện hợp lý, cho phép huấn luyện nhanh mà vẫn đảm bảo được tính tổng quát và hiệu quả của mạng. Đó là chiến thuật huấn luyện mạng chủ động có học. 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. Để giúp cho kết quả phát hiện được rõ ràng và chất lượng, đồ án cũng đã nêu ra các heuristic cụ thể phù hợp cho hệ thống, Những heursitic này dựa trên kết quả thực tế cũng như thống kê của quá trình huấn luyện và kiểm thử hệ thống. Đồ án với tên gọi là “Hệ thống phát hiện khuôn mặt dựa trên mạng neural và phương pháp vân vùng màu da” được bộ cục làm năm mục chính. Chương I: Giới thiêu – Là chương giới thiệu, bao gồm ba phần nhỏ. Phần đầu là tổng quan các hướng tiếp cận, các phương pháp phát hiện mặt người đã được để xuất. Phần hai là tổng quan các phương pháp phân vùng màu da dựa trên tính chất điểm ảnh. Qua phần này với những đánh giá các phương pháp sẽ giúp chúng ta chọn được phương pháp phân vùng phù hợp cho hệ thống. Phần ba sẽ là cơ sở lý thuyết cơ bản nhất về mạng neural MPL và thuật toán lan truyền ngược. Đây là kiến trúc mạng và thuật toán sẽ được sử dụng cho hệ thống mạng neural của đồ án. Chương II: Tổng thể hoạt động của hệ thống và vấn đề chuẩn bị cơ sở dữ liệu – Đây là chương miêu tả mô hình thuật toán hoạt động tổng thể nhất của hệ thống sẽ được xây dựng. Đồng thời sẽ đề cập vấn đề chuẩn bị và tiền xử lý cho các tập cơ sở dữ liệu đựoc dùng để huấn luyện mạng neural cũng như luyện tập phân vùng màu da. Đây là một trong những công việc quan trọng quyết định đến chất lượng của hệ thống. Chương III: Phát hiện khuôn mặt dựa trên mạng neural và phương pháp phân vùng màu da – Đây là chương quan trọng nhất của đồ án. Nó sẽ miêu tả đầy đủ kiến trúc hệ thống được xây dựng. Thuật toán và phương pháp huấn luyện mạng neural. Thuật toán và phương pháp huấn luyện phân vùng màu da. Và sẽ đề xuất ra những heuristic giúp cải thiện chất lượng phát hiện và thời gian chạy của hệ thống. Chương IV: Phân tích thiết kế và cài đặt chương trình Chưong V: Khảo sát thực nghiệm và đánh giá chương trình – Đây là chương sẽ miêu tả kết quả việc kiểm thử chương trình dựa trên bộ test chuẩn và bộ test tự tạo. Đồng thời sẽ có những đánh giá và nhận xét về kết quả của chương trình. Kết luận và hướng phát triển Trong phạm vi bài đồ án, với việc hệ thống được xây dựng trên một mạng neural đơn lẻ, vì vậy em đã tiến hành huấn luyện cho mạng nhận biết những khuôn mặt với tư thể nhìn thẳng (frontal), có độ nghiêng và góc quay không đáng kể. Các khuôn mặt có thể có nhiều trạng thái khác nhau. Các ảnh được dùng để kiểm thử bao gồm cả ảnh chân dung và ảnh tập thể. Ảnh không và có nhiễu (tự thêm) để kiểm tra thêm về tính hiệu quả của hệ thống. Các ảnh được kiểm thử có kích thước bao gồm 240 x 180, 320 x 240, 480 x 360 điểm ảnh. Với bộ test bao gồm 300 ảnh chân dung kích thước 320 x 240; 320 ảnh này đựoc thêm nhiễu, 320 ảnh này được thu nhỏ lại kích thước 240 x 180 để kiểm tra hệ thống có thể phát hiện các khuôn mặt có kích thước khác nhau, 320 ảnh này được thêm nhiễu. Ngoài tập ảnh chân dung chuẩn ra, chương trình còn test với 100 ảnh tập thể tự tạo với nhiều mục đích khác nhau. 100 ảnh này cũng được thêm nhiễu để tiến hành kiểm thử. Sau đây là bảng đánh giá kết quả chính mà chương trình đạt được: LỜI CẢM ƠN Em xin được cảm ơn chân thành PGS. TS Nguyễn Thị Hoàng Lan, bộ môn Truyền thông và mạng máy tính, Khoa Công nghệ thông tin, Trường Đại Học Bách Khoa Hà Nội. Cô giáo đã nhiệt tình giúp đỡ và hướng dẫn em trong suốt quá trình thực tập cũng như quá trình làm đồ án. Em xin cảm ơn tất cả các thầy cô giáo đã tham gia giảng dạy tại khoa Kỹ sư chất lượng cao. Cảm ơn các thầy cô đã trang bị cho bọn em những kiến thức vững vàng, không chỉ là những môn học liên quan đến công nghệ thông tin mà còn rất nhiều những môn khác nữa, tất cả đã giúp em rất nhiều trong quá trình hoàn thành đồ án. Xin cảm ơn tất cả các anh chị khóa trên cũng như tất cả các bạn bè đã nhiệt tình giúp đỡ em, cung cấp tài liệu, hỗ trợ kiến thức cũng như động viên em trong suốt quá trình làm luận văn. Cuối cùng, em xin được dành lời cảm ơn đặc biệt nhất đến gia đình bố mẹ, chị gái và em trai. Những người đã luôn luôn cạnh em, luôn luôn động viên tinh thần và tin tưởng em trong quá trình làm đồ án cũng như trong cuộc sống. Với đồ án này, em đã cố gắng và làm hêt sức mình với mong muốn có được kết quả tốt. Mặc dù vậy, do khả năng cũng như hạn chế về thời gian, đồ án của em chắc chắn không thể tránh được những thiếu sót, chưa được như ý muốn. Vì vậy, em thật sự rất mong nhận được sự đánh giá, góp ý của tất cả các thầy cô giáo, anh chị, và các bạn đồng khóa. Bởi những lời đánh giá và góp ý đó sẽ là rất quý báu giúp em có thể nâng cao chất lượng cho Đồ án tôt nghiệp của mình. Xin chân thành cảm ơn Hà Nội, Tháng 5 - 2006 DANH SÁCH CÁC BẢNG TRONG ĐỒ ÁN DANH SÁCH HÌNH VẼ TRONG ĐỒ ÁN CHƯƠNG I: GIỚI THIỆU 1. Tổng quan về các phương pháp phát hiện mặt người 1.1 Phát hiện mặt người và ứng dụng Nhận biết đối tượng nói chung và nhận biết mặt người nói riêng là bài toán cơ bản và quan trọng trong lĩnh vực quan sát bằng máy tính. Nhận biết mặt nguời thu hút sự tập trung nghiên cứu của nhiều nhà nghiên cứu trong suốt nhiều thập kỷ qua. Tuy nhiên vẫn chưa có một hướng tiếp cận nào thực sự trọn vẹn mang lại hiệu quả và giải quyết hết các thách thức và tình huống trong vấn đề phát hiện mặt người, nguyên nhân là do tính biến đổi cao của khuôn mặt con người. Chính vì vậy, đây vẫn là vấn đề mở và tiếp tục thu hút sự nghiên cứu sâu hơn với các kỹ thuật mới được đề xuất. Các kỹ thuật đã được áp dụng có thể chia thành một trong hai tiếp cận: so sánh sự phù hợp với các mô hình hình học hai, ba chiều vào ảnh, hay phương pháp so sánh sự phù hợp các mô hình khung nhìn vào ảnh có chứa khuôn mặt cần nhận biết. Các nghiên cứu trước đây cho thấy rằng các hương pháp dựa trên khung nhìn có thể nhận biết các khuôn mặt thẳng trong nền phức tạp một cách hiệu quả. Với mục đích tận dụng những ưu điểm của các kỹ thuật đã đuợc đề xuất, kết hợp chúng lại để có thể xây dựng đuợc một hệ thống phát hiện mặt người một cách hiệu quả. Đồ án đã tập trung vào vấn đề phát hiện mặt người trong ảnh màu tĩnh, nhằm kết hợp những đặc trưng của mặt người trong ảnh màu cụ thể là sử dụng kỹ thuật phân vùng màu da người trong ảnh màu kết hợp với hướng tiếp cận dựa trên khung nhìn với mục đích sử dụng mạng neural nhân tạo - một phương pháp tuy kinh điển nhưng vẫn rất mở và chứa đựng nhiều ưu điểm trong vấn đề nhận dạng, để xây dựng hệ thống phát hiện mặt người. Kỹ thuật phân vùng da nguời trong ảnh màu được áp dụng trong hệ thống nhận biết mặt người với mục đích cuối cùng là giảm không gian tìm kiếm mặt người trong ảnh, giúp cho hiệu năng hoạt động của hệ thống được nâng cao hơn. Còn ưu điểm nổi bật của mạng neural nhân tạo nói riêng và phướng tiếp cận dựa trên máy học nói chung trong việc phát hiện mặt nguời đó là có thể miêu tả và phát hiện khuôn mặt trong nhiều tình huống khác nhau. Những tình huống gặp phải khi phát hiện khuôn mặt bao gồm: Tư thế của khuôn măt (Pose): Khuôn mặt là nghìn thẳng (frontal), nghiêng một phần (partial profile) hay nghiêng hoàn toàn (full profile). Khuôn mặt hướng thẳng đứng (upright) hay là khuôn mặt xoay một góc nào đó (rotate) Nội dung khuôn mặt: Khuôn mặt chứa đầy đủ các đặc trưng như mắt, mũi, miệng, tai hay thiếu một vài đặc trưng nào đó. Trạng thái của khuôn mặt: Đó chính là trạng thái tình cảm của khuôn mặt như cuời, khóc, tức giận… Đây là những tình huống mà các hướng tiệp cận khác phải mất nhiều công sức và phức tạp để có thể miêu tả được. Nhưng với mạng neural, thông qua tập mẫu và quá trình huấn luyện mạng hiệu quả, kết quả mang lại là có thể rất khả quan. Ứng dụng Công nghệ nhận biết mặt người có sự ứng dụng rộng rãi trong thực tế. Trong nhận dạng sinh trắc học, trong hội thảo truyền hình, trong chỉ số hoá ảnh và cơ sở dữ liệu video, trong tương tác người máy. Nhận biết mặt người là giai đoạn đầu trong hệ thống nhận dạng mặt người. Hai bài toán nhận biết và nhận dạng đối tượng có liên quan mật thiết. Hệ thống nhận dạng đối tượng có thể xây dựng mà không có tập bộ nhận biết đối tượng, mỗi bộ nhận biết phát hiện một đối tượng quan tâm. Tương tự, bộ nhận biết đối tượng có thể được xây dựng mà không có hệ thống nhận dạng đối tượng; bộ nhận dạng đối tượng này cần phân biệt đối tượng mong muốn với mọi đối tượng khác có thể xuất hiện hay là lớp đối tượng chưa biết. Do đó hai bài toán là như nhau, dù trong thực hành hầu hết các hệ thống nhận dạng đối tượng ít khi giải quyết nền tuỳ ý, và các hệ thống nhận biết đối tượng ít khi được huấn luyện trên đủ loại đối tượng để xây dựng hệ thống nhận dạng. Điểm chú trọng khác nhau của các bài toán này dẫn đến các trình bày và thuật toán khác nhau. Thông thường, các hệ thống nhận dạng khuôn mặt làm việc bằng cách trước hết áp dụng bộ nhận biết khuôn mặt để định vị khuôn mặt, sau đó áp dụng thuật toán nhận dạng để nhận diện khuôn mặt. 1.2 Các thách thức trong vấn đề phát hiện mặt người Việc nhận biết đối tượng là bài toán xác định cửa sổ con của ảnh có thuộc về tập các ảnh của đối tượng quan tâm hay không. Do đó, đường biên quyết định của tập ảnh đối tượng phức tạp sẽ làm tăng độ khó của bài toán và có thể tăng số lỗi nhận biết. Giả sử ta muốn phát hiện khuôn mặt nghiêng trong mặt phẳng ảnh, ngoài các khuôn mặt thẳng. Việc thêm các khuôn mặt nghiêng vào tập các ảnh ta muốn nhận biết làm tăng độ biến thiên của tập, và có thể làm tăng độ phức tạp của đường biên quyết định của tập ảnh. Độ phức tạp này làm bài toán nhận biết khó hơn. Việc thêm ảnh mới vào tập ảnh đối tượng có thể làm đường biên quyết định đơn giản hơn và dễ học hơn. Có thể tưởng tượng điều này là đường biên quyết định được làm trơn bằng việc thêm các ảnh vào tập. Có nhiều nguồn biến đổi trong bài toán nhận biết đối tượng, và cụ thể trong bài toán nhận biết khuôn mặt. Có các nguồn biến đổi sau [6]: Biến đổi trong mặt phẳng ảnh: loại biến đổi ảnh khuôn mặt đơn giản nhất có thể được biểu diễn độc lập với khuôn mặt, bằng cách quay, dịch chuyển, biến đổi tỷ lệ và lấy đối xứng ảnh. Biến đổi độ sáng và ngữ cảnh: biến đổi do đối tượng và môi trường gây ra, cụ thể các thuộc tính bề mặt của đối tượng và các nguồn sáng. Các thay đổi về nguồn sáng nói riêng có thể biến đổi hoàn toàn vẻ bề ngoài của khuôn mặt. Biến đổi nền: Nhiều nhà nghiên cứu cho răng với kỹ thuật nhận dạng mẫu hiện nay, tiếp cận dựa trên khung nhìn để nhận biết đối tượng chỉ thích hợp cho các đối tượng có “đường biên ảnh có thể dự đoán được”. Khi đối tượng có hình dáng dự đoán được, ta có thể trích ra window chỉ chứa các pixel bên trong đối tượng, và bỏ qua nền. Biến đổi hình dáng: với khuôn mặt, loại biến đổi này bao gồm biểu lộ tình cảm khuôn mặt, miệng và mắt mở hay đóng, và hình dáng khuôn mặt của từng người. 1.3 Các vấn đề liên quan đến phát hiện mặt người Bên cạnh vấn đề phát hiện mặt người, có nhiều vấn đề khác có quan hệ mật thiết với phát hiện mặt người mà nhiều khi gây ra nhầm lẫn nếu không được tìm hiểu một cách kỹ càng. Những vấn đề đó bao gồm [7] Định vị khuôn mặt hay xác định vị trí khuôn mặt: Đây là vấn đề rất gần với vấn đề phát hiện mặt người. Nếu như phát hiện mặt người trong ảnh là phải trả lời các câu hỏi có tồn tại khuôn mặt trong ảnh hay không ? Nếu tồn tại thì tồn tại bao nhiêu khuôn mặt? Vị trí của khuôn mặt ở đâu ? Thì vấn đề định vị mặt người chỉ trả lời cho câu hỏi vị trí mặt người ở đâu trong một ảnh đã biết trước là có một mặt người . Như vậy có thể thấy, định vị khuôn mặt là một phần công việc của phát hiện mặt người. Phát hiện các đặc trưng của khuôn mặt: Đây là vấn đề cũng rất gần với vấn đề định vị khuôn mặt. Nó cũng giả thiết rằng chỉ có một khuôn mặt trong ảnh. Và việc phát hiện đặc trưng khuôn mặt là tìm ra vị trí của các đặc trưng như đôi mắt, mũi, miệng, môi, tai… Bám sát khuôn mặt: Mục đích của vấn đề này là ước lượng liên tục sự thay đổi về vị trí và huớng của khuôn mặt trong một chuỗi ảnh thời gian thực. Nhận biết trạng thái khuôn mặt: Mục tiêu của vấn đề này là nhận biết trạng thái của khuôn mặt con người (hạnh phúc, tức giận, đau khổ…). Đây là vấn đề rất khó và thú vị vì trạng thái khuôn mặt của từng người có thể là rất khác nhau trong cùng một trạng thái tâm lý. Nhận dạng khuôn mặt: Trong vấn đề này, chúng ta phải đối sánh khuôn mặt cần nhận dạng với các khuôn mặt có sẵn trong thư viện và tìm ra nhưng thông tin cần thiết về khuôn mặt cần nhận dạng nếu nó có đăc trưng tương đồng với khuôn mặt nào đó trong thư viện. Thẩm tra và xác minh khuôn mặt: Đây là vấn đề nằm trong vấn đề nhận dạng khuôn mặt. Thông thường sau khi nhận dạng khuôn mặt, người ta phải tiến hành một giai đoạn nữa gọi là thẩm tra và xác minh tính đúng đắn của khuôn mặt được nhận dạng. Nó cho phép tăng sự đúng đắn của vấn đề nhận dạng khuôn mặt. Trong những vấn đề nêu trên, có thể thấy nhận biết khuôn mặt và nhận dạng khuôn mặt là hai vấn đề cơ bản và có thể chứa đựng các vấn đề còn lại. Và thông thường, nhận biết khuôn mặt sẽ là giai đoạn đầu của hệ thống nhận dạng khuôn mặt. Sự khác nhau cơ bản giữa phát hiện khuôn mặt với nhận dạng khuôn mặt đó là: Nếu như nhận dạng khuôn mặt là phân biệt những khuôn mặt khác nhau trong tập danh mục các khuôn mặt, còn nhận biết khuôn mặt đó là phân lớp đuợc đâu là danh mục các khuôn mặt và đâu là danh mục các ảnh không phải khuôn mặt. 1.4 Tổnq quan các hướng tiếp cận phát hiện khuôn mặt Trong suốt quá trình hơn ba thập kỷ, đã có rất nhiều các hướng tiếp cận và xử lý khác nhau được đề xuất để giải quyết bài toán phát hiện mặt người. Các hướng tiếp cận và xử lý thông thường nhằm giải quyết những yêu cầu cụ thể và khác nhau ,trong từng ứng dụng cụ thể. Chính vì vậy có nhiều cách để có thể phân loại các phương pháp, các kỹ thuật, các hướng tiếp cận phát hiện khuôn mặt. Trong bài luận văn này, sẽ phân loại các hướng tiếp cận theo phương pháp được sử dụng nhiều nhất. Đó là chia các hướng tiếp cận theo hai hướng chính: Hướng tiếp cận dựa trên đặc trưng của ảnh (Feature-based) và hướng tiếp cận dựa trên thông tin xuất hiện trên ảnh (Image-based). Các phương pháp, kỹ thuật phân chia theo cách này có thể nhìn thấy trong sơ đồ dưới đây [7]: Hình 1: Sơ đồ các hướng tiếp cận và phương pháp phát hiện mặt người 1.4.1 Hướng tiếp cận dựa trên đặc trưng của ảnh (Feature-based approaches) Phương pháp tiệp cận dựa trên đặc trưng của khuôn mặt được chia thành ba vấn đề. Giả sử cần phải phát hiện một khuôn mặt trong một nền ảnh lộn xộn, phân tích mức thấp (low-level analysis) thực hiện phân đoạn các đặc trưng của ảnh dựa trên những thuộc tính của điểm ảnh như độ xám hay màu sắc. Sự phân đoạn lúc này còn mập mờ và chưa rõ ràng. Vấn đề thứ hai là phân tích đặc trưng, các đặc trưng của ảnh được tổ chức thành các đặc trưng khuôn mặt có tính tổng quát hơn dựa trên đặc tính hình học của khuôn mặt. Sau giai đoạn này, tính mập mờ của các đặc trưng của ảnh đã được giảm bớt, đồng thời, vị trí khuôn mặt cùng với các đặc trưng khuôn mặt đã được xác định. Tiếp theo sẽ là việc sử dụng mô hình hình dạng (active shape models). Những mô hình này bao gồm từ mô hình dạng rắn (snakes - được đề xuất vào những năm 80) cho tới mô hình phân tán điểm (PDM – Point Distributed Model) được đề xuất vào những năm gần đây để trích chọn đặc trưng có sự biến động phức tạp như mắt, môi,… 1.4.1.1 Phân tích mức thấp (Low-level analysis) Người ta gọi là phân tích mức thấp vì việc phân tích ở đây là phân tích dựa trên các đặc trưng rất cơ bản và mang tính trực quan, những đặc trưng đó bao gồm biên ảnh, thông tin đa mức xám, màu sắc, chuyển động, tính đối xứng của khuôn mặt. 1.4.1.1.1 Biên ảnh (Edges) Đây là một đặc trưng cơ bản nhất trong các ứng dụng về xử lý ảnh, sử dụng biên để phát hiện khuôn mặt được thực hiện đầu tiên bởi Sakai. Dựa trên việc phân tích các đường ảnh của khuôn mặt, với mục đích là định vị những đặc điểm trên khuôn mặt. Một mô hình được đề xuất để tìm ra những đường nét của mặt người. Công việc tìm ra hình dáng của mặt người được triển khai bao gồm một đường cong bám sát vào khuôn mặt với một độ cong xác định và ràng buộc để tránh sự ảnh hưởng của các nhiễu biên. Những đặc tính của đương trong hình dáng của đầu người sau đó được đưa ra để phân tích đặc trưng sử dụng độ nét và vị trí của khuôn mặt. Kỹ thuật dò tìm dựa vào đường biên này còn được áp dụng để phát hiện cặp kính trên khuôn mặt. Trong hướng tiếp cận phát hiện mặt người dựa vào đường biện, những đường biên cần được gán nhãn và được phù hợp với mô hình khuôn mặt được sắp xếp để có thể giúp chúng ta xác minh sự đúng đắn của việc phát hiện đó. Người ta có thể thiết lập sự gán nhãn biên đó bằng các sử dụng mặt trái, đường tóc hoặc mặt phải của khuôn mặt. Việc gán nhãn này làm cho khả năng phát hiện chính xác khuôn mặt trong một bức ảnh với không gian phức tạp và có nhiều khuôn mặt. Một trong những phương pháp được biết đến đó là phương pháp gán nhãn của Govindaraju, phương pháp này sử dụng hệ số vàng của khuôn mặt lý tưởng , đó là hệ số giữa độ dài và độ rỗng của khuôn mặt: (I.1) Sử dụng phương pháp này, người ta đã kiểm thử 60 ảnh có nền phức tạp bao gồm 90 khuôn mặt thì thấy khả năng hệ thống có thể phát hiện chính xác là 76% với mức độ trung bình là sai 2 mặt lỗi / ảnh. 1.4.1.1.2 Thông tin đa mức xám (Grayscale Information) Bên cạnh đường biên, thì thông tin về mức xám trong khuôn mặt cũng có thể được xem như là một đặc trưng. Những đặc trưng khuôn mặt như là lông mày, động tử hay, môi thương xuất hiện với mức xám lớn hơn những thành phần phụ cận bao quanh chúng. Tính chất này có thể được khai thác để phân biệt các thành phần khác nhau của khuôn mặt. Những thuật toán trích chọn đặc trưng khuôn mặt gần đây thường dựa vào mức xám nhỏ nhất trong một vùng khuôn mặt. Trong những thuật toán này, bức ảnh đầu vào đầu tiên được cải thiển bằng viêc làm tăng độ tương phản và biến hình mức xám (gray-scale morphological) để có thể tăng độ tối của những vùng nói trên, từ đó việc nhân biết sẽ dễ dàng hơn. Những vùng tối này được trích chọn bằng phép lấy ngưỡng dưới. Bên cạnh đó, người ta đã tiến hành xây dựng hệ thống tự động tìm kiếm các vùng tối thuộc mặt thông qua sự phân tích về màu sắc. Hệ thống sử dụng một mẫu mắt gán trọng số để xác định cac vị trí có thẻ có của cặp mắt. 1.4.1.1.3 Màu (color) Trong khi thông tin về mức xám được xem là một đặc trưng cơ bản của ảnh, màu sắc có ý nghĩa nhiều trong việc nhận biết sự xuất hiện của đối tượng. Một trong những không gian màu được biết đến rỗng rãi nhất đó là không gian RGB, đó là không gian mà mỗi màu được đĩnh nghĩa bởi sự kết hợp của ba thành phần màu là Red, Green và Blue. Do đó sự thanh đổi chủ yếu trong màu sắc của da đó là do sự thay đổi về độ chói, thông thường các màu RGB được coi trọng hơn, do đó, ảnh hưởng của độ chói có thể được lọc bỏ. Người ta có thể chuẩn hóa các thành phần màu từ RGB thành rgb như sau: (I.2) Từ hệ thức trên chúng ta có thể thấy rằng r+g+b = 1. Việc chuẩn hóa màu này có ý nghĩa là, chỉ cần viết hai trong số ba giá trị trên là chúng ta có thể tìm ra giá trị còn lại. Trong việc phân tích màu sắc của da, một biểu đổ màu dựa vào r và g chỉ ra rằng màu của khuôn mặt tập trung thành một cụm nhỏ trong biểu đồ mức xám. Để so sánh thông tin màu của một pixel với giá trị của r và g trong cụm trên, và từ đó tạo ra khả năng các pixel thuộc vùng da của mặt có thể được tìm ra. Bên cạnh mô hình RGB, chúng ta còn có một vài mô hình màu khác được sử dụng trong việc nghiên cứu vấn đề nhận dạng mặt người. Mô hình HIS là một ví dụ, mô hình này có những ưu điểm so với các mô hình khác trong việc mang lại sự phân biệt rõ ràng giữa các cụm màu của các đặc trưng khuôn mặt. Do đó mô hình này thường được sử dụng cho công việc trích chọn đặc trưng của khuôn mặt như môi, mắt, lông mày. Do việc này có quan hệ chặt chẽ với việc cảm thụ màu sắc ở con người, nó cũng được sử dụng phổ biến trong các sơ đồ phần vùng khuôn mặt. Một mô hình khác được biết đến trong việc áp dụng để nhận dạng khuôn mặt đó là mô hình YIQ. Để chuyển đổi từ không gian màu RGB sang không gian YIQ, chúng ta thấy có thành phần I, đó là khoảng màu từ cam (orange) -> xanh lơ (Cyan), giống như khoảng màu của da người châu á. Việc chuyển đổi này cũng ảnh hưởng tới việc triệt tiêu nền các màu khác và cho phép nhận biết những khuôn mặt nhỏ trong một môi trường tự nhiên. Các mô hình màu khác cũng được áp dụng cho việc nhận biết mặt người còn có HSV, YES, YCrCb, YUV, CIE-xyz, L*u*v, CSN và UCS(Farnsworth). Việc phân vùng màu có thể được thực hiện bằng việc sử dụng các ngưỡng xấp xỉ màu khi màu da được mô hình hóa thông qua biểu đồ mức xám. Phương pháp phức tạp hơn đó là sử dụng phương pháp tính toán thống kê, sự thay đổi khuôn mặt của mô hình là trong một phổ rộng. Người ta đã tiến hành sử dụng phân phối Gaussian để tập hợp hàng ngàn mẫu màu của da từ các loài khác nhau. Phân phối Gaussian được đặc trưng bởi vector trung bình µ và ma trận hiệp phương sai ∑. Màu của điểm ảnh từ ảnh đầu vào có thể được so sánh với màu da của mô hình bằng cách tính hệ số khoảng cách Mahalanobis. Hệ số này sẽ cho biết độ tương đồng của màu pixel với màu da của mô hình. Một ưu điểm của mô hình màu dựa vào phương pháp thống kê đó là sự sai khác về màu của những đối tượng mới có thể được phù hợp vào mô hình bằng phương pháp huấn luyện. Sử dụng phương pháp này, sự nhận biết màu có thể sẽ hiệu quả hơn, chống lại sự thay đổi của các nhân tố môi trường như là điều kiện chiếu sáng và đặc tính riêng của máy ảnh. 1.4.1.1.4 Chuyển động Nếu như chúng ta phát hiện khuôn mặt cho video, khi đó thông tin về sự chuyển động, cử chỉ, dáng điệu có ý nghĩa rất lớn trong việc xác định đối tượng chuyển động. Các chuyển động liên tục kế nhau được phân chia bằng việc phân tích các frame khác nhau. Hướng tiếp cận này, nói chúng là khá đơn giản, được hộ trợ để phân biệt một chuyển động cận cảnh và có hiệu quả không phụ thuộc điều kiện nội dung bối cảnh. Bên cạnh vùng mặt, người ta còn tiến hành thực hiện trên nhiều frame khác nhau để định vị các đặc trưng của khuôn mặt. Như là trạng thái của đôi mắt bằng cách tính toán độ lớn về chiều ngang và chiều dọc giữa những vùng liên tiếp nhận được trong các frame khác nhau. Một cách khác để có thể tính toán các chuyển động trực quan đó là thông qua việc ước lượng sự chuyển động của các đường viền của ảnh. So sánh các frame khác nhau, kết quả có được từ sự chuyển động của các đường viền là có thể tin cậy, đặc biệt là khi chuyển động đó là không quan trọng. Một bộ lọc Gaussian có tính không gian và thời gian được sử dụng bởi hệ thống McKenna để phát hiện chuyển động của vùng bao khuôn mặt cũng như vùng bao toàn bộ cơ thể con người. Tiến trình này yêu cầu giá trị mức xám của ảnh I(x,y) với một toán tử biên phụ thưộc thời gian m(x,y,t) được định nghĩa từ bộ lọc Gaussian G(x,y,t) như sau: (I.3) Trong đó u là hệ số thời gian, a là độ rộng bộ lọc. Toán tử biên phụ thuộc thời gian sau đó được nhân chập với các frame của ảnh theo bởi công thức: (I.4) Kết quả của tiến trình xử lý miền thời gian này S(x,y,t) sẽ cho ta một chỉ số trực tiếp của sự chuyển động biên trong I(x,y,t). Mặc dù phương pháp này miêu tả việc nhận biết biên và vùng chuyển động, nhưng chúng cũng cho phép chúng ta tin vào sự chính xác của việc ước lượng tốc độ của chuyển động luồng sáng hay còn gọi là luồng quang (optical flow). Bởi vì việc ước lượg này dựa trên các mẫu chuyển động trong một khoảng ngắn, và có cảm giác như chuyển động đó là rất trơn và mịn. Dựa vào thông tin của chuyển động, khuôn mặt chuyển động trong ảnh tuần tự được phân vùng. Luồng quang được mô hình bởi luồng ảnh với phương trình ràng buộc sau đây: (I.5) Trong đó, Ix, Iy và It là các đạo hàm miền thời gian của cường độ ảnh và Vx và Vy là tốc độ chuyển ảnh. Để giải phương trình trên cho Vx, Vy, một vùng bao gồm các điểm ảnh chuyển động theo một quỹ đạo được ghi nhận. Những vùng đáp ứng tới những quỹ đạo chuyển động khác nhau được phân lớp trong vùng chuyển động và vùng không chuyển động. 1.4.1.1.5 Tiểu chuẩn suy rộng (Generalized Measure) Những đặc trưng trực quan như đường biên, màu sắc hay chuyển động là giai đoạn đầu tiên trong hệ thống quan trắc con người. Quá trình này cho phép những thông tin trực quan được tổ chức lại thành những nhóm hoạt động mức cao. Dựa vào việc quan sát, Reisfeld đã đề xuất rằng một hệ thống quan sát bằng máy nên được bắt đầu với việc tính toán mức thấp ở giai đoạn tiền tập trùng các tính chất ảnh được tổng hợp. Ban đầu, Reisfeld và Yeshurun đã giới thiệu một toán tử đối xứng tổng quát dựa vò toán tử điểm biển. Do những đặc trưng của khuôn mặt có tính đối xứng một cách tự nhiên. Khi thực hiện, toán tử đối xứng này sẽ tính toán và gán cho mỗi điểm ảnh một cường độ gọi là cường độ điểm ảnh dựa trên mức độ ảnh hưởng của vùng bao điểm dó. Cường độ đối xứng đó , Mσ(p), cho mỗi điểm ảnh được xác định bằng: (I.6) Trong đó, C(i,j) là mức độ ảnh hưởng của vùng biên điểm i,j (của pixel) trong tập các pixel được đĩnh nghĩa bởi Г(p). Nó được xác định theo công thức: (I.7) Trong đó, D(i,j) là hàm hệ số độ dài, P(i,j) là hàm hệ số phase, ri và rj được xác định theo công thức dưới đây: (I.8) Trong đó pk chỉ điểm (xk, yk) với k = 1…K, là gradient của cường độ tại điểm pk,αij là góc theo chiều ngược kim đồng hồ giữa đường thằng qua pi và pj so với mặt ngang. Hình dưới đây miêu tả một ví dụ về cách tính Mσ(p) từ gradient của mătj trước ảnh mặt người. Cường độ đối xứng được tham chiếu một cách rõ ràng thể hiện sự định vị các đặc trưng của khuôn mặt như là mắt và miệng. 1.4.1.2 Phân tích đặc trưng (Feature analysis) Những đặc trưng được tạo ra từ quá trình phân tích mức thấp thực ra là không rõ ràng. Quả vậy, trong việc định vị vùng mặt sử dụng mô hình màu da, các đối tượng có cùng màu nền tương tự như màu da có thể cũng được nhận biết. Điều này có thể được giải quyết bằng việc phân tích mức cao. Trong nhiều kỹ thuật nhận biết khuôn mặt, những tích lũy hiểu biết hình thái về khuôn mặt đó sẽ được áp dụng để có thể đặc tính hóa và để xác minh lại những đặc trưng đó từ những trạng thái mập mờ. Có hai hướng tiếp cận trong ứng dụng về hình thái khuônn mặt. Hướng tiếp cận đầu tiên liên quan đến chiến lược truy tìm đặc trưng dựa vào mối quan hệ về vị trí dựa các đặc trưng. Những đặc trưng được nhận biết nhờ các đặc trưng đã tồn tại. Kỹ thuật thứ hai đó sử dụng kỹ thuật nhóm đặc trưng thnàh các “chòm sao” bằng cách sử dụng một số mô hình khuôn mặt khác nhau. 14.1.2.1 Tìm kiếm đặc trưng Việc truy tìm các đặc trưng của khuôn mặt là truy tìm các đặc trưng nổi bật của khuôn mặt bằng cách dựa vào hình thái của chúng. Việc truy tìm này dựa vào mối quan hệ dựa các đặc trưng đó về khoảng cách hình học, vị trị trong khuôn mặt. Nhiều thuật toán, mô hình đã được xây dựng cho công việc này. De Silva là một thuật toán tiêu biểu. Mô hình của Jeng cũng là hệ thống phát hiện đặc trưng được biết đến rỗng rãi. Trong hệ thống này, việc khởi tạo sẽ được xác định bằng việc định vị vị trí của đôi mắt trong bức ảnh. Từ việc xác định đôi mắt, quá trình sẽ truy tìm các đặc trưng khác như mũi, miệng và động tử. Mỗi đặc trưng sau khi truy tìm đều thiết lập các hàm quan hệ với các đặc trưng khác, điều này giúp cho việc xác định khuôn mặt có thể tin cậy hơn, các hàm quan hệ này chính là các hệ số được miêu tả như trong đẳng thức dưới dây: (I.9) Bên cạnh đó, nhiều hệ thống truy tìm đặc trưng cũng được đề xuất như hệ thống GAZE của Herpers dựa vào sự chuyển động của mắt trong hệ thống trực quan con người HVS. Điểm cốt yếu của hệ thống là thuật toán định vị các đặc trưng nổi bạt. Một thuật toán đa mức sử dụng bộ lọc đa hướng Gaussian. 1.4.1.2.2 Phân tích “chòm sao” Một vài thuật toán đề cập đến trong phần trên có độ tin cậy phụ thuộc vào mức đột đúng đắn về thông tin được tìm ra từ các tập mô hình ảnh mặt với dưới những điều kiện cố định. Nếu như khi điều kiện đó không còn thỏa mãn, như là định vị khuôn mặt trong một bối cảnh phức tạp, nhiều thuật toán có thể không còn chính xác. Vì vậy vấn đê đặt ra là làm thế nào để chúng ta có thể nhóm các đặc trưng khuôn mặt đó lại thành từng chùm với những tham số đại diễn chung nhất, phản ánh được hết các trường hợp xẩy ra của các đặc trưng, bằng việc sử dụng phương pháp mô hình hóa hiệu quả như là phương pháp phân tích thống kê. Nhiều phương pháp nhóm thành các “chòm sao” được đề xuất. Trong đó nổi bật là phương pháp sử dụng lý thuyết độ nét thống kê từ bộ lọc đa cấp Gaussian. Một mô hình thống kê trong miền không gian của các đặc trưng khuôn mặt cho phép phát hiện một cách linh hoạt hơn. Thuật toán hộ trợ việc quản lý sự thiếu hụt đặc trưng cũng như cho phép sử dụng các hệ số mở rộng. Mức độ ._.thành công của mô hình này là 84% khi nghiên cứu tập 150 bức ảnh. Việc phát hiện sai được xác định là do hệ số phụ thuộc của đặc trưng đầu. Mô hình thống kê cho ảnh có sự xuất hiện nhiều khuôn mặt cũng được đề xuất, trong mô hình này, các khuôn mặt được phân lớp thành từng nhóm với những đặc trưng chung nhất. Những nhóm này lại được phân lớp tiếp trong các thành phần đặc trưng khuôn mặt. Sau khi đặc trưng này nhận được từ việc xử lý mức thấp. Việc nhóm đặc trưng này có tác dụng giảm bớt sai số đặc trưng sinh ra do ảnh hưởng của bối cảnh hỗn tạp. Một mạng theo luật Bayesian sẽ được hỗ trợ kết hợp với việc phát hiện riêng cho từng nhóm đặc trưng để có thể chắc chắn rằng giả thuyết về sự đúng đắn của khuôn mặt có được sự tin cậy với mức độ cao. Hệ thống sử dụng phương pháp này nổi tiếng nhất là hệ thống của Maio và Maltoni. Trong hệ thống này ảnh đầu vào được chuyển đổi trực tiếp bằng cách sử dụng một toán tử gradient có cửa sổ 7*7. Từ ảnh chuyển đổi trực tiếp này, người ta áp dụng hai giai đoạn nhận biết khuôn mặt. Ảnh được nhận biết sẽ được khoanh vùng trong một hình ellipse. Hệ thống của Maio và Maltoni là hệ thống thời gian thực với mức độ phát hiện khi test là 69/70 bức ảnh mà không bị một lỗi nào. 1.4.1.3 Các mô hình hình dạng tích cực (Active shape models) Đây là mô hình thời gian thực hiệu quả và là thành tựu quan trọng của hướng tiếp cận dựa vào phân tích đặc trưng. Mô hình dựa vào tính chất vật lý thật sự và sự xuất hiện mức cao của các đặc trưng. Mô hình ASM tương tác với các đặc trưng ảnh cục bộ (biên, độ sáng) và dần dần làm biến dạng độ nét của đặc trưng đó. Co ba dạng của mô hình ASM đang được nghiên cứu. Đầu tiên là mô hình sử dụng một đường đi kích hoạt (active contour) gọi là snakes (dạng con rắn). Mô hình thứ hai là mô hình dữa vào các dạng mẫu biến đổi (deformable templates) cho phép thực hiện hiệu quả hơn mô hình snakes. Mô hình thứ ba là mô hình Smart snakes (con rắn hoạt thông minh) và PDM (mô hình phân bố điểm). Mô hình này dựa trên tập các điểm được gán nhãn và chỉ cho phép biến đổi theo một vài hình dạng dựa trên quá trình học. 1.4.1.3.1 Mô hình dạng con rắn (Snake) Được sử dụng để xác định đường bao của đầu. Để thực hiện việc này, một con rắn ban đầu được khởi tạo tại một vùng lân cận xung quanh vùng biên đầu. Sau đó co dần về phía các đường biên và đưa ra hình dạng giả định của vùng đầu. Sự tiến hóa của con rắn đựoc thực hiện thông qua việc cực tiểu hóa một hàm năng lượng dạng Esnake (tương tự như trong vật lý) và được biểu diễn như sau: Esnake = Ebên trong + Ebên ngoài (I.10) Trong đó Ebên trong và Ebên ngoài lần lượt là các hàm năng lượng bên trong và bên ngoài. Năng lượng bên trong là phần năng lượng phụ thuộc và các thuộc tính bản chất của con rắn và tạo nên sự tiến hóa tự nhiên của đường biên động. Các tiến hóa tự nhiên và điển hình của con rắn là sự co ngắn và sự mở rộng. Trong khi đó, năng lượng bên ngoài có khuynh hướng chống lại năng lượng bên trong và làm cho các đường biên động sai lệch so với tiến hóa tự nhiên thậm chí thừa nhận hình dạng của các đặc tính gần nhất là hình dạng của vùng đầu khi ở trạng thái cân bằng. Hai vấn đề chính cần quan tâm trong việc áp dụng mô hình con rắn là lựa chọn cách tính năng lượng chính xác và kỹ thuật cực tiểu hóa hăng lượng. Năng lượng Elastic được sử dụng phổ biến như là năng lượng bên trong. Khoảng cách giữa các điểm điều khiển trên đường biên động được cân đối và do đó đem lại cho đường biên đặc tính giống như sợi dây cao su có thể co hoặc dãn. Vấn đề năng lượng bên ngoài được xem xét dựa vào kiểu dạng của đặc trưng ảnh được xem xét. Có thể tính năng lượng này theo các thông số gradient. Và theo cáchnày, các đường biên động thường hội tụ về phía các vị trí biện. Bên cạnh các thông số về gradient, mộ số cách tính năng lượng bên ngoài khác còn bao gồm cả các hàm liên tục liên quan đến màu da trong đó hấp dẫn các con rắn về phía các vùng mặt. Mặc dù phương pháp con rắn một cách tổng quát có thể xác định đựoc các đường bao quanh các vùng đặc trưng nhưng việc triển khai phương pháp vẫn bị cản trở bởi hai vấn đề. Thứ nhất là các phần của con rắn hay bị bẫy vào các vùng đặc trưng ảnh không đúng. Thứ hai là phương pháp con rắn không thực sự hiệu quả trong xác định các đặc trưng không lồi (đặc trưng xuất hiện nổi bật) do xu hướng tiến tới cực tiểu độ cong của con rắn. 1.4.1.3.2 Dạng mẫu có thể biến đổi (Deformable templates) Xác định đường bao của một vùng đặc trưng khuôn mặt không phải là một vấn đề dễ giải quyết bởi vì các dấu hiệu cục bộ của các đường biên mặt khó có thể đựoc tổ chức thành các thự thể tổng thể nhận biết thông qua các đương biên. Độ tương phản thấp về độ sáng xung quanh một số vùng đặc trưng ảnh cũng làm cho quá trình do tìm biên khó thực hiện. Yuille và cộng sự đã mở rộng khái niệm con rắn thông qua việc kết hợp các thông tin tổng thể về cặp mắt để nâng cao độ tin cậy của quá trình trích chọn đặc trưng. Một mẫu có thể thay đổi của mắt dựa trên các đặc trưng nổi bật của chúng được tham số hóa sử dụng 11 tham số. Hoạt động theo nguyên tắc giống như con rắn, một mẫu nếu được khởi đầu gần với các đặc trưng mắt sẽ tự biến đổi hướng tới đường bao đặc trưng tối ưu. Cơ chế biến đổi liên quan đến phương pháp cực tiểu hóa giảm gradient dốc nhất của tổ hợp năng lượng ngoài do các vùng trũng, đường biên, đỉnh và độ sáng của ảnh (Ev, Ee, Ep, Ei) được tính theo công thức: E = Ev+ Ee+ Ep+ Ei + Ebên trong (I.11) Tất cả các biểu thức năng lượng trên được biểu diễn bằng một tích phân sử dụng các thuộc tính mẫu như diễn tích và độ dài của đường tròn và đường parabol. Có thể thấy rằng, chiến lược đối sánh mẫu là cố định, do đó vị trí khởi đầu của các mẫu sẽ ảnh hưởng nhiều đến quá trình tiến hóa. Người ta đã chỉ ra rằng, nếu mẫu được khởi đâu tại trên mắt thì nó sẽ bị hấp dẫn bởi lông mày thay vì cặp mắt. Ngoài ra, thời gian xử lý cũng sẽ rất lớn trong quá trình thực hiện cực tiểu hóa. Vì vậy những nghiên cứu gần đầy tập trung vào việc giảm thời gian thực hiện, thay đổi các mẫu và biểu thức năng lượng. Trong một phát triển gần đây, Lam và Yan sử dụng các thông tin về góc mắt để đánh giá các tham số khởi đầu của mô hình mẫu mắt. Sự gia tăng về thông tin làm cho phép so sánh mẫu sẽ chính xác, tin cậy hơn. Thời gian để mẫu đạt được vị trí tối ưu cũng đã giảm đến 40% (so sánh với mẫu ban đầu). Bên cạnh mẫu mắt, các mẫu miệng cũng được sử dụng với cùng một chiến lược. 1.4.1.3.3 Mô hình phân phối điểm (PDM – Point Distributed Models) Là một mô hình mô tả tham số hóa tối ưu của hình dạng dựa trên phưong pháp thống kê. Kiến trúc của quá trình so khớp của PDM khác với các mô hình hình dạng động khác. Các đương biên đọng của PDM được rời rạc hóa thành các tập điểm được đánh nhãn. Sự biến đổi của các tập điểm này trước hết được tham số hóa thông qua các tập mẫu học.chứa các đối tượng có hình dạng và tư thé khác nhau. Sử dụng phương pháp phân tích thành phần chính PCA, sự biến đổi của các đặc trưng trong tập mẫu học được xây dựng thành một mô hình linh động tuyến tính. Mô hình đựoc cấu thành từ trung bình của tất cả các đặc trưng trong tập hợp và mô hình cơ bản của sự biến đổi từng điểm ảnh: x = xtb + Pv (I.12) Trong đó, x biểu diễn một điểm trong PDM và xtb là đặc tính trung bình trong tập mẫu đối với điểm đó, P = [p1, p2, …, pt ] là ma trận chưa t vector biến đổi quan tọng nhất của ma trận hiệp phương sai, còn v là vector trọng số. Mô hình PDM đầu tiên đựoc phát triển bới Lanitis và cộng sự. Mô hình minh họa dáng vẻ tổng thể của khuôn mặt bao gồm đặc tính như lông mày, mũi, mắt. Sử dụng 152 điểm điều khiển được chọn bằng tay và 160 ảnh mặt mẫu, một mô hình PDM được xây dựng. Chỉ sử dụng 16 trọng số, mô hình có thể xấp xỉ được 95% các hình dạng khuôn mặt trong tập mẫu. Để so khớp một môhnhf PDM với một mặt, mô hình hình dạng trung bình (với điểm đánh nhãn là xtb) đầu tiên được đặt gần mặt. Sau đó các chiến lược tìm kiếm trên mức xám cục bộ được sử dụng để đưa từng điểm hướng đến điểm tưng ứng thuộc đường bao. Trong suốt quá trình biến đổi này, hình dạng chỉ được phép thay đổi theo một cách phù hợp với các thông tin đựoc mô hình hóa trong tập mẫu. Ưu điểm cua PDM là sử dụng mô hình khuôn mặt với các tham số tối ưu. Đặc tính tổng thể của mô hình cũng cho phép tất cả các đặc trưng được xác định song song với nhau và do đó giảm bớt đựoc yêu cầu phải tìm kiếm lần lượt các đặc trưng. Hơn nữ, sự thiếu vắng một đặc trưng nào đó không phảilà một vấn đề nghiêm trọng khi mà đến các đặc trưng khác trong mô hình vẫn có thể đạt tới một giải pháp tối ưu toàn thể. 1.4.2 Hướng tiếp cận dựa trên thông tin xuất hiện trong ảnh (Image-based approach) Hạn chế của hướng tiếp cận dựa vào đặc trưng của hình ảnh đó là khả năng nhận biết nhiều khuôn mặt trong một bức ảnh có bối cảnh phức tạp là không cao cho dù đã có nhiều nỗ lực cải tiến và nâng cao chất lượng dò tìm. Điều đó đòi hỏi một phương pháp mới, một hướng tiếp cận mới để giải quyết vấn đề này. Và hướng tiếp cận dựa vào thông tin hình ảnh là hướng tiếp cận có thể đáp ứng nhu cầu đó. Hầu hết các phương pháp trong hướng tiếp cận này đều sử dụng chung một kỹ thuật đó la kỹ thuật quét cửa sổ hay còn gọi là kỹ thuật quét khung nhìn để nhận biết khuôn mặt. Thuật toán quét cửa sổ sẽ dò tìm trong ảnh đầu vào tất cả các khuôn mặt có thể có trong ảnh. Kích thước của cửa sổ, hệ số lấy mẫu, kích thước của bước quét phụthuộc vào mục đích của phương pháp cũng như hiệu năng của hệ thống. Nhận biết khuôn mặt dữa vào thông tin hình ảnh được chia làm ba hướng nghiên cứu con chính đó là phương pháp không gian con tuyến tính, phương pháp dựa vào mạng neural và phương pháp thống kê. 1.4.2.1. Phương pháp không gian con tuyến tính (Linear Subspace Methods) Hình ảnh của khuôn mặt con người nằm trên một không gian con của toàn bộ không gian hình ảnh. Để thể hiện không gian con này, người ta có thể sử dụng phương pháp về thần kinh, tuy nhiên vẫn có vài phương pháp có liên quan chặt chẽ hơn với phân tích thống kê độ biến thiên tiêu chuẩn cái mà có thể ứng dụng được. Các kĩ thuật trong phương pháp này bao gồm phân tích thành phần chính (PCA principal component analysis), phân tích biệt số tuyến tính (LDA), và phân tích hệ số (FA). Vào cuối những năm 80, Sirovich và Kirby phát triển một kĩ thuật sử dụng PCA để thể hiện hiêụ quả khuôn mặt con người. Đưa ra sự giống nhau giữa nhiều hình ảnh khuôn mặt khác nhau, kĩ thuật này đầu tiên tìm ra những thành phần cơ bản của sự phân bố trên khuôn mặt, thể hiện bằng eigenvectors của ma trận các biến của bố cục. Từng khuôn mặt trong một tập hợp các khuôn mặt sau đó có thể tính xấp xỉ bằng sự kết hợp tuyến tính giữa những eigenvector lớn nhất, được biết tới như eigenfaces. Turk và Pentland sau đó đã mở rộng kĩ thuật này cho nhận dạng khuôn mặt. Cách thức của họ khai thác tính tự nhiên căn bản của eigenfaces trên định dạng khuôn mặt. Bởi vì sự tái tạo khuôn mặt bằng các thành phần cơ bản của nó chỉ là sự gần đúng, sai số còn dư được định nghĩa trong giải thuật như sự đo lường sơ bộ của mặt. Sai số còn dư này cho ta dấu hiệu tốt của sự tồn taị của khuôn mặt thông qua quan sát mức tối thiểu chung trên bản đồ khoảng cách. Gần đây hơn, Moghaddam và Pentland đã phát triển xa hơn kĩ thuật này trong phạm vi xác suất. Khi sử dụng PCA để định dạng, người ta thường bỏ đi phần bù trực giao của không gian khuôn mặt (như đã đề cập trước đó). Moghaddam và Pentland phat hiện ra rằng điều này dẫn tới giả thiết không gian khuôn mặt có mật độ không đổi, do đó họ mở rộng máy dò sự giống nhau tới cực đại, dùng cả không gian khuôn mặt và phần bù trực giao của nó để xử lí mật độ bất kì. Họ ghi nhận tỉ lệ định dạng là 95% trên tập hợp của 7000 hình ảnh khuôn mặt khi định dạng mắt trái. So sánh với máy dò DFFS thì tốt hơn rất nhiều. Khi dò đầu của 2000 hình ảnh khuôn mặt từ dữ liệu của FERET, tỉ lệ dò là 97%. Jebara và Pentland đã đưa kĩ thuật này vào hệ thống truy tìm khuôn mặt người dựa vào cả màu sắc, 3D và thông tin về chuyển động. Một cách tiếp cận tương tự là PCA được áp dụng cho tập hợp khuôn mặt và mẫu giống khuôn mặt, cùng với tiêu chuẩn lựa chọn dựa vào tỉ lệ giống nhau. Samal và Iyengar đưa ra cách dò khuôn mặt PCA dựa trên hình chiếu khuôn mặt. Thay vì khuôn mặt eigen, họ tạo ra hình chiếu eigen và kết hợp với kĩ thuật xử lí hình ảnh tiêu chuẩn. Họ ghi nhận tỉ lệ dò là 92% trên tập hợp 129 hình ảnh (66 hình ảnh khuôn mặt thực và 63 hình ảnh thông thường), trong đó khuôn mặt chiếm hầu hết hình ảnh. 1.4.2.2 Phương pháp dựa vào mạng Neural Mạng neural đã trở thành một kỹ thuật phổ biến trong vấn đề nhận dạng khuôn mặt và tất nhiên là trong cả nhận biết khuôn mặt. Mạng neural ngày nay đã có nhiều thay đổi so với sơ khai đơn giản MLP của nó. Hệ thống dò tìm khuôn mặt thực hiện qua bốn bước chính [6]: Ước lượng vị trí: việc dùng tiếp cận máy học, cụ thể là mạng neural, đòi hỏi việc huấn luyện mẫu. Để giảm số lượng biến đổi trong ảnh huấn luyện dương, ảnh được canh biên với các ảnh khác để cực tiểu hoá các biến đổi vị trí đặc trưng khuôn mặt. Khi thi hành chương trình, ta không biết chính xác các vị trí đặc trưng khuôn mặt, do đó không thể dùng chúng để định vị các ứng viên khuôn mặt tiềm năng. Thay vậy, ta dò tìm toàn diện ở mọi vị trí và tỷ lệ để tìm mọi vị trí ứng viên. Các cải tiến dò tìm toàn diện làm cho thuật toán nhanh hơn, với tỷ lệ dò tìm giảm 10% đến 30%. Tiền xử lý: Để giảm các biến đổi gây ra do chiếu sáng hay camera, ảnh được tiền xử lý với các thuật toán chuẩn như cân bằng lược đồ để cải thiện độ sáng và độ tương phản trong ảnh. Dò tìm: Các khuôn mặt tiềm năng đã chuẩn hoá về vị trí, tư thế, và độ sáng trong hai bước đầu tiên được khảo sát để xác định chúng có thực sự là khuôn mặt hay không. Quyết định này được thực hiện bằng mạng neural đã huấn luyện với nhiều ảnh mẫu khuôn mặt và không khuôn mặt. Quyết định: Kết hợp nhiều mạng để có được một quyết định khách quan nhất. Mỗi mạng học những điều khác nhau từ dữ liệu huấn luyện, và đưa ra các lỗi khác nhau. Các quyết định của chúng có thể kết hợp dùng một số heuristic đơn giản, làm tăng độ chính xác dò tìm khuôn mặt và ngăn chặn lỗi. Hình 2: Hệ thống Rowley Hình 3: Sở đồ luồng xử lý các bước chính trong phát hiện khuôn mặt Sơ đồ trên là thuật toán dò tìm khuôn mặt thẳng trong ảnh xám, bằng cách sử dụng mạng noron. Thuật toán thực hiện bằng cách áp dụng một hay nhiều mạng neural trực tiếp với các phần của ảnh đầu vào, và phân xử các kết qủa của chúng. Mỗi mạng được huấn luyện để kết xuất một kết quả là có hay không có khuôn mặt. Huấn luyện mạng neural để dò tìm khuôn mặt là một công việc đầy thách thức, vì khó khăn trong việc biểu thị các ảnh “không khuôn mặt”. Không như việc nhận dạng khuôn mặt, trong đó các lớp phân biệt là các khuôn mặt khác nhau. Hai lớp gọi là phân biệt trong dò tìm khuôn mặt là “ảnh có chứa khuôn mặt” và “ảnh không chứa khuôn mặt”. Dễ dàng lấy được mẫu ảnh chứa khuôn mặt điển hình, nhưng việc lấy mẫu ảnh không chứa khuôn mặt điển hình khó hơn rất nhiều. Ta tránh việc dùng tập huấn luyện có kích thước lớn để biểu diễn không khuôn mặt bằng việc chọn thêm ảnh vào tập huấn luyện khi tiến hành huấn luyện. Phương pháp “bootstrap” nhằm giảm kích thước của tập huấn luyện cần thiết. Việc dùng cách thức xử lý giữa đa mạng và các heuristic để làm rỏ ràng các kết qủa và cải thiện đáng kể độ chính xác của bộ dò tìm. 1.4.2.3. Hướng tiếp cận sử dụng phương pháp thống kê (Statistical Approachs) Bên cạnh phương pháp sử dụng không gian con tuyến tính và phương pháp sử dụng mạng Nơron, còn có một số phương pháp khác tiếp cận theo hướng thống kê để nhận biết khuôn mặt. Những phương pháp này dựa trên cơ sở lý thuyết thông tin, lý thuyết về SVM (Support Vector Machine) và các luật xác suất của Bayes. 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. 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. 1.4.4 Kết luận Nhận biết mặt người là một lĩnh vực đang thu hút nhiều sự quan tâm của các nhà nghiên cứu. Ngày càng có nhiều thuật toán mới, hướng tiếp cận mới nhằm nâng cao chất lượng cũng như độ chính xác của hệ thống dò tìm khuôn mặt. Tuy nhiên do tính phức tạp của môi trường, không gian và bối cảnh cũng như yêu cầu về tính thời gian thực của hệ thống mà cho đến nay, vân chưa có một phương pháp nào thật sự tối ưu. Việc tìm ra phương pháp mới vẫn còn để ngỏ và có thể cần sự trợ giúp của công nghiệp máy tính, đó là sự phát triển của phần cứng, tốc độ xử lý của máy tính. Tổng chung lại thì, nhận dạng mặt người có hai hướng tiệp cận chính, đó là hướng tiếp cận dựa vào những đặc trưng của mặt người và hướng tiếp cận dựa vào thông tin hình ảnh. Hướng tiếp cận dựa vào những đặc trưng của mặt người được áp dụng chủ yếu khi hệ thống yêu cầu tính thời gian thực. Vì khi đó vấn đề về màu sắc và chuyển động của hình ảnh phải được quan tâm. Tuy nhiên, hướng tiếp cận này thì chất lượng phát hiện của hệ thống có thể sẽ không cao, muốn nâng cao, chúng ta phải có thêm những kỹ thuật mới bổ sung và khá phức tạp. Hướng tiếp cận dựa vào thông tin hình ảnh là phương pháp có chất lượng và hiệu quả cao nhất, nhưng chỉ xử lý cho ảnh xám. Và các phương pháp đều sử dụng chung kỹ thuật cửa sổ đa phân giải. Chúng ta có thể không cần sử dụng cửa số quét này nếu kết hợp hướng tiếp cận trên với phương pháp dựa vào đặc tính khuôn mặt như là một bước tiền xử lý. Ứng dụng quan trọng nhất của nhận biết khuôn mặt cho đến hiện nay có lẽ là đó là giai đoạn tiền xử lý cho hệ thống nhận dạng mặt người. Ngoài ra, vơi sự gia tăng của tài nguyên trên Internet, lý thuyết về nhận biết mặt người có thể được ứng dụng để chỉ số hoá nội dung ảnh và cở sở dữ liệu video. Ngoài ra, còn có ứng dụng trong công nghệ sinh trắc học và hội thảo truyền hình. 2. 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 2.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 [7]. 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. 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. 2.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 2.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. 2.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: (I.13) . 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 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. 2.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: (I.14) Ngoài ra còn có thể tính Hue à 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. 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: (I.15) 2.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: (I.16) 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. 2.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: (I.17) 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. 2.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. 2.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. 2.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ố. 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. 2.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. 2.3.2.1 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 (I.18) 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. 2.3.2.2 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 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: (I.19) 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: (I.20) 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._. lại, đó không phải là pixel 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 đại diện bởi màu trắng, còn pixel không phải màu da sẽ được đại diễn bởi màu đen. Kích thước ảnh thử nghiệm là 240 x 480 pixel. 2 2.3 Phân vùng màu da Phần vùng màu da là bước tiếp theo của quá trình nhận biết màu da. Việc phân vùng thực chất là gán nhãn cho từng màu da đã được nhận biết. Mỗi vùng sẽ được gán một nhãn là một chỉ số của vùng. Việc gán nhãn sẽ giúp cho quá trình tìm kiếm khuôn mặt trên vùng được tiện lợi hơn. Một vùng màu da sẽ là tập các pixel cùng màu (đen hoặc trắng) cùng thuộc một vùng liên thông. Như vậy thuật toán tìm và gán nhãn cho tất cả các vùng liên thông sẽ thực hiện quá trình phân vùng này. Như đã biết, cửa sổ khuôn mặt chuẩn được chọn trong hệ thống có kích thước là hình vuông 25 x 25 pixel. Các khuôn mặt sẽ chỉ được tìm kiếm trên vùng màu da. Vì vây ở đây chúng ta sẽ sử dụng một khái niệm gọi là vùng bao chữ nhật. Khái niệm vùng bao chữ nhật của một vùng màu da được đĩnh nghĩa như sau: Vùng bao chữ nhật của một vùng màu da là môt hình chữ nhật có kích thước nhỏ nhất chứa tất cả các điểm của vùng màu da đó. Tọa độ của vùng bao được xác định bằng tọa độ của hai đỉnh góc trái trên phải dưới. Như vậy có thể thấy việc xác định vùng bảo của một vùng màu da là không mấy khó khăn vì tọa độ của chúng chính là giá trị tọa độ nhỏ nhất (ứng với đỉnh góc trái trên) và giá trị tọa độ lớn nhất (ứng với đỉnh góc phải dưới). Như vậy quá trình tìm kiếm khuôn mặt chỉ được diễn ra trong các vùng bao chữ nhậtg này. Có nghĩa là các cửa số được trích chọn phải nằm hoàn toàn trong vùng bao. Kết quả của ảnh phân vùng màu da có thể nhìn thấy trong ảnh dưới đây. Tại đó mọi vùng màu da đều được bao bởi vùng bao chữ nhật của mình. Hình 22: Ảnh trước và sau khi phân vùng màu da Việc định nghĩa khái niệm vùng bao chữ nhật không những giúp chúng ta xác định rõ ràng vùng tìm kiếm khuôn mặt cho một bức ảnh, nó giúp cho việc trích chọn mọi cửa số được dễ dàng hơn mà nó còn giúp chúng ta lọc bớt những vùng màu da chắc chắn không phải khuôn mặt. Thật vậy, dễ nhận thấy kích thước tối thiểu của khuôn mặt có thể nhận biết được là 25 x 25 pixel. Chính vì vậy sẽ không thể có khuôn mặt đối với những vùng bao có kích thước một trong hai chiều nhỏ hơn 25 pixel. Sử dụng ngưỡng này chúng ta có thể lọc đi khá nhiều vùng bao màu da. Ví dụ đối với ảnh trên, sau khi phân vùng, chúng ta có 13 vùng bao màu da, tiến hành lọc vùng bao chúng ta chỉ còn lại 3 vùng bao là có thể chưa khuôn mặt. Toàn bộ kết quả của quá trình lọc khởi tạo, nhận biết màu da, phân vùng màu da và lọc vùng bao được thể hiện như hình dưới đây: 3. Mạng neural phát hiện khuôn mặt 3.1 Mô hình mạng Neural 3.1.1 Mô hình Như đã đề cập trong phần trước, hình vẽ trên cho ta mô hình mạng neural sử dụng trong đồ án. Đây là mạng MPL bao gồm ba lớp. Lớp đầu vào có 625 đầu vào đúng bằng kích thước 25 x 25 của cửa sổ ảnh. Lớp ẩn gồm 16 nút ẩn và lớp ra gồm hai nút. Toàn bộ kết nối trong mô hình đều là kết nối đầy đủ (full connection). Có thể nói mang neural là một kiến trúc mở, và cho đến nay chưa có một lý thuyết nào khẳng định phải sử dụng mô hình neural nào đó cho bài toán nào đó, việc sử dụng mô hình mạng neural phụ thuộc rất nhiều vào kinh nghiệm. Với một bài toán có thể nhiều mô hình mạng khác nhau cùng cho một kết quả. Vấn đề quan trọng hiện nay của mạng neural đó chính là quá trình huấn luyện mạng. Trong mô hình mạng neural MPL này, chúng ta sẽ sử dụng thuật toán lan truyền ngược (Backprobagation) để tiến hành học mạng, phương pháp giảm lỗi được sử dụng là phương pháp giảm gradient với hàm truyền hay hàm kích hoạt là hàm sigmoid. Toàn bộ thuật toán và lý thuyết về vấn đề này đã được đề cập đến trong chương I của đồ án. Ở đây không nhắc lại mà chỉ xin nêu lại đặc tính của hàm truyền sigmoid, một tính chất quan trọng ảnh hưởng tới mô hình mạng neural đã chọn. Hàm truyền sigmoid logistic dạng S, có đầu ra nằm trong khoảng (0,1) được viết như sau: (III.7) Và hình vẽ dưới đây miêu tả quan hệ vào ra của hàm sigmoid trong mặt phẳng đềcác Hình 25: Đồ thị biểu diễn hàm sigmoid Giải thuật học ở đây sẽ điều chỉnh trọng số của các kết nối giữa các nút mạng để hàm này ánh xạ giá trị trị của x sang dạng nhị phân thông thường: f(x) > 0.9 : f(x) = 1 f(x) < 0.1 : f(x) = 0 Tuy nhiên trong mô hình mạng trong đồ án, thay vì chỉ có một đầu ra tức là sẽ ra quyết định phân lớp cho cửa số là khuôn mặt hay không khuôn mặt ngay khi có được giá trị của f(x), chúng ta sẽ sử dụng hai đầu ra minh họa cho hai trường hợp kết quả mong muốn của f(x). Chúng ta luôn mong muốn rằng f(x) sẽ bằng 0.9 hoặc 0.1 để có thể phân lớp ngay, nhưng trong thực tế giá trị của f(x) lại hay nằm trong khoảng từ 0.1 đến 0.9. Điều này sẽ dẫn đến có thể chúng ta bỏ sót cửa số khuôn mặt. Việc tại sao sử dụng hai đầu ra này còn có được từ mô hình xác suất sẽ được đề cập đến ngay sau đây dựa trên lý thuyết xác suất của Bayes 3.1.2 Mô hình xác suất dựa trên công thức xác suất đầy đủ Bayes [9] Mô hình xác suất này dưa trên lý thuyết xác suất Bayes, nếu chúng ta gọi P(face|window) là xác suất cửa số đầu vào sẽ là cửa số khuôn mặt, P’(face) và P’(nonface) là xác xuất của khuôn mặt và không khuôn mặt trong tập dữ liệu được sử dụng để huấn luyện, khi đó dựa vào công thức xác suất đầy đủ của Bayes chúng ta nhận được công thức: (III.8) Quá trình huấn luyện mạng sẽ ước lượng giá trị của vế trái. Chúng ta lại biết P’(face), P’(nonface) và biết rằng P(windown|nonface) = 1- P(window|face). Thay và phương trình trên và tiến hành rút gọn biểu thức, chúng ta sẽ nhận được công thức sau đây: (III.9) Bây giờ khi tiến hành phân lớp một cửa sổ, chúng ta gọi xác suất của cửa sổ đó là khuôn mặt là P(face), xác suất cửa sổ đó không là khuôn mặt là P(nonface). Chúng ta tiếp tục dùng công thức xác suất đầy đủ của Bayes, sẽ nhận được công thức sau: (III.10) Thay P(window|face) bằng NN Output, chúng ta sẽ nhận được công thức: (III.11) Chúng ta sẽ phân lớp cửa số đó là khuôn mặt nếu như xác suất P(face|window) > 0.5 tương đương với một ngưỡng: (III.12) Do chúng ta sử dụng hàm kích hoạt là hàm tanh, với khoảng giá trị là -1 đến 1, do đó ngưỡng để phân lớp ở đây sẽ là: (III.13) Sử dụng kết quả có được từ mô hình xác suất này, chúng ta xây dựng mô hình mạng neural với hai đầu ra. Một đầu ra sẽ mang giá trị xác suấtcho của sổ là khuôn mặt, một đầu ra sẽ la giá trị xác suất cho cửa sổ không là khuôn mặt. Do sử dụng hàm tanh nên chúng ta sẽ thiết lập giá trị mong muốn đạt đến cho chúng ta 0.1 ứng với đầu ra không khuôn mặt và 0.9 ứng với đầu ra là khuôn măt. Trong quá trình huấn luyện, khi một cửa sổ được huấn luyện, giả sử cửa sổ đó là ảnh khuôn mặt, ta gọi là đã huấn luyện thành công nếu như xác suất đầu ra là khuôn mặt lớn hơn xác xuất đầu ra không là khuôn mặt. Còn khi tiến hành phân lớp, công thức [III.12] cho ta định nghĩa NN Output như là độ tin cậy của quá trình phân lớp, giá trị này được tính bằng hiệu giữa xác suất đầu ra là khuôn mặt trừ đi xác suất đầu ra không là khuôn mặt. Và như vậy, cửa sổ được xếp là lớp khuôn mặt nếu như độ tin cậy của nó vượt quá giá trị ngưỡng threshold. Do chúng ta sử dụng hàm kích họat tăng nên ở đây threshold = 0.8 Tuy nhiên đó không phải là kết quả cuối cùng, mà kết quả cuối cùng chúng ta có được sẽ qua những heuristic để có thể lọc bớt những của sổ có độ tin cậy không cao. 3.2 Huấn luyện mạng 3.2.1 Huấn luyện mạng học ảnh khuôn mặt Với kiến trúc là một mạng mở thì hiệu quả hoạt động của mạng neural phụ thuộc phần lớn vào quá trình huấn luyện mạng. Quá trình đó bao gồm xác định mục đích, chuẩn bị huấn luyện và chiến thuật huấn luyện mạng. Như đã trình bày trong huấn luyện mạng, chúng ta sẽ bao gồm huấn luyện mang nhận biết ảnh khuôn mặt và huấn luyện mạng nhận biết ảnh không phải là khuôn mặt. Tuy nhiên đây là một quá trình huấn luyện đông thời. Với kiến trúc là một mạng neural đơn lẻ, chúng ta không thể cùng một lúc phát hiện mặt ở mọi tư thế, nhìn thẳng và nghiêng, bởi vì nếu như thế trong tập ảnh huấn luyện khuôn mặt, chúng ta phải có đầy đủ các bộ dữ liệu miêu tả các tư thế khác nhau của khuôn mặt. Nhưng khi đó sự sai khác của các ảnh huấn luyện sẽ quá lớn, và điều đó sẽ làm cho mạng học sai và dẫn đến sẽ không học được cái gì cả [6]. Cũng chính vì điều này mà trong tập ảnh khuôn mặt để huấn luyện, sẽ chỉ có ảnh nhìn thẳng hoặc ảnh bị xê dịch như nghiêng, quay, dịch lên hay nhìn xuống với một góc không đáng kể (theo như tài liệu miêu tả trong tâp ảnh tải về, thì độ nghiêng không quá 200) và góc quay không quá 110). Quá trình huấn luyện ảnh khuôn mặt sẽ cố định với tập 1500 ảnh khuôn mặt có sẵn, và nói chung việc huấn luyện ảnh khuôn mặt không có điều gì phải nói thêm. Vấn đề ở đây sẽ là chiến thuật để huấn luyện ảnh không khuôn mặt. Vì thực tế cho thấy, số lượng ảnh không khuôn mặt so với ảnh có khuôn mặt là rất nhiều. Theo một số tài liệu thì với 1500 khuôn mặt thì số ảnh không khuôn mặt tương ứng phải lên đến con số gấp 1000 lần như thế. Để có thể huấn luyện được toàn bộ số ảnh này thật là điều khó khăn. Chính vì vậy một chiến lược giảm bớt số ảnh không khuôn mặt cần huấn luyện là điều vô cùng cần thiết. Hơn thế nữa, mục tiêu của chúng ta sẽ là tiến hành cho mạng học để sau này có thể phân lớp một cửa sổ là khuôn mặt hay không. Có nghĩa là tốt nhất, số lượng mẫu học không khuôn mặt càng gần số mẫu học khuôn mặt càng tốt. 3.2.2 Chiến thuật huấn luyện mạng học ảnh không khuôn mặt Chiến thuật luyện mạng học ảnh không khuôn mặt được xây dựng dựa trên những nhận xét sau đây: Nếu ta gán cho mỗi ảnh không khuôn mặt là một trọng số gọi là giá trị tương ứng với xác suất một mạng có thể nhận biết nhầm nó là ảnh khuôn mặt. Dễ nhận thấy, giá trị của các cửa sổ không khuôn mặt là không giống nhau. Vì khi tiến hành nhận biết, sẽ có những của sổ bị nhận nhầm là khuôn măt, một số cửa sổ khác sẽ không bị nhận nhầm. Rõ ràng trong huấn luyện mạng không khuôn mặt, những của sổ ảnh bị nhận nhầm có giá trị cao hơn nhiều so với những của sổ không bị nhận nhầm. Và chúng ta sẽ chú ý nhiều đến những cửa sổ này. Phương pháp của chúng ta đồng thời được kết hợp với phương pháp phân vùng màu da để giảm không gian tìm kiếm. Việc làm này đã làm cho một số củă sổ sẽ không bao giờ bị nhận nhầm nếu nó không phải thuộc vùng màu da. Và giá trị của những của sổ không khuôn mặt thuộc vùng màu da là rất cao. Đặc biệt là những cửa sổ chứa một bộ phận nào đó của khuôn mặt. Và chúng ta cũng chú ý đến những cửa sổ này. Hai nhận xét trên không phải là đã làm mất hết giá trị của các cửa sổ không bị nhận nhầm là cửa sổ khuôn mặt, bởi đây chính là những cửa sổ có nhiệm vụ khởi tạo cho mạng học, những cửa sổ này sẽ giúp cho mạng phân biệt ranh giới giữa ảnh không khuôn mặt và ảnh khuôn mặt được rõ ràng hơn. Chính vì vậy chúng ta cũng sẽ lưu tâm đến tập của sổ có tính chất tổng quát này. Với ba nhận xét trên chúng ta sẽ thực hiện huấn luyện mạng theo phương pháp huấn luyện mạng chủ động có học sau đây: Bước một: Tạo 100 của sổ là của sổ ngẫu nhiên được lấy từ một số ảnh phong cảnh cây cối nhà của và không chứa khuôn măt. Đồng thời tạo thêm 100 ảnh là tập ảnh thuộc vùng màu da như bộ phân trên cơ thể, và các bộ phân trên khuôn mặt. Bước hai: Tiến hành luyện mạng với bộ dữ liệu này. Lúc này bộ dữ liệu được huấn luyện sẽ bao gồm 200 ảnh không khuôn mặt và hai trăm ảnh khuôn mặt. Sau quá trình huấn luyện với một ngưỡng thành công nào đó (trong đồ án lấy ngưỡng 99% nghĩa là 99% ảnh đầu vào được nhận biết với tính chất của nó). Sẽ tiến hành sang bước ba. Bước ba: Tiến hành nhận biết tập các ảnh được sử dụng để luyện mạng, đây là tập 50 ảnh kích thước 480 * 360 bao gồm ảnh thiên nhiên, ảnh tập thể gia đình, không có, có một hay nhiều khuôn mặt. Sau mỗi lần nhận biết, tiến hành cập nhật tất cả các cửa sổ không phải khuôn mặt nhưng bị nhận nhầm là khuôn mặt vào cơ sở dữ liệu ảnh không khuôn mặt. Sau đó chuyển sang bước hai để tiếp tục luyện mạng. Trong quá trình luyện mạng luôn đảm bảo số lượng ảnh khuôn mặt và không khuôn mặt là luôn luôn bằng nhau. Quá trình này sẽ lặp đi lặp lại cho đến khi chúng ta đạt được tỉ lệ 1000 ảnh không khuôn mặt trong cở sở dữ liệu. Và tỉ lệ thành công đạt mức cao nhất. Đến đây chúng ta kết thúc quá trình luyện mạng. Và trong cơ sở dữ liệu sẽ có bộ tham sô các thông số mạng. Bộ tham số này sẽ được dùng để tiên hành phân lớp, nhận biết khuôn mặt cho một ảnh màu bất kì. Chiến thuật trên đã được sủ dụng để luyện mạng trong đồ án, thời gian luyện mạng là khá lâu. Đồng thời đã được tiến hành với số lượng nút ẩn khác nhau với mong muôn tìm ra một con số phù hợp nhất. Cuối cùng, số lượng nút ẩn đựoc chọn là 16 nút ẩn. Ảnh minh họa dưới đây có thể cho chúng ta thấy quá trình huấn luyện chủ động ảnh không khuôn mặt: 4. Nâng cao chất lượng phát hiện khuôn mặt và cải thiện tốc độ phát hiện Hệ thống phát hiện khuôn mặt sau quá trình huấn luyện đã được thử nghiệm trên một số ảnh màu. Sau quá trình thử nghiệm, đã nhận thấy rằng, chúng ta có thể cải thiện chất lượng phát hiện khuôn mặt đồng thời làm giảm thời gian chạy của hệ thống bằng một vài heuristic đơn giản. Các heuristic chỉ mang tính chất như những mẹo giúp ích cho hệ thống. Và có thể trong trường hợp tổng quát nhất nó không hoàn toàn đúng. 4.1 Heuristic giúp phát hiện khuôn mặt chính xác hơn Tiến hành thử nghiệm chúng ta nhận thấy rằng. Trong một vùng màu da có khuôn mặt, có rất nhiều cửa sổ được phát hiện nhưng chỉ trên cùng một khuôn mặt. Điều này có thể thấy trong hình dưới đây. Hình 27: Ảnh minh họa kết quả khi chưa sử dụng heuristic Có thể thấy, chúng ta luôn mong muôn mỗi khuôn mặt chỉ được phát hiện một lần với độ chính xác cao nhất. Tuy nhiên kết quả ra bao giờ cũng rất nhiều cửa sổ được phát hiện với độ sai khác không nhiều. Đây thông thường là kết quả của quá trình xử lý đa phân giải. Để có thể nâng cao độ chính xác của bộ phát hiện, chúng ta dựa vào mô hình mạng neural để tìm ra các heuristic. Có thể thấy rằng các cửa sổ được phân lớp là khuôn mặt đều có độ tin cậy lớn hơn ngưỡng 0.8. Tuy nhiên qua khảo sát thực tế cho thấy, các cửa sổ phân lớp khuôn mặt có độ tin cậy cao nhất là nhứng của sổ phát hiện chính xác nhất, khuôn mặt được phát hiện, gần với tập mẫu huấn luyện nhất.Từ đó chúng ta nghĩ đến heuristic chỉ chọn cửa sổ có độ tin cậy cao nhất trong các cửa sổ trên cùng một khuôn mặt. Vấn đề đặt ra bây giờ là làm thế nào để biết các cửa sổ là nhận biết cho cùng một khuôn mặt. Một nhận xét nữa được đưa ra như là một heuristic thứ hai. Đó là, thông thường, nếu một cửa sổ là của một khuôn mặt thì các cửa sổ lân cận nó đều là của khuôn mặt ấy. Hai cửa sổ được gọi là lân cận nhau nếu như chúng giao nhau. Nhận xét này giúp ta tìm được tập các của sổ biểu thị cho một khuôn mặt một cách không mấy khó khăn. Đó là tập các cửa sổ giao với ít nhất một cửa sổ trong tập đó. Để tránh trường hợp có hai cửa sổ trong cùng một tập có cùng độ tin cậy (thực tế kiểm nghiệm đã có trường hợp này). Chúng ta sẽ sủ dụng thêm một điều kiện chọn nữa. Đó là trong tất cả các cửa sổ có độ tin cậy cao nhất như nhau, chúng ta sẽ chọn cửa sổ có sổ lượng cửa sổ trong tập giao với nó là lớn nhất. Với điều kiện chọn này, kết quả cuồi cùng cho một tập cửa sổ hầu như chỉ có một cửa sổ duy nhất. Như vậy thuật toán để cải thiện chất lượng phát hiện bao gồm hai bước sau đây: Bước một: Với mỗi cửa sổ, tiến hành đếm số lượng của sổ giao nó. Đông thời gán cùng nhãn cho tập tất cả các cửa sổ này. Bước hai: Trong mỗi vùng, chọn cửa sổ có độ tin cậy cao nhất và số của sổ giao với nó nhiều nhất làm đại diện cho vùng. Đó là của sổ kết quả duy nhất khi phát hiện. Chúng ta sẽ loại bỏ tất cả các cửa sổ giao với của sổ được chọn này. Kiểm nghiệm thực tế khi áp dụng các heuristic này, kết quả phát hiện được cải thiện khá nhiều như mô tả trong hình minh họa dưới đây cho ảnh đã sử dụng phía trên Hình 28: Kết quả khi sử dụng heuristic Tuy nhiên, như đã nói, khái niệm heuristic chỉ mang tính một thủ thuật, nó khác với khái niệm thuật toán. Các heuristic thông thường chỉ đúng trong phần lớn trường hợp, còn trong một số trường hợp, nó không đúng. Với heuristic này, chúng ta có thể nhận thấy một trường hợp không đúng có hai khuôn mặt, một khuôn mặt tuy vẫn đầy đủ nội dụng nhưng bị khuất sau khuôn mặt kia một phần nào đó. Nếu như không sử dụng heuritic, có thể cả hai khuôn mặt đều được phát hiện, nhưng khi sư dụng heuritic, chỉ có một khuôn mặt được phát hiện. Hình dưới đây minh họa cho trường hợp trên: Hình 29: Ảnh minh họa việc đánh mất cửa sổ khuôn mặt khi sử dụng heuristic 4.2 Heuristic cải thiện thời gian phát hiện. Việc phải quét tất cả mọi cửa sổ trong tất cả các vùng bao chữ nhật cũng như phải tiến hành xử lý đa phân giải làm cho công việc của chúng ta phải tính toán một khối lượng rất lớn. Kiểm nghiệm thực tế trên một máy tính C1.7GHz, RAM 256, HDD 49Gb cho thấy thời gian phát hiện trung bình của ảnh kích thước 320 x 240 la từ 5à15 phút. Với mục đích có thể giảm bớt phần nào thời gian chạy chương trình. Và với nhận xét là các khuôn mặt được phát hiện và tìm ra hoàn toàn trên vùng màu da được nhận biết. Người viết đã kiểm thử hơn 1000 khuôn mặt khác nhau được chương trình chương trình phát hiện. Tiến hành thống kê tỉ lệ phần trăm giữa số pixel là pixel màu da trên tổng số pixel trong khuôn mặt thì cho thấy kết quả là. Tỉ lệ đó nằm trong khoảng từ 54% đến 94%. Từ đó đã tiến hành chọn ngưỡng cho cửa sổ phát hiện khuôn mặt như sau. Với một cửa sổ được trích chọn từ vùng màu da. Ta tiến hành tính tỉ lệ phần trăm sp theo công thức sau: (III.14) Cửa sổ sẽ chỉ được đem đi phân lớp khuôn mặt hay không nếu như nó thỏa mãn ngưỡng: 50 < sp < 100. (III.15) Để có thể tính được số pixel là màu da trong một vùng chữ nhật bất kì trong ảnh nhị phân đã được phân vùng. Trong quá trình phân vùng ảnh, nếu ta gọi seg[m,n] là ma trận sẽ chưa ảnh nhị phân được phân vùng kích thước m x n, thay vì seg[i,j] (với 0 ≤ i ≤ m-1 và 0 ≤ j ≤ n-1) nhận các giá trị 0 hoặc 1 thì giá trị của seg[i,j] được đĩnh nghĩa là tổng số pixel trong cửa sổ có cặp tọa độ trái trên phải dưới [(0,0); (i,j)]. Để tính được seg[i,j] ta dùng công thức truy hồi như sau: seg[i,j] = seg[i - 1, j] + seg[i, j - 1] - seg[i - 1, j - 1] + pixel(i,j) (III.16) Trong đó pixel(i,j) = 1 nếu điểm ảnh (i,j) là ảnh màu da và ngược lại nó nhận giá trị 0. Khi đó muốn tính số pixel màu da trong vùng chữ nhật bất kì có cặp tọa độ trái trên phải dưới [(i1, j1); (i2,j2)] ta sư dụng công thức: Tổng pixel = seg[i2, j2] - seg[i1, j2] - seg[i2, j1] + seg[i1, j1] (III.17) Kết quả khảo sát thực nghiệm cho thấy, với heuristic này, thời gian tìm kiếm trung bình cho tập ảnh trên là từ 3 -> 8phút, giảm đáng kể so với thời gian tìm kiếm ban đầu. CHƯƠNG IV: PHÂN TÍCH THIẾT KẾ VÀ CÀI ĐẶT CHƯƠNG TRÌNH 1. Xác định yêu cầu Như đã trình bày, chương trình được xây dựng với mục đích phát hiện khuôn mặt trong ảnh màu tĩnh dựa trên huấn luyện mạng neural và giảm không gian tìm kiếm bằng phương pháp phân vùng màu da. Chương trình của chúng ta xây dựng phải đáp đứng những yêu cầu như lý thuyết đã trình bày, bao gồm yêu cầu về module huấn luyện phát hiện khuôn mặt bằng mạng neural, module huấn luyện phân vùng màu da dựa trên phân phối Gaussian. Và cuối cùng là module phát hiện khuôn mặt cho ảnh màu đầu vào dựa trên kết quả của hai module trên. Hệ thống được xây dựng phải cho phép nhận ảnh màu đầu vào dưới nhiều dạng nén với phần mở rộng như JPEG, GIF, BMP. Hệ thống cũng cho phép quá trình huấn luyện chủ động cập nhật các cửa sổ phát hiện khuôn mặt sai trong quá trình thử nghiệm. 2. Phân tích và thiết kế hệ thống 2.1 Giới thiệu Với yêu cầu đặt ra như trên, đồng thời dựa trên tổng thể sơ đồ thuật toán và kiến trúc hệ thống của chương trình. Chúng ta nhận thấy, chương trình có mức độ phân chia về chức năng khá rõ ràng. Hơn nữa, kiến trúc hệ thống không phải là quá phức tạp, vì vậy người viết lựa chọn phương pháp phân tích và thiết kế hệ thống dựa trên hướng cấu trúc dựa trên biểu đồ luồng dữ liệu (BLD). Đây là một công cụ khá hay để phân tích và thiết kế cho những hệ thống không quá phức tạp, kể cả hệ thống được thiết kế cài đặt theo hướng đối tượng. 2.2 Phân tích và thiết kế hệ thống Hệ thống được phân tích theo cấu trúc dựa trên biểu đồ luông dự liệu BLD. Đầu tiên là sơ đồ BLD mức hệ thống tổng quát của chương trình: Hình 20: Sơ đồ BLD mức tổng quát của hệ thống Có thể thấy, hệ thống sẽ bao gồm ba chức năng chính. Đó là chức năng huấn luyện mạng neural, chức năng huấn luyện phân vùng màu da và chức năng phát hiện mặt người cho ảnh màu đầu vào. Chúng ta sẽ áp dụng quy tắc phân rã chức năng theo hướng cấu trúc và dựa trên biểu đồ luống dữ liệu BLD cho từng chức năng. Đầu tiên sẽ là chức năng huấn luyện mạng neural: Hình 30: Sơ đồ BLD phân rã chức năng huấn luyện mạng Trong sơ đồ này, bên canh các chức năng, ta thấy xuất hiện các cơ sở dữ liệu phải dung, bao gồm cơ sở dũ liệu ảnh huấn luyện, là tổng hợp của cơ sở dữ liệu ảnh khuôn mặt và cơ sở dữ liệu ảnh không khuôn mặt. Và kết quả của module huấn luyện là bộ tham số của mạng neural. Ta gọi đó là CSDL kết quả huấn luyện mạng. Tiếp theo là chức năng huấn luyện phân vùng màu da: Hình 31: Sơ đồ BLD phân rã chức năng huấn luyện phân vùng màu da Trong sơ đồ này, cũng có thêm hai cơ sở dữ liệu xuất hiện, đó là cơ sở dữ liệu nguồn mẫu màu da dùng để huấn luyện, và cơ sở dữ liệu kết quả huấn luyện phân vùng màu da. Đây là bộ ba tham số bao gồm ngưỡng xác suất trong phân phối gaussian mà bộ huấn luyện học được, vector trung bình của phân phối và ma trận hiệp phương sai của chương trình. Cuối cùng sẽ là chức năng chính của hệ thống, chức năng phát hiện khuôn mặt cho ảnh màu dựa trên kết quả của hai module trên. Đây là module phức tạp nhất, và kết quả cuối cùng của quá trình phân rã chức năng được thể hiện trên sơ đồ luồng dữ liệu BLD hình 32 trang bên: Hình 32: Sơ đồ BLD phân rã chức năng phát hiện mặt người Có thể dễ dang thấy rằng, module phát hiện mặt người sẽ sử dụng hai CSDL kết quả của hai module huấn luyện mạng neural và huấn luyện phân vùng màu da. Kết quả của chương trình sẽ được ghi vào CSDL gọi là CSDL kết quả phát hiện khuôn mặt. Đây thực chất sẽ là tọa độ các khuôn mặt mà chương trình sẽ phát hiện được nếu có. Ngoài ra, module này sẽ truy cập thêm CSDL ảnh huấn luyện không khuôn mặt. Vì như ta biết quá trình huấn luyện là chủ động và có học, cập nhật những cửa sổ phát hiện sai sau những lần thử nghiệm. Cuối cùng, tổng hợp tất cả các BLD trên, chúng ta có sơ đồ BLD chi tiết của hệ thống cần xây dựng: Hình 33: Sơ đồ BLD toàn bộ kiến trúc hệ thống 2.3. Thiết kế cơ sở dữ liệu Như đã phân tích trong phần trên, hệ thống chúng ta sẽ sử dụng các CSDL sau đây: - Cơ sở dữ liệu các ảnh huấn luyện mạng neural bao gồm: CSDL ảnh không khuôn mặt và CSDL ảnh khuôn mặt - Cơ sở dữ liệu ảnh huấn luyện phân vùng màu da - Cơ sở dữ liệu kết quả huấn luyện mạng neural - Cơ sở dữ liệu kết quả huấn luyện phân vùng màu da - Cơ sở dữ liệu kết quả phát hiện khuôn mặt Có thể thấy hai CSDL ban đầu là những mẫu ảnh với kích thước chuẩn hóa cố định. Ở đây chúng ta sẽ sử dụng kích thước chuẩn 25 x 25 pixel cho mẫu huấn luyện mạng neural. Hai tập con của CSDL này sẽ được gán nhãn và lưu vào từng thư mục riêng. Tập mẫu ảnh khuôn mặt sẽ được lưu vào thư mục FaceFolder và được gán nhãn cho từng mẫu là “isface + chỉ số mẫu”. Còn tập mẫu ảnh không khuôn mặt được lưu và thư mục NonFaceFolder và được gán nhãn cho từng mẫu là “nonface+ chỉ số mẫu”. Còn cơ sở dữ liệu tập mẫu màu da, cũng là những mẫu được trích chọn thủ công chuẩn kích thước 30 x 40 pixel. Tập mẫu này cũng được gán nhãn mẫu và lưu vào thư mục SkinSample. Ba CSDL sau, thực chất là những CSDL rất đơn giản, chúng chỉ là những bộ tham số của kết quả chương trình. Vì vậy, chúng ta sẽ sử dụng loại CSDL đơn giản nhất để lưu trữ chúng đó là file truy nhập tuần tự. Cụ thể, kết quả huấn luyện mạng neural sẽ được lưu vào file facenet*.nn. Ở đây “* “đại diện cho số nút ẩn mà kiến trúc mạng neural dùng, nhằm dễ dàng phân biệt trong quá trình thử nghiệm và huấn luyện. Kết quả của huấn luyện phân vùng màu da sẽ được lưu và file skin.nn. Đây sẽ là bộ ba tham số cần thiết. Cuối cùng sẽ là file faceresult.nn được dùng để lưu kết quả của các cửa sổ được phát hiện, việc lưu này với mục đích để dễ xử lý như cập nhật cửa sổ sai trong quá trình huấn luyện chủ động. 3. Thiết kế chương trình và kết quả minh họa 3.1 Thiết kế chương trình Chương trình được thiết kế bằng ngôn ngữ lập trình Visual Basic 6.0. Sở dĩ người viết chọn ngôn ngữ này vì đây là ngôn ngữ mà người viết nắm vững nhất và cũng rất dễ dang viết khi thiết kế theo sơ đồ BLD. Chương trình được viết dựa theo hướng đối tượng cụ thể dựa trên những thư viện mà Visual Basic gọi là các class. Chương trình bao gồm 4 class chính đóng vai trò là thư viện các phương thức để có thể sử dụng lời gọi trong chương trình chính. Ngoài ra, chương trình còn xây dựng một module bao gồm các hàm toán học có sử dụng trong chương trình gọi là module basMaths. Chương trình chính được xây dựng dưới dạng frame. Quan hệ các thành phần trong chương trình cũng như chức năng của từng thành phần được miêu tả như sơ đồ dưới đây: ` Hình 34: Sơ đồ các phương thức và quan hệ các lớp trong hệ thống 3.2 Kết quả chương trình - Hướng dẫn sử dụng - Đóng gói sản phẩm CHƯƠNG V: KHẢO SÁT THỰC NGHIỆM VÀ ĐÁNH GIÁ KẾT QUẢ 1. Cơ sở dữ liệu ảnh khảo sát Chương trình sẽ khảo sát và đánh giá với hai tập dữ liệu cơ bản: - Tập cơ sở dữ liệu chuẩn bao: gồm 320 ảnh chân dung độ phân giải 320 x 140 điểm ảnh. Đây là tập ảnh được tải từ Tập ảnh này được chụp bởi máy ảnh kỹ thuật số Sony Digital Mavica, không flash. Trong tập ảnh này, bao gồm 150 ảnh là ảnh có độ sáng đồng đều trong các vùng ảnh. 170 ảnh có độ sáng không đồng đều, với cường độ sáng bên phải ảnh tối hơn. Từ tập 320 ảnh này, sẽ tiến hành thu nhỏ lại với kích thược 240 x 180 để kiểm tra khả năng phát hiện các khuôn mặt ở các kích thước khác nhàu. Toàn bộ 640 ảnh này sẽ được tạo thêm 640 ảnh nữa với việc thêm nhiễu ngẫu nhiên vào với tỉ lệ nhiễu chiếm 25%. - Tập cơ sở dữ liệu tự xây dựng: Do cơ sở dữ liệu trên chỉ là ảnh chân dung một khuôn mặt. Và chưa tìm được một tập có sở dữ liệu chuẩn nào gồm nhiều khuôn mặt. Vì vậy, nguời viết đã tiến hành tự xây dựng tập cơ sở dữ liệu nhiều khuôn mặt. Với các mục đích để kiểm tra: Khả năng phát hiện các khuôn mặt có kích thước khác nhau trong cùng một ảnh. Khả năng phát hiện các khuôn mặt có các tư thế, độ nghiêng và góc quay xê dịch trong ảnh. Khả năng phát hiện các khuôn mặt với các trạng thái khác nhau như cười, khóc, nghiêm trang. Mắt nhắm, mở…Khả năng có phát hiện được các ảnh bị che khuất hay không. Khả năng có phát hiện các khuôn mặt bị lấp trong vùng tối hay không. Khả năng có phát hiện được khuôn mặt trong bức ảnh bị nhiễu hay không. Với mục đích như vậy, 100 ảnh có độ phân giải bao gồm 240 x 180, 320 x 240, 480 x 360 điểm ảnh được sưu tầm và trích chọn từ nhiều nguồn ảnh khác nhau qua Internet. 100 ảnh này cũng sẽ được thêm nhiễu ngẫu nhiên để tạo thêm 100 ảnh nữa. Như vậy tổng số ảnh đã khảo sát thực nghiệm là 1480 ảnh. 2. Kết quả khảo sát (Do CSDL ảnh test hơi lớn, nên em chưa khảo sát xong. Nhưng em định tổ chức các bảng như sau) 2.1 Ảnh chân dung 2.2.1 Tập ảnh không nhiễu kích thước 480 x 360 Kích thước Tổng số ảnh Tổng số khuôn mặt Tổng số khuôn mặt phát hiện được Tổng số khuôn mặt phát hiện sai Tổng số khuôn mặt phát hiện thiếu Độ chính xác 480 x 360 320 320 Tỷ lệ (Hình minh họa kết quả) 2.2.2 Tập ảnh không nhiễu kích thước 320 x 240 Kích thước Tổng số ảnh Tổng số khuôn mặt Tổng số khuôn mặt phát hiện được Tổng số khuôn mặt phát hiện sai Tổng số khuôn mặt phát hiện thiếu Độ chính xác 320 x 240 320 320 Tỷ lệ (hình minh hoạ kết quả) 2.2.3 Tập ảnh không thêm nhiễu nhiễu kích thước 480 x 360 Kích thước Tổng số ảnh Tổng số khuôn mặt Tổng số khuôn mặt phát hiện được Tổng số khuôn mặt phát hiện sai Tổng số khuôn mặt phát hiện thiếu Độ chính xác 480 x 360 320 320 Tỷ lệ (hình minh họa kết quả) 2.2.4 Tập ảnh không thêm nhiễu nhiễu kích thước 320 x 240 Kích thước Tổng số ảnh Tổng số khuôn mặt Tổng số khuôn mặt phát hiện được Tổng số khuôn mặt phát hiện sai Tổng số khuôn mặt phát hiện thiếu Độ chính xác 320 x 240 320 320 Tỷ lệ (HÌnh mình họa kết quả) 2.3 Ảnh tập thể tự xây dựng 2.3.1 Tập ảnh không nhiễu, với các kích thước khác nhau Kích thước Tổng số ảnh Tổng số khuôn mặt Tổng số khuôn mặt phát hiện được Tổng số khuôn mặt phát hiện sai Tổng số khuôn mặt phát hiện thiếu Độ chính xác 480 x 360, 320 x 240, 240 x180 100 Tỷ lệ (HÌnh mình họa kết quả) 2.3.2 Tập ảnh thêm nhiễu với các kích thước khác nhau Kích thước Tổng số ảnh Tổng số khuôn mặt Tổng số khuôn mặt phát hiện được Tổng số khuôn mặt phát hiện sai Tổng số khuôn mặt phát hiện thiếu Độ chính xác 480 x 360, 320 x 240, 240 x180 100 Tỷ lệ (Hình mình họa kết quả) 3. Nhận xét, đánh giá kết quả và hướng ứng dụng TÀI LIỆU THAM KHẢO SÁCH 1. James A. Freeman – David M. Skapura: “Neural networks: Algorithms, applications and Programing Techniques” (eBook) 2. Anil K Jain: “Fundamentals of digital image processing” – Prentice Hall 3. Ben Krose - Patrick van der Smagt:“An Introduction to neural networks” (eBook) 4. Colin fyfe: “Artificial neural networks” – (eBook) 5. Nguyễn Thanh Thủy – Lương Mạnh Bá: “Nhập môn xử lý ảnh” - Nhà xuất bản khoa học kỹ thuật – 1999 BÀI BÁO 6. Henry A. Rowley - Shumeet Baluja - Takeo Kanade: “Neural Network-Based Face Detection” 7. Vladimir Vezhnevets - Vassili Sazonov - Alla Andreeva: “A survey on pixel-based skin color detection techniques” 8. Nguyễn Thị Hoàng Lan - Nguyễn Thanh Phương: “Face detection using skin color region and neural network” 9. David J.C MacKay: “Bayes method for neural network – theory and application” 10. Erik Hjelman – Boon Kee Low: “Face detection: A survey” WEBSITE 11. - Face detection using neural network 12. - Thông tin tổng quan về phát hiện mặt người 13. - Cơ sở dữ liệu mặt người 14. - Cơ sở dữ liệu test chương trình ._.

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

  • docDAN057.doc