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

Khóa Luận Hệ thống nhận dạng cảm xúc gương mặt RealTime Cython, Python. emotionrecognition

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 (6.47 MB, 101 trang )

ĐẠI HỌC THĂNG LONG
Khoa Tốn - Tin

Khóa Luận

Ứng dụng kỹ thuật nhận dạng
cảm xúc qua khuôn mặt

Sinh viên thực hiện:
Khoa:

Trần Văn Hùng

Ngành học:
Giáo viên hướng dẫn:

Tốn Ứng Dụng
TS. Nguyễn Cơng Điều

HÀ NỘI - 2022

Toán – Tin K29.


51
89/176-05
GD-05

Mã số: 9110



Lời nói đầu
Lời đầu tiên, em xin được gửi lời cảm ơn chân thành nhất tới tồn thể
các thầy cơ giáo trong Khoa Tốn Tin cũng như các thầy cơ giảng dạy trong
trường Đại học Thăng Long đã truyền đạt những kiến thức quý báu và bổ ích
nhất cho em trong những năm học vừa qua.
Đặc biệt, em xin gửi lời cảm ơn chân thành và sâu sắc tới thầy – Nguyễn
Cơng Điều, giảng viên khoa Tốn Tin, Đại học Thăng Long. Thời gian qua
nhờ vào sự hướng dẫn tận tình và sự động viên, giúp đỡ ân cần từ thầy mà
em mới có thành quả là xây dựng và hồn thiện được Khố luận tốt nghiệp
như ngày hơm nay.
Em cũng xin gửi lời cảm ơn tới anh, chị và các bạn trong khoa Toán - Tin
Đại học Thăng Long đã luôn giúp đỡ, chia sẻ những kinh nghiệm và chỉ dẫn
cho em trong suốt quá trình học và quá trình thực hiện khóa luận.
Tuy nhiên, do năng lực cịn hạn chế nên em không thể phát huy hết những
ý tưởng, khả năng hỗ trợ của ngôn ngữ cùng với đó sự giúp đỡ nhiệt tình của
mọi người vào đề tài. Trong q trình xây dựng khóa luận, khơng thể tránh
khỏi những sai sót, mong nhận được sự đóng góp và cảm thơng của q thầy
cơ và các bạn.
Mọi đóng góp xin gửi về địa chỉ email :
Một lần nữa xin chân thành cám ơn.
Sinh viên trình bày: Trần Văn Hùng
Lớp : Toán Tin K29


Giới thiệu chung
Trong vài năm gần đây, cùng với sự phát triển về khoa học và công nghệ,
tương tác người máy đã trở thành một lĩnh vực nổi bật nhằm cung cấp cho
con người khả năng phục vụ của máy móc. Điều này bắt nguồn từ khả năng
máy móc có thể tương tác được với con người. Máy móc cần các kỹ năng để
trao đổi thông tin với con người và một trong những kỹ năng đó là khả năng

hiểu được cảm xúc. Cách tốt nhất để một người biểu thị cảm xúc là qua khn
mặt. Bài tồn nhận dạng cảm xúc khuôn mặt đã được bắt đầu nghiên cứu từ
những năm 1970 nhưng kết quả đạt được đến nay vẫn còn nhiều hạn chế.
Hiện nay, nhận dạng và phân tích cảm xúc khn mặt tự động là một vấn
đề thú vị và đầy thách thức, có ảnh hưởng to lớn đến xã hội. Cảm xúc trên
khuôn mặt và hành động của chúng ta là phương tiện giao tiếp phi ngôn ngữ,
bao gồm 93% cảm xúc giao tiếp của con người, trong đó 55% thể hiện cử chỉ
khn mặt và hành động của con người. Cảm xúc khn mặt có thể được phân
tích dễ dàng thơng qua hình ảnh khn mặt và máy tính có thể tương tác với
con người, như cách con người tương tác với nhau.
Các nhà nghiên cứu đã chỉ ra rằng cảm xúc trên khuôn mặt là phổ quát
và bẩm sinh trong tất cả các chủng tộc, giới tính và độ tuổi. Thêm cảm xúc
trung tính là có bảy cảm xúc cơ bản, gồm: trung tính, giận dữ, ghê tởm, sợ
hãi, hạnh phúc, buồn và bất ngờ.

Mục tiêu và nhiệm vụ
Xây dựng hệ thống nhận diện cảm xúc khuôn mặt bằng cách sử dụng
webcam, ngôn ngữ lập trình python để lấy dữ liệu về phân tích. Mơ hình sẽ
nhận diện cảm xúc trên khn mặt người, lưu trữ trạng thái cảm xúc và ảnh,
từ đó tạo một dataset mới khiến mơ hình ngày một tốt hơn.
Bài toán nhận diện cảm xúc được chia nhỏ ra thành các bài tốn con là:
• Facial Detection — Tìm vị trí của gương mặt có trong ảnh hoặc frame
của video.
• Emotion Detection — Xác định nhãn của các gương mặt vừa tìm kiếm
được theo các cảm xúc như: happy, angry, sad, neutral, surprise, disgust
or fear
Với mục đích như trên, mục tiêu và nhiệm vụ của luận văn được xác định
như sau:
• Tìm hiểu, nghiên cứu ngun lý cơ sở lý thuyết của đề tài
• Tìm hiểu mơ hình bài tốn và các bước thực hiện để xây dựng một hệ

thống nhận dạng khuôn mặt người.


• Tìm hiểu, nắm các cơng nghệ đã và đang được áp dụng cho từng bước
có trong hệ thống.
• Hiểu rõ lý thuyết tốn học và tính chất đặc trưng của những kỹ thuật
sẽ được sử dụng để giải quyết bài tốn trong khn khổ khóa luận Tìm
hiểu và sử dụng các cơng cụ hữu ích nhằm phục vụ cho bài tốn nhận
dạng mặt người cũng như trong q trình xây dựng hệ thống: OpenCV,
Tensorflow.
• Tiến hành thực nghiệm chương trình và đánh giá kết quả đạt được
• Đúc kết kinh nghiệm qua quá trình nghiên cứu và đề xuất phát triển
tương lai
Ngồi cơ sở dữ liệu chuẩn Fer2013 cơng bố tại địa chỉ trang web
em sẽ tiến hành xây dựng dữ liệu thực
tế trên khuôn mặt người Việt Nam nhằm phục vụ cho chương trình thực
nghiệm.
Từ khóa: Facial Expression Recognition, Principal Component Analysis,
Neural Network, Decision Tree, Weka. . .

Đối tượng và phạm vi nghiên cứu
Phạm vi nghiên cứu: Nhận dạng các cảm xúc: buồn, hạnh phúc, giận dữ,
ngạc nhiên, ghê tởm và bình thường Tìm hiểu các tài liệu, đồ án trước đó.
• Xử lý ảnh đầu vào từ camera hoặc từ thư mục có sẵn.
• Kết nối và cài đặt nguồn thư viện cho khóa luận trên ngơn ngữ lập trình
python.
• Xây dựng hệ thống nhận dạng cảm xúc trên khn mặt.
• Lắp ráp các khối điều khiển vào mơ hình.
• Lập trình và viết code cho các ứng dụng trên máy tính cá nhân.
• Chạy thử và điều chỉnh mơ hình.

• Đánh giá kết quả thực hiện.
• Viết báo cáo.


Kết quả dự kiến
Chương trình (ở mức thử nghiệm) nhận dạng mặt người trên dữ liệu chuẩn
Challenges in Representation Learning: Facial Expression Recognition Challenge (Fer2013) đạt trên 70%.Thử nghiệm chương trình trên dữ liệu thực tế
(Vietnamese database) và khả năng nhận dạng đạt được 70% - 80%.

Bố cục khóa luận
Bố cục luận văn gồm có 3 chương chính:
• Lời mở đầu: Giới thiệu về khái niệm và mục tiêu của bài tốn.
• Bố cục chính: Tập trung giải quyết bài toán đã đặt ra
– Chương 1. Cơ sở lý thuyết: giới thiệu tổng quát về khái niệm học
máy và các bước cần thực hiện trong bài toán nhận dạng. Bên cạnh
việc giới thiệu các kỹ thuật liên quan phổ biến, đối tượng và phạm
vi nghiên cứu cũng được định nghĩa, trình bày chi tiết trong chương
này.
– Chương 2. Lựa chọn phương pháp nhận diện cảm xúc Tập trung
trình bày về đặc trưng mơ hình CNN và mơ hình cổ điển SVM. Các
lý thuyết tốn, lập luận được phân tích và trình bày rõ trong từng
bước thực hiện. Đặc điểm và tính chất của hai kỹ thuật cũng được
phân tích trong chương này.
– Chương 3. Triển khai hệ thống dựa theo Haar và CNN Xây dựng
được demo chương trình nhận dạng khn mặt, trong phạm vi của
luận văn thì bộ dữ liệu chuẩn Multiple Biometric Grand Challenge
Database (MBGC) và bộ dữ liệu do chính sinh viên tự thu thập
được sử dụng. Ngồi ra thì khả năng và hiệu quả của hệ thống cũng
được so sánh, đánh giá với các phương pháp khác
• Kết luận và định hướng phát triển: Đánh giá tổng quan kết quả thu được

và các hướng phát triển tiếp theo.


Một số khái niệm
Thuật ngữ
Convolutional Neural Network CNN
Conditional Random Fields - CRF
Support Vector Machine - SVM
Back propagation algorithm
Cross validation

Input/hidden/output layer
Mean squared error
Validation set
Unsupervised learning
Artificial Intelligence - AI
Autoregression - AR
Auto Scaling - AS
National Institute of Standards and
Technology - NIST
Processing Element - PE
Physical Machine - PM
Processor Sharing - PS
Quality Of Service - QoS
Random Access Menmory - RAM
Random choice - RC
Service Level Agreement - SLA
Service Level Objective - SLO
Space-shared - SS
Time-shared - TS

Upper Threshold - UT
Virtual Machine - VM

Giải nghĩa
Mạng nơ ron tích chập
Trường điều kiện ngẫu nhiên
Máy vectơ hỗ trợ
Thuật toán lan truyền ngược sai số
Một cách chọn mẫu trong tập train
và tập test để tránh hiện tượng overfitting
Lớp đầu vào/ẩn/ đầu ra
Sai số bình phương trung bình
Tập mẫu xác nhận mạng
Học khơng có giám sát
Trí tuệ nhân tạo
Tự hồi quy
Tự động điều chỉnh
Viện nghiên cứu tiêu chuẩn và công
nghệ quốc gia Hoa Kỳ
Phần tử xử lý
Máy chủ vật lý
Chia sẻ bộ xử lý
Chất lượng dịch vụ
Bộ nhớ truy xuất ngẫu nhiên
Chọn ngẫu nhiên
Thỏa thuận mức dịch vụ
Mục tiêu mức dịch vụ
Chính sách chia sẻ khơng gian
Chính sách chia sẻ thời gian
Ngưỡng trên

Máy ảo


MỤC LỤC

7

Mục lục
1 Chương 1. Cơ sở lý thuyết
1.1 Cảm xúc và biểu hiện khuôn mặt . . . . . . . . . . . . . . . . .
1.1.1 Hạnh phúc - Happy . . . . . . . . . . . . . . . . . . . . .
1.1.2 Buồn bã - Sad . . . . . . . . . . . . . . . . . . . . . . . .
1.1.3 Ngạc nhiên . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.4 Nỗi sợ . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.5 Giận dữ . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.6 Chán ghét . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 Học máy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.1 Môt số khái niệm cơ bản . . . . . . . . . . . . . . . . . .
1.2.2 Học sâu - Deep learning . . . . . . . . . . . . . . . . . .
1.2.3 Mối liên kết giữ CNN và thị giác . . . . . . . . . . . . .
1.2.4 Pooling Layer . . . . . . . . . . . . . . . . . . . . . . . .
1.2.5 Machine learning Workflow . . . . . . . . . . . . . . . .
1.2.6 Khái niệm về dataset - tập dữ liệu . . . . . . . . . . . .
1.2.7 Ensemble Methods . . . . . . . . . . . . . . . . . . . . .
1.2.8 Hiện tượng underfitting, overfitting . . . . . . . . . . . .
1.2.9 Phương pháp đánh giá mô hình . . . . . . . . . . . . . .
1.3 Phương pháp nhận diện khuôn mặt với Haar Cascades . . . . .
1.3.1 Giới thiệu thuật toán Viola Jones . . . . . . . . . . . . .
1.3.2 Haar like . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3.3 Hình ảnh tích phân . . . . . . . . . . . . . . . . . . . . .

1.3.4 AdaBoost . . . . . . . . . . . . . . . . . . . . . . . . . .
1.4 Toán học . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.4.1 Ma trận, cụ thể ma trận chuyển vị, ma trận nghịch đảo...
1.4.2 Xác suất thống kê: khái niệm cơ bản, xác suất độc lập,
xác suất có điều kiện, định lý Bayes... . . . . . . . . . . .
1.4.3 Norms-chuẩn . . . . . . . . . . . . . . . . . . . . . . . .
1.4.4 Đạo hàm của hàm nhiều biến . . . . . . . . . . . . . . .
1.5 Ngơn ngữ lập trình . . . . . . . . . . . . . . . . . . . . . . . . .
1.5.1 Python . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.5.2 Thư viện hỗ trợ . . . . . . . . . . . . . . . . . . . . . . .
1.5.3 Công cụ hỗ trợ . . . . . . . . . . . . . . . . . . . . . . .
1.6 Tổng kết . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

12
12
12
13
14
15
16
17
18
20
21
23
30
32
32
33
34

36
39
39
40
41
42
44
44
47
49
50
51
51
53
55
58


MỤC LỤC

8

2 Chương 2. Lựa chọn phương pháp nhận diện cảm xúc
2.1 Mô tả dữ liệu đầu vào . . . . . . . . . . . . . . . . . . .
2.2 Phương pháp truyền thống - SVM . . . . . . . . . . . . .
2.2.1 Ví dụ với bài toán phân chia hai classes . . . . .
2.3 Phương pháp hiện đại - CNN . . . . . . . . . . . . . . .
2.3.1 Depthwise Separable Convolution . . . . . . . . .
2.3.2 Pointwise Convolution . . . . . . . . . . . . . . .
2.3.3 Môi trường phát triển . . . . . . . . . . . . . . .

2.4 Tiến hanh traning . . . . . . . . . . . . . . . . . . . . . .
2.4.1 Tiền xử lý dữ liệu . . . . . . . . . . . . . . . . . .
2.4.2 Phân loại . . . . . . . . . . . . . . . . . . . . . .
2.5 Tiến hành thực nghiệm . . . . . . . . . . . . . . . . . . .
2.6 Kết quả . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.7 Đề xuất cải tiến . . . . . . . . . . . . . . . . . . . . . . .
2.7.1 Đa luồng xử lý . . . . . . . . . . . . . . . . . . .
2.7.2 Gán nhãn dữ liệu ảnh bán tự động . . . . . . . .
2.7.3 Xử lý ảnh bị mờ khi xử lý video . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

59
59
60

60
63
64
65
67
67
69
71
71
73
74
78
82
85

.
.
.
.

88
88
89
90
93

3 Chương 3. Triển khai
3.1 Chuẩn bị mơi trường
3.2 Dự đốn cảm xúc với
3.3 Dự đoán cảm xúc với

3.4 Kết quả . . . . . . .

. . . .
ảnh .
video
. . . .

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.

.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.

.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.

.
.


DANH SÁCH HÌNH VẼ

9

Danh sách hình vẽ
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

22
23
24
25
26
27
28
29
30
31
32
33

Biểu hiện/cảm xúc trên khuôn mặt: Hạnh phúc . . . . . . . .
Biểu hiện/cảm xúc trên khuôn mặt: Buồn bã . . . . . . . . . .
Biểu hiện/cảm xúc trên khuôn mặt: Ngạc nhiên . . . . . . . .
Biểu hiện/cảm xúc trên khuôn mặt: Nỗi sợ . . . . . . . . . . .
Biểu hiện/cảm xúc trên khuôn mặt: Giận dữ . . . . . . . . . .
Biểu hiện/cảm xúc trên khuôn mặt: Chán ghét . . . . . . . . .
Sơ đồ quy trình Supervised Learning . . . . . . . . . . . . . .
Sơ đồ quy trình Unsupervised Learning . . . . . . . . . . . . .
Khái niệm học tăng cường . . . . . . . . . . . . . . . . . . . .
Mối liên kết giữa CNN và thị giác . . . . . . . . . . . . . . . .
Nô tả hình ảnh với ma trận RGB . . . . . . . . . . . . . . . .
Cấu trúc CNN . . . . . . . . . . . . . . . . . . . . . . . . . . .
Cấu trúc Covolution layer . . . . . . . . . . . . . . . . . . . .
Cấu trúc High level feature . . . . . . . . . . . . . . . . . . . .
Cấu trúc High level feature ex . . . . . . . . . . . . . . . . . .
Cấu trúc cnn filter size . . . . . . . . . . . . . . . . . . . . . .
Mô tả cnn strides . . . . . . . . . . . . . . . . . . . . . . . . .

Mô tả cnn padding . . . . . . . . . . . . . . . . . . . . . . . .
Minh họa cnn relu . . . . . . . . . . . . . . . . . . . . . . . .
Mô tả cnn pooling layer . . . . . . . . . . . . . . . . . . . . .
Sơ đồ quy trình để làm việc với machine learning . . . . . . .
Hiện tượng Overfitting . . . . . . . . . . . . . . . . . . . . . .
Hiện tượng Underfitting . . . . . . . . . . . . . . . . . . . . .
Hiện tượng GoodFittiing . . . . . . . . . . . . . . . . . . . . .
Minh họa ma trận nhầm lẫn . . . . . . . . . . . . . . . . . . .
Minh họa sliding window . . . . . . . . . . . . . . . . . . . . .
mô tả Haar . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Minh hoạ hình ảnh tích phân . . . . . . . . . . . . . . . . . .
Kỹ thuật tính tổng các vùng để tính tốn các đối tượng địa lý
trong một khoảng thời gian không đổi. . . . . . . . . . . . . .
Sơ đồ cơ bản về Adaboost . . . . . . . . . . . . . . . . . . . .
Cải tiến AdaBoost . . . . . . . . . . . . . . . . . . . . . . . .
Thuật toán Adaboost . . . . . . . . . . . . . . . . . . . . . . .
Giới thiệu Python . . . . . . . . . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

13
14
15
16
16
17
19
19
20
23
24
24
25

26
27
28
28
29
29
30
32
34
35
35
37
40
41
41

.
.
.
.
.

42
43
43
44
52


DANH SÁCH HÌNH VẼ


10

34
35
36
37
38
39

Cài đặt Anaconda . . . . . . . . . . . . . . . . .
Kiểm tra version OpenCV-Anaconda-Navigator
OpenCV-Anaconda- Navigator . . . . . . . . . .
Jupyter notebook run . . . . . . . . . . . . . . .
Tìm hiểu layout Jupyter notebook . . . . . . . .
Thêm Jupyter notebook . . . . . . . . . . . . .

.
.
.
.
.
.

.
.
.
.
.
.


.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

55

56
57
57
57
58

40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57

.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

59
60
61
62
63
64
64
65
66
66
67
68
68
69
70
73
74


58
59
60

Ảnh mẫu trong tập dữ liệu . . . . . . . . . . . . . . . . . . . .
Các mặt phân cách hai classes linearly separable. . . . . . . .
Margin của hai classes là bằng nhau và lớn nhất có thể. . . .
Margin của hai classes là bằng nhau và lớn nhất có thể. . . .
Kiến trúc hệ thông nhận dạng theo phương pháp truyền thống
Cách thức làm việc của Convolution . . . . . . . . . . . . . .
Độ phức tạp tính toán của một Convolution . . . . . . . . . .
Trọng số Mini Xception . . . . . . . . . . . . . . . . . . . . .
Tích chập chiều sâu tách biệt cơ bản . . . . . . . . . . . . . .
Tích chập chiều sâu tách biệt với mơ hình Xception . . . . .
Kiến trúc tổng thể . . . . . . . . . . . . . . . . . . . . . . . .
Tích chập depthwise convolution . . . . . . . . . . . . . . . .
Pointwise Convolution - tích chập sử dụng một nhân 1x1 . . .
Tỉ lệ độ phức tạp tính tốn . . . . . . . . . . . . . . . . . . .
Sinh ảnh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Đồ thị kết quả . . . . . . . . . . . . . . . . . . . . . . . . . . .
Tỉ lệ ảnh giữa các nhãn . . . . . . . . . . . . . . . . . . . . . .
Local Maxima and Minima, and, Absolute Maxima and Minima
- Mathonline . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Điểm yên ngựa . . . . . . . . . . . . . . . . . . . . . . . . . .
Sự mất mát của đạo hàm . . . . . . . . . . . . . . . . . . . . .
Luồng xử lý trong Python . . . . . . . . . . . . . . . . . . . .

.
.

.
.

76
76
77
78

61

Ảnh mô tả cách hoạt động của queue . . . . . . . . . . . . . . . 79

62
63
64
65

Ảnh so sánh hiệu quả đơn luồng và đa luồng Python
Gán nhãn hình ảnh . . . . . . . . . . . . . . . . . . .
Gán nhãn thủ công và bán tự động . . . . . . . . . .
Dữ liệu mới được lưu trong các folder theo nhãn . . .

66
67

Ảnh out nét . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Ảnh nét . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

.
.

.
.

.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.

.
.
.
.

.
.
.

.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

82
83
84
84


DANH SÁCH HÌNH VẼ

11

68

69

Mơ hình cách thức hoạt động hệ thống nhận dạng cảm xúc . . . 88
Nhận diện cảm xúc từ một ảnh bất kỳ . . . . . . . . . . . . . . 90

70

Ảnh một frame của video

. . . . . . . . . . . . . . . . . . . . . 93


1. Chương 1. Cơ sở lý thuyết

1

12

Chương 1. Cơ sở lý thuyết

Không thể phủ nhận Machine learning là một trong những cơng nghệ có
ảnh hưởng mạnh mẽ nhất trên thế giới ngày nay. Quan trọng hơn, phải cần
một khoảng thời gian rất lâu nữa, con người mới thấy được hết tiềm năng của
nó.
Trong chương này, em sẽ trình bày một số khái niệm cơ bản về học máy
như khái niệm về cảm xúc, quy trình xây dựng machine learning, cách tiếp
cận với ngơn ngữ lập trình python,...

1.1


Cảm xúc và biểu hiện khuôn mặt

Cảm xúc trên khuôn mặt là một quy luật rất quan trọng trong giao tiếp
giữa người với người. Những cơng nghệ giao tiếp tiến bộ nhanh chóng gần đây
cùng với sự phát triển của khoa học máy tính đã cho chúng ta những hi vọng
rằng cảm xúc trên khuôn mặt sẽ trở thành một giải pháp then chốt trong lĩnh
vực giao diện người máy và các hướng phát triển giao tiếp khác trong tương
lai. Trong các cách biểu đạt ngôn ngữ cơ thể, cảm xúc là nơi thể hiện rõ nhất
những gì mà người khác cảm nhận được. Qua nghiên cứu của nhà tâm lý học
Mehrabian năm 1968 đã chỉ ra rằng khi một thông điệp từ một người chuyển
tới người khác, phần từ ngữ chỉ chiếm 7% ảnh hưởng, 38% âm lượng của giọng
nói, trong khi ngơn ngữ cơ thể của người nói chiếm tới 55% ảnh hưởng của
thơng điệp đó. Có rất nhiều lý do được đưa ra giải thích tại sao phát hiện cảm
xúc của một người có thể hữu ích. Đặc biệt là đối với các doanh nghiệp trong
thời đại số, khi mà dữ liệu người dùng trở thành tài nguyên quý giá nhất. Cho
biết mức độ quan tâm, phản ứng của người tiêu dùng với sản phẩm. Từ đó,
giúp doanh nghiệp có căn cứ thông tin để đưa ra những chiến lược điều chỉnh
hợp lý. Và nhận dạng cảm xúc được cũng ứng dụng trong rất nhiều lĩnh vực
khác nhau như y học, tương tác giao diện giữa người và máy, chuyển động
thân người...
Trong đề tài đồ án tốt nghiệp này, Em đã xây dựng một hệ thống nhận
dạng cảm xúc dựa trên 6 cảm xúc cơ bản trên đó là: vui, buồn, ngạc nhiên, sợ
hãi, khinh thường và tức giận.
1.1.1

Hạnh phúc - Happy

Cảm xúc này thể hiện qua nét mặt rạng rỡ trên khuôn mặt.Hạnh phúc là
một cảm xúc thường liên quan với trạng thái của tâm trí phản ánh sự hài lịng,
thỏa mãn và thích thú. Hạnh phúc là một trong những cảm xúc phổ biến nhất

và đã được nghiên cứu thơng qua những phương pháp triết học, tín ngưỡng và
sinh học khác nhau. Tất cả những nghiên cứu này được thực hiện để cố gắng
tìm ra nguồn gốc của hạnh phúc. Nhà triết gia và những nhà thần học tôn


1.1 Cảm xúc và biểu hiện khn mặt

13

giáo đã có nhiều định nghĩa về hạnh phúc như bắt nguồn từ việc sống trong
một cuộc sống tốt, hay sự nảy nở của tâm hồn hơn là một cảm xúc đơn thuần.
Ngày nay, chúng ta thường kết hợp hạnh phúc với sự thỏa mãn. Sự hạnh phúc
được được thể hiện thông qua biểu cảm trên khn mặt khiến chúng ta nâng
khóe miệng lên hay cịn gọi là Nụ cười.

Hình 1: Biểu hiện/cảm xúc trên khuôn mặt: Hạnh phúc

1.1.2

Buồn bã - Sad

Biểu hiện của cảm xúc này thông qua khuôn mặt là vùng trán nhăn lại, đơi
mắt trùng xuống, khơng có thần thái, vẻ mặt biểu lộ rõ sự buồn khổ, sầu não
kèm theo những tiếng thở dài. Nhìn vào dễ dàng tạo cảm giác lặng lẽ, trầm
buồn.


1.1 Cảm xúc và biểu hiện khn mặt

14


Hình 2: Biểu hiện/cảm xúc trên khuôn mặt: Buồn bã

Sự buồn bã là một cảm xúc thường liên quan đến cảm giác thất vọng, sự
mất mát hay không được giúp đỡ. Thông thường, con người thể hiện sự buồn
bã bằng việc im lặng, cảm thấy thiếu năng lượng và cần được tránh xa những
vấn đề không vui. Nỗi buồn được xem là trái ngược với hạnh phúc, và có thể
được mơ tả như nỗi buồn, đau buồn, khổ sở và u sầu. Nỗi buồn mang lại hai
hệ quả: sự chùng xuống tạm thời của một tâm trạng, hay sự buồn bã mãn
tính dai dẳng của một tâm trạng khác và thường liên quan đến trầm cảm.
Nỗi buồn được thể hiện thông qua việc hạ thấp khóe miệng và nâng phần bên
trong của chân mày.
1.1.3

Ngạc nhiên

Đây là trạng thái dễ gây cảm giác thú vị khi nhìn vào. Sự ngạc nhiên thể
hiện qua lơng mày nhô cao, mắt mở to, phần hàm dưới trề xuống, miệng mở
tròn ra. Ngạc nhiên là cảm xúc thường liên quan với tình trạng đột ngột. Trạng
thái này thường xảy ra bằng những sự kiện liên quan không mong đợi. Tuy
nhiên, ngạc nhiên không phải lúc nào cũng mang lại cảm xúc đau thương.


1.1 Cảm xúc và biểu hiện khn mặt

15

Hình 3: Biểu hiện/cảm xúc trên khuôn mặt: Ngạc nhiên

Ngạc nhiên cũng đã được phân loại thành hóa trị, có nghĩa là nó trải dài trên

phạm vi trung tính, dễ chịu và khó chịu. Sự ngạc nhiên khiến ai đó thể hiện
cảm xúc trên khuôn mặt thông qua việc cong lông mày, mở to mắt và hất
hàm.
1.1.4

Nỗi sợ

là một cảm xúc thường liên quan với một mối đe dọa hay tình huống nguy
hiểm. Đó là một cơ chế sinh tồn cơ bản xuất hiện để đáp ứng với hiện thực
đau thương, chẳng hạn như đau đớn hoặc mối đe dọa đau đớn sắp xảy ra. Nỗi
sợ được liên hệ với cách ứng xử của sự trốn thốt, lảng tránh, nhưng khơng
nên kết hợp với nỗi lo âu, cảm xúc về mặt thể chất phản ứng với sự đe dọa
mà được coi không thể tránh và khơng kiểm sốt được. Khi trải qua nỗi sợ,
con người thường biểu hiện trên gương mặt như nhướn mày, khẽ hé miệng và
mở mắt ra một cách rộng hơn bình thường.


1.1 Cảm xúc và biểu hiện khn mặt

16

Hình 4: Biểu hiện/cảm xúc trên khuôn mặt: Nỗi sợ

1.1.5

Giận dữ

Là một cảm xúc thường liên quan đến sự bực dọc nhỏ đến sự bùng nổ lớn.
Về mặt thể chất, tức giận làm một vài người trải qua cảm giác tăng tỉ lệ đập của
tim, huyết áp tăng và mức độ bất thường của adrenaline and noradrenaline.


Hình 5: Biểu hiện/cảm xúc trên khn mặt: Giận dữ
Bạn có thể thường nghe thấy sự giận dữ liên quan đến phản ứng não bộ khi
ai đó được giới thiệu một trải nghiệm khiến họ cảm thấy bị đe dọa hoặc đau
đớn. Khi một người nào đó chọn việc chống lại bất kỳ mối đe dọa nào đang
khiến họ bị chấn thương hoặc đau đớn, sự tức giận được cho là phản ứng và
cảm xúc chi phối được thể hiện theo cách nhận thức và sinh lý. Sự tức giận
biểu hiện trên khuôn mặt khiến chúng ta hạ thấp lông mày, ấn chặt môi vào
nhau và phồng mắt.


1.1 Cảm xúc và biểu hiện khuôn mặt
1.1.6

17

Chán ghét

Chán ghét là cảm xúc thường liên quan với những thứ mất vệ sinh, khơng
ăn được, truyền nhiễm hoặc xúc phạm. Ví dụ, ai đó có thể bị xúc phạm vì
những tổn thương mà bạn gây ra cho họ, hay có thể họ ghét cách cư xử của
bạn chẳng hạn. Tóm lại, chán ghét liên quan đến một thứ gì đó gây khó chịu
và chủ yếu để trả đũa cảm giác vị giác, và thứ hai là trả đũa bất cứ thứ gì gợi
ra cảm giác tương tự thơng qua các giác quan và xúc giác. Chán ghét thể hiện
trên khuôn mặt làm họ có xu hướng nâng mơi trên, nhăn mũi và nâng má.
Tuy nhiên, đáng ngạc nhiên, sự chán ghét là một trong 6 cảm xúc làm giảm
nhịp tim.

Hình 6: Biểu hiện/cảm xúc trên khuôn mặt: Chán ghét
Nhận dạng cảm xúc qua khn mặt có ứng dụng trong các lĩnh vực khác

nhau:
• Giáo dục: Phản ứng của người học trong thời gian thực và sự tham gia
vào nội dung là giáo dục là một thước đo lường cho hiệu quả của bài
giảng.
• Tiếp thị: Đây là một cách tuyệt vời để các cơng ty kinh doanh phân tích
cách khách hàng phản hồi với quảng cáo, sản phẩm, bao bì và thiết kế
cửa hàng của họ.
• Bán hàng: Việc phát hiện cảm xúc sẽ cho biết mức độ quan tâm, phản
ứng của một người tiêu dùng với sản phẩm. Từ đó, giúp doanh nghiệp
có căn cứ thơng tin để đưa ra những chiến lược điều chỉnh hợp lý.
Ứng dụng tính năng nhận biết cảm xúc hiện tại để nắm bắt tâm lý con
người sẽ trở thành “chìa khóa vàng” mở cửa thành công của doanh nghiệp


1.2 Học máy

18

trên mặt trận marketing và bán hàng, cho họ biết được cách mà họ nên
ứng xử và đưa ra những sản phẩm, gợi ý nào thì phù hợp với đối tượng
và hồn cảnh.
• Y tế: nhận dạng cảm xúc cịn có thể cho phép các chun gia y tế thấu
hiểu để giúp đỡ những bệnh nhân gặp khó khăn hay mất khả năng nói.
• Chơi game: Với sự ra đời của game thực tế ảo gần với trải nghiệm thực
tế. Nhận dạng cảm xúc khn mặt đóng một vai trò quan trọng để cải
thiện trải nghiệm chơi trò chơi.
• Bảo mật: Nó có thể giúp xác định hành vi đáng ngờ trong đám đơng và
có thể được sử dụng để ngăn chặn tội phạm và những kẻ khủng bố tiềm
năng. Hoặc về lý thuyết, AI phát hiện cảm xúc cịn được cho là có thể
trở thành cơng cụ hữu hiệu hỗ trợ những người thực thi pháp luật phát

hiện ra những kẻ đang hành động đáng ngờ trước cơng chúng.
• vv..

1.2

Học máy

Khi AI mới ra đời, các nhà nghiên cứu đã cố gắng tái tạo trí thơng minh
của con người cho những nhiệm vụ cụ thể – như chơi game.
Các nhà nghiên cứu đã giới thiệu rất nhiều quy tắc mà máy tính cần tuân
thủ. Lúc này, máy tính sẽ có có 1một danh sách các hành động khả thi, và
đưa ra quyết định dựa trên những quy tắc đó. Machine Learning Là khả năng
máy tính học Bộ lớn dữ liệu thay cho các nguyên tắc đã được code một cách
cứng nhắc ML hỗ trợ máy tính tự học. Hình thức học này tận dụng lợi thế
xử lý các dữ liệu lớn dễ dàng của các máy tính hiện đại.
Machine learning (ML) hay máy học là một nhánh của trí tuệ nhân tạo
(AI), nó là một lĩnh vực nghiên cứu cho phép máy tính có khả năng cải thiện
chính bản thân chúng dựa trên dữ liệu mẫu (training data) hoặc dựa vào kinh
nghiệm (những gì đã được học). Machine learning có thể tự dự đốn hoặc đưa
ra quyết định mà khơng cần được lập trình cụ thể.
Bài tốn machine learning thường được chia làm hai loại là dự đoán (prediction) và phân loại (classification). Các bài toán dự đoán như dự đoán giá
nhà, giá xe. . . Các bài toán phân loại như nhận diện chữ viết tay, nhận diện
đồ vật. . .
• Supervised Learning Là sử dụng các bộ dữ liệu được dán nhãn có
inputs và outputs được kì vọng.


1.2 Học máy

19


Hình 7: Sơ đồ quy trình Supervised Learning
Khi train cho một AI sử dụng supervised learning, bạn đã đưa cho AI
đó một input và yêu cầu nó một output được kì vọng.
Nếu output được generate bởi AI trên bị sai, nó sẽ điều chỉnh lại các tính
tốn của mình. Quy trình này được thực hiện lặp đi lặp lại theo data
set, cho đến khi AI không mắc sai lầm nữa.
Một ví dụ về supervised learning là AI dự báo thời tiết. AI đã học cách
dự báo thời tiết nhờ các data trong lịch sử. Việc training data đó bao
gồm các input (áp suất, độ ẩm, tốc độ gió) và các output (nhiệt độ)
• Unsupervised Learning là nhiệm vụ của machine learning sử dụng
các data set mà khơng có các structure cụ thể.

Hình 8: Sơ đồ quy trình Unsupervised Learning

Khi train một AI bằng unsupervised learning, bạn sẽ để AI đó tạo nên
các phân loại data mang tính logic.
Một ví dụ về unsupervised learning là AI dự đốn hành vi dùng cho
trang web E-commerce. Nó sẽ khơng học bằng cách sử dụng các data set
đã dán nhãn gồm inputs và outputs. Thay vào đó, AI sẽ tạo ra các phân



×