Nhận diện khuôn mặt sử dụng mạng nơron tích chập xếp chồng và mô hình Facenet

KHOA HỌC   
  CÔNG NGHỆ  
 P-ISSN 1859-3585      E-ISSN 2615-9619  
 
NHẬN DIỆN KHUÔN MẶT SỬ DỤNG MẠNG NƠRON    
TÍCH CHẬP XẾP CHỒNG VÀ MÔ HÌNH FACENET  
A FACE RECOGNITION SYSTEM USING MULTI-TASK CASCADED CONVOLUTIONAL NETWORKS    
AND FACENET MODEL   
Trần Hồng Việt1,*, Đỗ Đình Tiến1,  
Nguyễn Thị Trà1, Trần Lâm Quân2  
 
 
1. GIỚI THIỆU  
TÓM TẮT   
Mạng nơ-ron tích chập (CNN) là một trong những mô hình học sâu hiệu quả  
Mạng  nơ-ron  tích  chập  (CNN)  [1,  2,  3]   một  trong  
những   hình  học  sâu  thành  công  nhất  trong  lĩnh  vực  
nhận dạng khuôn mặt, các vùng hình ảnh khác nhau luôn  
được s dụng đồng thời khi trích xuất các đặc trưng hình  
ảnh, nhưng trong thực tế, các phần khác nhau của khuôn  
mặt đóng những vai trò khác nhau trong nhận diện khuôn  
mặt. Mỗi khuôn mặt của mỗi người có s độc đáo và nét  
đặc trưng riêng biệt.    
nhất trong lĩnh vực nhận diện khuôn mặt, các vùng hình nh khác nhau luôn  
được sử dụng đồng thời khi trích xuất các đặc trưng hình ảnh, nhưng trong thực  
tế, các phần của khuôn mặt đóng những vai trò khác nhau trong việc nhận diện.  
Trong bài báo này, chúng tôi s dụng mối tương quan giữa phát hiện và hiệu  
chỉnh  để  nâng  cao  hiệu  suất  trong  một  mạng  nơ-ron  tích  chập  xếp  chồng  
(MTCNN). Ngoài ra, chúng tôi s dụng framework FaceNet của Google đ tìm  
hiểu cách ánh x t hình nh khuôn mặt đến không gian Euclide, nơi khoảng  
cách tương ứng trực tiếp với độ đo độ tương tự khuôn mặt để trích xuất hiệu suất  
của các thuật toán đặc trưng khuôn mặt. Thuật toán gộp trung bình có trọng số  
được áp dụng cho mạng FaceNet và thuật toán nhận dạng khuôn mặt dựa trên  
mô hình FaceNet cải tiến được đề xuất. Thực nghiệm và ứng dụng thử nghiệm  
cho thấy thuật toán nhận dạng khuôn mặt được đề xuất có độ chính xác nhận  
dạng cao sử dụng phương pháp nhận dạng khuôn mặt dựa trên học sâu.  
 
Hình 1. Quá trình nhận dạng khuôn mặt    
(Nguồn: https://core.ac.uk/download/pdf/208977767.pdf)  
Từ khóa: Nhận diện khuôn mặt, học sâu, FaceNet, mạng nơ-ron tích chập,  
mạng nơ-ron tích chập xếp chồng.  
ABSTRACT   
Hình 1 mô  tả q trình nhận diện khuôn mặt. Trường  
hợp ảnh đầu vào (image input) gồm cả không gian có chứa  
khuôn  mặt  người  muốn  định  danh  thì  ta  cần  phát  hiện  
vùng  ảnh  chỉ  chứa  khuôn  mặt  của  người  đó  (face  
detection). Đây cũng là một bài toán được tập trung nghiên  
The convolutional neural networks (CNN) is one of the most successful deep  
learning model in the field of face recognition, the different image regions are always  
treated equally when extracting image features, but in fact different parts of the face  
play different roles in face recognition. In this paper, we use the inherent correlation  
between detection and calibration to enhance their performance in a deep multi- cứu [4, 5]. Ảnh khuôn mặt có thể được tiền xử lý (cân chỉnh  
task  cascaded  convolutional  neural  network  (MTCNN).  In  addition,  we  utilize chẳng hạn - face alignment) nhằm đảm bảo chất lượng cho  
Google’s FaceNet framework to learn a mapping from face images to a compact nhận diện. Khuôn mặt  của  mỗi người được trích chọn    
Euclidean space, where distances directly correspond to a measure of face similarity  
to  extract  the  performance  of  facial  feature  algorithms.  The  weighted  average  
pooling  algorithm  is  applied  to  the  FaceNet  network,  and  a  face  recognition  
algorithm based on the improved FaceNet model is proposed. The experiments and  
apply  system  show  that  the  proposed  face  recognition  algorithm  has  high  
recognition accuracy using face recognition method based on deep learning.  
biểu  diễn  thông  qua  một  véc-tơ  đặc  trưng  (feature  
extraction)  nhằm   tả  những  đặc  điểm  riêng  biệt  của  
khuôn mặt người đó và để so sánh với các khuôn mặt khác.  
Việc so sánh khuôn mặt đầu vào với cơ sở dữ liệu các khuôn  
mặt đã được lưu trữ (existing database) trở thành việc tính  
toán mức đ gần nhau giữa các véc-tơ đặc trưng (feature  
matching), từ đó tìm ra khuôn mặt giống nhất trong cơ sở  
dữ liệu.   
Keywords:  Face  recognition,  deep  learning,  faceNet,  convolutional  neural  
networks, multi-task cascaded convolutional neural network.  
 
1Khoa Công nghệ thông tin, Trường Đại học Kinh tế Kỹ thuật Công nghiệp  
2Trung tâm ứng dụng khoa học hàng không, VietnamAirlines  
*Email: thviet79@gmail.com  
Ngày nhận bài: 12/4/2021  
Ngày nhận bài sửa sau phản biện: 20/5/2021  
Ngày chấp nhận đăng: 25/6/2021  
 
Hình 2. Các bước chính trong một hệ thống nhận dạng khuôn mặt  
   Tạp chí KHOA HỌC VÀ CÔNG NGHỆ Tập 57 - Số 3 (6/2021)                                          Website: https://tapchikhcn.haui.edu.vn  
64  
P-ISSN 1859-3585     E-ISSN 2615-9619                                                                                                                           SCIENCE - TECHNOLOGY  
Một hệ thống nhận diện mặt người thông thường bao  connected  layer).  Hai  lớp  nơron  đầu  (tích  chập   gộp  
gồm bốn bước xử lý sau:  
chung)  thực  hiện  vai  trò  trích  chọn  đặc  trưng  của  ảnh  
khuôn mặt, trong khi lớp thứ ba (kết nối đầy đủ) thực hiện  
vai t ánh xạ các đặc trưng được trích chọn thành đầu ra  
cuối cùng, tức là định danh của người được nhận diện. Lớp  
nơron tích chập đóng vai t quan trọng trong CNN, bao  
gồm một chồng các phép toán tích chập, là một loại phép  
1. Phát hiện khuôn mặt (Face Detection).  
2.  Phân  đoạn  khuôn  mặt  (Face  Alignment  hay  
Segmentation).  
3. Trích chọn đặc trưng (Feature Extraction).  
4.  Nhận  diện  (Recognition)  hay  Phân  lớp  khuôn  mặt  tuyến tính chuyên biệt. Lớp nơron gộp chung đóng vai trò  
(Face Classification).  
làm  giảm  số  chiều  của  không  gian  đặc  trưng  được  trích  
chọn (hay còn gọi là subsampling) nhằm tăng tốc độ xử lý  
của quá trình nhận diện. Quá trình học mạng nơron là điều  
chỉnh  các  tham  số  học  của  mạng  (trainable  parameters)  
gồm các trọng s liên kết của lớp nơron tích chập và lớp  
nơron kết nối đầy đủ. Thuật toán học điển hình của mạng  
nơron  dạng  này   lan  truyền  ngược  sai  số  với  mục  tiêu  
giảm thiểu  sai s kết quả  nhận diện của mạng. Ngoài ra,  
mạng còn   các tham s cần phải thiết lập trước khi áp  
dụng  như  kích  thước  của  nhân  trong  phép  tích  chập,  độ  
trượt của phép tích chập, hàm kích hoạt, phương pháp tính  
của lớp nơron gộp chung và các tham số của mạng.  
Bên cạnh những bước chính nêu trên, ta còn có thể áp  
dụng  thêm  một  số  bước  khác  như  tiền  xử  lý,  hậu  xử    
nhằm làm tăng độ chính xác cho hệ thống. Sau bước phát  
hiện  khuôn  mặt,  ta   thể  thực  hiện  bước  tiền  xử    
(Preprocessing)  bao  gồm  các  bước  căn  chỉnh  ảnh  (face  
image  alignment)   chuẩn  hóa  ánh  sáng  (illumination  
normalization). Do một vài thông số như: tư thế khuôn mặt,  
độ sáng, điều kiện ánh sáng,… phát hiện khuôn mặt được  
đánh g là bước k và quan trọng nhất so với các bước  
còn lại của hệ thống.    
Trong nghiên cứu này, chúng tôi không tập trung tìm  
hiểu bước phát hiện khuôn mặt mà chỉ tập trung chủ yếu  
vào bước nhận diện khuôn mặt qua việc đ xuất s dụng  
một phương pháp nhận diện khuôn mặt với mạng đa tích  
chập xếp chồng và xây dựng ng dụng nhận diện khuôn  
mặt cho các đối tượng sinh viên và các cán bộ giảng viên  
trên một số dữ liệu thu thập được. Cách tiếp cận của chúng  
tôi là  sử  dụng mô  hình đạt  độ chính xác cao  trong nhận  
diện khuôn mặt dựa trên mạng nơron tích chập với cơ chế  
học  sâu,  kiểm  tra   hình  trên  bộ  dữ  liệu  mẫu   thử  
nghiệm  với  bài  toán nhận diện khuôn mặt. Bài báo  được  
cấu  trúc  gồm:  Phần  1  giới  thiệu  về  bài  toán  nhận  diện  
khuôn  mặt;  Phần  2  trình  bày  các  nghiên  cứu  liên  quan;  
Phần 3 giới thiệu phương pháp đề xuất và nêu bật một số  
ưu điểm và hạn chế; Phần 4 thực nghiệm và phân tích kết  
quả; Phần 5 kết luận và một số định hướng nghiên cứu.  
Nhiều  nghiên  cứu  ứng  dụng  CNN  trong  nhận  diện  
khuôn mặt với các cải tiến ngày một hiệu quả và chất lượng  
cao  hơn,  ứng  dụng  đa  dạng  vào  các  bài  toán  thực  tế.  
Nghiên cứu [6] phân tích tính hiệu quả của CNN so với các  
phương pháp nhận diện gồm: phân tích thành phần chính  
(PCA), mô hình biểu đồ mẫu nhị phân cục bộ (LBPH) và láng  
giềng gần nhất (KNN). Thử nghiệm trên cơ s d liệu ORL  
cho thấy LBPH đạt kết quả tốt hơn PCA và KNN, nhưng đối  
với CNN được đề xuất cho độ chính xác nhận diện tốt nhất  
(98,3% so với ba phương pháp kia chưa đến 90%). Qua đây  
phần nào khẳng định phương pháp dựa trên CNN hiệu quả  
hơn các phương pháp khác.  
Nghiên cứu [7] đã phân tích đánh g với các kiến trúc  
CNN cải tiến khác nhau cho nhận diện khuôn mặt. Thứ nhất  
là kiến trúc chứa 22 lớp nơron với 140 triệu tham số học và  
cần 1,6 tỷ FLOPS (floating-point operations per second) cho  
mỗi nh.  Dạng kiến  trúc thứ  hai dựa  trên   hình  mạng  
Interception  của  GoogleNet  gồm  các  phiên  bản  với  kích  
thước đầu vào khác nhau nhằm làm giảm không gian tham  
số học của mạng. Các kiến trúc này được ứng dụng vào các  
phạm vi khác nhau, trong khi kiến trúc CNN có kích thước  
lớn cho kết quả cao và phù hợp với ứng dụng trên các máy  
tính lớn t với CNN nhỏ hoặc rất nhỏ s p hợp với các  
ứng dụng trên thiết bị di động cầm tay nhưng vẫn đảm bảo  
kết  quả  chấp  nhận  được.  Nhằm  tăng  hiệu  quả  cao  hơn,  
nghiên cứu [8] đề xuất một kiến trúc CNN với quy mô “rất  
sâu” gồm 11 khối với 37 lớp nơron, 8 khối đầu đóng vai trò  
trích  chọn  đặc  trưng   3  khối  sau  thực  hiện  chức  năng  
phân lớp để nhận diện. Kiến trúc CNN này được chạy trên  
quy   dữ  liệu  học  mạng  rất  lớn  (LFW   YTF  với  hàng  
nghìn  định  danh   hàng  triệu  bức  ảnh)   cho  kết  quả  
(98,95% trên LFW và 97,3% trên YTF) tốt hơn so với các mô  
hình CNN khác.    
2. CÁC NGHIÊN CỨU LIÊN QUAN  
 
Hình 3. Một minh họa v kiến trúc dạng khối của mô hình CNN (Nguồn:  
Researchgate.net)  
Những năm gần đây, s phát triển mạnh m của công  
nghệ  học  sâu  (deep  learning)  với  mạng  nơron  tích  chập  
(convolutional  neural  network  -  CNN)   được  ứng  dụng  
thành công trong nhiều bài toán thực tế [3, 5]. CNN là một  
cấu trúc mạng nơron nhân tạo gồm ba loại lớp nơron (hình  
3): lớp nơron tích chập (convolution layer), lớp nơron gộp  
chung  (pooling  layer)   lớp  nơron  kết  nối  đầy  đủ  (fully  
Nghiên  cứu  [4,  14]  đã  đề  xuất  một  hệ  thống  mạng  
nơron tích chập cho nhận diện khuôn mặt với s cải tiến  
dựa trên kiến trúc CNN của VGG (Visual Geometry Group -  
65  
KHOA HỌC   
  CÔNG NGHỆ  
 P-ISSN 1859-3585      E-ISSN 2615-9619  
University of  Oxford). Đó là s dụng mô-đun CReLu (hàm  P-Net  (Proposal  Network)  nhằm  dự  đoán  các  vùng  trong  
kích  hoạt  của  nơron)  thay  cho  mô-đun  hàm  kích  hoạt  ảnh ví d  vùng chứa khuôn  mặt,  mạng  tinh chế  R-Net  
(ReLu)  thông  thường,  mô-đun  CReLu  thực  hiện  ghép  nối  (Refine Network) s dụng đầu ra của P-Net đ loại b các  
một  ReLu  chỉ  chọn  phần  dương  với  một  ReLu  chỉ  chọn  vùng  không  phải  khuôn  mặt   mạng  đầu  ra  (Output  
phần âm của sự kích hoạt. Ở đây chính là điểm gấp đôi mức  Network): sử dụng đầu ra R-Net để đưa ra kết quả cuối cùng  
độ phi tuyến của hàm kích hoạt trong CNN và đã được xác  với 5 điểm đánh dấu khuôn mặt: 2 điểm mắt, 1 điểm mũi và  
định cho chất lượng kết quả tốt hơn. Dựa trên mô hình đề  2 điểm khóe miệng. Facenet là sản phẩm nghiên cứu của  
xuất  này,  xây  dựng  một  hệ  thống  nhận  diện  khuôn  mặt  Google giới thiệu năm 2015, với model này đầu vào là ảnh  
theo thời gian  thực với một mạng nơron  tích chập nhiều  đúng kích thước cho đầu ra là một vector 128 features cho  
lớp (“rất sâu”) và phân tích thử nghiệm cho kết quả tốt hơn  1 khuôn mặt. Sau đó dùng SVM để phân nhóm các vector  
so với kết quả thu được khi sử dụng mô hình ban đầu.  
đó vào các nhóm để biết véc-tơ đó là mặt của ai.  
Nghiên  cứu  [8]  cải  tiến  chất  lượng  nhận  diện  cho    
hình dựa trên CNN bằng cách áp dụng phương pháp học  
mạng nơron với k thuật triplet loss”. Một s nghiên cứu  
khác tập trung vào vấn đề nhận diện biểu cảm khuôn mặt  
với các k thuật được đ xuất. Nghiên cứu [9] đã s dụng  
 hình CNN đ thiết kế h thống nhận diện 6 loại biểu  
cảm khuôn mặt khác nhau với việc đưa vào tiền xử lý hình  
ảnh trước khi nhận diện. Nghiên cứu [10] sử dụng kết hợp  
 hình nhị phân cục b (LBP) và mô hình CNN đ nhận  
diện  biểu  cảm  khuôn  mặt.  Theo  đó,  hình  ảnh  của  khuôn  
mặt được chuyển thành bản đồ đặc trưng bằng LBP, sau đó  
bản đ đặc trưng LBP này được sử dụng làm đầu vào của  
CNN để huấn luyện mạng và nhận diện.  
 
thread/mi-ai-nhan-dien-khuon-mat-trong-video-bang-mtcnn-va-facenet.3013864/)  
3.2. Trích chọn đặc trưng (FaceNet)  
3. PHƯƠNG PHÁP ĐỀ XUẤT  
Facenet là một hệ thống nhúng cho việc nhận dạng và  
phân cụm khuôn mặt được đ xuất bởi nhóm tác giả làm  
việc tại Google[13] dựa trên việc nhúng mỗi ảnh vào không  
gian  Euclide  bằng  cách  sử  dụng  mạng  CNN.  Thuật  toán  
nhận diện khuôn mặt trước facenet đều tìm cách biểu diễn  
khuôn mặt bằng một vector embedding (là vector chuyển  
dữ liệu chữ viết thô thành dữ liệu số thực) thông qua một  
layer bottleneck (nút thắt c chai có tác dụng giảm chiều  
dữ  liệu.  Trong  facenet,  quá  trình  encoding  của  mạng  
convolutional neural network đã giúp ta mã hóa bức nh  
về 128 chiều. Sau đó những vector này sẽ làm đầu vào cho  
hàm loss  function  đánh g khoảng  cách giữa các vector.    
Để  áp  dụng  triple  loss,  quá  trình  học  được  thực  hiện  với  
mỗi  bộ  ba  mẫu  học  gồm,  trong  đó   hình  ảnh  của  một  
người cụ thể (gọi là ảnh neo - anchor), là ảnh khác của cùng  
một người với ảnh (gọi là ảnh dương - positive) và là hình  
ảnh của bất kỳ một người khác (gọi là ảnh âm - negative).  
Mục  tiêu   đây   học  mạng  nơron  (điều  chỉnh  trọng  số  
mạng) sao cho phản hồi của mạng nơron với cặp mẫu là  
gần nhau hơn.    
Trong phần này, chúng tôi thiết kế mô hình nhận diện  
khuôn mặt tập trung chủ yếu vào bước nhận diện khuôn  
mặt  qua  việc  đề  xuất  sử  dụng  phương  pháp  nhận  diện  
khuôn mặt với mạng đa tích chập xếp chồng sử dụng mô  
hình Facenet và mô hình VGG16.    
3.1. Tiền xử lý ảnh đầu vào  
Phần này áp dụng một số phương pháp tiền xử lý trên  
hình  ảnh  đầu  vào,  bao  gồm  phát  hiện   cắt  xén  để  lấy  
vùng ảnh chứa khuôn mặt, cải thiện chất lượng ảnh. Trong  
thực tế ng dụng, ảnh đầu vào thường được trích xuất t  
camera  nên  bao  gồm  cả  không  gian  nền,  do  đó,  ta  phải  
thực hiện giai đoạn tìm kiếm và phát khuôn mặt (gọi là face  
detection) nhằm xác định vùng ảnh chứa đúng khuôn mặt  
cần xử lý và cắt bỏ không gian nền của ảnh. Để thực hiện  
điều này, các tác giả sử dụng phương pháp phát hiện vùng  
ảnh có chứa khuôn mặt dựa vào MTCNN.    
Khi ảnh khuôn mặt được phát hiện, thực hiện cắt vùng  
ảnh khuôn mặt đó từ nền, cải thiện chất lượng ảnh khuôn  
mặt này bằng việc chuyển đổi hình ảnh đầu vào thành hình  
ảnh đa cấp độ xám và áp dụng phép cân bằng mức xám, co  
giãn v kích thước đúng với đầu vào của mạng nơron đã  
thiết kế để thực hiện trích chọn đặc trưng và phân lớp.  
Hàm triplet loss luôn lấy 3 bức nh làm input và trong  
mọi trường hợp kì vọng:  
d(A, P) < d(A, N)                                                                       (1)  
MTCNN  (Multi-task  Cascaded  Convolutional  Networks)  
gồm  3  mạng  CNN  (Convolution,  Relu,  Max  Pooling,  Fully  
Connected Layers) xếp chồng và đồng thời hoạt động khi  
detect khuôn mặt. Kiến trúc của MTCNN thể hiện như hình  
4. Mỗi mạng có cấu trúc khác nhau và đảm nhiệm vai t  
khác nhau trong task. MTCNN hoạt động theo ba bước, mỗi  
bước dùng một mạng noron riêng lần lượt là: mạng đề xuất  
Để làm cho khoảng cách giữa vế trái và vế phải lớn hơn,  
ta sẽ cộng thêm vào vế trái một hệ số α không âm rất nhỏ.  
Khi đó (1) trở thành:  
d(A, P) + α ≤ d(A, N)  
 
 
 
 
 
‖ ( )  
‖ ( )  
  f A − f(P) + α ≤ f A − f(N)  
 
  f A − f(P) − f A − f(N) + α ≤ 0   
‖ ( )  
‖ ( )  
   Tạp chí KHOA HỌC VÀ CÔNG NGHỆ Tập 57 - Số 3 (6/2021)                                          Website: https://tapchikhcn.haui.edu.vn  
66  
P-ISSN 1859-3585     E-ISSN 2615-9619                                                                                                                           SCIENCE - TECHNOLOGY  
Như vậy hàm loss function sẽ là:  
vị t nhất v phát hiện đối tượng và vị trí haivề phân loại  
ảnh  trong  cuộc  thi  ILSVRC  2014.,  sau  khi  train  bởi  mạng  
VGG16 đạt độ chính xác cao nằm trong top-5 test trong dữ  
liệu ImageNet gồm 14 triệu hình ảnh thuộc 1000 lớp khác  
nhau. Kiến trúc của VGG16 mô tả trong hình 6.    
f A − f(P) − f A − f(N) + α   (2)  
(
)
‖ ( )  
‖ ( )  
ℒ A, P, N =  
ꢂꢃꢄ  
Trong đó n là số lượng các bộ 3 hình ảnh được đưa vào  
huấn luyện.   
Mục tiêu của hàm loss function là tối thiểu hóa khoảng  
cách giữa 2 ảnh khi chúng là negative và tối đa hóa khoảng  
cách khi chúng là positive.    
Kiến trúc bao gồm 13 lớp tích chập, 5 lớp max-pooling  
và 3 lớp kết nối đầy đủ. Số lớp có các tham số có thể điều  
chỉnh là 16 (13 lớp tích chập và 3 lớp kết nối đầy đủ). S  
lượng  bộ  lọc  trong  khối  đầu  tiên   64,  con  số  này  được  
nhân đôi trong các khối tiếp theo đó cho đến khi đạt 512.  
Mô hình này được hoàn thiện bởi hai lớp ẩn kết nối đầy đủ  
và một lớp đầu ra. Hai lớp kết nối đầy đủ có cùng số nơ-ron  
là 4096. Lớp đầu ra bao gồm 1000 nơ-ron tương ứng với số  
 
Hình 5. Sai s b ba tối thiểu hóa khoảng cách giữa nh (Anchor) và nh  
(Positive) và tối đa hóa khoảng cách giữa ảnh (Anchor) và ảnh (Negative)  
loại của tập dữ liệu Imagenet.    
 
Trong  bước  nhận  dạng  hay  phân  lớp  tức   xác  định  
danh tính (identity) hay nhãn của ảnh (label) - đó là ảnh của  
ai, ở bước nhận dạng/phân lớp, chúng tôi sử dụng phương  
pháp VGG16. VGG16 s tiến hành phân lớp nh trong tập  
huấn luyện, khi đưa nh vào nhận dạng s được so sánh,  
tìm ra ảnh đó thuộc vào lớp nào.  
Do đó đ loại b nh hưởng của các trường hợp nhận  
diện đúng Negative và Positive lên hàm loss function. Ta sẽ  
điều chỉnh g trị đóng góp của nó vào hàm loss function  
về 0.   
Tức là nếu:   
Thực nghiệm trên các bộ dữ liệu được cộng đồng đánh  
giá  sử  dụng  (trong  phần  4.1).  Từ  đó  xây  dựng  ứng  dụng  
nhận diện khuôn mặt cho đối tượng sinh viên và các cán bộ  
giảng viên trên một số dữ liệu thu thập được. Cách tiếp cận  
của chúng tôi là sử dụng mô hình đạt độ chính xác cao và  
hiệu quả trong việc nhận diện khuôn mặt. Để kết hợp các  
phương  pháp  nhận  dạng  khuôn  mặt  nhằm  đạt  hiệu  quả  
cao, trong phương pháp đề xuất, chúng tôi đưa ra phương  
pháp phát hiện khuôn mặt (MTCNN), trích chọn đặc trưng  
(FaceNet), phân lớp và nhận diện khuôn mặt (VGG16).  
f A − f(P) − f A − f(N) + α ≤ 0                      (3)  
‖ ( )  
‖ ( )  
sẽ được điều chỉnh v 0. Khi đó hàm loss function trở  
thành:  
(
)
‖ ( )  
( )‖‖ (  
max( f A− f P − f A−  
)
ℒ A, P, N =  
ꢂꢃꢄ  
(
)‖ꢀ  
f Nꢂ ꢀ + α, 0)                                                 (4)  
Như  vậy  khi  áp  dụng  Triple  loss  vào  các   hình  
convolutional neural network ta có thể tạo ra các biểu diễn  
vector tốt nhất cho mỗi một bức ảnh. Những biểu diễn véc-  
 này  sẽ  phân  biệt  tốt  các  ảnh  Negative  rất  giống  ảnh  
Positive. Và đồng thời các bức ảnh thuộc cùng một label sẽ  
trở nên gần nhau hơn trong không gian chiếu Euclidean.  
4. THỰC NGHIỆM VÀ KẾT QUẢ   
4.1. Mô tả dữ liệu    
3.3. Nhận dạng và phân lớp (VGG16)  
Bộ d liệu ngoài có bộ dữ liệu mẫu AT&T và Yale được  
công b và s dụng k rộng rãi cho bài toán nhận diện  
khuôn mặt  [6, 16, 17]  gồm có  thêm  bộ  dữ  liệu thu  thập  
thêm gồm ảnh của 15 sinh viên, 36 giảng viên trong khoa  
CNTT và 455 giảng viên Trường Đại học Kinh tế Kỹ thuật -  
Công nghiệp Hà Nội.  
 
 
Hình 7. Các ảnh của đối tượng “s1” trong dữ liệu AT&T  
 
Hình  6.  Kiến  trúc  của  VGG16  (Nguồn:  https://nttuan8.com/bai-6-  
convolutional-neural-network)  
 
Hình 8. Ảnh của 5 người đầu tiên trong dữ liệu AT&T  
Bộ dữ liệu khuôn mặt AT&T (hay còn gọi là dữ liệu ORL)  
được  tạo  bởi  Phòng  thí  nghiệm  AT&T  thuộc  Đại  học  
VGG16 là mạng CNN được đề xuất bởi K. Simonyan and  
A. Zisserman, University of Oxford [13]. Mô hình này giành  
67  
KHOA HỌC   
  CÔNG NGHỆ  
 P-ISSN 1859-3585      E-ISSN 2615-9619  
Cambridge, năm 2002. D liệu gồm 400  hình nh của  40  ảnh của các đối tượng trong tư thế đứng, chụp từ phía trước  
người  với  10  biểu  cảm  khuôn  mặt  khác  nhau  cho  mỗi  và một số trường hợp có hơi nghiêng sang trái hoặc phải, lên  
người, mỗi biểu cảm tương ng một hình nh. Tất c các  trên hoặc xuống dưới, độ tương phản, ánh sáng khác nhau,  
hình ảnh được chụp trên nền đồng nhất tối màu với các đối  gồm c nh có đeo kính hoặc không đeo kính, có mũ hoặc  
tượng trong tư thế thẳng đứng, chụp từ phía trước và một  không mũ. Ảnh khuôn mặt mọi người đều quan sát được, tức  
số trường hợp có hơi nghiêng sang trái hoặc phải, lên trên  không bị che mất những đặc trưng liên quan.  
hoặc xuống dưới. Ảnh khuôn mặt mọi người đều quan sát  
Hình 11 đưa ra minh họa một phần tập ảnh được huấn  
được, tức không bị che mất những đặc trưng liên quan. Tất  
luyện (processed) sau khi đã tìm và cắt khuôn mặt.  
cả  các  hình  ảnh  đều   ảnh  đa  mức  xám  với  kích  thước  
112(cao) × 92(rộng) pixel. Hình 7, 8 minh hoạ các hình ảnh  
với các trạng thái khác nhau của một người trong tập d  
liệu này.    
 
Hình 11. Minh họa một phần của ảnh huấn luyện  
Bộ dữ liệu khuôn mặt Yale được tạo bởi Trung tâm điều  
khiển và thị giác máy tính tại Đại học Yale, New Haven. Tập  
dữ  liệu  này  gồm  165  hình  ảnh  khuôn  mặt  chụp  từ  phía  
trước và dưới dạng đa cấp xám của 15 người khác nhau. Có  
11 hình ảnh cho mỗi người mô tả các biểu cảm khuôn mặt  
 điều kiện khác nhau n ánh sáng (ánh sáng phía bên  
phải,  ánh  sáng   trung  tâm   ánh  sáng  phía  bên  trái),  
trạng  thái  nét  mặt  (bình  thường,  buồn,  vui,  ngạc  nhiên,  
buồn  ngủ   nháy  mắt),  gồm  cả  ảnh   đeo  kính  hoặc  
không đeo kính. Kích thước của tệp tin hình ảnh tất cả đều  
là 243(cao) × 320(rộng). Hình 9, 10 minh hoạ các hình ảnh  
với độ sáng, trạng thái khác nhau của một người trong tập  
dữ liệu này.  
Hình 12 đưa ra một mẫu về tập ảnh thử nghiệm (raw).  
 
Hình 12. Minh họa về ảnh thử nghiệm ban đầu  
4.2. Kết quả thử nghiệm  
Quá  trình  thử  nghiệm  được  thực  hiện  trên  hệ  thống  
máy chủ với cấu hình bộ xử lý GPU, giới bộ nhớ 16Gb RAM  
 16Gb GPU. H thống được cài đặt môi trường Python,  
các frameworks và thư viện cơ bản cho học máy (machine  
learning) như numpy, matplotlib, tensorflow, keras,... thuận  
lợi cho việc tổ chức dữ liệu phục vụ chạy thử nghiệm và lưu  
trữ kết quả. Theo đó, chương trình thử nghiệm của chúng  
tôi  được  xây  dựng  trên  môi  trường  Python   sử  dụng  
frameworks  của  tensorflow  với  giao  diện  thư  viện  keras,  
đây là t viện cung cấp các tính năng khá mạnh mẽ cho  
xử lý ảnh và cho mô hình Neural network.    
Tập dữ liệu ORL và Yale được chia làm 2 tập chính là tập  
luyện  (processed)   tập  thử  nghiệm  (raw)   được  nhận  
diện thông qua ảnh Các tập dữ liệu còn lại cũng được chia  
làm 2 tập chính n b ORL và Yale nhưng theo t l tập  
thử nghiệm bằng tập luyện và được nhận diện thông qua  
webcam.    
Kết quả trên bộ dữ liệu AT&T và Yale khi so sánh giữa 3  
phương pháp, được trình bày ở bảng 1. Để có thể so sánh  
giữa các mô hình tôi s dụng phương pháp CNN làm tiêu  
chuẩn  phương  pháp  này  cho  tỉ  lệ  accuracy  đạt  95%.  Đề  
xuất  ban  đầu  dùng  phương  pháp  MTCNN,  FaceNet   sử  
dụng  SVM  để  phân  lớp  tuy  nhiên  tỷ  lệ  này  đạt  95,1%    
tương đương với CNN. Chúng tôi đã đưa ra đề xuất cải tiến  
dùng phương pháp n trên nhưng thay vì s dụng SVM  
chúng tôi sử dụng VGG16 và phương pháp này cho kết quả  
tốt hơn đạt 97,0% cao hơn so với hai phương pháp trước.    
 
Hình 9. Một phần của tập thử nghiệm trong tập dữ liệu ORL  
Bảng 1. Kết quả thử nghiệm giữa các mô hình của tập dữ liệu Yale, AT&T    
Phương pháp  
CNN  
Tỉ lệ train model  
95,0%  
MTCNN, FaceNet sử dụng SVM (*)  
MTCNN, FaceNet sử dụng VGG16 (**)  
95,1%  
97,0%  
 
Kết quả quá trình huấn luyện VGG16 trên hai tập dữ liệu  
Hình  10.  Các  ảnh  của  đối  tượng  “subject01”  trong  dữ  liệu  Yale  AT&T và Yale được thể hiện trong hình 13. Đồ thị thể hiện tỉ  
OmOyq2o)  
lệ khi huấn luyện dữ liệu sử dụng VGG16 trên tập AT&T và  
Yale. Kết quả thể hiện được hiệu quả trên s epoch và độ  
chính xác trong quá trình huấn luyện. Đây là kết quả 10 lần  
chạy thử nghiệm. Kết quả trên c hai tập d liệu đều cho  
kết quả độ chính xác phân lớp (accuracy) tốt.  
Bộ dữ liệu thu thập để chạy ứng dụng gồm 15 sinh viên,  
36 giảng viên khoa CNTT và 455 cán bộ giảng viên khác của  
trường Đại học Kinh tế Kỹ thuật Công nghiệp. Dữ liệu gồm  
   Tạp chí KHOA HỌC VÀ CÔNG NGHỆ Tập 57 - Số 3 (6/2021)                                          Website: https://tapchikhcn.haui.edu.vn  
68  
P-ISSN 1859-3585     E-ISSN 2615-9619                                                                                                                           SCIENCE - TECHNOLOGY  
Từ kết quả trên, chúng tôi xây dựng ứng dụng cho việc  
nhận diện khuôn mặt cho dữ liệu thu thập là các sinh viên  
và cán bộ giảng viên như mô tả trong mục 4.1. Ứng dụng  
được thực hiện trên PyCharm Community Edition, sử dụng  
Python 3.7 virtualenv.    
5. KẾT LUẬN   
Trong bài báo này, chúng tôi đã đ xuất mô hình dựa  
trên  mạng  nơron  tích  chập  xếp  chồng  (MTCNN)  để  nhận  
diện khuôn mặt con người. Mô hình này bao gồm 3 mạng  
CNN xếp chồng và đồng thời hoạt động khi detect khuôn  
mặt. Mỗi mạng có cấu trúc khác nhau và đảm nhiệm vai trò  
khác nhau  trong task. Đầu ra của   hình là v t khuôn  
mặt và các điểm trên mặt như: mắt, mũi, miệng. Trong mô  
hình này phát hiện khuôn mặt bằng MTCNN, trích xuất đặc  
trưng bằng Facenet và dùng SVM để phân lớp và nhận diện  
mặt. Bên cạnh đó chúng tôi cải tiến MTCNN, trích xuất đặc  
trưng  bằng  Facenet  kết  hợp  việc  phân  lớp  của   hình  
VGG16.  Giải  pháp  này   nhiều  ưu  điểm  như:  nhận  diện  
được mặt  nhiều góc khác nhau, không cần nhìn thẳng,  
nhận diện chính xác hơn, trích xuất được nhiều đặc trưng  
khuôn  mặt  hơn.  Chúng  tôi  cũng  tiến  hành  thực  nghiệm  
bằng MTCNN sử dụng mô hình Facenet và MTCNN sử dụng  
mô hình VGG16 để so sánh độ chính xác. Các mô hình đảm  
bảo độ chính xác cao trong việc nhận diện mặt ở nhiều góc  
độ và đảm bảo đầu ra các đặc trưng khuôn mặt. Dựa trên  
các mô hình này chúng tôi tiến hành xây dựng ng dụng  
nhận diện khuôn mặt với tập d liệu là các cán b giảng  
viên và sinh viên.     
 
Thời gian tới, chúng tôi sẽ nghiên cứu cải thiện hiệu quả  
phân lớp trong các mô hình hiện nay đạt kết quả cao của  
AlexNet, VGG, Inception [17,  18, 19] , phân tích điều  chỉnh  
một s lớp CONV bằng lớp nơron. Bên cạnh đó, chúng tôi  
thiết kế hệ thống thu thập dữ liệu hình ảnh để tạo bộ dữ liệu  
huấn luyện cho mô hình. Việc xây dựng ứng dụng nhận diện  
khuôn mặt cho đối tượng sinh viên, giảng viên bước đầu đã  
đạt được kết quả tốt và có tính thực tiễn cao. Đây là cơ sở đó  
chúng tôi phát triển tiếp và xây dựng ứng dụng cho bài toán  
thực tiễn như hệ thống điểm danh khuôn mặt các sinh viên  
trong lớp học, h thống nhận diện cán b tại cơ quan, h  
thống chấm công, hệ thống nhận diện cư dân…  
 
Hình 13. Đồ thị tỉ lệ khi huấn luyện dữ liệu sử dụng VGG16 trên tập AT&T, Yale  
 
 
TÀI LIỆU THAM KHẢO  
 
[1]. Jing C., Song T., Zhuang L., Liu G., Wang L., Liu K., 2018. A survey of face  
recognition  technology  based  on  deep  convolutional  neural  networks.  Comput.  
Appl.  Softw.  35(1),  223-231.  https://doi.org/10.3969/j.issn.1000-  
386x.2018.01.039  
[2]. Mao Y., 2017. Research on Face Recognition Algorithms Based on Deep  
Neural Networks. Master, Zhejiang University.  
[3]. Y. LeCun, Y. Bengio, 1995. Convolutional networks for images, speech,  
and time-series. In M. A. Arbib, editor, The Handbook of Brain Theory and Neural  
Networks. MIT Press.  
[4]. Lionel Landry S. De o, Elie T. Fute, Emmanuel Tonye, 2018. CNNSFR: A  
Convolutional  Neural  Network  System  for  Face  Detection  and  Recognition.  
International Journal of Advanced Computer Science and Applications, Vol. 9, No.  
12, pp.240-244.   
 
Hình 14. Minh họa ứng dụng trên bộ dữ liệu cán bộ giảng viên Khoa Công  
nghệ thông tin   
[5]. Mei Wang, Weihong Deng, 2021. Deep face recognition: A survey. Neuro  
computing  
Volume  
429,  
Pages  
215-244.  
69  
KHOA HỌC   
  CÔNG NGHỆ  
 P-ISSN 1859-3585      E-ISSN 2615-9619  
[6]. Patrik Kamencay, Miroslav Benco, Tomas Mizdos, Roman Radil, 2017. A  
New  Method  for  Face  Recognition  Using  Convolutional  Neural  Network.  Digital  
Image Processing and Computer Graphics, Vol. 15, No. 4, pp.663-672.    
[7].  James  Philbin,  Florian  Schro,  Dmitry  Kalenichenko,  2015.  FaceNet:  A  
Unified  Embedding  for  Face  Recognition  and  Clustering.  IEEE    Conference    on    
Computer  Vision  and Pattern Recognition (CVPR).  
[8]. Omkar M. Parkhi, Andrea Vedaldi, Andrew Zisserman, 2015. Deep Face  
Recognition.  University of Oxford.   
[9]. Kevin Santoso, Gede Putra Kusuma, Kevin Santoso, Gede Putra Kusuma,  
2018. Face Recognition Using Modified OpenFace. 3rd  International  Conference    
on    Computer  Science  and  Computational  Intelligence,  Procedia  Computer  
Science, No.135, pp.510–517.  
[10].  Sonali  Sawardekar,  Sowmiya  Raksha  Naik,  2018.  Facial  Expression  
Recognition  using  Efficient  LBP  and  CNN.  International  Research  Journal  of  
Engineering and Technology (IRJET), e-ISSN: 2395-0056, Volume: 05, Issue: 06,  
p-ISSN: 2395-0072, pp.2273-2277.  
[11]. Andre Teixeira Lopes, Edilson de  Aguiar, Thiago Oliveira-Santos, 2015.  
A  Facial  Expression  Recognition  System  Using  Convolutional  Networks.  28th  
SIBGRAPI on Conference Graphics, Patterns and Images.  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
[12].  Ekberjan  Derman  and  Albert  Ali  Salah,  2018.  Continuous  Real-Time  
Vehicle Driver Authentication  
Using  Convolutional  Neural  Network  
Based Face Recognition. 13th IEEE International Conference on Automatic Face &  
Gesture Recognition.  
[13].  F.  Schroff,  D.  Kalenichenko,  J.  Philbin,  2015.  FaceNet:  A  unified  
embedding for face recognition and clustering. 2015 IEEE Conference on Computer  
Vision  and  Pattern  Recognition  (CVPR),  pp.  815-823,  doi:  
10.1109/CVPR.2015.7298682.  
[14].  K.  Simonyan,  Andrew  Zisserman,  2015.  Very  Deep  Convolutional  
Networks  for  Large-Scale  Image  Recognition.  In  Journal  CoRR,  volume  
abs/1409.1556.  
[15].  Hoda  Mohammadzade,  Amirhossein  Sayyafan,  Benyamin  Ghojogh,  
2018. Pixel-Level Alignment of Facial Images for High  Accuracy  Recognition  
Using Ensemble of Patches. Journal of the Optical Society of America A 35(7).  
[16]. M. A. Abuzneid, A. Mahmood, 2018. Enhanced Human Face Recognition  
Using  LBPH  Descriptor,  Multi-KNN,  and  BPNN.  IEEE  Access,  Vol.  6,  pp.20641-  
20651.  
 [17].  Alex  Krizhevsky,  Ilya  Sutskever,  Geoffrey  E  Hinton,  2012.  Imagenet  
classification with deep convolutional neural networks. In F.Pereira, C. J. C. Burges,  
L.  Bottou,  and  K.  Q.  Weinberger,  editors, Advances  in  Neural  Information  
Processing Systems 25, pages 1097–1105. Curran Associates, Inc.  
[18].  Karen  Simonyan,  Andrew  Zisserman,  2014.  Very  Deep  Convolutional  
Networks  for  Large-Scale  Image  Recognition. arXiv  e-prints,  page  
arXiv:1409.1556.  
[19].  Christian  Szegedy,  Wei  Liu,  Yangqing  Jia,  Pierre  Sermanet,  Scott  E.  
Reed,  Dragomir  Anguelov,  Dumitru  Erhan,  Vincent  Vanhoucke,  Andrew  
Rabinovich,  2015.  Going  deeper  with  convolutions. 2015  IEEE  Conference  on  
Computer Vision and Pattern Recognition (CVPR), pages 1–9.  
 
AUTHORS INFORMATION  
Tran Hong Viet1, Do Dinh Tien1, Nguyen Thi Tra1, Tran Lam Quan2  
 
1Faculty of Information Technology, University of Economics - Technical for  
Industries  
2Center of Aviation Science Application, VietnamAirlines  
   Tạp chí KHOA HỌC VÀ CÔNG NGHỆ Tập 57 - Số 3 (6/2021)                                          Website: https://tapchikhcn.haui.edu.vn  
70  
pdf 7 trang yennguyen 20/04/2022 1660
Bạn đang xem tài liệu "Nhận diện khuôn mặt sử dụng mạng nơron tích chập xếp chồng và mô hình Facenet", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfnhan_dien_khuon_mat_su_dung_mang_noron_tich_chap_xep_chong_v.pdf