Ứng dụng mạng học sâu cho nhận diện khuôn mặt

Luận văn Thạc sĩ: “Ứng dụng mạng học sâu cho nhận diện khuôn mặt”  
ỨNG DỤNG MẠNG HỌC SÂU CHO NHẬN DIỆN KHUÔN MẶT  
DEEP LEARNING NETWORK FRAMEWORK FOR FACE RECOGNITION  
Trần Giang Nam1, Nguyen Thanh Hai2  
1Ho Chi Minh City Ly Tu Trong College, Vietnam  
2Ho Chi Minh City University of Technology and Education, Vietnam  
TÓM TẮT  
Trong những năm gần đây, nhận diện khuôn mặt đã đạt được những tiến bộ vượt bậc nhờ vào  
sự phát triển của mạng nơ-ron tích chập (CNN). Tùy thuộc vào mục đích sử dụng khác nhau mà  
cấu trúc mạng CNN được thiết kế, điều chỉnh cho phù hợp. Trong nghiên cứu này, ba tập dữ  
liệu ảnh khuôn mặt FEI Face, CASIA-WebFace và tập ảnh tự thu thập được sử dụng cho huấn  
luyện và kiểm tra nhận diện khuôn mặt. Ảnh ngõ vào sẽ được chuẩn hóa để phù hợp với cấu  
trúc mô hình mạng CNN VGG-16. Hơn nữa, mô hình mạng CNN này được phân tích và mô tả  
việc tính toán ở các lớp nhằm phục vụ việc hiệu chỉnh mạng cho phù hợp để hiệu suất nhận biết  
đạt kết quả cao. Quá trình thực nghiệm thay đổi số lớp mạng trong mô hình CNN VGG-16 để  
so sánh sự ảnh hưởng của độ sâu đến hiệu suất của mạng, đồng thời thực hiện so sánh hai thuật  
toán tối ưu được dùng trong huấn luyện là RMSprop và Adam. Hiệu suất của hai mô hình được  
đánh giá qua độ chính xác của từng tập kiểm tra tương ứng với ba tập dữ liệu trên và kết quả  
là đạt khoảng trên 95%. Cuối cùng, nghiên cứu còn thực hiện việc so sánh độ chính xác với các  
mô hình mạng khác được thực hiện trên tập dữ liệu khuôn mặt FEI Face nhằm phục vụ cho mục  
đích cải tiến hiệu suất nhận dạng đối tượng khuôn mặt trong tương lai.  
Từ khóa: Nhận diện khuôn mặt, mạng học sâu, thuật toán tối ưu.  
ABSTRACT  
In recent years, face recognition has achieved great success thanks to the development of  
convolutional neural networks (CNNs). For the different purposes, the CNN networks are  
designed and adapted accordingly for different applications. In this research, three face image  
datasets of FEI, CASIA-WebFace and self-collected are used for training and testing in a CNN.  
The input datasetswill be standardized for applying in the CNNmodel with VGG-16.Moreover,  
this CNN model is analyzed for the calculation of layers in it for increasing the recognition  
performance. In the experiments, the change of the number of the layers in the CNN model-  
HVTH: Trần Giang Nam  
76  
GVHD: PGS.TS Nguyễn Thanh Hải  
Luận văn Thạc sĩ: “Ứng dụng mạng học sâu cho nhận diện khuôn mặt”  
VGG-16is to compare results on the network performance betweentwo optimization algorithms  
of RMSprop and Adam. The accurate performance of the twomodels is estimated based on each  
testing dataset extracted from three datasets and the result is a little bit over 95%. Finally, the  
research represents the accuracy of the network model compared with other network models  
based on FEI Face's datasets for the purpose of improving the face recognition performance in  
the future.  
Keywords: Face recognition; deep learning network; optimization algorithms.  
1. GIỚI THIỆU  
Nhận diện khuôn mặt người đang là một lĩnh vực được quan tâm nghiên cứu nhiều trong  
thị giác máy tính. Hiện nay, trên thế giới đang có rất nhiều mô hình cũng như thuật toán ra đời  
nhằm giải quyết bài toán này.  
Ojala và cộng sự [1] đã phát triển phương pháp Local Binary Patterns (LBP), nó là một mô  
tả kết cấu có thể được sử dụng để biểu diễn các khuôn mặt, vì một hình ảnh khuôn mặt có thể  
được xem như là một thành phần của các mô hình văn bản vi mô. Tóm lại, quy trình này bao  
gồm việc chia hình ảnh khuôn mặt thành nhiều vꢀng trong đó các tính năng LBP được trích xuất  
và ghép vào một vectơ đặc trưng sẽ được sử dụng làm mô tả khuôn mặt.  
Phân loại K – Nearest Neighbour (K-NN) là thuật toán phân loại hình ảnh đơn giản. Bên  
trong thuật toán này chỉ đơn giản dựa vào khoảng cách giữa các vectơ đặc trưng. Nó phân loại  
các điểm dữ liệu không xác định bằng cách tìm lớp phổ biến nhất trong số các mẫu K gần nhất.  
Các số liệu khoảng cách có thể được sử dụng tꢀy thuộc vào loại dữ liệu. Trong trường hợp này,  
sử dụng khoảng cách Euclide để so sánh sự tương đồng giữa các hình ảnh [2].  
Ngoài ra, một số nghiên cứu nhận dạng khuôn mặt khác cũng được quan tâm như SIFT của  
David G. Lowe [3]. Hay đại diện dựa trên bộ mô tả Bag-of-visual-words của Yang và cộng sự  
(2007) [4]. Tuy nhiên, các phương pháp này chủ yếu dựa vào đặc trưng khuôn mặt của đối  
tượng. Và thực tế kết quả nhận diện không đạt được hiệu suất cao.  
Những năm gần đây, với sự phát triển của mạng nơ-ron tích chập đã làm tăng đáng kể hiệu  
suất nhận dạng. Trong đó, nó kết hợp được việc trích đặc trưng khuôn mặt và kỹ thuật phân lớp  
thống kê trong cꢀng một mạng. Zhenyao và cộng sự [5] đã xây dựng một mạng tích chập để  
phân loại và xác định danh tính của những khuôn mặt hướng trực diện. Y Taigman và cộng sự  
HVTH: Trần Giang Nam  
77  
GVHD: PGS.TS Nguyễn Thanh Hải  
Luận văn Thạc sĩ: “Ứng dụng mạng học sâu cho nhận diện khuôn mặt”  
[6] đề xuất mô hình DeepFace. Đầu tiên họ chuẩn hóa các ảnh đầu vào, sau đó là tạo một mạng  
học sâu DNN bao gồm hơn 120 triệu tham số sử dụng một số lớp được kết nối cục bộ mà không  
chia sẻ trọng số, thay vì các lớp chập tiêu chuẩn. Họ đã đào tạo nó trên tập dữ liệu lớn với hơn  
4,4 triệu ảnh khuôn mặt thuộc 4000 danh tính. Kết quả thực nghiệm đạt độ chính xác trên 97.35%  
trên tập dữ liệu LFW. Kiến trúc mạng học sâu FaceNet với hàm chi phí bộ ba (triplet loss  
function) của Florian Schroff và cộng sự [7] trực tiếp ánh xạ từ hình ảnh khuôn mặt đến không  
gian Euclide. Khi không gian này được tạo, các tác vụ như nhận dạng khuôn mặt, xác minh và  
phân cụm có thể được thực hiện dễ dàng bằng cách nhúng vào FaceNet. Trên bộ dữ liệu được  
dán nhãn được sử dụng rộng rãi trong khuôn mặt hoang dã (LFW), hệ thống đạt được độ chính  
xác kỷ lục mới là 99,63%. Trên cơ sở dữ liệu YouTube Faces, nó đạt được 95,12%. Đó là một  
số nghiên cứu tiêu biểu liên quan đến việc nhận dạng khuôn mặt, mỗi nghiên cứu đều có ưu  
điểm và nhược điểm riêng.  
2. PHƯƠNG PHÁP LUẬN  
2.1 Mô tả tập dữ liệu  
Tập dữ liệu ảnh khuôn mặt gồm 3 tập:  
FEI Face: Có 200 đối tượng và 14 hình ảnh cho mỗi cá nhân, tổng cộng 2800 hình ảnh.  
CASIA-WebFace: Trong tập dữ liệu này 10 đối tượng với 2924 ảnh đã được trích ra để  
huấn luyện và nhận dạng.  
Tập ảnh tự thu thập: là ảnh khuôn mặt của 13 sinh viên với hơn 6000 ảnh khuôn mặt với  
nhiều khoảng cách và góc độ khác nhau như mô tả ở hình 1.  
Hình 1. Mô tả phương pháp tự thu ảnh  
HVTH: Trần Giang Nam  
78  
GVHD: PGS.TS Nguyễn Thanh Hải  
Luận văn Thạc sĩ: “Ứng dụng mạng học sâu cho nhận diện khuôn mặt”  
Sau khi trích xuất mẫu khuôn mặt từ các ảnh được thu thập ở trên sẽ được tập ảnh. Hình 2 là  
ảnh một đối tượng trong tập tự thu này.  
Hình 2. Mẫu ảnh khuôn mặt được trích xuất của một đối tượng  
2.2 Phương pháp đề xuất  
Trích xuất  
khuôn mặt  
&
Kết quả  
khuôn mặt  
Ảnh  
đầu  
vào  
Mạng  
CNNs  
nhận diện  
Định kích cỡ  
Hình 3. Thực hiện nhận dạng khuôn mặt  
Ảnh ngõ vào sẽ được đưa vào trình phát hiện khuôn mặt để trích xuất mẫu ảnh chứa khuôn  
mặt, rồi sau đó định ảnh về cùng một kích cỡ. Tiếp theo dữ liệu ảnh được đưa vào mạng nơ-ron  
tích chập để nhận diện khuôn mặt và cuối cꢀng là danh tính đối tượng được nhận diện. Theo đó,  
hình 3 là sơ đồ mô tả quá trình thực hiện nhận diện khuôn mặt.  
Lấy mẫu ảnh khuôn mặt  
Trình phát hiện đối tượng khuôn mặt sử dụng thuật toán Viola-Jones. Nó sử dụng một  
loạt các phân loại để xử lý hiệu quả các vùng hình ảnh có sự hiện diện của một khuôn mặt. Mỗi  
giai đoạn trong tầng áp dụng các phân loại nhị phân ngày càng phức tạp hơn, cho phép thuật  
toán bỏ qua nhanh chóng các khu vực không chứa mục tiêu.  
Hình 4. Các khuôn mặt được trình dò phát hiện  
HVTH: Trần Giang Nam  
79  
GVHD: PGS.TS Nguyễn Thanh Hải  
Luận văn Thạc sĩ: “Ứng dụng mạng học sâu cho nhận diện khuôn mặt”  
Hình 4 mô tả các khuôn mặt được trình dò phát hiện. Sau khi đã xác định được vị trí cũng  
như chiều rộng và chiều cao của từng khuôn mặt trong một bức ảnh, ảnh khuôn mặt của từng  
đối tượng sẽ được tiến hành trích mẫu và định kích cỡ là 224x224x3. Từ đây ảnh sẽ được đưa  
vào mạng nơ-ron để huấn luyện và nhận diện.  
Cấu trúc mạng nơ-ron tích chập  
Gồm 4 lớp cơ bản:  
Lớp tích chập: Lớp này sử dụng bộ lọc kích thước nhỏ và lần lượt quét qua toàn bộ ảnh.  
Mỗi lần dịch chuyển theo một giá trị bước trượt. Tại mỗi bước, bộ lọc sẽ tiến hành tích chập với  
các điểm ảnh tại vùng ảnh đó. Ta cũng có thể dùng nhiều bộ lọc khác nhau lên ảnh đầu vào để  
tìm nhiều đặc trưng của ảnh. Giả sử bộ lọc w có kích thước m x n tích chập với ảnh đầu vào  
f(x,y) và cho ngõ ra g(x,y) với công thức sau:  
m1 n1  
g(x, y)   
w(s,t) f (x s, y t)  
(1)  
   
s0 t0  
Lớp hiệu chỉnh tuyến tính (ReLU): ReLU là một hàm phi tuyến tính, chức năng của lớp  
này là chuyển toàn bộ giá trị âm từ kết quả của lớp tích chập thành giá trị 0, nghĩa là Output =  
max(0,Input). Đầu ra của lớp ReLU có kích thước giống với đầu vào, chỉ là tất cả các giá trị âm  
trong nó được loại bỏ.  
Lớp Pooling: Sau khi qua lớp Pooling, ảnh sẽ được giảm kích thước nhưng vẫn giữ được  
những đặc trưng quan trọng của ảnh. Khác với lớp tích chập, lớp này chỉ tiến hành lấy mẫu  
(subsampling) thay vì tích chập. Lớp Pooling lấy các mảng nhỏ (filter kích thước 2x2 hoặc 3x3)  
từ lớp chập và tạo ra mẫu đặc trưng cho nó. Trong lớp Pooling thì phương pháp Max Pooling  
được áp dụng cho dữ liệu ngõ vào này, nó chọn các giá trị lớn nhất từ mỗi cửa sổ.  
Lớp kết nối đầy đủ: là một mạng nơ-ron nhiều tầng sử dụng chức năng kích hoạt softmax  
trong lớp đầu ra. Kết nối đầy đủ có nghĩa là mọi nơ-ron ở lớp trước được kết nối với mọi nơ-  
ron ở lớp kế tiếp.  
Hàm Softmax: là hàm lấy một vectơ của các số thực và chuẩn hóa nó thành phân phối xác  
suất bao gồm xác suất theo tỷ lệ số mũ của số đầu vào.  
HVTH: Trần Giang Nam  
80  
GVHD: PGS.TS Nguyễn Thanh Hải  
Luận văn Thạc sĩ: “Ứng dụng mạng học sâu cho nhận diện khuôn mặt”  
ef  
i
i S( f )i   
C
(2)  
ef  
j
j1  
Với f là ngõ vào có kích thước k x l, 1≤ i ≤C, trong đó C là số lớp đào tạo.  
Lớp ngõ ra: là một vector biểu diễn các lớp được định nghĩa ở hình ảnh ngõ vào. Trong  
nghiên cứu này, nó là một vector bao gồm dữ liệu đại diện cho khuôn mặt cần nhận dạng.  
2.3 Mô hình mạng CNN VGG-16  
Mô hình mạng nơ-ron tích chập VGG-16 [8] là mô hình đã được đào tạo bởi nhóm VGG  
Oxford. Trong nghiên cứu này, nó được sử dụng để tìm hiểu cấu trúc chi tiết của mạng nơ-ron  
tích chập và ứng dụng nó cho nhận diện khuôn mặt.  
Input  
3x3 Conv, 256  
3x3 Conv, 256  
3x3 Conv, 256  
Max Pooling  
3x3 Conv, 512  
3x3 Conv, 512  
3x3 Conv, 64  
3x3 Conv, 64  
Max Pooling  
3x3 Conv, 128  
3x3 Conv, 128  
Max Pooling  
3x3 Conv, 512  
Max Pooling  
FC 4096  
3x3 Conv, 512  
3x3 Conv, 512  
3x3 Conv, 512  
Max Pooling  
FC 4096  
FC  
Softmax  
Output  
Conv: Convolutions  
FC: Fully Connected  
Hình 5. Mô hình mạng VGG-16  
Theo đó hệ thống mạng có những lớp sau:  
. input: ngõ vào của ảnh cần nhận diện với kích cỡ được chọn là 224x224x3, và nó  
cũng là ngõ vào của mạng.  
HVTH: Trần Giang Nam  
81  
GVHD: PGS.TS Nguyễn Thanh Hải  
Luận văn Thạc sĩ: “Ứng dụng mạng học sâu cho nhận diện khuôn mặt”  
. conv1_1: là lớp tích chập, sử dụng 64 bộ lọcvới mỗi bộ lọc có kích thước 3x3 pixels,  
stride là 1 và padding là 1 (tạo một đường viền bằng 0 được áp lên ngõ vào), dữ liệu  
ngõ ra lớp này có kích cỡ 224 x 224 x 64. Theo đó, ta có (3 x 3 x 3) x 64 = 1728  
trọng số và 64 bias, vậy tổng cộng số lượng tham số (trọng số và bias) là 1792. Lớp  
relu1_1 đi cùng là hàm kích hoạt ReLU.  
. conv1_2: là lớp tích chập, sử dụng 64 bộ lọc với kích thước 3x3 pixels, stride là 1  
và padding là 1, dữ liệu ngõ ra lớp này có kích cỡ 224 x 224 x 64. Theo đó, ta có (3  
x 3 x 64) x 64 = 36864trọng số và 64 bias, vậy tổng cộng số lượng tham số là 36928.  
Lớp relu1_2 đi cùng là hàm kích hoạt ReLU.  
. pool1: lớp max pooling với kích thước cửa sổ là 2×2 và stride là 2, dữ liệu ngõ ra  
lớp này có kích cỡ 112 x 112 x 64.  
. conv2_1: là lớp tích chập, sử dụng 128 bộ lọc với kích thước 3x3 pixels, stride là 1  
và padding là 1, dữ liệu ngõ ra lớp này có kích cỡ 112 x 112 x 128. Theo đó, ta có  
(3 x 3 x 64) x 128 = 73728 trọng số và 128 bias, vậy tổng cộng số lượng tham số là  
73856. Lớp relu2_1 đi cùng là hàm kích hoạt ReLU.  
. conv2_2: là lớp tích chập, sử dụng 128 bộ lọc với kích thước 3x3 pixels, stride là 1  
và padding là 1, dữ liệu ngõ ra lớp này có kích cỡ 112 x 112 x 128. Theo đó, ta có  
(3 x 3 x 128) x 128 = 147456 trọng số và 128 bias, vậy tổng cộng số lượng tham số  
là 147584. Lớp relu2_2 đi cùng là hàm kích hoạt ReLU.  
. pool2: lớp max pooling với kích thước cửa sổ là 2×2 và stride là 2, dữ liệu ngõ ra  
lớp này có kích cỡ 56 x 56 x 128.  
. conv3_1: là lớp tích chập, sử dụng 256 bộ lọc với kích thước 3x3 pixels, stride là 1  
và padding là 1, dữ liệu ngõ ra lớp này có kích cỡ 56 x 56 x 256. Theo đó, ta có (3 x  
3 x 128) x 256 = 294912 trọng số và 256 bias, vậy tổng cộng số lượng tham số là  
295168. Lớp relu3_1 đi cùng là hàm kích hoạt ReLU.  
. conv3_2: là lớp tích chập, sử dụng 256 bộ lọc với kích thước 3x3 pixels, stride là 1  
và padding là 1, dữ liệu ngõ ra lớp này có kích cỡ 56 x 56 x 256. Theo đó, ta có (3 x  
HVTH: Trần Giang Nam  
82  
GVHD: PGS.TS Nguyễn Thanh Hải  
Luận văn Thạc sĩ: “Ứng dụng mạng học sâu cho nhận diện khuôn mặt”  
3 x 256) x 256 = 589824 trọng số và 256 bias, vậy tổng cộng số lượng tham số là  
590080. Lớp relu3_2 đi cùng là hàm kích hoạt ReLU.  
. conv3_3: là lớp tích chập, sử dụng 256 bộ lọc với kích thước 3x3 pixels, stride là 1  
và padding là 1, dữ liệu ngõ ra lớp này có kích cỡ 56 x 56 x 256. Theo đó, ta có (3 x  
3 x 256) x 256 = 589824 trọng số và 256 bias, vậy tổng cộng số lượng tham số là  
590080. Lớp relu3_3 đi cùng là hàm kích hoạt ReLU.  
. pool3: lớp max pooling với kích thước cửa sổ là 2×2 và stride là 2, dữ liệu ngõ ra  
lớp này có kích cỡ 28 x 28 x 256.  
. conv4_1: là lớp tích chập, sử dụng 512 bộ lọc với kích thước 3x3 pixels, stride là 1  
và padding là 1, dữ liệu ngõ ra lớp này có kích cỡ 28 x 28 x 512. Theo đó, ta có (3 x  
3 x 256) x 512 = 1179648 trọng số và 512 bias, vậy tổng cộng số lượng tham số là  
1180160. Lớp relu4_1 đi cùng là hàm kích hoạt ReLU.  
. conv4_2: là lớp tích chập, sử dụng 512 bộ lọc với kích thước 3x3 pixels, stride là 1  
và padding là 1, dữ liệu ngõ ra lớp này có kích cỡ 28 x 28 x 512. Theo đó, ta có (3 x  
3 x 512) x 512 = 2359296 trọng số và 512 bias, vậy tổng cộng số lượng tham số là  
2359808. Lớp relu4_2 đi cùng là hàm kích hoạt ReLU.  
. conv4_3: là lớp tích chập, sử dụng 512 bộ lọc với kích thước 3x3 pixels, stride là 1  
và padding là 1, dữ liệu ngõ ra lớp này có kích cỡ 28 x 28 x 512. Theo đó, ta có (3 x  
3 x 512) x 512 = 2359296 trọng số và 512 bias, vậy tổng cộng số lượng tham số là  
2359808. Lớp relu4_3 đi cùng là hàm kích hoạt ReLU.  
. pool4: lớp max pooling với kích thước cửa sổ là 2×2 và stride là 2, dữ liệu ngõ ra  
lớp này có kích cỡ 14 x 14 x 512.  
. conv5_1: là lớp tích chập, sử dụng 512 bộ lọc với kích thước 3x3 pixels, stride là 1  
và padding là 1, dữ liệu ngõ ra lớp này có kích cỡ 14 x 14 x 512. Theo đó, ta có (3 x  
3 x 512) x 512 = 2359296 trọng số và 512 bias, vậy tổng cộng số lượng tham số là  
2359808. Lớp relu5_1 đi cùng là hàm kích hoạt ReLU.  
HVTH: Trần Giang Nam  
83  
GVHD: PGS.TS Nguyễn Thanh Hải  
Luận văn Thạc sĩ: “Ứng dụng mạng học sâu cho nhận diện khuôn mặt”  
. conv5_2: là lớp tích chập, sử dụng 512 bộ lọc với kích thước 3x3 pixels, stride là 1  
và padding là 1, dữ liệu ngõ ra lớp này có kích cỡ 14 x 14 x 512. Theo đó, ta có (3 x  
3 x 512) x 512 = 2359296 trọng số và 512 bias, vậy tổng cộng số lượng tham số là  
2359808. Lớp relu5_2 đi cùng là hàm kích hoạt ReLU.  
. conv5_3: là lớp tích chập, sử dụng 512 bộ lọc với kích thước 3x3 pixels, stride là 1  
và padding là 1, dữ liệu ngõ ra lớp này có kích cỡ 14 x 14 x 512. Theo đó, ta có (3 x  
3 x 512) x 512 = 2359296 trọng số và 512 bias, vậy tổng cộng số lượng tham số là  
2359808. Lớp relu5_3 đi cùng là hàm kích hoạt ReLU.  
. pool5: lớp max pooling với kích thước cửa sổ là 2×2 và stride là 2, dữ liệu ngõ ra  
lớp này có kích cỡ 7 x 7 x 512.  
. fc6: lớp kết nối đầy đủ đầu tiên có 4096 nơ-ron. Theo đó, ta có 4096 x 25088 =  
102760448 trọng số và 4096 bias, vậy tổng cộng số lượng tham số là 102764544.  
Lớp relu6 đi cùng là hàm kích hoạt ReLU.  
. drop6: drop out được áp dụng trên với tỉ lệ 0.5, tức là có 50% nơ-ron của lớp fc6 này  
bị tắt trong quá trình huấn luyện, nhằm hạn chế hiện tượng quá khớp (overfitting)  
vốn là một nhược điểm lớn trong các mạng nơ-ron nhân tạo.  
. fc7: lớp kết nối đầy đủ thứ hai có 4096 nơ-ron. Theo đó, ta có 4096 x 4096 =  
16777216 trọng số và 4096 bias, vậy tổng cộng số lượng tham số là 16781312. Lớp  
relu7 đi cùng là hàm kích hoạt ReLU.  
. drop7: drop out 50% số node mạng cùng liên kết của lớp fc7.  
. fc8: lớp kết nối đầy đủ cuối cùng có số nơ-ron tương ứng với số danh tính cần nhận  
dạng. Đi cꢀng với nó là hàm kích hoạt softmax. Ví dụ nếu ta có 13 đối tượng cần  
nhận dạng ở ngõ ra thì số nơ-ron ở lớp này là 13. Theo đó, ta có 13 x 4096 = 53248  
trọng số và 13 bias, tổng cộng lại số lượng tham số là 53261.  
. classoutput : một lớp phân loại tính toán tổn thất cross entropy cho các vấn đề phân  
loại đa lớp với các lớp loại trừ lẫn nhau.  
2.4 Thuật toán tối ưu dùng trong huấn luyện  
HVTH: Trần Giang Nam  
84  
GVHD: PGS.TS Nguyễn Thanh Hải  
Luận văn Thạc sĩ: “Ứng dụng mạng học sâu cho nhận diện khuôn mặt”  
Thuật toán lan truyền bình phương trung bình căn bậc hai  
Thuật toán lan truyền bình phương trung bình căn bậc hai (RMSProp) [9] là một phương pháp  
tỷ lệ học tập thích ứng được đề xuất bởi Geoffrey Hinton. Thuật toán này giữ một trung bình di  
động của các bình phương phần tử của tham số độ dốc.  
2
E[g2 ]t  
E[g2 ]t1 (1  
)gt  
(3)  
E[g] là trung bình di chuyển của bình phương độ dốc, gt là độ dốc của hàm chi phí đối với trọng  
số, η là tỷ lệ học tập. β là tham số trung bình di chuyển (giá trị mặc định thường là 0,9). Thuật  
toán sử dụng trung bình di động này để chuẩn hóa các cập nhật của từng tham số riêng lẻ.  
t1 t  
gt  
(4)  
E[g2 ]t   
Sử dụng thuật toán này có hiệu quả làm giảm tốc độ học tập của các tham số với độ dốc lớn và  
tăng tốc độ học tập của các tham số với độ dốc nhỏ, ɛ là một hằng số nhỏ bổ sung vào để mẫu  
tránh bằng 0.  
Ước lượng mô men thích ứng  
Ước lượng mô men thích ứng (Adam) [10] là một phương pháp khác để tính toán tỷ lệ học tập  
thích ứng cho từng tham số. Ngoài việc giữ trung bình phân rã theo cấp số nhân của các bình  
phương độ dốc quá khứ vt , nó cũng giữ mức trung bình phân rã theo cấp số nhân của các độ  
dốc quá khứ mt :  
m  
1m (1  
1)gt  
t
t1  
(5)  
vt 2vt1 (12 )gt2  
mt và vt là ước lượng của mô men đầu tiên (giá trị trung bình) và mô men thứ hai (phương sai  
không được kiểm soát) của các độ dốc tương ứng. Những bias thêm vào để điều chỉnh sai lệch  
ước lượng mô men thứ nhất và thứ hai.  
vt  
12t  
mt  
11t  
ˆ
ˆ
v   
mt   
,
(6)  
t
Và cuối cùng ta có quy tắc cập nhật cho thuật toán:  
HVTH: Trần Giang Nam  
85  
GVHD: PGS.TS Nguyễn Thanh Hải  
Luận văn Thạc sĩ: “Ứng dụng mạng học sâu cho nhận diện khuôn mặt”  
ˆ
mt  
t1 t   
(7)  
ˆ
vt   
Thông thường cho β1 = 0,9, β2 = 0,999, ε = 10-8  
2.5 Mô tả phương pháp huấn luyện  
Việc huấn luyện nhằm mục đích phân loại đối tượng theo mong muốn, nghĩa là ngõ ra đã  
xác định trước. Nhiệm vụ của mạng là điều chỉnh các thông số sao cho ngõ ra gần đúng với mục  
tiêu nhất. Quá trình này gọi là huấn luyện có giám sát. Sau khi đã xây dựng mạng và chuẩn bị  
dữ liệu ảnh khuôn mặt, có thể mô tả việc huấn luyện mạng theo lưu đồ hình 6.  
Bắt đầu  
Khởi tạo các thông số  
ban đầu (weight, bias,  
learning rate,...)  
Cho dữ liệu đi qua các lớp mạng  
Tính toán sai số ngõ ra  
Cập nhật trọng số  
Sai  
Đủ số chu kỳ huấn luyện?  
Đúng  
Lưu lại mạng đã được huấn luyện  
Kết thúc  
Hình 6. Lưu đồ quá trình huấn luyện mạng  
2.6 Mô tả phương pháp nhận dạng  
HVTH: Trần Giang Nam  
86  
GVHD: PGS.TS Nguyễn Thanh Hải  
Luận văn Thạc sĩ: “Ứng dụng mạng học sâu cho nhận diện khuôn mặt”  
Ảnh trước khi đưa vào nhận dạng cần lấy mẫu phần chứa khuôn mặt rồi định kích cỡ đầu  
vào là 224 x 224 x 3 . Sau đó đưa ảnh qua mạng đã được huấn luyện để phân loại và đưa ra kết  
quả. Quá trình nhận dạng một đối tượng có thể tóm tắt qua lưu đồ hình 7.  
Bắt đầu  
Load mô hình mạng đã  
được huấn luyện  
Đọc ảnh cần nhận diện  
Sai  
Phát hiện khuôn mặt  
Đúng  
Trích xuất khuôn mặt, định kích  
cỡ, chuẩn hóa ảnh  
Mạng CNN phân loại danh tính  
đối tượng  
Hiển thị danh tính hoặc không  
Kết thúc  
Hình 7. Lưu đồ quá trình nhận diện  
2.7 Đánh giá độ chính xác nhận dạng  
Để đánh giá độ chính xác ta dùng Ma trận nhầm lẫn (Confusion matrix) [11], nó là một  
ma trận tổng quát thể hiện kết quả phân loại chính xác và kết quả phân loại sai được tạo ra bởi  
mô hình phân loại bằng cách so sánh với giá trị thật của biến mục tiêu của tập kiểm tra. Ví dụ  
HVTH: Trần Giang Nam  
87  
GVHD: PGS.TS Nguyễn Thanh Hải  
Luận văn Thạc sĩ: “Ứng dụng mạng học sâu cho nhận diện khuôn mặt”  
cho một ma trận nhầm lẫn 2x2 phân loại dữ liệu theo biến mục tiêu có hai giá trị Positive và  
Negative như mô tả ở bảng 1.  
Bảng 1: Bảng Ma trận nhầm lẫn  
Predicted Class  
Positive  
True Positive (TP)  
False Positive (FP)  
Negative  
False Negative (FN)  
True Negative (TN)  
Actual  
Class  
Positive  
Negative  
Từ đây, độ chính xác của mô hình (Accuracy) được tính như sau:  
TP TN  
Acc   
(8)  
TP TN FP FN  
3. KẾT QUẢ VÀ THẢO LUẬN  
3.1  
Kết quả huấn luyện mạng  
Việc huấn luyện mạng được thực hiện trong 15 epoch trên ba tập dữ liệu ảnh khuôn mặt.  
Kết quả được thể hiện qua những biểu đồ chính xác và lỗi tương ứng.  
Áp dụng thuật toán RMSProp  
Trong phần này, mô hình đề xuất được huấn luyện với các tập ảnh dꢀng thuật toán tối ưu  
RMSProp và tiến hành thay đổi độ sâu mạng bằng cách bỏ lớp kết nối đầy đủ fc7 và hai lớp  
relu7, drop7 đi theo sau nó và lần lượt thu được kết quả. Gọi mô hình này là mô hình VGG-16  
chỉnh sửa.  
Hình 8. Biểu đồ độ chính xác nhận dạng  
Độ chính xác nhận dạng của mô hình đạt được khá cao qua ba tập dữ liệu tương ứng là FEI  
Face, CASIA-WebFace và tập ảnh tự thu là 96,67%, 97,78% và 100% đối vối mô hình VGG-  
HVTH: Trần Giang Nam  
88  
GVHD: PGS.TS Nguyễn Thanh Hải  
Luận văn Thạc sĩ: “Ứng dụng mạng học sâu cho nhận diện khuôn mặt”  
16. Trong mô hình chỉnh sửa của nó, tỉ lệ này thấp hơn một ít với 94,17%, 97,27% và 99.83%.  
Kết quả so sánh độ chính xác nhận dạng giữa mô hình VGG-16 và mô hình chỉnh sửa được mô  
tả trên biểu đồ hình 8. Cụ thể, trục đứng thể hiện độ chính xác (%), trục ngang là thể hiện các  
tập dữ liệu ảnh với màu sắc tương ứng. Màu xanh dương là tập FEI Face, màu cam là tập  
CASIA-WebFace và màu xanh lá là của tập ảnh tự thu thập. Như vậy qua biểu đồ trên có thể  
thấy, trên cꢀng một tập dữ liệu thì hiệu suất nhận dạng bị ảnh hưởng bởi độ sâu của các lớp  
mạng. Nhưng bꢀ lại thời gian đào tạo sẽ nhanh hơn ở mô hình ít sâu hơn.  
Hình 9. Biểu đồ thời gian huấn luyện  
Đối với thời gian huấn luyện ở mô hình VGG-16 tương ứng với ba tập dữ liệu trên là 618  
phút, 820 phút, 1288 phút, còn ở mô hình chỉnh sửa sẽ cho kết quả nhanh hơn với 602 phút, 604  
phút, 1273 phút. Hình 9 là biểu đồ so sánh thời gian huấn luyện trên hai mô hình trên. Cụ thể,  
trục đứng thể hiện thời gian huấn luyện (phút), trục ngang là thể hiện các tập dữ liệu ảnh với  
màu sắc tương ứng.  
Áp dụng thuật toán Adam  
Hình 10. Biểu đồ độ chính xác khi huấn luyện dꢀng hai thuật toán tối ưu  
HVTH: Trần Giang Nam  
89  
GVHD: PGS.TS Nguyễn Thanh Hải  
Luận văn Thạc sĩ: “Ứng dụng mạng học sâu cho nhận diện khuôn mặt”  
Khi tiến hành so sánh độ chính xác mô hình mạng VGG-16 khi huấn luyện dꢀng hai thuật  
toán tối ưu trên ba tập dữ liệu, nhận thấy rằng khi dꢀng RMSProp sẽ cho độ chính xác cao hơn  
một ít so với Adam. Cụ thể với tập dữ liệu FEI Face sẽ cao hơn 1,67%, tập CASIA-WebFace là  
0,85% và tập ảnh tự thu là 0,08% như mô tả ở hình 10. Như vậy, nghĩa là lỗi khi huấn luyện  
mạng dꢀng RMSProp sẽ ít hơn Adam trong khuôn khổ ba tập dữ liệu trên.  
Để mô tả rõ hơn về phương pháp đánh giá độ chính xác nhận dạng như các kết quả đã trình  
bày phần trên, một ma trận nhầm lẫn phân loại được thực hiện trên tập CASIA-WebFace khi  
đưa tập kiểm tra qua mô hình mạng đã huấn luyện.  
Hình 11. Đánh giá độ chính xác trên ma trận nhầm lẫn  
Trong hình 11, các hàng tương ứng với lớp dự đoán (Output Class) và các cột tương ứng  
với lớp thực (Target Class). Các ô chéo màu xanh tương ứng với các phân loại chính xác, ngoài  
đường chéo tương ứng với các phân loại không chính xác. Cột ở phía bên phải của ma trận là  
Precision - tỷ lệ phần trăm của tất cả các mẫu được dự đoán của mỗi lớp được phân loại chính  
xác (chữ xanh) và không chính xác (chữ đỏ). Hàng ở dưới cꢀng của ma trận là Recal - tỷ lệ phần  
trăm của tất cả các mẫu của mỗi lớp được phân loại chính xác và không chính xác. Ô ở dưới  
cꢀng bên phải của ma trận là độ chính xác tổng thể (Accuracy) và nó được dꢀng để đánh giá  
HVTH: Trần Giang Nam  
90  
GVHD: PGS.TS Nguyễn Thanh Hải  
Luận văn Thạc sĩ: “Ứng dụng mạng học sâu cho nhận diện khuôn mặt”  
trong luận văn này. Cụ thể, độ chính xác nhận dạng của mô hình mạng VGG-16 trên tập CASIA-  
WebFace là 97,8%, lỗi là 2,2%.  
3.2  
Kết quả nhận dạng  
Tiến hành cho nhận dạng các đối tượng trong tập CASIA-WebFace và tập ảnh tự thu.  
Tập CASIA-WebFace  
Hình 12. Ảnh nhận diện nhân vật Alyssa Milano  
HVTH: Trần Giang Nam  
91  
GVHD: PGS.TS Nguyễn Thanh Hải  
Luận văn Thạc sĩ: “Ứng dụng mạng học sâu cho nhận diện khuôn mặt”  
Hình 13. Ảnh nhận diện nhân vật Julia Roberts  
Kết quả nhận diện ảnh đơn cũng như ảnh nhân vật Alyssa Milano, Julia Roberts trong nhóm với  
nhiều góc độ khác nhau đã được nhận diện chính xác như mô tả ở hình 13 và hình14.  
Tập tự thu  
Hình 14. Ảnh nhận diện đơn trong tập tự thu  
HVTH: Trần Giang Nam  
92  
GVHD: PGS.TS Nguyễn Thanh Hải  
Luận văn Thạc sĩ: “Ứng dụng mạng học sâu cho nhận diện khuôn mặt”  
Hình 15. Ảnh nhận diện nhiều đối tượng trong tập tự thu  
Trong nhận diện ảnh đơn các sinh viên ngồi đối diện camera như hình 14. Kết quả nhận diện  
đạt kết quả tốt trên cả mô hình mạng VGG-16 và mô hình chỉnh sửa. Trong nhận diện nhiều đối  
tượng sinh viên ở hình 15, các khuôn mặt trong ảnh sẽ được trình dò khuôn mặt xác định vị trí  
và kích cỡ. Sau đó từng khuôn mặt sẽ được đưa vào mạng đã được huấn luyện để nhận diện.  
Kết quả đạt được trên mô hình VGG-16 rất khả quan, nhận diện chính xác tất cả các đối tượng  
với thời gian 6,72 giây. Đối với mô hình mạng VGG-16 chỉnh sửa thì có nhận diện sai ba danh  
tính như mô tả ở hình 16 với thời gian nhận diện toàn bộ khuôn mặt trong ảnh là 6,63 giây.  
Hình 16. Nhận diện nhiều đối tượng sinh viên với mô hình mạng VGG-16 chỉnh sửa  
3.3  
So sánh hiệu suất với các mạng khác  
Việc so sánh độ chính xác nhận dạng với các mô hình khác nhằm để đánh giá hiệu suất của  
mạng, từ đó có những cải tiến hay lựa chọn mô hình cho phꢀ hợp, tối ưu hơn. Đánh giá này  
được thực hiện trên tập FEI Face và đạt được độ chính xác nhận dạng cao với mô hình VGG-  
HVTH: Trần Giang Nam  
93  
GVHD: PGS.TS Nguyễn Thanh Hải  
Luận văn Thạc sĩ: “Ứng dụng mạng học sâu cho nhận diện khuôn mặt”  
16 (RMSProp) là 96,67%, mô hình VGG-16 (Adam) là 95%, mô hình VGG-16 chỉnh sửa  
(RMSProp) là 94,17%, được mô tả cụ thể ở bảng 2.  
Bảng 2: So sánh hiệu suất nhận dạng của mô hình mạng trong nghiên cứu với các mô hình  
khác trên tập dữ liệu FEI Face  
Mô hình mạng  
Độ chính xác nhận dạng (%)  
Mô hình của J. Cai và cộng sự [12]  
AlexNet + SVM [13]  
61,31%  
97,50%  
98,70%  
98,50%  
96,67%  
95%  
Transfer learning (AlexNet) [13]  
ResNet-50 + SVM [13]  
Mô hình VGG-16 (RMSProp)  
Mô hình VGG-16 (Adam)  
Mô hình VGG-16 chỉnh sửa (RMSProp)  
94,17%  
4. KẾT LUẬN  
Nghiên cứu này đã xây dựng được hệ thống cho phát hiện và nhận diện khuôn mặt người  
dꢀng mô hình mạng CNN VGG-16. Trong đó, hai thí nghiệm đã được tiến hành để đánh giá  
hiệu suất về ảnh hưởng độ sâu của mạng trong huấn luyện cũng như trong nhận diện, phân loại  
khuôn mặt và so sánh hai thuật toán tối ưu dꢀng trong huấn luyện mạng là RMSProp và Adam.  
Trong hệ thống này, ảnh khuôn mặt đầu vào sẽ được lấy mẫu và cân chỉnh kích cỡ cho phꢀ hợp  
với đầu vào mạng. Sau đó, ảnh được đưa vào mạng để huấn luyện và phân loại. Nghiên cứu  
được thực hiện trên ba tập ảnh là FEI Face, CASIA-WebFace và tập ảnh tự thu thập. Hiệu suất  
của hai mô hình mạng được đánh giá qua độ chính xác của từng tập kiểm tra tương ứng với ba  
tập dữ liệu trên. Cụ thể ở mô hình VGG-16 có phạm vi chính xác từ 95% đến 100%, mô hình  
VGG-16 chỉnh sửa có phạm vi chính xác từ 94,17% đến 99,83%. Vậy với mạng có độ sâu hơn  
sẽ nhận diện chính xác hơn, tuy nhiên thời gian tiêu tốn cho huấn luyện cũng như nhận diện sẽ  
nhiều hơn. Về vấn đề so sánh lỗi trong huấn luyện dꢀng RMSProp và Adam cho thấy độ dốc  
của lỗi giữa hai thuật toán cũng không khác biệt nhiều.  
HVTH: Trần Giang Nam  
94  
GVHD: PGS.TS Nguyễn Thanh Hải  
Luận văn Thạc sĩ: “Ứng dụng mạng học sâu cho nhận diện khuôn mặt”  
LỜI CẢM ƠN  
Các tác giả muốn gửi lời cảm ơn đến trường Đại học Sư Phạm Kỹ Thuật Tp. HCM đã tạo những  
điều kiện thuận lợi để hoàn thành nghiên cứu này. Hơn nữa, chúng tôi còn muốn gửi lời cảm ơn  
đến các sinh viên Trường Cao Đẳng Lý Tự Trọng TP.HCM đã tham gia thu thập dữ liệu, đóng  
góp một phần không nhỏ trong thành công của nghiên cứu.  
TÀI LIỆU THAM KHẢO  
[1]  
Ojala T, Pietikäinen M & Mäenpää T. Multiresolution gray-scale and rotation invariant  
texture classification with local binary patterns. IEEE Transactions on Pattern Analysis  
and Machine Intelligence, 2002.  
[2]  
Nugrahaeni, R. A. and K. Mutijarsa. Comparative analysis of machine learning KNN,  
SVM, and random forests algorithm for facial expression classification. International  
Seminar on Application for Technology of Information and Communication (ISemantic).  
2016 .  
[3]  
[4]  
David G.Lowe. Object Recognition from Local Scale-Invariant Features. International  
Conference on Computer Vision. 1999.  
Yang, J., Jiang, Y.-G., Hauptmann, A. G., and Ngo, C.-W. Evaluating bag-of-visual-  
words representations in scene classification. Proceedings of theInternational Workshop  
on Multimedia Information Retrieval (ACM). 2007.  
[5]  
[6]  
[7]  
Z. Zhu, P. Luo, X. Wang, and X. Tang. Recover canonicalview faces in the wild with  
deep neural networks. arXiv:1404.3543. 2014.  
Y. Taigman, M. Yang, M. Ranzato, and L. Wolf. Deepface: Closing the gap to human-  
level performance in face verification. In IEEE Conf. on CVPR. 2014.  
Florian Schroff, Dmitrv Kalcnichenko, and James Philbin. Facenet: A unified embedding  
for face recognition and clustering. In Proceedings of the IEEE Conference on Computer  
Vision and Pattern Recognition. 2015.  
[8]  
[9]  
Karen Simonyan, Andrew Zisserman. Very deep convolutional networks for large-scale  
image recognition. ICLR. 2015.  
Tijmen Tieleman and Geoffrey Hinton. Lecture 6.5-rmsprop: Divide the gradient by a  
running average of its recent magnitude. COURSERA: neural networks for machine  
learning. 2012.  
[10] Kingma, D. P., & Ba, J. L. Adam: a Method for Stochastic Optimization. International  
Conference on Learning Representations. 2015.  
[11] Sofia Visa, B. Ramsay, A. Ralescu, and E. VanDerKnaap. Confusion Matrix-Based  
Feature Selection. Proceedings of The 22nd Midwest Artificial Intelligence and  
Cognitive Science Conference. 2011.  
[12] Cai, J.; Chen, J.; Liang, X. Single-sample face recognition based on intra-class  
differences in a variation model. Sensors. 2015.  
[13] Soad Almabdy, Lamiaa Elrefaei. Deep Convolutional Neural Network-Based  
Approaches for Face Recognition. MDPI. 2019.  
HVTH: Trần Giang Nam  
95  
GVHD: PGS.TS Nguyễn Thanh Hải  
Tải về để xem bản đầy đủ
pdf 22 trang Mãnh Khiết 11/01/2024 18120 Free
Bạn đang xem 20 trang mẫu của tài liệu "Ứng dụng mạng học sâu cho nhận diện khuôn mặt", để 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:

  • pdfung_dung_mang_hoc_sau_cho_nhan_dien_khuon_mat.pdf