Căn chỉnh khuôn mặt trước khi nhận dạng:

Một phần của tài liệu ĐỒ ÁN CƠ SỞ 4 Đề tài: Xây dựng ứng dụng nhận diện khuôn mặt sử dụng Deep Learning (Trang 47)

Hình 21 Căn chỉnh khuôn mặt

3.1.6Căn chỉnh khuôn mặt trước khi nhận dạng:

3.1 Phân tích – thiết kế hệ thống phát hiện mặt người

3.1.6Căn chỉnh khuôn mặt trước khi nhận dạng:

Căn chỉnh khuôn mặt là khá quan trọng, việc này giúp cải thiện phần nào độ chính xác khi đưa vào nhận dạng.

Trong dự án này, tôi sử dụng phương pháp căn chỉnh 2D, dựa vào các mốc trên khuôn mặt (đặc biệt là vùng mắt) để thực hiện xoay, dịch chuyển và điều chỉnh tỷ lệ của khuôn mặt về cùng một kích thước.

Cụ thể, thuật tốn lấy vị trí mắt trái và mắt phải từ MTCNN, tính tốn điểm giữa và tiến hành xoay khuôn mặt sao cho hai mắt cùng nằm trên hàng ngang.

Hình 27. Trước và sau khi căn chỉnh khn mặt3.1.7 Trích rút đặc trưng khn mặt từ ảnh đầu vào: 3.1.7 Trích rút đặc trưng khn mặt từ ảnh đầu vào:

Sau khi phát hiện và căn chỉnh khn mặt, hệ thống sẽ tiến hành trích rút đặc trưng khn mặt bằng FaceNet. Sau đó các đặc trưng này sẽ được đưa vào “không gian embeddings” để so sánh với bộ dữ liệu các đặc trưng đã có.

3.1.8 Nhận diện khuôn mặt

Trong “không gian embeddings”, các khuôn mặt ở dạng vector 128 chiều sẽ được đối chiếu với bộ dữ liệu để tìm ra khn mặt giống nhất và gắn nhãn cho chúng.

Trong dự án này, tôi sử dụng phép đo cosine similarity (độ tương tự cosine) để tiến hành so sánh. Ta sử dụng cosine similarity khi chỉ quan tâm đến góc giữa 2 vector mà khơng quan tâm đến khoảng cách giữa chúng.

Hình 28. Cosine similarity

Dựa vào cosine similarity ta có thể tính cosine distance (khoảng cách cosine) bằng công thức:

cosine_distance = 1 – cosine_similarity

Đầu vào của hàm cosine là mảng chứa vector 128 chiều của khuôn mặt trong ảnh chưa khuôn mặt cần nhận dạng mà FaceNet vừa tính tốn, và bộ dữ liệu gồm các mảng chứa vector 128 chiều của các khuôn mặt đã được huấn luyện từ

trước. Cosine distance sẽ tính lần lượt khoảng cách giữa vector đầu vào với các vector trong bộ dữ liệu để tìm ra vector có giá trị thấp nhất (khoảng cách ngắn nhất), tương ứng với độ tương tự cao nhất.

3.1.9 Xác định các khuôn mặt “unknown”

Với một hệ thống nhận diện khuôn mặt, việc loại trừ các trường hợp có nhiều điểm chung trong khn mặt là cực kì cần thiết. Hoặc đơn giản là có một gương mặt lạ xuất hiện trong bức hình cũng bị nhận nhầm là người dùng của hệ thống. Các khuôn mặt lạ này chung quy lại là các khuôn mặt “unknown”.

Các khn mặt “unknown” là các khn mặt khơng có trong bộ dữ liệu được huấn luyện từ trước. Khi ảnh xuất hiện các khuôn mặt này, nếu không tiến hành xác định và loại trừ thì khả năng cao hệ thống sẽ nhận nhầm với các khn mặt có trong bộ dữ liệu và tiến hành nhận diện sai là rất cao.

Từ cosine distance ta có thể xác định các khn mặt “unknown” với một tỉ lệ nhất định dựa trên ngưỡng cho phép (threshold). Khơng có một quy tắc chuẩn nào cho việc lựa chọn ngưỡng trong nhận dạng khuôn mặt, mà giá trị ngưỡng này được chọn thông qua các lần thử nghiệm mang lại kết quả tốt nhất.

3.2 Kết quả thử nghiệm hệ thống3.2.1 Giao diện chương trình: 3.2.1 Giao diện chương trình:

Hình 30: File hình ảnh được tạo ra

KẾT LUẬN

1.Kết quả đạt được

Trên cơ sở nghiên cứu về bài toán phát hiện mặt người trong ảnh. Đặc biệt là mơ hình nơ-ron tích chập (CNN). Chúng em đã áp dụng thành cơng mơ hình CNN vào bài toán phát hiện mặt người trong ảnh. Tuy kết quả đạt được chưa cao, nhưng đây là bước đầu để phát triển bài toán nhận dạng mặt (face recognition) người sau này. Bên cạnh đó, trong q trình xây dựng chương trình demo, em đã tìm hiểu về deep learning, ngơn ngữ Python, qua đó biết cách lập trình với ngơn ngữ Python và có thêm kiến thức về deep learning

Về chương trình demo, sau khi thử nghiệm với tập ảnh lớn và webcam. Chương trình đạt kết quả tốt, thời gian phát hiện nhanh đối với các ảnh mặt người chụp thẳng, chất lượng ảnh tốt (chụp bằng máy kĩ thuật số), tuy nhiên đối với các ảnh chụp quá nghiêng hay ảnh có màu sắc q tối thì chương trình gần như khơng thể phát hiện được khuôn mặt trong bức ảnh đấy.

Đối với webcam, thì hiệu suất của chương trình cịn tùy theo chất lượng của loại webcam được sử dụng, tuy nhiên cũng tương tự như với phát hiện khuôn mặt trong ảnh, chương trình sẽ khơng thể phát hiện mặt người trong điều kiện độ sáng quá yếu và góc quay nghiêng quá 200.

2.Hướng phát triển:

Có nhiều hướng phát triển cho chương trình này, có thể phát triển cả về mặt ứng dụng và mặt thuật tốn. Có thể xây dựng một ứng dụng chỉ cần đến phát hiện mặt người mà không cần nhận dạng. Ví dụ như một hệ thống ghép hình, ghép khn mặt phát hiện được vào trong một bức ảnh khác

Ngồi ra có thể phát triển chương trình theo hướng nhận dạng khuôn mặt, xây dựng một hệ thống để học các đặc trưng của những người cần nhận dạng. Khi thực hiện, đầu tiên ta đưa qua bức ảnh qua chương trình phát hiện mặt người để phát hiện nhanh các khn mặt có trong ảnh, sau đấy so sách các khn mặt đó với các khn mặt mà chương trình đã được “học” từ trước, so sánh các đặc trưng của hai khn mặt, nếu trùng thì đưa ra thơng tin về khn mặt được nhận dạng.

DANH MỤC TÀI LIỆU THAM KHẢO

[1] G. Yang and T. S. Huang, “Human Face Detection in Complex Background”, Pattern Recognition, vol. 27, no. 1, pp. 53-63, 1994.

[2] A. Lanitis, C.J. Taylor, and T.F. Cootes, “An Automatic Face Identification System Using lexible Appearance Models”, Image and Vision Computing, vol. 13, no. 5, pp. 393-401, 1995.

[3] Andrew King, “A Survey of Methods for Face Detection”, 2003. (adsbygoogle = window.adsbygoogle || []).push({});

[4] A. Yuille, P. Hallinan, and D. Cohen, “Feature Extraction from Faces Using eformable Templates”, Int’l J. Computer Vision, vol. 8, no. 2, pp. 99-111, 1992. [5] D.G. Kendall, “Shape Manifolds, Procrustean Metrics, and Complex Projective Shapes”, Bull. London Math. Soc., vol. 16, pp. 81-121, 1984.

[6] E. Osuna, R. Freund, and F. Girosi, “Training Support Vector Machines: An Application to Face Detection” Proc. IEEE Conf. Computer Vision and Pattern Recognition, pp. 130-136, 1997.

[7] Fuzhen Huang and Jianbo Su, “Multiple Face Contour Detection Using adaptive Flows”, Sinobiometrics 2004, LNCS 3338, pp. 137-143, Springer-Verlag Berlin eidelberg, 2004.

[8] H.P. Graf, T. Chen, E. Petajan, and E. Cosatto, “Locating Faces and Facial Parts”, Proc. First Int’l Workshop Automatic Face and Gesture Recognition, pp. 41-46, 1995.

[9] J. Canny, “A Computational Approach to Edge Detection”, IEEE Trans. Pattern Analysis and Machine Intelligence, vol. 8, no. 6, pp. 679-698, June 1986. [10] J. Sobottka and I. Pitas, “Segmentation and Tracking of Faces in Color Images”, Proc. Second Int’l Conf. Automatic Face and Gesture Recognition, pp. 236-241, 1996.s

Một phần của tài liệu ĐỒ ÁN CƠ SỞ 4 Đề tài: Xây dựng ứng dụng nhận diện khuôn mặt sử dụng Deep Learning (Trang 47)