Để xác định được liệu kết quả của việc dự đoán là đáng tin cậy hay không, hay người mà nhận dạng được là người chưa được biết tới, thì chúng ta tiến hành thực hiện thẩm định khuôn mặt (còn được gọi là xác thực khuôn mặt). FaceRecognizer của OpenCV có thể trả về độ tin cậy khi ta thực hiện hàm predict() nhưng độ tin cậy đó chỉ đơn giản dựa vào khoảng cách trong không gian con riêng Eigen, vì vậy giá trị này không đáng tin cậy.
Phương pháp ta sẽ sử dụng đó là tái tạo lại ảnh khuôn mặt bằng cách sử dụng vector riêng và giá trị riêng, và tiến hành so sánh ảnh này tái tạo với những ảnh đầu vào để thẩm định khuôn mặt.
Nếu người đó có nhiều gương mặt nằm trong tập huấn luyện, thì khi đó việc xây dựng lại từ các vector riêng và giá trị riêng đã học được thực hiện khá tốt, nhưng nếu người đó không có bất kỳ khuôn mặt nào trong tập huấn luyện (hoặc không có bất kỳ khuôn mặt nào tương đương với nét mặt và độ sáng như trong tập thử nghiệm), thì khi đó khuôn mặt thu được từ việc xây dựng lại sẽ trông rất khác so với khuôn mặt đầu vào, việc này báo hiệu rằng đây là khuôn mặt chưa được biết tới.
Ở phần trước, các thuật toán Eigenfaces và Fisherfaces được dựa trên quan điểm rằng một ảnh có thể được tạm biểu diễn như là một tập hợp các vector riêng (ảnh khuôn mặt) và giá trị riêng (tỷ lệ pha trộn). Vì vậy, nếu chúng ta kết hợp tất cả các vector riêng với các giá trị riêng của một trong những khuôn mặt trong tập huấn luyện, khi đó ta sẽ có được một bản sao khá giống với ảnh huấn luyện ban đầu. Áp dụng với ảnh khác tương tự với tập huấn luyện - nếu chúng ta kết hợp các vector riêng đã được huấn luyện với các giá trị riêng từ một ảnh kiểm tra tương tự, thì chúng ta có thể xây dựng lại một ảnh tương tự với bản sao với ảnh kiểm tra.
Trang 84
Hình 3.11 cho thấy hai khuôn mặt điển hình được tái tạo lại. Khuôn mặt ở phía bên trái (Hình 3.11a) được xây dựng lại tốt hơn bởi vì nó được dựng lên từ người đã biết, trong khi khuôn mặt ở phía bên phải (Hình 3.11b) được xây dựng lại xấu hơn vì nó được dựng lên từ người chưa biết hoặc từ một người được biết đến nhưng với điều kiện ánh sáng/biểu cảm trên khuôn mặt/hướng của khuôn mặt chưa được biết đến.
Hình 3.11. Ảnh tái tạo khuôn mặt
Để tính toán sự giống nhau giữa khuôn mặt tái tạo với khuôn mặt trong ảnh đầu vào ta có thể sử dụng hàm getSimilarity() như đã trình bày ở phần
trước để so sánh hai ảnh, với giá trị thu được nhỏ hơn 0,3 có nghĩa là hai ảnh rất giống nhau.
Đối với Eigenfaces, có một vector riêng cho từng khuôn mặt, vì vậy việc xây dựng lại có xu hướng làm việc tốt và do đó ta có thể sử dụng ngưỡng so sánh là 0,5, nhưng đối với Fisherfaces chỉ có một vector riêng cho mỗi người, vì vậy việc xây dựng lại sẽ không tốt so với Eigenfaces và do đó ta có thể sử dụng ngưỡng cao hơn, chẳn hạn khoảng 0.7.
Trang 85
Bây giờ ta có thể xuất ra được id của khuôn mặt cần nhận dạng. Phương pháp nhận dạng khuôn mặt và phương pháp thẩm định khuôn mặt này chỉ đáng tin cậy trong các điều kiện nhất định mà ta huấn luyện cho nó. Vì vậy, để có được độ nhận dạng chính xác tốt, ta cần phải đảm bảo rằng các tập huấn luyện của mỗi người bao hàm đầy đủ các điều kiện về ánh sáng, nét mặt, và góc độ của tất cả các trường hợp có thể xảy ra. Giai đoạn tiền xử lý mặt giúp giảm một số khác biệt về điều kiện ánh sáng và hướng khuôn mặt quay trong mặt phẳng (nếu người đó nghiêng đầu qua trái hoặc qua phải), nhưng sự khác biệt khác như khuôn mặt quay theo chiều khác (nếu người đó quay đầu qua trai hay phải) thì nó chỉ hoạt động tốt khi có trong tập huấn luyện.
3.2 Hệ thống máy chủ web thời gian thực 3.2.1 Mô hình hệ thống