Xem mẫu

  1. Kỷ yếu Hội nghị KHCN Quốc gia lần thứ XI về Nghiên cứu cơ bản và ứng dụng Công nghệ thông tin (FAIR); Hà Nội, ngày 09-10/8/2018 DOI: 10.15625/vap.2018.00059 PHƯƠNG PHÁP XÁC THỰC KHUÔN MẶT DỰA TRÊN TENSORFLOW VÀ ỨNG DỤNG VÀO ROBOT TIẾP TÂN Cao Minh Tiên1, Nguyễn Minh Sơn1, Phan Thị Hường1 1 Khoa Công Nghệ Thông Tin, Trƣờng Đại Học Lạc Hồng, Đồng Nai, Việt Nam minhtien1995cs@gmail.com, nmson@lhu.edu.vn, pthuong@lhu.edu.vn TÓM TẮT: Bài báo đề xuất một phương pháp phát hiện khuôn mặt để áp dụng vào Robot lễ tân. Nhận diện khuôn mặt là một cách tiếp cận giúp khách mời cảm giác thân thiện, hòa đồng hơn. Phương pháp nhận diện khuôn mặt Facenet và công cụ Tensorflow được sử dụng trong nghiên cứu này. Việc tương tác giữa khách mời với Robot bằng cách sử dụng camera từ phần đầu của Robot, Robot nhận diện được và chào bằng ngôn ngữ tiếng việt qua API Google. Với khuôn mặt chưa quen – biết Robot phản ứng chào hỏi và làm quen. Quá trình thử nghiệm trên 50 khách mời, kết quả nhận diện chính xác 89,7 %. Từ khóa: Robot NAO, Tensorflow, Detect Face, Facenet. I. GIỚI THIỆU Trong thời đại công nghiệp ngày một phát triển, Robot và học máy cũng đang trở thành xu thế và là một trong những lĩnh vực của cuộc cách mạng công nghiệp 4.0 đang hƣớng tới. SoftBank, một tập đoàn lớn chuyên về Robot đã trình làng Robot NAO, Robot hình ngƣời đầu tiên của tập đoàn này vào năm 2006. Từ tháng 7 năm 2015, Robot NAO đã đƣợc đƣa vào làm nhân viên tiếp tân tại nhiều khách sạn để cung cấp các thông tin cho khách bằng nhiều thứ tiếng khác nhau nhƣng chƣa hỗ trợ tiếng Việt. Trên Robot NAO hỗ trợ học khuôn mặt giúp ngƣời dùng có thể cho Robot học những khuôn mặt này một cách dễ dàng. Nhƣng độ chính xác của phƣơng pháp nhận diện khuôn mặt này chƣa cao. Từ những vấn đề về nhận diện khuôn mặt và cho Robot NAO nói tiếng Việt. Bài báo sử dụng bộ công cụ học máy Tensorflow và Google Text To Speech để giải quyết vấn đề này. Nhận diện mặt ngƣời là một phƣơng pháp xác định danh tính của một ngƣời dựa trên đặc trƣng sinh trắc học. Hiện nay, lĩnh vực nghiên cứu về nhận diện mặt ngƣời đang đƣợc áp dụng vào rất nhiều trong thực tế, đặc biệt là trong vấn đề xác thực. Trƣớc đây, để xác thực một ngƣời, chúng ta có thể sử dụng một số biện pháp nhƣ: sử dụng mật khẩu, thẻ từ,… Nhƣng các biện pháp này có thể bị đánh cắp thông tin từ kẻ xấu. Từ đó cần một biện pháp bảo mật hơn, đó chính là xác thực bằng khuôn mặt. Các hệ thống nhận diện khuôn mặt thời gian thực hiện nay là rất cần thiết [1]. Matthew và những cộng sự [1] của mình bằng cách nghiên cứu và đƣa ra kỹ thuật Eigenface trong nhận diện khuôn mặt thời gian thực. Libin Lan, Chengliang Wang, Minjie Gu và Yuwei Zhang [6] đã giới thiệu một kỹ thuật nhận diện khuôn mặt bằng phƣơng pháp kết hợp PCA và SVM. Bài báo [3] của nhóm tác giả Anne-Caroline Schreiber, StCphane Rousset và Guy Tiberghlen đã trình bày một phƣơng pháp nhận diện dựa trên ngữ cảnh. Mô hình gợi ý rằng ba chỉ số đƣợc trích ra song song với việc nhận dạng ngƣời từ mặt: cảm giác quen thuộc (cảm giác của kích thích khuôn mặt), cảm giác nhận dạng (cảm giác rằng chúng ta biết ngƣời đó) và nội dung nhận dạng (thông tin về ngƣời đó từ việc tích hợp các ngữ cảnh). Nói chung, cho đến nay có rất nhiều phƣơng pháp nhận diện khuôn mặt khác nhau và đạt đƣợc độ chính xác cao nhƣng kết quả của những bài báo này chƣa đƣợc ứng dụng lên Robot NAO để thực hiện cho Robot chào ngƣời mà hệ thống nhận diện đƣợc. Trong bài báo này tác giả sẽ trình bày phƣơng pháp nhận diện khuôn mặt dựa trên thƣ viện học máy Tensorflow và bài báo Facenet [9]. Đây là bộ thƣ viện Deeplearning do Google phát triển và đƣợc đông đảo ngƣời sử dụng. Để Robot có thể nói tiếng Việt cần phải có công cụ hỗ trợ. Trong bài báo này, tác giả sử dụng Google Text To Speech để giải quyết vấn đề này. II. NỘI DUNG 2.1. Đối tượng nghiên cứu 2.2.1. Thuật toán FaceNet Không gian Euclide compact đƣợc ánh xạ từ ảnh khuôn mặt với khoảng cách đo đặc tƣơng ứng với độ tƣơng đồng của khuôn mặt. Có thể tạo ra véctơ đặc trƣng và sử dụng vào bài toán nhận dạng khuôn mặt, phân cụm khuôn mặt. Nhóm tác giả và cộng sự sử dụng mạng tích chập sâu Deep Convonlution Network – DNN đƣợc huấn luyện để tối ƣu hóa. Độ tƣơng đồng của khuôn mặt đƣợc tính khoảng cách L2 bình phƣơng trong không gian. Các khuôn mặt giống nhau có khoảng cách nhỏ và ngƣợc lại. Công thức tính khoảng cách dựa trên khoảng cách Euclid [5] nhƣ sau: Giả sử P = (P1, P2, …, Pn) và Q = (Q1, Q2, …, Qn) là hai điểm trong không gian n chiều, khi đó khoảng cách từ P đến Q đƣợc tính theo công thức: n d ( P ,Q ) d(Q , P ) ( Pi Qi )2 i 1
  2. 454 PHƢƠNG PHÁP XÁC THỰC KHUÔN MẶT DỰA TRÊN TENSORFLOW VÀ ỨNG DỤNG VÀO ROBOT TIẾP TÂN Hình 1. Kết quả thuật toán FaceNet khoảng cách giữa các khuôn mặt [1] 2.1.2. Robot NAO Robot NAO đƣợc phát triển và sản xuất bởi tập đoàn SoftBank. Nó có hình dạng giống nhƣ một con ngƣời. Nó đƣợc thiết kế cao 58 cm, với 2 camera đƣợc gắn trên đầu có độ phân giải 1280x960 px với tốc độ ghi hình 30 khung hình trên giây. 2.1.3. Thư viện Tensorflow TensorFlow là một thƣ viện phần mềm nguồn mở do Google phát triển và phát hành vào tháng 10 năm 2015. Đây là một thƣ viện hỗ trợ xây dựng các mô hình Deep Learning thông qua các API ngắn gọn. Nó hỗ trợ trên nhiều flatform khác nhau (Từ điện thoại thông minh đến các máy tính Server phân tán) và hỗ trợ tính toán trên cả CPUs và GPUs. 2.2. Phương pháp nghiên cứu 2.2.1. Thu thập dữ liệu Để thu thập dữ liệu, bài báo sử dụng hai phƣơng pháp: - Thu thập có giám sát: Sử dụng camera đặt cố định và sẽ cho từng ngƣời đứng trƣớc camera để có thể thu thập đƣợc dữ liệu của từng ngƣời. Mục đích của việc thu thập này là để dán nhãn cho dữ liệu một cách chính xác. Hình 2. Hình ảnh sau khi thu thập - Thu thập không giám sát: Sử dụng camera trên Raspberry Pi để cho phép camera có thể thu thập đƣợc hình ảnh chứa khuôn mặt. Ngoài ra, tác giả còn trích xuất khuôn mặt từ những video đƣợc lƣu trữ lại từ camera giám sát trong phòng. Mục đích của việc thu thập này là để có thể thu thập đƣợc hình ảnh của nhiều ngƣời. Sau này sẽ dùng những hình ảnh này để phân loại và dán nhãn. - Đặc điểm dữ liệu là độ tuổi từ 18 đến 35 tuổi đa phần là sinh viên, các tƣ thế chụp khác nhau, mỗi đối tƣợng có đặc điểm khác nhau, đeo kính, tóc dài, biểu hiện cảm xúc, vui, buồn, thời điểm lấy mẫu vào ban ngày và trong phòng thí nghiệm có đèn chiếu sáng. Mỗi đối tƣợng đƣợc chụp các tƣ thế đứng, ngồi khác nhau. Trong quá trình lấy dữ liệu trao có trao đổi và trò chuyện. 2.2.1. Tổ chức dữ liệu Trƣớc khi tiến hành học máy, dữ liệu cần phải đƣợc tổ chức theo đúng quy trình để chƣơng trình có thể nhận biết đƣợc đâu là dữ liệu học, đâu là nhãn của dữ liệu đó. Tất cả dữ liệu học máy sẽ đƣợc chứa trong thƣ một thƣ mục,
  3. Cao Minh Tiên, Nguyễn Minh Sơn, Phan Thị Hƣờng 455 mỗi thƣ mục con sẽ là thƣ mục chứa dữ liệu hình ảnh riêng biệt của từng ngƣời. Tên của thƣ mục chính là tên của ngƣời đó. Hình 3. Cấu trúc tổ chức thƣ mục hình ảnh Trong bài báo này, tập dữ liệu thu thập sử dụng để thử nghiệm gồm tất cả 50 ngƣời, mỗi ngƣời 60 hình. Sau đó sẽ chọn ra ngẫu nghiên 48 hình ảnh phân vào tập train chiếm 80 %, 12 hình sẽ đƣợc phân vào tập test chiếm 20 %. Tổng thể có 3000 hình ảnh. 2400 hỉnh ảnh để học và 600 hình dùng để kiểm tra. 2.2.3. Học khuôn mặt Mô hình đƣợc huấn luyện dựa trên CASIA-WebFace Trong bài báo này, tác giả xây dựng quá trình học máy nhƣ quy trình sau: Hình 4. Mô hình học máy khuôn mặt Theo quy trình học máy hình 3, ở giai đoạn tiền xử lý bài báo sử dụng MTCNN [7] để xử lý. MTCNN là một nghiên cứu về xử lý hình ảnh phát hiện khuôn mặt trƣớc khi học, nó mang lại một hiệu suất rất tốt. Kết quả của giai đoạn tiền xử lý sẽ thu đƣợc hình ảnh khuôn mặt đƣợc căn chỉnh dựa trên mắt và miệng. Ở giai đoạn trích xuất đặc trƣng Tensorflow sẽ dựa trên các đặc điểm khuôn mặt và trích xuất các đặc trƣng lƣu thành thông số của các véctơ. Giai đoạn học máy, hệ thống sẽ tiến hành học và lƣu các khuôn mặt lại thành các thông số là những véctơ 128 chiều. 2.2.4. Nhận diện khuôn mặt Từ cơ sở dữ liệu là các véctơ đặc trƣng khuôn mặt, tác giả tiến hành thực hiện nhận diện khuôn mặt theo quy trình sau: Feature Start Dataset extraction Name Classify Hình 5. Quy trình nhận diện khuôn mặt
  4. 456 PHƢƠNG PHÁP XÁC THỰC KHUÔN MẶT DỰA TRÊN TENSORFLOW VÀ ỨNG DỤNG VÀO ROBOT TIẾP TÂN Theo quy trình hình 4, khi chúng ta đƣa một hình chứa khuôn mặt vào hệ thống thì hệ thống sẽ tiến hành phát hiện khuôn mặt, cắt khuôn mặt, rút trích đặc trƣng tạo thành một véctơ, sau đó sẽ so sánh véctơ đó với những véctơ đã đƣợc lƣu trong dữ liệu học, véctơ nào trong dữ liệu học có kết quả gần nhất với véctơ đƣa vào kiểm tra thì sẽ trả về kết quả là véctơ đó và đây chính là tên của hình ảnh đƣợc đƣa vào kiểm tra. Ở đây, thuật toán K-nearest neighbor đã đƣợc sử dụng để tính toán để xác định đƣợc khoảng cách của véctơ đƣợc đƣa vào kiểm tra bằng công thức (1) và xác định véctơ kết quả. Kết quả ở đây chính là tên của hình ảnh đƣợc đƣa vào xác thực. 2.2.5. Thử nghiệm ứng dụng trên Robot NAO Hình 6. Quy trình Robot NAO chào Theo quy trình hình 5, ở luồng (1) khi Robot NAO phát hiện đƣợc khuôn mặt, nó sẽ chụp một tấm hình và gửi lên Server thông qua giao thức SCP. Luồng (2), bộ công cụ nhận diện khuôn mặt mà tác giả đã thiết lập trên này sẽ xử lý để nhận diện ra khuôn mặt trong tấm hình Robot gửi lên đã có trong cơ sở dữ liệu đƣợc học hay không. Nếu có tồn tại kết quả trả về sẽ là một file âm thanh mp3. Sau đó Server sẽ gửi file âm thanh thu đƣợc về cho Robot NAO thông qua SCP. Khi nhận đƣợc file âm thanh Robot NAO sẽ tiến hành phát đoạn âm thanh có chứa lời chào. 2.3. Kết quả Để kiểm tra độ chính xác của hệ thống, tác giả đã sử dụng bộ dữ liệu do tác giả tự thu thập và mô hình đƣợc đào tạo trƣớc về khuôn mặt CASIA-WebFace. CASIA-WebFace là một cơ sở dữ liệu khuôn mặt đƣợc đào tạo trƣớc dựa trên mô hình Inception Resnet V1 [8]. Cơ sở dữ liệu này chứa khoảng 10.575 đối tƣợng với khoảng 494.414 hình ảnh. Độ chính xác của cơ sở dữ liệu này này đã đƣợc chứng minh đạt độ chính xác khoảng 98,7 %. Sau khi tiến hành thực nghiệm trên tập dữ liệu tác giả thu đƣợc kết quả nhƣ bảng 1. Để đánh giá độ chính xác của thuật toán K-NN, tác giả đã sử dụng hàm Classifier để kiểm chứng xem có bao nhiêu điểm trong test data đƣợc dự đoán đúng. Lấy số lƣợng này chia cho tổng số lƣợng trong tập test data sẽ ra độ chính xác. Hình 7. Kiểm tra độ chính xác của khuôn mặt
  5. Cao Minh Tiên, Nguyễn Minh Sơn, Phan Thị Hƣờng 457 Bảng 1. Kết quả thử nghiệm Số lượng hình Chính xác (%) Sai lệch (%) 3000 89,7 10,3 3000 hình đƣợc thu thập từ 50 ngƣời, mỗi ngƣời đƣợc chụp 60 hình từ các góc độ khác nhau và trong điều kiện ánh sáng khác nhau. 50 ngƣời để thu thập hình ảnh nằm trong độ tuổi từ 18-40, với 40 nam và 10 nữ, trạng thái khác nhau (cƣời, nói, im lặng, chau mày,…). Kết quả này cho thấy độ chính xác của phƣơng pháp này đạt đƣợc khoảng 89,7 %. Từ kết quả này, tác giả đã áp dụng vào Robot NAO, xây dựng chƣơng trình cho Robot NAO nhận diện và chào ngƣời nào mà NAO nhìn thấy. Hình ảnh ngƣời mà Robot NAO nhìn thấy đã đƣợc cho học trong cơ sở dữ liệu học máy. III. KẾT LUẬN Trong bài báo này, tác giả đã xây dựng thành công một hệ thống phát hiện và nhận diện khuôn mặt bằng cách sử dụng thƣ viện học máy Tensorflow. Bằng cách sử dụng tập dữ liệu hình ảnh chứa khuôn mặt do tác giả thu thập, một mạng nơron xoắn cùng với khả năng học sâu của thƣ viện Tensorflow. Kết quả mang lại độ chính xác đến 89,7 %. Từ đó tác giả đã xây dựng thành công chức năng cho Robot nhận diện đƣợc ngƣời và chào bằng tiếng Việt. Từ đây có thể áp dụng kết quả của đề tài vào nhiều vấn đề trong thực tế nhƣ: ứng dụng nhận diện khuôn mặt vào hệ thống điểm danh, ứng dụng Robot vào công việc tuyển sinh hoặc cho Robot làm một nhân viên tiếp tân chuyên nghiệp. Hy vọng rằng trong tƣơng lai tác giả có thể cải thiện phƣơng pháp này để có thể nâng cao độ chính xác. IV. TÀI LIỆU THAM KHẢO [1]. M. A. Rurk and A. P. Pentland. Face recognition using eigenfaces. In IEEE Conference on Computer Vision and Pattern Recognition, Hawaii, 1991, pp.585-591. [2]. Anil K. Jain, Brendan Klare and Unsang Park. Face Recognition: Some Challenges in Forensics, in IEEE International Conference Automatic Face & Gesture Recognition and Workshops (FG 2011), 2011, pp.726-733. [3]. Anne-Caroline Schreiber, StCphane Rousset, Guy Tiberghlen, Facenet: A Connectionist Model of Face Identification in Context, EUROPEAN JOURNAL OF COGNITIVE PSYCHOLOGY, 1991, p.177-198. [4]. F. Schroff, D. Kalenichenko and J. Philbin. “Facenet: A unified embedding for facerecognition and clustering”. Proceedings of the IEEE Conference on Computer Visionand Pattern Recognition,pp. 815-823, 2015. [5]. B. Amos. “OpenFace”. [Online]. Available: https://cmusatyalab.github.io/openface/ [6]. Chengliang Wang, Libin Lan, Yuwei Zhang and Minjie Gu. Face Recognition Based on Principle Computer Analysis and Support Vector Machine. In IEEE Conference Intelligent System and Application (ISA), 2011, p.1-4. [7]. Kaipeng Zhang, Zhanpeng Zhang, Zhifeng Li, Yu Qiao. Joint Face Detection and Alignment using Multi-Task Cascaded Convolutional Networks. IEEE Signal Processing Letters (SPL), 2016, p.1499-1503. [8]. Christian Szegedy, Sergey Ioffe, Vincent Vanhoucke, Alex Alemi. Inception-v4, Inception-ResNet and the Impact of Residual Connections on Learning, 2016, arXiv:1602.07261 [9]. Florian Schroff, Dmitry Kalenichenko, James Philbin FaceNet. A Unified Embedding for Face Recognition and Clustering. IEEE Computer Society Conference on Computer Vision and Pattern Recognition 2015, 2015, p.815- 823. FACE AUTHENTICATION METHOD BASED UPON APPLICATIONS TENSORFLOW ROBOT AND RECEPTION Cao Minh Tien, Nguyen Minh Son, Phan Thi Huong ABSTRACT: This article proposes a method of face detection to apply to the Reception Robot. Facial recognition is a way to help guests feel more friendly, more harmonious. The purpose of greeting guests is to demonstrate intelligence and a stepping stone for the development of the brain. The 58 cm high NAO robot is equipped with two cameras and many other sensors. Facenet facial identification method and combination with Tensorflow tool were used in this study. The interaction between the guest and the robot using the top camera from of the robot, the robot recognizes and greet in Vietnamese language via google API. With unfamiliar face - knowing the robot responds to greetings and acquaintances. The process of testing over 50 guests, accurate identification results 89.7 %.
nguon tai.lieu . vn