Tải bản đầy đủ (.pdf) (91 trang)

(Đồ án hcmute) nhận diện khuôn mặt ứng dụng trong robot tiếp tân

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (5.96 MB, 91 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
THÀNH PHỐ HỒ CHÍ MINH

ĐỒ ÁN TỐT NGHIỆP
NGÀNH CNKT ĐIỀU KHIỂN VÀ TỰ ĐỘNG HĨA

NHẬN DIỆN KHN MẶT
ỨNG DỤNG TRONG ROBOT TIẾP TÂN

GVHD: PGS.TS. LÊ MỸ HÀ
SVTH: TRẦN VĂN TÍNH
MSSV: 16151090

SKL 0 0 7 1 9 4

Tp. Hồ Chí Minh, tháng 08/2020

do an


LỜI CẢM ƠN
Tơi muốn bày tỏ lịng biết ơn đến PGS.TS. Lê Mỹ Hà là người hướng dẫn định
hướng nghiên cứu để tôi thực hiện đề tài này. Thầy không chỉ giúp tơi giải quyết vấn
đề mà cịn thúc đẩy và khuyến khích để tơi có thể hồn thành thành cơng nhiệm vụ.
Để có thể hồn thành luận án, việc tích lũy kiến thức trong bốn năm là rất quan
trọng, vì vậy tơi xin chân thành cảm ơn đến q thầy cô khoa Điện - Điện Tử, khoa
Đào tạo Chất lượng cao đã cung cấp cho tôi những kiến thức nền tảng, căn bản để tơi
hồn thành đồ án.
Ngồi ra, tơi xin cảm ơn phịng thí nghiệm hệ thống thơng minh (ISLab) thuộc
khoa Kỹ thuật Điện – Điện Tử, lab trưởng ISLab Lê Mạnh Cường đã hỗ trợ các cơ


sở thiết bị để tôi thực hiện đề tài. Đồng thời, tơi cũng biết ơn bạn Nguyễn Hồng
Hải Nam đã giúp đỡ tơi khi thực hiện mơ hình phần cứng cho đồ án.
Cuối cùng, tôi xin gửi lời cảm ơn đến gia đình và bạn bè đã khuyến khích, hỗ
trợ và quan tâm tạo điều kiện thuận lợi cho tôi sớm hoàn thành đồ án này.
TPHCM, ngày … tháng … năm 2020
Sinh viên thực hiện
Trần Văn Tính

i

do an


TĨM TẮT
Trong đồ án này, một hệ thống có khả năng tự động nhận diện khuôn mặt sử dụng
các thuật toán Machine Learning được đề xuất ứng dụng trong robot tiếp tân. Hệ
thống nhận diện khn mặt có ba bước chính: Đầu tiên, một mơ hình Deep Learning
dựa trên nền tảng CNN có tên MTCNN được dùng để nhận dạng và căn chỉnh khn
mặt. Sau đó, các khn mặt được căn chỉnh sẽ được mã hóa thành vector 512-d thơng
qua việc nhúng mạng tích chập sâu LResNet100E-IR với thuật tốn ArcFace. Cuối
cùng, hồi quy softmax được sử dụng để phân cụm, xác minh khuôn mặt trong cơ sở
dữ liệu. Kết quả đánh giá mơ hình cho độ chính xác là 92.22 %. Hệ thống được chạy
thực nghiệm với mơ hình robot được chế tạo bằng cách tích hợp bo mạch Arduino
làm bộ điều khiển các hành vi đơn giản.
Từ khóa: nhận dạng khuôn mặt, nhận diện khuôn mặt, MTCNN, ArcFace,
Softmax, LResNet100E-IR.

ABSTRACT
In this thesis, a system capable of automatic facial recognition using Machine
Learning algorithms is proposed for use in receptionist robots. The face recognition

system has three main steps: First, a Deep Learning model based on CNN called
MTCNN is used to identify and align faces. Then the align faces. Then the aligned
faces will be encoded into 512-d vectors by embedding the LResNet100E-IR deep
convolution network with ArcFace algorithm. Finally, Softmax classifier is used to
cluster and verify faces in the database. Model evaluation results for accuracy are
92.22%. The system was tested experimentally with robot model built by integrating
an Arduino as a controller for simple behaviors.
Keywords: face deetection, face recognition, MTCNN, ArcFace, Softmax,
LResNet100E-IR.

ii

do an


MỤC LỤC
LỜI CẢM ƠN ..............................................................................................................i
TÓM TẮT .................................................................................................................. ii
ABSTRACT ............................................................................................................... ii
CHƯƠNG 1. TỔNG QUAN ......................................................................................1
1.1Đặt vấn đề ............................................................................................................1
1.2 Mục tiêu đề tài.....................................................................................................1
1.3 Giới hạn đề tài .....................................................................................................2
1.4 Phương pháp nghiên cứu ....................................................................................2
1.5 Giới thiệu nội dung .............................................................................................2
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT .........................................................................4
2.1 HỆ THỐNG NHẬN DẠNG KHUÔN MẶT .....................................................4
2.2 TỔNG QUAN VỀ TRÍ TUỆ NHÂN TẠO (AI) ................................................5
2.2.1 Trí tuệ nhân tạo.............................................................................................5
2.2.2 MACHINE LEARNING ..............................................................................7

2.2.3 MẠNG NEURAL.........................................................................................8
2.2.4 DEEP LEARNING.....................................................................................10
2.3 CONVOLUTIONAL NEURAL NETWORK .................................................12
2.3.1 Giới thiệu ....................................................................................................12
2.3.2 Kiến trúc Convolutional Neural Network ..................................................13
2.4 MTCNN (Multi-task Cascade Convolutional Neural Networks) ....................20
2.4.1 Multi-task....................................................................................................20
2.4.2 Cấu trúc mạng MTCNN cho nhận diện .....................................................21
2.5 Mạng ResNet.....................................................................................................25
2.5.1 Khái niệm về mạng ResNet........................................................................25
2.5.2 ResNet34 ....................................................................................................29
2.5.3 Mạng PyramidNet ......................................................................................33
2.5.4 Mạng LResNet100E ...................................................................................34
2.6 Hàm mất mát ArcFace cho nhận dạng khuôn mặt ...........................................35
2.7 Hàm Softmax ....................................................................................................37
2.7.1 Entropy chéo ...............................................................................................37
2.7.2. Hàm mất mát .............................................................................................38
2.8 Biến đổi hình học trong xử lý ảnh ....................................................................39
iii

do an


2.9 Các phép đánh giá .............................................................................................41
2.9.1 Intersection over Union .................................................................................41
2.9.2 Loss và accuracy ............................................................................................42
2.9.3 Precision và Recall.........................................................................................42
CHƯƠNG 3. THIẾT KẾ VÀ XÂY DỰNG PHẦN CỨNG .................................44
3.1 Sơ đồ khối .........................................................................................................44
3.2 Giới thiệu phần cứng sử dụng...........................................................................44

3.2.1 Máy tính xách tay Lenovo Ideapad L340 ..................................................44
3.2.2 Camera logitech C270 ................................................................................45
3.2.3 Mơ hình robot .............................................................................................47
3.2.4 Các thiết bị sử dụng trong robot.................................................................49
CHƯƠNG 4 PHẦN MỀM VÀ THUẬT TOÁN ....................................................58
4.1 Nhiệm vụ nhận diện khuôn mặt........................................................................58
4.2 Nhiệm vụ nhận dạng khuôn mặt (Face recognition) ........................................59
4.3 Môi trường làm việc với Deep Learning ..........................................................61
4.3.1 Tensorflow ..................................................................................................61
4.3.2 MXNet ........................................................................................................63
4.3.3 Ngơn ngữ lập trình Python .........................................................................63
4.3.4 Phần mềm Visual Studio Code ..................................................................65
4.4 Lưu đồ giải thuật ...............................................................................................66
4.4.1 Lưu đồ thu thập dữ liệu đào tạo .................................................................66
4.4.2 Lưu đồ giải thuật cho hệ thống ..................................................................68
CHƯƠNG 5 KẾT QUẢ THỰC NGHIỆM ............................................................70
5.1 Thu thập dữ liệu ................................................................................................70
5.1.1 Bộ dữ liệu dùng để đánh giá MTCNN ..........................................................70
5.1.2 Bộ dữ liệu đào tạo nhận dạng khuôn mặt ......................................................70
5.1.3 Bộ dữ liệu đánh giá nhận dạng khuôn mặt ....................................................70
5.2 Đào tạo hồi quy Softmax ..................................................................................72
5.3 Nhận diện khuôn mặt ........................................................................................73
5.4 Hệ thống hoạt động ...........................................................................................75
CHƯƠNG 6 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN .......................................76
6.1 Kết luận .............................................................................................................76
6.1.1 Ưu điểm ......................................................................................................76
iv

do an



6.1.2 Nhược điểm ................................................................................................76
6.2 Hướng phát triển ...............................................................................................76
TÀI LIỆU THAM KHẢO .......................................................................................77

v

do an


DANH MỤC HÌNH ẢNH
Hình 2.1 Hệ thống nhận dạng khn mặt....................................................................4
Hình 2.2 Các bước nhận dạng khn mặt ...................................................................5
Hình 2.3 Mối quan hệ giữa AI, Machine Learning, Neural Network và Deep
Learning ........................................................................................................................6
Hình 2.4 Cấu tạo một mạng Neural ............................................................................9
Hình 2.5 Một số hàm truyền thơng dụng ..................................................................10
Hình 2.6 So sánh hiệu suất của Deep learning với các thuật toán khác ...................11
Hình 2.7 Máy tính nhìn hình ảnh dưới dạng ma trận số ...........................................13
Hình 2.8 Cấu trúc mạng CNN ...................................................................................14
Hình 2.9 Đầu vào và bộ lọc của convolutional layer ................................................14
Hình 2.10 Hoạt động tích chập CNN ........................................................................15
Hình 2.11 Kết quả của hoạt động tích chập ..............................................................15
Hình 2.12 Thực hiện nhiều phép tích chập trên một đầu vào ...................................16
Hình 2.13 Hoạt động tích chập cho mỗi bộ lọc ........................................................16
Hình 2.14 Stride 2 ......................................................................................................17
Hình 2.15 Áp dụng padding cho hình ảnh đầu vào...................................................18
Hình 2.16 Ví dụ về các loại pooling .........................................................................18
Hình 2.17 Max pooling .............................................................................................19
Hình 2.18 Max pooling cho nhiều lớp ......................................................................19

Hình 2.19 Thao tác làm phẳng ..................................................................................20
Hình 2.20 Lớp Fully-connected.................................................................................20
Hình 2.21 Quá trình tổng thể của MTCNN...............................................................21
Hình 2.22 Mạng P-Net...............................................................................................22
Hình 2.23 Mạng R-Net ..............................................................................................23
Hình 2.24 Mạng O-Net ..............................................................................................24
Hình 2.25 Mối tương quan giữa độ sâu và hiệu suất mạng ......................................26
Hình 2.26 Mơ-đun Residual .....................................................................................26
Hình 2.27 Mơ-đun Residual và Bottlenecks Residual ..............................................27
Hình 2.28 Hình ảnh 2 mơ-đun residual xếp chồng lên nhau ....................................28
Hình 2.29 Mơ-đun residual mới ................................................................................29
Hình 2.30 Các kiến trúc mạng ResNet cơ bản ..........................................................30
Hình 2.31 Convolution của bước Conv1...................................................................30
Hình 2.32 Max pooling của bước Conv1 ..................................................................31
Hình 2.33 Hoạt động đầu tiên của khối 1 trong lớp ResNet 1 ..................................31
Hình 2.34 Hoạt động của khối 1 trong lớp ResNet 1 ................................................32
Hình 2.35 Hoạt động của lớp ResNet 1.....................................................................32
Hình 2.36 Conv giảm kích thước giữa lớp ResNet 1 và lớp ResNet 2 .....................32
vi

do an


Hình 2.37 Hoạt động của khối 1 trong lớp ResNet 2 ................................................33
Hình 2.38 Mạng ResNet34 ........................................................................................33
Hình 2.39 Ví dụ về mạng PyramidNet ......................................................................34
Hình 2.40 khối ResNet kích hoạt trước PyramidNet ...............................................34
Hình 2.41 Mơ-đun Residual của mạng ResNet100E-IR...........................................35
Hình 2.42 Đào tạo một DCNN nhận dạng khuôn mặt với hàm mất mát softmax ...35
Hình 2.43 Đào tạo một DCNN để nhận dạng khn mặt với hàm mất mát ArcFace

.....................................................................................................................................36
Hình 2.44 Ví dụ về sự mất mát của softmax và ArcFace trên 8 danh tính ...............37
Hình 2.45 So sánh hàm entropy chéo và hàm bình phương khoảng cách ................38
Hình 2.46 Mơ hình hồi quy Softmax dưới dạng NN ................................................38
Hình 2.47 Intersection Over Union ...........................................................................42
Hình 3.1 Sơ đồ khối của hệ thống .............................................................................44
Hình 3.2 Máy tính xách tay IdeaPad L340 ...............................................................44
Hình 3.3 Camera logitech C270 ................................................................................46
Hình 3.4 Mơ hình Joy Robot (Robơ Da Alegria)......................................................47
Hình 3.5 Thi cơng in 3D ............................................................................................47
Hình 3.6 Lắp ráp phần đầu robot ...............................................................................48
Hình 3.7 Lắp ráp phần thân robot..............................................................................48
Hình 3.8 Mơ hình robot .............................................................................................49
Hình 3.9 Ảnh Arduino Uno .......................................................................................49
Hình 3.10 Sơ đồ chân Arduino Uno ..........................................................................50
Hình 3.11 Mạch điều khiển 16 Channel PWM PCA9685 ........................................51
Hình 3.12 Động cơ Servo SG90 ................................................................................52
Hình 3.13 Mạch điều khiển động cơ L298N.............................................................53
Hình 3.14 Led matrix 8×8 MAX7219 ......................................................................54
Hình 3.15 Động cơ DC giảm tốc V1 .........................................................................54
Hình 3.16 Pin 18650 ..................................................................................................55
Hình 3.17 Sơ đồ nối dây cho robot............................................................................56
Hình 4.1 Cách thức MTCNN hoạt động ...................................................................58
Hình 4.2 Phép biến đổi affine căn chỉnh khn mặt .................................................59
Hình 4.3 Mơ phỏng pre-traned model LResNet100E-IR trích xuất đặc trưng.........60
Hình 4.4 Mạng Softmax ............................................................................................61
Hình 4.5 Cơng cụ thực thi phân tán Tensorflow .......................................................62
Hình 4.6 Một số thư viện Python ..............................................................................65
Hình 4.7 Giao diện phần mềm Visual Studio Code ..................................................66
Hình 4.8 Lưu đồ thu thập dữ liệu ..............................................................................67

Hình 4.9 Lưu đồ mã hóa dữ liệu................................................................................68
Hình 4.10 Lưu đồ giải thuật cho hệ thống.................................................................69
vii

do an


Hình 5.1 Bộ dữ liệu đánh giá MTCNN .....................................................................70
Hình 5.2 Tập dữ liệu đào tạo nhận diện khn mặt ..................................................71
Hình 5.3 Bộ dữ liệu kiểm thử ....................................................................................71
Hình 5.4 Biểu đồ loss và accuracy của hồi quy softmax ..........................................72
Hình 5.5 Confusion matrix ........................................................................................73
Hình 5.6 Nhận dạng mặt nghiêng ở điều kiện ánh sáng tốt ......................................74
Hình 5.7 Kết quả chạy real-time với ánh sáng đèn huỳnh quang .............................74
Hình 5.8 Hệ thống hoạt động ....................................................................................75

viii

do an


DANH MỤC BẢNG
Bảng 3.1 Thơng số kỹ thuật máy tính IdeaPad L340 ................................................43
Bảng 3.2 Yêu cầu khi sử dụng camera ......................................................................44
Bảng 3.3 Thông số kỹ thuật của camera Logitech C270 ..........................................44
Bảng 3.4 Thông số kỹ thuật Arduino Uno ................................................................48
Bảng 3.5 Thông số kỹ thuật mạc điều khiển 16 Channel PWM PCA9685 ..............49
Bảng 3.6 Thông số kỹ thuật động cơ Servo SG90 ....................................................50
Bảng 3.7. Thông số kỹ thuật mạch điều khiển động cơ L298N ...............................51
Bảng 3.8 Thông số kỹ thuật Leb matrix 8x8 MAX7219 ..........................................52

Bảng 3.9 Thông số kỹ thuật động cơ DC giảm tốc V1 .............................................53
Bảng 3.10 Thông số kỹ thuật Pin 18650 ...................................................................53

ix

do an


DANH MỤC TỪ VIẾT TẮT
AI: Artificial Intelligence
DCNN: Deep Convolutional Neural Network
CNN: Convolutional Neural Network
DL: Deep Learning
ML: Machine Learning
MTCNN: Multi-task Cascaded Convolutional Neural Networks
NN: Neural Network
NMS: Non-Maximum Suppression
ĐATN: Đồ Án Tốt Nghiệp
IOU: Intersection Over Union

x

do an


xi

do an



CHƯƠNG 1. TỔNG QUAN
1.1 Đặt vấn đề
Trong thời đại mà các thành tựu khoa học kỹ thuật phát triển không ngừng, chất
lượng cuộc sống ngày càng được nâng cao nhờ các thiết bị tích hợp trí thơng minh
nhân tạo. Các công việc đơn giản, nhàm chán sẽ được thay thế bởi các máy móc tự
động, vì thế đây là thời điểm phát triển vượt bậc của công nghệ robot đặc biệt là các
loại robot dịch vụ. Bên cạnh đó, thị giác máy tính (computer vision) đang được nghiên
cứu và phát triển nhanh chóng bởi các trung tâm nghiên cứu, trường đại học và học
viện. Một trong những bài toán được quan tâm nhất hiện nay đó là nhận diện khn
mặt (Face Recognition).
Như chúng ta đã biết, khn mặt đóng vai trị quan trọng trong q trình giao tiếp
giữa người với người, nó mang một lượng thơng tin giàu có, chẳng hạn như từ khn
mặt chúng ta có thể xác định giới tính, tuổi tác, chủng tộc, trạng thái cảm xúc, đặc
biệt là mối quan hệ với đối tượng. Apple sử dụng nhận diện khn mặt để mở khóa
thiết bị di động; Facebook sử dụng hệ thống gán tag mặt bạn bè để kết nối cộng đồng;
các cơng ty tài chính sử dụng nhận diện khuôn mặt để xác thực thanh toán thay cho
thẻ cứng; sân bay, nhà ga sử dụng nhận diện khn mặt để kiểm sốt an ninh; trường
học, công ty muốn sử dụng hệ thống điểm danh, chấm cơng tự động thơng qua xác
định mặt, … Đó là những ví dụ điển hình cho sự phát triển mạnh mẽ và phổ biến của
bài toán face recognition hay nhận diện khuôn mặt trong thực tế.
Nhận dạng khuôn mặt đã được nghiên cứu trong vài thập kỷ qua, dẫn đến kết quả
khả quan trong các kịch bản được kiểm soát. Nhưng trong môi trường không bị giới
hạn, nhận diện khuôn mặt vẫn là một vấn đề khó khăn. Sau một thời gian nghiên cứu,
sinh viên kiến nghị đề tài: “NHẬN DIỆN KHUÔN MẶT ỨNG DỤNG TRONG
ROBOT TIẾP TÂN” làm ĐATN.
1.2 Mục tiêu đề tài
• Nghiên cứu, tìm hiểu về DCNN và cách thức hoạt động của trích xuất đặc
điểm khn mặt.
• Nghiên cứu, tìm hiểu cách thức hoạt động của thuật tốn MTCNN phát hiện
khn mặt bằng cách trích xuất đặc điểm khn mặt.

• Nghiên cứu, tìm hiểu về thuật toán ArcFace là thuật toán dùng để phân loại và
xác minh khn mặt.
• Mục tiêu là xây dựng hệ thống nhận dạng khuôn mặt ứng dụng trong robot
tiếp tân.
1

do an


1.3 Giới hạn đề tài
Phạm vi của đồ án này là xây dựng hệ thống nhận dạng khuôn mặt thời gian thực
dựa trên các thuật toán liên quan. Hệ thống được thực hiện với bộ dữ liệu là 10 thành
viên trong ISLab. Các hình ảnh khn mặt đầu vào là hình ảnh mặt trước, bị khuyết
khơng q một nửa ở điều kiện ánh sáng bình thường.
1.4 Phương pháp nghiên cứu
Dự án này nghiên cứu được chia thành các chương, mỗi chương là một bước tiếp
theo trong quá trình phát triển và xây dựng Robot. Cách tiếp cận này được sử dụng
trong nỗ lực tiến triển dự án từ nhiệm vụ này sang nhiệm vụ tiếp theo như đã đề cập.
Mỗi bước được định nghĩa sao cho nó xây dựng trên nhiệm vụ trước đó, do đó phát
triển robot ứng với các yêu cầu và mục tiêu đã tạo ra. Điều này cuối cùng đã dẫn đến
việc hoàn thành robot đáp ứng các mục tiêu trong khung thời gian có sẵn.
Bước đầu tiên, sinh viên phải nghiên cứu các bài báo và khảo sát liên quan đến
dự án đã chọn.
Bước hai, sau khi đọc những bài báo và khảo sát đó, sinh viên phải chọn phương
pháp muốn áp dụng cho dự án.
Bước ba, sinh viên phải tìm và đọc các tài liệu có liên quan đến dự án đã chọn.
Đặc biệt là tìm hiểu các lý thuyết về CNN, Machine Learning, MTCNN, thuật toán
ArcFace, …
Bước bốn, sinh viên phải xây dựng phần cứng cho hệ thống và ghép chúng lại
với nhau.

Bước năm, áp dụng những lý thuyết trong bước thứ ba cho hệ thống phần cứng.
Bước sáu, sinh viên phải kiểm tra và đo lường độ chính xác của hệ thống.
1.5 Giới thiệu nội dung
-

Chương 1: Tổng quan

Chương này cung cấp một cái nhìn tổng quan ngắn gọn về các yêu cầu bao gồm
đặt vấn đề, mục tiêu, giới hạn, phương pháp nghiên cứu và nội dung của đồ án.
-

Chương 2: Cơ sở lý thuyết

Chương này cung cấp các kiến thức cơ bản về đồ án này, chẳng hạn như cách hệ
thống nhận dạng khn mặt hoạt động, trí tuệ nhân tạo, mạng CNN, mạng ResNet,
thuật toán ArcFace cho nhận dạng khuôn mặt.

2

do an


-

Chương 3: Thiết kế và xây dựng phần cứng

Chương này trình bày chi tiết phần cứng của mơ hình, bao gồm hệ thống nhận
diện khn mặt và mơ hình robot được sử dụng.
-


Chương 4: Phần mềm và thuật toán

Nội dung của chương này bao gồm các phần mềm sử dụng, lưu đồ giải thuật và
thuật toán cho từng bước trong hệ thống.
-

Chương 5: Kết quả thực nghiệm

Chương này được viết sau khi mơ hình đã được lắp ráp hồn chỉnh, hoạt động ổn
định và đáp ứng các yêu cầu của đề tài này.
-

Chương 6: Kết luận và hướng phát triển

Chương này cung cấp kết luận về măt ưu điểm và nhược điểm của đồ án này. Từ
đó đề xuất ý tưởng hướng phát triển trong tương lai.

3

do an


CHƯƠNG 2: CƠ SỞ LÝ THUYẾT

2.1 HỆ THỐNG NHẬN DẠNG KHN MẶT
Nhận diện khn mặt là một cơng nghệ xác địng danh tính tự động cho từng đối
tượng từ một bức ảnh số hay một khung hình video. Vào những năm 60 của thế kỷ
XX, khi bài toán nhận dạng khn mặt bắt đầu được nghiên cứu, kể từ đó rất nhiều
hướng tiếp cận đã được đề xuất giải quyết bài tốn này. Nhưng phải đến cuối thế kỷ
XX, cơng nghệ này mới đạt được những thành tựu đáng kể. Nhìn chung , quy trình

giải quyết bài tốn này [1] được thể hiện trong Hình 2.1 để nhận dạng khn mặt, bao
gồm nhận diện khuôn mặt (Face Detection), căn chỉnh khn mặt (Face Alignment),
trích xuất đặc trưng (Feature Extraction) và so khớp các đặc trưng (Feature
Matching), được mô tả trong các phần bên dưới:

Hình 2. 1: Hệ thống nhận dạng khn mặt
Nhận dạng khn mặt: Chức năng chính của bước này là xác định xem khn
mặt con người có xuất hiện trong hình ảnh hay khơng và vị trí của những khuôn mặt
này. Đầu ra dự kiến của bước này là các khung chứa mỗi mặt trong hình ảnh đầu vào
Căn chỉnh khuôn mặt: được thực hiện để định hướng các khung hình khn
mặt làm cho hệ thống nhận diện khn mặt chính xác và dễ dàng thiết kế hơn.
Trích xuất đặc trưng: Sau khi phát hiện tất cả các khn mặt trong một hình
ảnh, các khung hình mặt được trích xuất từ hình ảnh. Trích xuất đặc trưng được thực
hiện để đóng gói thơng tin, giảm kích thước và làm sạch nhiễu. Sau bước này một
4

do an


khung hình mặt thường được chuyển thành một vector với kích thước cố định hoặc
một tập hợp các điểm fiducial và vị trí tương ứng của chúng.
So khớp các đặc trưng: Sau khi trích xuất đặc trưng của từng khn mặt, bước
cuối cùng làn nhận dạng danh tính của những khuôn mặt này. Để thực hiện nhận dạng
tự động, cần phả xây dựng cơ sở dữ liệu khuôn mặt. Đối với mỗi người, một số hình
ảnh được chụp và các đặc trưng của chúng được trích xuất và lưu trữ trong cơ sở dữ
liệu. Sau đó, khi một hình ảnh khuôn mặt đầu vào xuất hiện, chúng ta thực hiện phát
hiện khn mặt và trích xuất đặc trưng sau đó so sánh đặc trưng của nó với từng lớp
khn mặt được lưu trữ trong cơ sở dữ liệu. Đã có nhiều nghiên cứu và thuật toán
được đề xuất để đối phó với vấn đề phân loại này.
Hình 2.2 mơ tả một ví dụ về bốn bước này hoạt động trên một hình ảnh đầu vào.


Hình 2.2. Các bước nhận diện khn mặt
(a) Hình ảnh đầu vào và kết quả phát hiện khn mặt (hình chữ nhật màu đỏ) (b)
Khung hình khn mặt được trích xuất từ ảnh đầu vào (c) Căn chỉnh khn mặt đã
được trích xuất (d) trích xuất vector đặc trưng từ khung hình đã được căn chỉnh (e)
So sánh vector được trích xuất với cơ sở dữ liệu và xác định lớp có thể xảy ra nhất
(hình chữ nhật màu đỏ).
Các lý thuyết cần có để xây dựng hệ thống như trên được giới thiệu ở những phần
sau.
2.2 TỔNG QUAN VỀ TRÍ TUỆ NHÂN TẠO (AI)
2.2.1 Trí tuệ nhân tạo
Trí thơng minh nhân tạo (AI) có sức mạnh phá vỡ nhiều ngành cơng nghiệp, và
khơng có gì ngạc nhiên khi nó là một trong những chủ đề nóng bỏng nhất hiện nay.
Tuy nhiên, AI thường bị hiểu lầm: ngoài việc được quảng cáo là điều lớn lao cho các
5

do an


cơng ty tiên tiến, AI cịn được cho là sẽ thay thế công nhân và phá hủy ngành công
nghiệp như chúng ta đã biết [11]. Trí thơng minh nhân tạo có nghĩa là máy móc có
thể tự ra quyết định hoặc tính tốn bắt chước nhận thức của con người. Trong thực
tế, điều này đòi hỏi một cỗ máy phải hiểu thơng tin về mơi trường xung quanh, cho
dù đó là một khơng gian vật lý, trạng thái của trị chơi hay thơng tin liên quan đến cơ
sở dữ liệu.

Hình 2.3 Mối quan hệ giữa AI, Machine Learning, Neural Network và Deep learning
Trí thơng minh nhân tạo là một lĩnh vực rộng bao gồm một số trường con, kỹ
thuật và thuật tốn. Lĩnh vực trí tuệ nhân tạo dựa trên mục tiêu làm cho một cỗ máy
thông minh như con người. Quay trở lại năm 1956, các nhà nghiên cứu tại Dartmouth

với mục tiêu rõ ràng là lập trình máy tính hoạt động như con người – đây là sự ra đời
của trí tuệ nhân tạo. Để giải thích thêm về các mục tiêu của trí tuệ nhân tạo, các nhà
nghiên cứu đã mở rộng mục tiêu của họ đến sáu mục tiêu chính sau:
• Lý luận logic: Cho phép máy tính thực hiện các nhiệm vụ phức tạp mà con
người có khả năng thực hiện.
• Trình bày kiến thức: Cho phép máy tính mơ tả các đối tượng, con người và
ngơn ngữ.
• Lập kế hoạch và điều hướng: Cho phép máy tính đi từ điểm A đến điểm B.
• Xử lý ngơn ngữ tự nhiên (NLP): Máy tính có thể tương tác thông qua hiểu
ngôn ngữ tự nhiên được nói bởi con người
• Nhận thức: Cho phép máy tính tương tác với thế giới thơng qua thị giác, thính
giác, xúc giác và khứu giác.
• Trí thơng minh mới nổi: Trí thơng minh khơng được lập trình rõ ràng, nhưng
xuất hiện từ phần cịn lại của các tính năng AI rõ ràng. Tầm nhìn cho mục tiêu
này là có những cỗ máy thể hiện trí tuệ cảm xúc, lý luận đạo đức, …
6

do an


Những mục tiêu này khơng phân loại các thuật tốn và kỹ thuật Trí tuệ nhân tạo
cụ thể. Đây chỉ là sáu trong số các thuật toán và kỹ thuật chính trong Trí tuệ nhân tạo:
• Machine Learning là lĩnh vực trí tuệ nhân tạo cung cấp cho máy tính khả năng
học mà khơng cần lập trình rõ ràng.
• Tìm kiếm và tối ưu hóa: Các thuật tốn như Gradient Descent để lặp lại tìm
kiếm các điểm cực đại cục bộ và cực tiểu cục bộ.
• Lý luận xác suất: kết hợp khả năng của lý thuyết xác suất để xử lý sự không
chắc chắn với khả năng suy luận logic để khai thác cấu trúc của lập luận chính
thức.
• Sự thỏa mãn ràng buộc: là quá trình tìm giải pháp cho một tập hợp các ràng

buộc áp đặt các điều kiện mà các biến phải thỏa mãn.
• Lý thuyết điều khiển: là một cách tiếp cận chính thức để tìm các bộ điều khiển
có các thuộc tính có thể chứng minh được. Điều này thường liên quan đến một
hệ thống các phuwong trình vi phân thường mơ tả hệ thống vật lý như robot
hoặc máy bay.
Hình 2.3 mơ tả mối quan hệ giữa Trí tuệ nhân tạo (AI), Machine Learning, Neural
NetWork và Deep Learning.
2.2.2 MACHINE LEARNING
Machine Learning là một tập hợp con của Trí tuệ nhân tạo – nó có khả năng tự
học hỏi dựa trên dữ liệu đưa vào mà khơng cần phải được lập trình cụ thể. Ý tưởng
máy tính có thể tự học đã được Arthur Samuel đưa ra vào năm 1959. Một bước đột
phá lớn đã dẫn đến sự xuất hiện của Machine Learning là động lực thúc đẩy Trí tuệ
nhân tạo – phát minh ra internet. Internet đi kèm với một lượng lớn thông tin kỹ thuật
số đang được tạo ra, lưu trữ và cung cấp để phân tích. Đây là khi bạn bắt đầu nghe về
Big Data. Hơn nữa, các thuật toán Machine Learning đã có hiệu quả trong việc tận
dụng Big Data.
Các hình thức học tập của Machine Learning: Có nhiều thuật tốn khác nhau
có thể được sử dụng khi đào tạo các mạng lưới thần kinh nhân tạo như Học tập có
giám sát, Học tập khơng giám sát, Học bán giám sát, Học củng cố, mỗi thuật tốn đều
có ưu điểm và nhược điểm riêng.
-

Học có giám sát

Học có giám sát là thuật toán dự đoán đầu ra (outcome) của một dữ liệu mới
(new input) dựa trên các cặp (input, outcome) đã biết từ trước. Cặp dữ liệu này còn
được gọi là (data, label). Đây là thuật toán phổ biến nhất trong các thuật toán Machine
learning.
7


do an


Các thuật toán phân loại và hồi quy là hai ví dụ điển hình trong nhóm này. Trong
bài tốn xác định xem một bức ảnh có chứa một xe máy hay không, ta cần chuẩn bị
các ảnh chứa và không chứa xe máy cùng với nhãn của chúng. Dữ liệu này được dùng
như dữ liệu huấn luyện cho mơ hình phân loại.
Theo tốn học, học có giám sát xảy ra khi việc dự đoán quan hệ giữa đầu ra y và
đầu vào x được thực hiện dựa trên các cặp {(𝑥1 , 𝑦1 ), (𝑥2 , 𝑦2 ), … , (𝑥𝑁 , 𝑦𝑁 )} trong tập
huấn luyện. Việc huấn luyện là việc xây dựng một hàm số 𝑦 sao cho với mọi 𝑖 =
1,2, … , 𝑁, 𝑓(𝑥𝑖 ) gần với 𝑦𝑖 nhất có thể. Hơn thế nữa, khi có một điểm dữ liệu 𝑥 nằm
ngoài tập huấn luyện, đầu ra dự đoán 𝑓 (𝑥 ) cũng gần với đầu ra thực sự 𝑦.
-

Học khơng giám sát

Trong thuật tốn này, chúng ta không biết được nhãn của dữ liệu đầu vào.
Thuật tốn học khơng giám sát sẽ dựa vào cấu trúc của dữ liệu để thực hiện một số
công việc nào đó như phân cụm (clustering) hoặc giảm số chiều của dữ liệu
(dimension reduction) để thuận tiện trong việc lưu trữ và tính tốn.
Các bài tốn học khơng giám sát được chia nhỏ thành hai loại:
Phân cụm: Một bài toán phân cụm tồn bộ dữ liệu X thành các nhóm nhỏ dựa
trên sự liên quan giữa các dữ liệu trong mỗi nhóm.
Asociation: Là bài tốn khi chúng ta muốn khám phá ra một quy luật dựa trên
nhiều dữ liệu cho trước.
- Học bán giám sát
Học bán giám sát nằm giữa ranh giới hai nhóm học có giám sát và học khơng
giám sát. Thuật tốn này sử dụng khi có một số lượng lớn dữ liệu X nhưng chỉ có một
phần trong chúng được gán nhãn.
-


Học củng cố

Học củng cố là thuật tốn Machine Learning có thể khơng u cầu dữ liệu
huấn luyện mà mơ hình học cách ra quyết định bằng cách giao tiếp với môi trường
xung quanh. Các thuật tốn thuộc nhóm này liên tục ra quyết định và nhận phản hồi
từ môi trường để tự củng cố hành vi.

2.2.3 MẠNG NEURAL
Định nghĩa: Mạng nơ-ron nhân tạo, Artificial Neural Network (ANN) là một
mơ hình xử lý thơng tin theo cách xử lý thông tin của các hệ nơ-ron sinh học. Nó
được tạo nên từ một số lượng lớn các phần tử (nơ-ron) kết nối với nhau thông qua
8

do an


các liên kết (trọng số liên kết) làm việc như một thể thống nhất để giải quyết một vấn
đề cụ thể nào đó. Một mạng nơ-ron nhân tạo được cấu hình cho một ứng dụng cụ thể
(nhận dạng mẫu, phân loại dữ liệu, …) thơng qua một q trình học tập từ tập mẫu
huấn luyện. Về bản chất học chính là quá trình hiệu chỉnh trọng số liên kết giữa các
nơ-ron.
Cấu trúc mạng neural nhân tạo:

Hình 2.4. Cấu tạo một mạng Neural
Các thành phần cơ bản của một mạng neural nhân tạo bao gồm:
• Tập các đầu vào: Là các tín hiệu vào (input signals) của nơ-ron, các tín hiệu
này thường được đưa vào dưới dạng một vector N chiều.
• Tập các liên kết: Mỗi liên kết được thể hiện bởi một trọng số liên kết – Synapic
weight. Trọng số liên kết giữa tín hiệu vào thứ j với nơ-ron k thường được kí

hiệu là 𝑤𝑘𝑗 . Thơng thường, các trọng số này được khởi tạo một cách ngẫu
nhiên ở thời điểm khởi tạo mạng và được cập nhật liên tục trong q trình học
mạng.
• Bộ tổng (Summing function): Thường dùng để tính tổng các tích đầu vào với
trọng số liên kết của nó. Ngưỡng (cịn gọi là độ lệch – bias): Ngưỡng này
thường được đưa vào như một thành phần của hàm truyền.
• Hàm truyền (Transfer function). Hàm này được dùng để giới hạn phạm vi đầu
ra của mỗi nơ-ron. Nó nhận đầu vào là kết quả của hàm tỏng và ngưỡng.
• Đầu ra: Là tín hiệu đầu ra của một nơ-ron, với mỗi nổn sẽ có tối đa là một đầu
ra
9

do an


Xét về mặt toán học, cấu trúc của một nơ-ron k, được mô tả bằng cặp biểu
thức sau:
𝑛

𝑢𝑘 = ∑ 𝑤𝑘𝑗 𝑥𝑗
𝑗=1

𝑉à 𝑦𝑘 = 𝑓 (𝑢𝑘 − 𝑏𝑘 )
Trong đó: 𝑥1 , 𝑥2 , … , 𝑥𝑝 : là các tín hiệu vào; 𝑤𝑘1 , 𝑤𝑘2 , … , 𝑤𝑘𝑝 là các trọng số
liên kết của nơ-ron thứ k; 𝑢𝑘 là hàm tổng; 𝑏𝑘 là một ngưỡng; f là hàm truyền và 𝑦𝑘 là
tín hiệu đầu ra của nơ-ron.
Như vậy nơ-ron nhân tạo nhận tín hiệu đầu vào, xử lý (nhân các tín hiệu này
với trọng số liên kết, tính tổng các tích thu được rồi gửi kết quả tới hàm truyền), và
cho một tín hiệu đầu ra (là kết quả của hàm truyền).


Hình 2.5. Một số hàm truyền thơng dụng
2.2.4 DEEP LEARNING
Deep learning là ưu thế của những gì máy móc có thể làm, các nhà phát triển và
lãnh đạo doanh nghiệp hồn tồn cần phải hiểu nó là gì và hoạt động như thế nào.
Loại thuật tốn độc đáo này đã vượt xa mọi tiêu chuẩn trước đây để phân loại hình
ảnh, văn bản và giọng nói.
Nó cung cấp sức mạnh cho một số ứng dụng thú vị trên thế giới, như xe tự hành
và dịch thuật thời gian thực. Chắc chắn có rất nhiều sự phấn khích xung quanh việc
10

do an


AlphaGo dựa trên Google Deep Learning đánh bại người chơi cờ vây giỏi nhất thế
giới, các ứng dụng kinh doanh cho cơng nghệ này ngay lập tức và có khả năng tác
động mạnh hơn.
• Trí tuệ nhân tạo là một lĩnh vực kiến thức tổng thể, tương tự như sinh học và
hóa học. Nó có nhiệm vụ tạo ra các cỗ máy có thể suy nghĩ thơng minh.
• Machine Learning là một phần của trí tuệ nhân tạo, sử dụng các thuật tốn để
thu thập thơng tin chun sâu về dữ liệu.
• Deep Learning là một phần của Machine Learning, bằng cách sử dụng một số
thuật toán cụ thể được gọi là Mạng thần kinh.

Hình 2.6. So sánh hiệu suất của Deep learning với các thuật toán khác
Deep Learning chỉ là một thuật toán dường như hoạt động thực sự tốt để dự đoán
mọi thứ. Deep learning và Neural Nets, đối với hầu hết các mục đích, đồng nghĩa một
cách hiệu quả. Mạng lưới thần kinh được lấy cảm hứng từ cấu trúc của vỏ não. Ở cấp
độ cơ bản là perceptron, đại diện toán học của một tế bào thần kinh sinh học. Giống
như trong vỏ não, có thể có một vài lớp tri giác liên kết với nhau.
Các giá trị đầu vào, hay nói cách khác là dữ liệu cơ bản của chúng ta, được truyền

qua mạng này của các lớp ẩn cho đến khi chúng hội tụ đến lớp đầu ra. Lớp đầu ra là
kết quả dự đốn: nó có thể là một nút nếu mơ hình chỉ xuất ra một số hoặc một vài
nút nếu nó có vấn đề phân loại đa lớp.
Các lớp ẩn của mạng thần kinh thực hiện các sửa đổi trên dữ liệu để cuối cùng
cảm nhận được mối quan hệ của nó với biến mục tiêu là gì. Mỗi nút có trọng số và
nó nhận giá trị đầu vào của nó với trọng số đó. Làm điều đó qua một vài lớp khác
nhau và mạng nơ-ron về cơ bản có thể thao tác dữ liệu thành một thứ gì đó có ý nghĩa.
11

do an


Deep Learning quan trọng vì một lý do: Chúng ta có thể đạt được độ chính xác
có ý nghĩa, hữu ích cho các nhiệm vụ quan trọng. Machine Learning đã được sử dụng
để phân loại trên hình ảnh và văn bản trong nhiều thập kỷ nhưng nó đã phải vật lộn
để vượt qua ngưỡng – có một độ chính xác cơ bản mà các thuật toán cần phải hoạt
động. Deep Learning cuối cùng đã cho phép chúng ta vượt qua ranh giới đó ở những
nơi mà trước đây chúng ta khơng thể đến.
Computer vision là một ví dụ tuyệt vời về một nhiệm vụ mà Deep Learning đã
biến thành một cái gì đó thực tế cho các ứng dụng kinh doanh. Hình 2.6 cho thấy rằng
sử dụng Deep Learning để phân loại và gắn nhãn hình ảnh khơng chỉ tốt hơn bất kỳ
thuật toán truyền thống nào khác.
2.3 CONVOLUTIONAL NEURAL NETWORK
2.3.1 Giới thiệu
Convolutional Neural Networks (CNNs) là mơ hình học sâu hang đầu cho
computer vision. Computer vision đã trở nên tốt đến mức hiện tại nó đánh bại con
người ở một số nhiệm vụ nhất định và CNN đóng vai trị chính trong câu chuyện
thành cơng này.
CNNs được sử dụng để đánh giá đầu vào thông qua các kết quả. Đầu vào được
tích hợp với một bộ lọc. Sự tích chập này dẫn đến mạng để phát hiện các cạnh và các

tính năng cấp thấp hơn trong các lớp trước đó và các tính năng phức tạp hơn trong
các lớp sâu hơn trong mạng. CNN được sử dụng kết hợp với các lớp gộp và chúng
thường có các lớp được kết nối đầy đủ ở lớp ở cuối. Chạy lan truyền ngược về phía
trước như trong mạng vani và giảm hàm mất mát thông qua lan truyền ngược để đào
tạo CNN [4][5]
Phân loại hình ảnh là nhiệm vụ lấy hình ảnh đầu vào và xuất ra một lớp (mèo,
chó, v.v.) hoặc xác suất của các lớp mô tả đúng nhất hình ảnh. Đối với con người,
nhiệm vụ nhận biết này là một trong những kỹ năng đầu tiên chúng ta học được từ
khi chúng ta được sinh ra và là một kỹ năng xuất hiện tự nhiên và dễ dàng khi trưởng.
Thậm chí khơng cần suy nghĩ hai lần, chúng ta có thể xác định nhanh chóng và liền
mạch mơi trường chúng ta đang ở cũng như các đối tượng xung quanh chúng ta. Khi
chúng ta nhìn thấy một hình ảnh hoặc chỉ khi chúng ta nhìn vào thế giới xung quanh
chúng ta, hầu hết thời gian chúng ta có thể mơ tả ngay lập tức cảnh đó và đưa cho
mỗi đối tượng một nhãn, tất cả mà không hề nhận ra.
Khi một máy tính nhìn vào một hình ảnh (lấy một hình ảnh làm đầu vào), nó sẽ
thấy một mảng các giá trị pixel. Tùy thuộc vào độ phân giải và kích thước của hình
ảnh, nó sẽ thấy một dãy số 32 x 32 x 3 (số 3 tương ứng giá trị RGB).
12

do an


Hình 2.7 Máy tính nhìn hình ảnh dưới dạng ma trận số
(a) Con người thấy, (b) máy tính thấy
Mỗi số này được cho một giá trị từ 0 đến 255, mơ tả cường độ pixel tại điểm đó.
Những con số này, trong khi vô nghĩa đối với chúng ta khi chúng ta thực hiện phân
loại hình ảnh, là đầu vào duy nhất có sẵn cho máy tính. Ý tưởng là chúng ta cung cấp
cho máy tính mảng số này và nó sẽ xuất ra các số mơ tả xác suất hình ảnh là một lớp
nhất định.
Những gì chúng tơi muốn máy tính làm là có thể phân biệt giữa tất cả các hình

ảnh được đưa ra và tìm ra các tính năng độc đáo tạo ra một con chó hoặc tạo ra một
con mèo. Đây là quá trình diễn ra trong tiềm thức của chúng ta là tốt. Khi chúng ta
nhìn vào hình ảnh của một con chó, chúng ta có thể phân loại nó như vậy nếu bức
ảnh có các đặc điểm nhận dạng như bàn chân hoặc 4 chân. Theo cách tương tự, máy
tính có thể thực hiện phân loại hình ảnh bằng cách tìm kiếm các tính năng cấp thấp
như cạnh và đường cong, sau đó xây dựng các khái niệm trừu tượng hơn thông qua
một loạt các lớp chập
2.3.2 Kiến trúc Convolutional Neural Network
Các mơ hình CNN có một kiến truc tương tự nhau. Về mặt kỹ thuật, các mơ hình
CNN dung để đào tạo và kiểm tra, mỗi hình ảnh đầu vào sẽ chuyển nó qua một loạt
các lớp chập với các bộ lọc (Kernals)
-

Lớp Convolutional: Dùng để trích xuất các đặc trưng.
Lớp non-linearity: Giới thiệu phi tuyến tính cho hệ thống.
Lớp Pooling: Giảm số lượng trọng số và kiểm soát overfitting.
Lớp Fully-Connected: Mạng thần kinh tiêu chuẩn để phân loại.
13

do an


×