Ứ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 (1 2 )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
1 2t
mt
1 1t
ˆ
ˆ
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 đủ
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:
ung_dung_mang_hoc_sau_cho_nhan_dien_khuon_mat.pdf

