Bộ dữ liệu này gồm 6832 hình ảnh có chứa khuôn mặt được cắt ra từ video của 10 thành viên trong ISLab ở chế độ màu RGB.
Hình 5.1 Bộ dữ liệu đánh giá MTCNN
5.1.2 Bộ dữ liệu đào tạo nhiệm vụ nhận dạng khuôn mặt
Để thu thập dữ liệu cho đào tạo, một chương trình tự động được sử dụng. Người được yêu cầu lấy mẫu phải được xuất hiện trước camera và quay đầu chậm ở các tư thế để camera có thể chụp được khuôn mặt theo các góc độ khác nhau, điều kiện sáng khác nhau. Trong quá trình thu thập, dữ liệu được lưu tự động vào thư mục có tên người đó. Hình 5.1 cho thấy dữ liệu thu thập được.
Bộ dữ liệu thu thập ở đây gồm 10 class – 10 người khác nhau, mỗi một class có 50 khuôn mặt của một người.
71
Hình 5.2 Tập dữ đào tạo nhận diện khuôn mặt
5.1.3 Bộ dữ liệu đánh giá nhiệm vụ nhận diện khuôn mặt
Bộ dữ liệu dùng để nhận diện gồm 1000 hình ảnh có chứa khuôn mặt, mỗi người có 100 khung hình chứa khuôn mặt người đó ở nhiều góc độ (chính diện, nghiêng bên trái, nghiên bên phải, ngẩng đầu…) và nhiều điều kiện (ánh sáng, khoảng cách đến camera) như trong hình 5.3.
72
5.2 Nhận dạng khuôn mặt với MTCNN
Kết quả sau khi dùng MTCNN với bộ dữ liệu đánh giá: • Số lượng hình ảnh trong bộ dữ liệu: 6832
• Số mặt MTCNN nhận dạng được: 6472
• Số khuôn mặt nhận dạng sai (false positive): 105
𝑅𝑒𝑐𝑎𝑙𝑙 = (6472 6832) × 100% = 94.73% 𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 = (6371 6472) × 100% = 98.44% 𝐴𝑐𝑐𝑢𝑟𝑎𝑐𝑦 = (6371 6832) × 100% = 93.25%
5.3 Đào tạo hồi quy Softmax
Dữ liệu sau khi nhúng được lưu trữ trên laptop, cấu hình Core-i5 9300H xung nhịp 2.40GHz, RAM 8GB, GPU Geforce GTX 1050 với khả năng tính toán là 6.1 [20].
Code được viết trong Visual Studio Code với Tensorflow framework. Mạng được đào tạo với batch size là 32, tỷ lệ học (learning rate) là 0.001 với 10 epoch. Kết quả loss và accuracy như trong hình 5.2.
73 • Train_loss: 6.7778𝑒−5 • Train_accuracy: ≈ 1 • Test_loss: 2.6516𝑒−5 • Test_accuracy: ≈ 1 5.3 Nhận diện khuôn mặt
Để đánh giá độ chính xác, confusion matrix được tính với bộ dữ liệu kiểm thử như trong hình 5.4.
Hình 5.5 Confusion matrix
Ở đây, ta dùng confusion matrix để đánh giá mô hình, độ chính xác trên tập kiểm thử là 98,9% (cao). Các khuôn mặt bị nhận dạng sai là các mặt quá nghiêng, các mặt ở điều kiện sáng không tốt vì thông tin khuôn mặt mất đi khá nhiều.
74 Ở điều kiện ánh sáng tốt các mặt nghiêng vẫn có thể nhận dạng được (như hình 5.5)
Hình 5.6 Nhận dạng mặt nghiêng ở điều kiện ánh sáng tốt
Hình 5.6 biểu diễn kết quả kiểm tra hệ thống thời gian thực trong phòng nghiên cứu ISLab. Phòng được trang bị 8 đèn huỳnh quang, 2 người đã được lấy hình ảnh đào tạo ngồi trước camera.
75 5.4 Hệ thống hoạt động Độ chính xác của hệ thống nhận dạng khuôn mặt: 𝐴𝑐𝑐𝑢𝑟𝑎𝑐𝑦ℎ𝑡 = 𝐴𝑐𝑐𝑢𝑟𝑎𝑐𝑦𝑑𝑒𝑡𝑒𝑐𝑡𝑖𝑜𝑛 × 𝐴𝑐𝑐𝑢𝑟𝑎𝑐𝑦𝑟𝑒𝑐𝑜𝑔𝑛𝑖𝑡𝑖𝑜𝑛 = 93.25% × 98.9% = 92.22% Hình 5.8 Hệ thống hoạt động
Như trong hình 5.7, ví dụ có 2 người đang bắt đầu tiến lại gần robot, khi người thứ nhất đủ gần robot – robot sẽ nhận dạng danh tính người đó, vẫy tay và đưa ra lời chào. Khi người thứ nhất đi qua, người thứ hai tiến lại gần robot – robot nhận dạng danh tính người thứ hai sau đó vẫy tay và đưa ra lời chào tiếp theo.
76
CHƯƠNG 6 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
6.1 Kết luận 6.1.1 Ưu điểm 6.1.1 Ưu điểm
Đề tài này sinh viên đã trình bày về việc xây dựng một hệ thống nhận diện khuôn mặt ứng dụng trong robot tiếp tân bằng các thuật toán Machine Learning. Sinh viên đã thực hiện trên tập dữ liệu đào tạo gồm 10 người khác nhau (50 hình ảnh khuôn mặt ở các góc độ và điều kiện sáng khác nhau) và mô hình được đánh giá với 100 hình ảnh chứa khuôn mặt mỗi người. Độ chính xác của hệ thống được đánh giá khá cao (98,2%), hệ thống có thể nhận diện được khuôn mặt ở nhiều trường hợp khác nhau như về độ sáng, hướng nghiêng, kích thước khuôn mặt. Hệ thống thực hiện thời gian thực cho kết quả khá cao (8 ÷12 FPS).
Cùng với đó, sự kết hợp giữa thuật toán MTCNN và ArcFace có độ ổn định cao. MTCNN đã hoạt động tốt (độ chính xác tương đốivà rất nhanh), phát hiện khuôn mặt ổn định trong các điều kiện khác nhau về phạm vi và độ chiếu sáng. ArcFace là một thuật toán tốt để nhận dạng khuôn mặt với dữ liệu hạn chế để đào tạo và trả về độ chính xác cao.
6.1.2 Nhược điểm
Thuật toán MTCNN thường bị false positive (phát hiện khuôn mặt khi không có mặt người) và khó phát hiện khi khuôn mặt cúi xuống. Để MTCNN hoạt động tốt nhất, yêu cầu các khung hình camera có độ phân giải càng cao.
6.2 Hướng phát triển
Hệ thống nhận diện khuôn mặt được xây dựng ở đây có thể thực hiện trong nhiều ứng dụng thực tế như: hệ thống điểm danh, chấm công tự động, thực hiện kiểm soát an ninh, …
77
TÀI LIỆU THAM KHẢO
[1] Ivan Dokmanic, Reza Parhizkar, Juri Ranieri, Martin Vetterli “Euclidean distance matrices: Essential Theory, Algorithm and Application” 15 Aug 2015 ( version 2)
[2] H. Li, Z. Lin, X. Shen, J. Brandt, G. Hua (2015) “A Convolutional Neural Network Cascade for Face Detection,” IEEE Conf. on Computer Vision and Pattern Recognition, pp. 5325-5334
[3] Y. Taigman, M. Yang, M. Ranzato, and L. Wolf. Deepface: Closing the gap to human-level performance in face verification. In CVPR, 2014.
[4] F. Schroff, D. Kalenichenko, and J. Philbin. Facenet: A unified embedding for face recognition and clustering. In CVPR, 2015.
[5] O. M. Parkhi, A. Vedaldi, and A. Zisserman. Deep face recognition. In BMVC, volume 1, page 6, 2015.
[6] G. Huang, M. Ramesh, T. Berg, and E. Learned Miller, labeled faces in the wild: A database for studying face recognition in unconstrained environments, Technical Report 07-49, UMass, 2007.
[7] Neeraj Kumar, Alexander C. Berg, Peter N. Belhumeur, and Shree K. Nayar, Attribute and Simile Classifiers for Face Verification, International Conference on Computer Vision (ICCV), 2009.
[8] Navaneeth Bodla, Jingxiao Zheng, Hongyu Xu, Jun-Cheng Chen, Carlos Castillo, Rama Chellappa, Deep Heterogeneous Feature Fusion for Template- Based Face Recognition, arXiv preprint arXiv:1702.04471, 2017
[9] Yann LeCun, Yoshua Bengio, and Geoffrey Hinton. “Deep learning”. In: Nature 521.7553 (2015), pages 436–444 (cited on pages 21, 126, 128).
[10] K. He, X. Zhang, S. Ren, and J. Sun. Deep residual learning for image recognition. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pages 770–778, 2016.
[11] Castle, N. (n.d.). What is Artificial Intelligence? Retrieved from
https://www.datascience.com/blog/what-is-artificial-intelligence.
[12] “Microsoft’s new Code editor is built on Google’s Chromium”. Ars Technica. [13] Y. Guo, L. Zhang, Y. Hu, X. He, and J. Gao. Ms-celeb-1m: A dataset and benchmark for large-scale face recognition. In European Conference on Computer Vision, pages 87–102. Springer, 2016.
[14] Q. Cao, L. Shen, W. Xie, O. M. Parkhi, and A. Zisserman. Vggface2: A dataset for recognising faces across pose and age. arXiv:1710.08092, 2017.
[15] C. J. Parde, C. Castillo, M. Q. Hill, Y. I. Colon, S. Sankaranarayanan, J.-C. Chen, and A. J. O’Toole. Deep convolutional neural network features and the original image. arXiv:1611.01751, 2016.
78 [16] R. Ranjan, C. D. Castillo, and R. Chellappa. L2-constrained softmax loss for
discriminative face verification. arXiv:1703.09507, 2017.
[17] ArcFace: Additive Angular Margin Loss for Deep Face Recognition, 2019 Feb [18] N. Srivastava, G. E. Hinton, A. Krizhevsky, I. Sutskever, and R. Salakhutdinov. Dropout: a simple way to prevent neural networks from overfitting. Journal of machine learning research, 15(1):1929–1958, 2014. [19] https://machinelearningcoban.com/2017/02/17/softmax/ [20] https://developer.nvidia.com/cuda-gpus [21] https://users.soict.hust.edu.vn/trungtt/uploads/slides/CG05_ModelingTrans. pdf [22] https://www.instructables.com/id/Joy-Robot-Rob%C3%B4-Da-Alegria-Open- Source-3D-Printed-A/ [23] https://mc.ai/understanding-and-visualizing-resnets/
[24] D. Han, J. Kim, and J. Kim. Deep pyramidal residual networks. arXiv:1610.02915, 2016.
[25] K. He, X. Zhang, S. Ren, and J. Sun. Identity mappings in deep residual networks. In ECCV, 2016.
[26] K. He, X. Zhang, S. Ren, and J. Sun. Delving deep into rectifiers: Surpassing human-level performance on imagenet classification. In Proceedings of the IEEE international conference on computer vision, pages 1026–1034, 2015.