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 %
5 trang |
Chia sẻ: Thục Anh | Ngày: 11/05/2022 | Lượt xem: 637 | Lượt tải: 0
Nội dung tài liệu 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, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
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ên
1
, 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:
2
( , ) ( , )
1
( )
n
P Q Q P i i
i
d d P Q
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,
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:
Hình 5. Quy trình nhận diện khuôn mặt
Feature
extraction
Classify Name
Dataset Start
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
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 %.
Các file đính kèm theo tài liệu này:
- phuong_phap_xac_thuc_khuon_mat_dua_tren_tensorflow_va_ung_du.pdf