Nhận dạng khuôn mặt

Một phần của tài liệu Xây dựng trung tâm xử lý cho tòa nhà thông minh trên hệ thống nhúng linux (Trang 51)

Nhận dạng khuôn mặt là một nhiệm vụ dễ dàng đối với con người. Thí nghiệm trong [17] đã chỉ ra rằng thậm chí trẻ sơ sinh từ một đến ba ngày tuổi đã có thể phân biệt được giữa khuôn mặt mà nó đã biết. Như vậy việc nhận dạng đối với máy móc sẽ như thế nào? Từ đó có vô số các câu hỏi được đặt ra cho việc nhận dạng khuôn mặt của con người. Như: các đặc điểm bên trong (mắt, mũi, miệng) hoặc đặc điểm bên ngoài (hình dạng của đầu, chân tóc) có được sử dụng thành công trong nhận dạng khuôn mặt? Làm thế nào để chúng ta có thể phân tích một ảnh và làm thế nào để bộ não của chúng ta mã hóa nó? Điều này đã được David Hubel và Torsten Wiesel đưa ra. Bộ não của chúng ta có các tế bào thần kinh chuyên môn phản ứng với các đặc điểm cụ thể đối với một hình ảnh, chẳng hạn như đường thẳng, cạnh, góc độ hoặc sự chuyển động. Do chúng ta không nhìn thấy thế giới dưới dạng các mảnh bị phân tán, mà bằng cách nào đó, vỏ não thị giác của chúng ta kết hợp các nguồn thông tin khác nhau và tổng hợp thành thông tin của đối tượng. Việc nhận diện khuôn mặt một cách tự động là bao gồm tất cả việc trích xuất những đặc điểm có ý nghĩa trên khuôn mặt, rồi đưa nó vào một đại diện có ích và cuối cùng là thực hiện phân loại nó.

Trang 44

Việc nhận dạng khuôn mặt dựa trên các đặc điểm hình học của khuôn mặt có lẽ là phương pháp trực quan nhất. Một trong những hệ thống nhận dạng khuôn mặt tự động đầu tiên được mô tả trong [18]: các điểm đánh dấu (vị trí của mắt, tai, mũi, ...) được sử dụng để xây dựng một vector đặc trưng (khoảng cách giữa các điểm, các góc của nó...). Việc nhận dạng được thực hiện bằng cách tính toán khoảng cách Euclide giữa vector đặc trưng của ảnh cần nhận dạng với hình ảnh tham khảo. Phương pháp này có khả năng chống lại mạnh mẽ về những thay đổi của điều kiện chiếu sáng bởi bản chất của nó, nhưng lại có một nhược điểm rất lớn đó là: việc lưu chính xác các điểm đánh dấu là rất phức tạp, ngay cả với các thuật toán tinh xảo. Một số việc mới nhất về nhận dạng hình học khuôn mặt đã được thực hiện trong [19]. Một vector đặc trưng 22 chiều được thí nghiệm và sử dụng trên bộ dữ liệu lớn đã chỉ ra rằng các đặc trưng hình học đơn lẻ không chứa đầy đủ thông tin cho việc nhận dạng khuôn mặt.

Phương pháp Eigenfaces mô tả trong [20] sử dụng phương pháp toàn diện để nhận dạng khuôn mặt: ảnh khuôn mặt là một điểm trong một không gian ảnh có độ phân giải cao và khi đó ta sẽ tìm ra được biểu diển của nó với độ phân giải thấp hơn, mà ở đó, việc phân loại trở nên dễ dàng hơn. Không gian con có độ phân giải thấp hơn được tìm ra được bằng cách phân tích thành phần chính, trong đó việc xác định các trục là bằng phương sai lớn nhất. Phương pháp biến đổi này là tối ưu trên quan điểm tái dựng lại, nhưng nó lại không có bất kỳ phương pháp nào gán nhãn cho khuôn mặt. Hãy tưởng tượng tình huống mà ở đó phương sai được tạo ra từ các tác động nguồn ngoài, có thể là ánh sáng. Các trục với phương sai lớn nhất không nhất thiết chứa bất kỳ thông tin phân biệt nào cả, do đó việc phân loại sẽ trở nên không thể. Vì vậy, phương pháp phân tích biệt số tuyến tính (Linear Discriminant Analysis) được đưa ra để áp dụng nhận dạng khuôn

Trang 45

mặt trong [21]. Ý tưởng cơ bản của phương pháp này đó là cùng một lúc làm giảm đi phương sai trong một lớp và tối đa hóa phương sai giữa các lớp khác nhau.

Các phương pháp khác nhau cho việc trích xuất đặc trưng cục bộ gần đây đã xuất hiện nhiều. Để tránh dữ liệu đầu vào có độ phân giải cao, thì khái niệm vùng cục bộ của một ảnh được đưa ra, các đặc trưng được tách ra mạnh mẽ hơn để chống lại sự hấp thụ cục bộ, sự chiếu sáng và kích thước mẫu nhỏ. Các thuật toán được sử dụng cho việc tách đặc trưng cục bộ đó là Gabor Wavelets [22], Biến đổi Cosinus rời rạc (Discrete Cosinus Transform [23]) và mẫu nhị phân cục bộ LBP [24].

2.8 Một số thuật toán nhận dạng khuôn mặt 2.8.1 Phương pháp Eigenfaces

Một phần của tài liệu Xây dựng trung tâm xử lý cho tòa nhà thông minh trên hệ thống nhúng linux (Trang 51)