Nhận dạng khuôn mặt là một bài toán phổ biến đang đặt ra hiện nay. Tồn tại nhiều phương pháp và hướng tiếp cận đối với bài toán nhận dạng khuôn mặt: Tiếp cận theo đặc trưng toàn cục (sử dụng các đặc điểm toàn cục của khuôn mặt) và tiếp cận theo đặc trưng cục bộ (sử dụng các đặc điểm cục bộ của khuôn mặt).
ISSN 1859-1531 - TẠP CHÍ KHOA HỌC VÀ CƠNG NGHỆ - ĐẠI HỌC ĐÀ NẴNG, VOL 19, NO 7, 2021 59 ỨNG DỤNG THUẬT TOÁN FACENET XÂY DỰNG HỆ THỐNG NHẬN DẠNG KHUÔN MẶT APPLYING THE FACENET ALGORITHM TO DEVELOP FACE RECOGNITION SYSTEM Mai Văn Hà1*, Nguyễn Thế Xuân Ly1 Trường Đại học Bách khoa - Đại học Đà Nẵng *Tác giả liên hệ: mvha@dut.udn.vn (Nhận bài: 18/6/2021; Chấp nhận đăng: 15/7/2021) Tóm tắt - Nhận dạng khn mặt toán phổ biến đặt Tồn nhiều phương pháp hướng tiếp cận tốn nhận dạng khn mặt: Tiếp cận theo đặc trưng toàn cục (sử dụng đặc điểm tồn cục khn mặt) tiếp cận theo đặc trưng cục (sử dụng đặc điểm cục khuôn mặt) Tuy nhiên hiệu phương pháp nhận dạng hạn chế độ xác chưa cao liệu đầu vào bị ảnh hưởng yếu tố khách quan môi trường (độ sáng, hướng nghiêng, kích thước, …) Do đó, nhóm tác giả đề xuất xây dựng hệ thống nhận dạng khn mặt dựa thuật tốn FaceNet sử dụng Multitask Cascaded Convolutional Networks phát xác định khuôn mặt cho phép nâng cao hiệu nhận dạng Abstract - Face recognition is a popular problem being mentioned these days There are some methods and approaches to deal with this problem: the global one (using global features of the face) and local one (applying local features of the face) However, the effectiveness of those identification methods is still limited and the accuracy is not high when the input data is affected by the objective factors of environment such as brightness, tilt direction, size and so on Therefore, the authors propose developing a face recognition system based on the Face Net algorithm and the use of Multi-task Cascaded Convolutional Networks while detecting as well as identifying faces in images to improve the recognition efficiency Từ khóa - Nhận dạng khn mặt; phát khn mặt; thuật tốn FaceNet; Multi-task Cascaded Convolutional Networks (MTCNN) Key words - Face identification; Face verification; FaceNet algorithm; Multi-task Cascaded Convolutional Networks (MTCNN) Đặt vấn đề Cùng với phát triển xã hội, vấn đề an ninh bảo mật điều tất yếu Các hệ thống nhận dạng người đời với độ tin cậy ngày cao Có thể kể đến nhận dạng hình dáng, nhận dạng giọng nói, nhận dạng khn mặt, Trong đó, phổ biến ứng dụng nhiều tốn nhận dạng khn mặt Hiện nay, tồn số hướng tiếp cận toán nhận dạng khn mặt: Tiếp cận theo đặc trưng tồn cục tiếp cận theo đặc trưng cục Đối với phương pháp tiếp cận theo hướng tồn cục đặc trưng chung khuôn mặt sử dụng để nhận dạng như: Màu sắc, hình dạng, nét khn mặt… Phương pháp sử dụng phổ biến hướng tiếp cận Eigengaces-PCA Fisherfaces Phương pháp Eigenfaces sử dụng phép phân tích thành phần (Principal Components Analysis – PCA) cho phép giảm số chiều liệu Với phương pháp này, sau trình chuẩn hố, đặc trưng tồn cục khn mặt biểu diễn thành véc-tơ riêng Tập hợp véc-tơ tạo thành không gian với số chiều liệu giảm xuống mà đặc trưng quan trọng khn mặt giữ lại q trình nhận dạng Trong không gian véc-tơ này, véc-tơ gọi Eigenfaces Do PCA thuật tốn học khơng có giám sát nên có hạn chế trường hợp tập liệu huấn luyện có nhiều mẫu cho lớp Phương pháp Fisherfaces phương pháp phân tích tuyến tính khác biệt (Linear Discriminant Analysis – LDA) sử dụng nhằm khai thác tốt thơng tin lớp nói [2] LDA cho phép nhận diện khuôn mặt dựa phép chiếu tuyến tính từ khơng gian hình ảnh vào chiều khơng gian thấp cách tối đa lớp tán xạ giảm thiểu phân tán lớp Có thể thấy rằng, phương pháp LDA áp dụng tiêu chuẩn phân biệt tuyến tính cho phép tối đa hóa tỷ lệ yếu tố định lớp ma trận tán xạ lớp cho phép khắc phục nhược điểm phương pháp Eigengaces-PCA Hướng tiếp cận nhận dạng dựa đặc trưng cục khuôn mặt như: Các chi tiết mắt, mũi, lông mày, điểm ảnh, … Hướng tiếp cận sử dụng hai phương pháp phổ biến phương pháp lấy mẫu nhị phân cục (Local Binary Pattern – LBP) phương pháp biến đổi sóng nhỏ Gabor (Gabor wavelets) [3] Trong LBP, ảnh chia thành vùng nhau, vùng tính LBP histogram dựa vào xác định thơng tin vị trí mắt, mũi, miệng khuôn mặt Các thông tin áp dụng trọng số lên histogram vùng chứa đặc trưng quan trọng cho phép phân biệt khuôn mặt Với phương pháp Gabor wavelets liệu chia thành thành phần với tần số khác xem xét thành phần với độ phân giải thích hợp [4] Với phương pháp ảnh khuôn mặt trích chọn đặc trưng dựa vào biến đổi Gabor wavelet Một tập tần số hướng điểm đặc trưng xác định mạng wavelet thông tin đặc trưng để biểu diễn ảnh Tuy nhiên, việc xây dựng hệ thống nhận dạng khuôn mặt với hiệu suất độ xác cao thách thức The University of Danang - University of Science and Technology (Mai Van Ha, Nguyen The Xuan Ly) Mai Văn Hà, Nguyễn Thế Xuân Ly 60 lớn yếu tố khách quan mơi trường, ánh sáng, độ nghiêng khuôn mặt, độ tuổi, cảm xúc hay việc bị che khuất Vì vậy, việc xây dựng hệ thống nhận dạng khuôn mặt hoạt động tốt dù khuôn mặt bị che lấp phần hay bị ảnh hưởng yếu tố môi trường xung quanh cần thiết Do đó, nhóm tác giả đề xuất sử dụng thuật toán FaceNet để nhận dạng khuôn mặt ứng dụng Multi-task Cascaded Convolutional Networks (MTCNN) việc phát khuôn mặt ảnh Ứng dụng thuật tốn FaceNet nhận dạng khn mặt 2.1 Tổng quan tốn nhận dạng khn mặt Nhận dạng khuôn mặt người chủ đề nghiên cứu thuộc lĩnh vực thị giác máy phát triển từ năm 90 kỷ trước Hiện nay, lĩnh vực nhận dạng đẩy mạnh phát triển nhận quan tâm nhiều nhà nghiên cứu từ nhiều lĩnh vực nghiên cứu khác đặc biệt nhận dạng khuôn mặt MTCNN véc-tơ đặc trưng biểu diễn cho vị trí khn mặt xác định ảnh (mắt, mũi, miệng, …) MTCNN hoạt động theo bước với mạng nơ-ron riêng cho bước (P-Net, R-Net O-Net) Khi sử dụng, MTCNN cho phép tạo nhiều hình ảnh đầu vào, với kích thước khác để làm liệu đầu vào Tầng 1: Sử dụng mạng CNN, gọi Mạng đề xuất (P-Net), để thu cửa sổ chứa khuôn mặt vectơ hồi quy cửa sổ Tiếp theo, cửa sổ chứa khuôn mặt hiệu chuẩn dựa vector hồi quy Cuối cùng, cửa sổ xếp chồng vùng hợp thành cửa sổ Kết đầu cửa sổ chứa khn mặt Hình Mạng đề xuất (P-Net) [5] Hình Mơ hình chung tốn nhận dạng khn mặt Bài tốn nhận dạng khn mặt hướng tiếp cận tương tự hệ thống thị giác người cần nhận dạng nhìn vào ảnh Hoạt động hệ thống nhận dạng khn mặt có triển khai chi tiết sau: - Bước 1: Phát xác định khn mặt ảnh - Bước 2: Chuẩn hố trích chọn đặc trưng khn mặt phát bước - Bước 3: Tiến hành so sánh nhận dạng đặc trưng bước với tập liệu huấn luyện có để đưa kết kết luận nhận dạng 2.2 Sử dụng MTCNN phát khuôn mặt Vấn đề nhận dạng khuôn mặt phải phát xác định vị trí khn mặt trọng ảnh Trong báo nhóm tác giả đề xuất sử dụng MTCNN để phát xác định khuôn mặt người ảnh [5] Mạng P-Net sử dụng kiến trúc CNN gồm lớp tích chập lớp co Đầu vào cửa sổ trượt với kích thước 12x12x3 (với tương ứng với màu: Đỏ, xanh lục, xanh lam hệ màu RGB thông thường) Kết P-Net gồm cụm sau: - Cụm thứ có lọc kích thước 1x1 nhận dạng khn mặt; - Cụm thứ hai có lọc kích thước 1x1 đóng khung vị trí hộp giới hạn; - Cụm thứ ba có 10 lọc kích thước 1x1 đóng khung 10 vị trí khn mặt Tầng 2: Tất cửa sổ chứa khuôn mặt từ tầng sàng lọc cách đưa vào CNN khác gọi Mạng lọc (R-Net) để tiếp tục loại bỏ số lượng lớn cửa sổ không chứa khn mặt Sau đó, thực hiệu chuẩn với véc-tơ hồi quy thực hợp cửa sổ xếp chồng vùng Hình Mạng lọc (R-Net) [5] Hình Sơ đồ hoạt động MTCNN [5] Về mặt cấu trúc MTCNN bao gồm mạng CNN (Convolutional Neural Networks) xếp chồng đồng thời hoạt động phát xác định khuôn mặt Mỗi mạng CNN MTCNN có cấu trúc vai trị khác việc phát khn mặt Kết liệu đầu Trong bước R-Net sử dụng kiến trúc CNN gồm: lớp tích chập, lớp co lớp kết nối đầy đủ Đầu vào cửa sổ trượt với kích thước 24x24x3 (3 tương ứng với màu: Đỏ, xanh lục, xanh lam hệ màu RGB thông thường) Kết R-Net phân cụm: - Cụm thứ có lớp nhận dạng khn mặt; - Cụm thứ hai có lớp đánh dấu vị trí hộp giới hạn; - Cụm thứ ba có 10 lớp vị trí khn mặt ISSN 1859-1531 - TẠP CHÍ KHOA HỌC VÀ CƠNG NGHỆ - ĐẠI HỌC ĐÀ NẴNG, VOL 19, NO 7, 2021 Tầng 3: Tầng tương tự tầng 2, sử dụng CNN chi tiết gọi Mạng đầu (O-Net) để lọc kết lần đánh dấu vị trí năm điểm khn mặt Hình Mạng đầu (O-Net) [5] Mạng O-Net sử dụng CNN gồm: lớp tích chập, lớp co, lớp kết nối đầy đủ Đầu vào cửa sổ trượt có kích thước 48x48x3 (trong số tương ứng với màu: Đỏ, xanh lục, xanh lam hệ màu RGB thông thường) Kết O-Net phân cụm: - Cụm thứ có lớp nhận dạng khn mặt; - Cụm thứ hai có lớp đánh dấu vị trí hộp giới hạn; - Cụm thứ ba có 10 lớp vị trí khn mặt Ứng dụng MTCNN để phát khuôn mặt cho phép xác định khuôn mặt ảnh tốt so với phương pháp khác 2.3 Thuật tốn FaceNet nhận dạng khn mặt Các thuật tốn nhận dạng khn mặt trước chủ yếu biểu diễn khuôn mặt véc-tơ đặc trưng thông qua lớp bottleneck để giảm số chiều liệu Tuy nhiên, số chiều liệu véc-tơ đặc trưng thường tương đối lớn nên làm cho tốc độ nhận dạng giảm xuống Vì vậy, thuật toán PCA thường áp dụng để giảm số chiều liệu véc-tơ đặc trưng tăng tốc độ nhận dạng Đồng thời, phương pháp nhận dạng hàm loss function thường xác định khoảng cách ảnh (đại lượng mô tả giống hai ảnh) Như vậy, xuất vấn đề lần huấn luyện học kết quả: Hoặc giống hai ảnh thuộc lớp, khác hai ảnh thuộc hai lớp riêng FaceNet thuật toán hỗ trợ cho việc nhận dạng phân cụm khuôn mặt cho phép giải hạn chế nêu [6] FaceNet sử dụng mạng CNN cho phép giảm số chiều liệu véc-tơ đặc trưng (thường sử dụng 128 chiều) Do đó, cho phép tăng tốc độ huấn luyện xử lý mà độ xác đảm bảo Đối với thuật toán FaceNet, hàm loss function sử dụng hàm triplet loss cho phép khắc phục hạn chế phương pháp nhận dạng trước đây, trình huấn luyện cho phép học đồng thời: Sự giống hai ảnh (nếu hai ảnh lớp) khác hai ảnh (nếu chúng khơng lớp) FaceNet dạng siam network thường biểu diễn véc-tơ đặc trưng ảnh không gian Euclidean n chiều (thường 128 chiều) Việc biểu diễn thường tuân theo quy tắc: Nếu khoảng cách véctơ embedding nhỏ, mức độ tương đồng chúng lớn ngược lại Tập hợp véc-tơ liệu đầu vào cho hàm loss function để đánh giá số khoảng cách véc-tơ FaceNet sử dụng CNN cách dùng hàm f(x) 61 nhúng hình ảnh x vào không gian Euclidean d chiều cho khoảng cách hình ảnh người khơng phụ thuộc vào điều kiện bên ngoài, khoảng cách khuôn mặt giống (của người nhỏ) khoảng cách ảnh khác có khoảng cách lớn Hàm f(x) ∈ ℝd có chức biểu diễn ảnh x vào không gian Euclidean d chiều Tại đây, có ảnh là: Anchor (ảnh gốc), Positive (ảnh gần giống với ảnh gốc) Negative (ảnh khác với ảnh gốc) Sau biểu diễn vào khơng gian Euclide tương ứng với ảnh Xa, Xp Xn Để nhận dạng tốt khoảng cách từ Xa tới Xp phải nhỏ khoảng cách từ Xa tới Xn: d(Xa, Xp) < d(Xa, Xn) Do đó, dẫn đến biểu thức (với g giá trị biên): 2 ||f(Xa) − f(Xp)|| + g < ||f(Xa) − f(Xn)|| (1) 2 Lúc hàm triplet loss có dạng sau: L(Xa, Xp, Xn) = ∑ ||f(Xa) − f(Xp)|| − ||f(Xa) − 2 f(Xn)|| + 𝑔 (2) Hình Minh hoạ ba sai số Khi huấn luyện mơ hình siam network với triplet loss cần phải xác định trước cặp ảnh (Xa, Xp) thuộc người Ảnh Xn ảnh khác với ảnh gốc người thường lựa chọn ngẫu nhiên từ ảnh thuộc lớp lại Do đó, tập hợp ảnh Xn thường thu thập nhiều ảnh/1 người để chuẩn bị tập liệu huấn luyện Nếu người có ảnh đưa tập liệu làm ảnh Xn huấn luyện Như nêu thấy, sử dụng triplet loss vào mơ hình CNN tạo véc-tơ đặc trưng tốt cho ảnh Các véc-tơ đặc trưng cho phép phân biệt rõ ảnh Negative (ảnh khác với ảnh gốc) giống ảnh Positive (ảnh gần giống với ảnh gốc) Hơn nữa, khoảng cách ảnh thuộc lớp trở nên gần không gian chiếu Euclidean Tuy vậy, việc sử dụng ba khiến cho trình hội tụ chậm Do đó, cần chọn ba thích hợp trình huấn luyện để cải thiện hiệu suất độ xác mơ hình Để khắc phục việc hội tụ chậm, thường chọn ba sai số cho khoảng cách ảnh gốc ảnh gần với ảnh gốc (ảnh người) lớn khoảng cách ảnh gốc ảnh người khác gần nhất: Mai Văn Hà, Nguyễn Thế Xuân Ly 62 𝑎𝑟𝑔𝑚𝑎𝑥(||f(𝑋𝑎 ) − f(𝑋𝑝 )|| ) 2 𝑎𝑟𝑔𝑚𝑎𝑥(||f(𝑋𝑎 ) − f(𝑋𝑛 )|| ) Việc chọn hình ảnh xảy trường hợp 2 ||f(𝑋𝑎 ) − f(𝑋𝑝 )|| > ||f(𝑋𝑎 ) − f(𝑋𝑛 )|| (3) 2 Lúc ta huấn luyện cho biểu thức (3) trở biểu thức (2) Việc huấn luyện giúp khoảng cách hai ảnh người nhỏ ngược lại ảnh người có khoảng cách lớn 3.2 Triển khai thử nghiệm đánh giá hệ thống Để huấn luyện mơ hình, nhóm tác giả sử dụng tập liệu khuôn mặt người Việt từ Google Image (gồm 23105 khuôn mặt 1020 người) Đặc điểm liệu ảnh người thu thập thời kỳ, hồn cảnh khác Nhóm tác giả lấy ảnh 980 người để làm tập liệu huấn luyện mơ hình Mơ hình huấn luyện với tham số Hình 10 thời gian huấn luyện mơ hình rơi vào khoảng 60 phút Hình Minh họa trình sau huấn luyện [6] Việc lựa chọn ba sai số ảnh hưởng đến hiệu mơ hình, giá trị ba sai số xác định tốt trình hội tụ huấn luyện nhanh kết cho độ xác cao Việc lựa chọn ngẫu nhiên ba sai số dẫn tới mơ hình huấn luyện khơng thể hội tụ Xây dựng hệ thống triển khai đánh giá 3.1 Xây dựng hệ thống nhận dạng khn mặt Nhóm tác giả tiến hành xây dựng hệ thống nhận dạng sở ứng dụng MTCCN FaceNet sử dụng mạng nơ-ron tích chập thuật toán softmax Hệ thống gồm 02 phân quyền Quản trị viên Người dùng Phân quyền Người dùng thực chức năng: Đăng nhập, quản lý tập hình ảnh huấn luyện, huấn luyện mơ hình nhận dạng nhận dạng khn mặt (nhận dạng thơng qua hình ảnh nhận dạng trực tiếp: Sử dụng camera) Phân quyền quản trị thừa kế từ phân quyền người dùng có thêm chức quản lý tài khoản người dùng Chức hệ thống mơ tả thơng qua biểu đồ sau: Hình Số lượng hình ảnh phân bố tập liệu khn mặt người Việt Hình 10 Tham số huấn luyện mơ hình Hình Biểu đồ ca sử dụng tổng quan hệ thống Bên cạnh đó, backend hệ thống xây dựng dựa API (sử dụng thư viện flask), sử dụng thư viện imgur để lưu trữ hình ảnh, Tensorflow để thực phép tính tốn sử dụng colaboratory google để huấn luyện liệu Tập liệu để kiểm tra bao gồm 40 người với 874 ảnh Nhóm tác giả sử dụng 574 ảnh để huấn luyện 300 ảnh để kiểm thử (tất ảnh điều chỉnh kích thước 160x160) cho thuật toán: Eigengaces-PCA (sử dụng haar cascade để phát khuôn mặt) FaceNet (sử dụng MTCNN để phát khuôn mặt) Kết thực nhận dạng thể Bảng Dữ liệu thực tế từ Bảng cho thấy, thời gian nhận dạng trung bình phương pháp Eigengaces-PCA nhanh với phương pháp đề xuất Tuy nhiên, phương pháp nhận dạng khn mặt sử dụng thuật tốn FaceNet MTCNN để phát khuôn mặt cho kết nhận dạng xác cao ISSN 1859-1531 - TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ - ĐẠI HỌC ĐÀ NẴNG, VOL 19, NO 7, 2021 Bảng Kết nhận dạng khuôn mặt sử dụng Eigengaces-PCA FaceNet Phương pháp 63 TÀI LIỆU THAM KHẢO Số Số Số ảnh Thời gian Số ảnh ảnh ảnh nhận nhận dạng Hiệu nhận huấn kiểm diện trung bình suất diện sai luyện tra (giây) EigengacesPCA (haar cascade) 574 300 262 38 0,27 87,33% FaceNet (MTCNN) 574 300 285 15 0,43 95% Kết luận Bài báo nghiên cứu xây dựng hệ thống nhận dạng khuôn mặt sở áp dụng MTCNN thuật tốn FaceNet (sử dụng khơng gian Euclidean) để phát nhận dạng khuôn mặt, cho phép cải thiện độ xác nhận dạng Kết thực nghiệm cho thấy, hệ thống áp dụng tốn nhận dạng khn mặt thực tế [1] Shaimaa Khudhair Salah, Waleed Rasheed Humood, Ahmed Othman Khalaf, “A Proposed Generalized Eigenfaces System for Face Recognition Based on One Training Image”, Journal of Southwest Jiaotong University, Volume 55, No 2, 2020, pp 1-11 [2] Frank Peprah, Michael Asante, “Comparative Analysis Of The Performance Of Principal Component Analysis (PCA) And Linear Discriminant Analysis (LDA) As Face Recognition Techniques”, International Journal of Scientific & Technology Research, Volume 6, Issue 10, 2017, pp 286-291 [3] R Shyam, Y.N Singh, “Face recognition using augmented local binary patterns and bray curtis dissimilarity metric”, Proc 2nd Int Conf Signal Processing and Integrated Network (SPIN 2015) IEEE; (2015), 2015 [4] José Augusto Cadena Moreano, Nora Bertha La Serna Palomino, “Global Facial Recognition Using Gabor Wavelet, Support Vector Machines and 3D Face Models”, Journal of Advances in Information Technology, Vol 11, No 3, 2020, pp 143-148 [5] Kaipeng Zhang, Zhanpeng Zhang, Zhifeng Li, Yu Qiao, “Joint Face Detection and Alignment using Multi-task Cascaded Convolutional Networks”, IEEE Signal Processing Letters, Volume: 23, Issue: 10, 2016, pp 1499-1503 [6] Florian Schroff, Dmitry Kalenichenko, James Philbin, “FaceNet: A Unified Embedding for Face Recognition and Clustering”, 2015 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), Boston, MA, USA, 2015 ... tụ Xây dựng hệ thống triển khai đánh giá 3.1 Xây dựng hệ thống nhận dạng khn mặt Nhóm tác giả tiến hành xây dựng hệ thống nhận dạng sở ứng dụng MTCCN FaceNet sử dụng mạng nơ-ron tích chập thuật. .. đề xuất sử dụng thuật tốn FaceNet để nhận dạng khn mặt ứng dụng Multi-task Cascaded Convolutional Networks (MTCNN) việc phát khuôn mặt ảnh Ứng dụng thuật tốn FaceNet nhận dạng khn mặt 2.1 Tổng... lớp vị trí khn mặt Ứng dụng MTCNN để phát khuôn mặt cho phép xác định khuôn mặt ảnh tốt so với phương pháp khác 2.3 Thuật tốn FaceNet nhận dạng khn mặt Các thuật tốn nhận dạng khn mặt trước chủ