Nhận diện cảm xúc khuôn mặt dùng mạng nơ-ron tích chập CNN trên phần cứng Jetson TX2

Trong bài báo này, tác giả sử dụng mạng nơ-ron tích chập, một trong những kiến trúc

phổ biến của học sâu để nhận diện và phân loại cảm xúc khuôn mặt. Một cách tổng quát, các

mạng nơ-ron được chọn có cấu trúc phức tạp và có tham số lớn, tác giả tập trung vào việc

xây dựng một mạng nơ-ron đơn giản hơn và phù hợp với bộ dữ liệu thông qua phương pháp

so sánh và đánh giá. Ngoài ra, tác giả cũng tập trung vào việc thu thập một tập dữ liệu đủ lớn

để đạt kết quả cao. Cụ thể, tác giả lựa chọn sử dụng nền tảng phần cứng nhúng Jetson TX2

của NVIDIA để tận dụng khả năng tính toán của GPU nhằm tối ưu thời gian tính toán và

huấn luyện dữ liệu. Trong đó, dữ liệu được sử dụng là FER2013 và RAF để huấn luyện và

kiểm tra. Phương pháp sử dụng đã đạt được độ chính xác 72% trên tập dự liệu kiểm tra.

Nhận diện cảm xúc khuôn mặt dùng mạng nơ-ron tích chập CNN trên phần cứng Jetson TX2 trang 1

Trang 1

Nhận diện cảm xúc khuôn mặt dùng mạng nơ-ron tích chập CNN trên phần cứng Jetson TX2 trang 2

Trang 2

Nhận diện cảm xúc khuôn mặt dùng mạng nơ-ron tích chập CNN trên phần cứng Jetson TX2 trang 3

Trang 3

Nhận diện cảm xúc khuôn mặt dùng mạng nơ-ron tích chập CNN trên phần cứng Jetson TX2 trang 4

Trang 4

Nhận diện cảm xúc khuôn mặt dùng mạng nơ-ron tích chập CNN trên phần cứng Jetson TX2 trang 5

Trang 5

Nhận diện cảm xúc khuôn mặt dùng mạng nơ-ron tích chập CNN trên phần cứng Jetson TX2 trang 6

Trang 6

Nhận diện cảm xúc khuôn mặt dùng mạng nơ-ron tích chập CNN trên phần cứng Jetson TX2 trang 7

Trang 7

Nhận diện cảm xúc khuôn mặt dùng mạng nơ-ron tích chập CNN trên phần cứng Jetson TX2 trang 8

Trang 8

pdf 8 trang xuanhieu 1080
Bạn đang xem tài liệu "Nhận diện cảm xúc khuôn mặt dùng mạng nơ-ron tích chập CNN trên phần cứng Jetson TX2", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Nhận diện cảm xúc khuôn mặt dùng mạng nơ-ron tích chập CNN trên phần cứng Jetson TX2

Nhận diện cảm xúc khuôn mặt dùng mạng nơ-ron tích chập CNN trên phần cứng Jetson TX2
yêu cầu khắt khe 
 liệu này bao gồm 35.887 ảnh xám: hình ảnh 
về thời gian thực nhưng lại mang một kích 
 khuôn mặt kích thước 48x48 pixel từ nhiều 
thước nhỏ gọn, dễ dàng lắp đặt [6]. 
 góc độ khác nhau. Hình ảnh được phân loại 
 Tác giả thực hiện mô hình nhận diện thành một trong bảy lớp thể hiện cảm xúc 
cảm xúc khuôn mặt người sử dụng mạng khuôn mặt khác nhau, tất cả được gán nhãn 
Nơ-ron tích chập CNN trên phần cứng từ 0 – 7 (0 = Giận dữ, 1 = Ghê tởm, 2 = Sợ 
nhúng Jetson TX2 với các mục tiêu, phát hãi, 3 = Vui vẻ, 4 = Buồn, 5 = Ngạc nhiên, 6 
triển mô hình nhận có khả năng nhận diện 7 = Bình thường). Gồm 8.989 ảnh ‘Happy’, 
loại cảm xúc: vui, buồn, kinh tởm, ngạc 6.077 ảnh ‘Sad’, 6.198 ảnh ‘Neutral’, 4002 
nhiên, bình thường, sợ hãi và giận dữ của ảnh ‘Suprised’, 5121 ảnh ‘Scared’, 547 ảnh 
con người. Mô hình được xây dựng trên một ‘Disgust’ và 4593 ảnh ‘Angry’ [4]. 
hệ thống nhúng riêng biệt (Jetson TX2) và 
 2.2 Tập dữ liệu RAF 
có thể đạt được độ chính xác cao (trên 70% 
cho cả quá trình phát hiện khuôn mặt người RAF-DB (Real-world Affective Faces 
và nhận diện cảm xúc). Database) là một tập dữ liệu lớn gồm 15000 
 Tạp Chí Khoa Học Giáo Dục Kỹ Thuật Số 63 (04/2021) 
 Trường Đại Học Sư Phạm Kỹ Thuật TP. Hồ Chí Minh 13 
hình ảnh khuôn mặt với nhiều loại biểu cảm tiêu thụ chỉ 7,5W năng lượng. Đây là phần 
khác nhau được thu thập từ internet. Hình cứng tốt để thực hiện các giải thuật học sâu 
ảnh trong tập dữ liệu có sự thay đổi lớn về trên nền tảng hệ thống nhúng [7]. 
tuổi tác, dân tộc, tư thế đầu và điều kiện ánh 
sáng và đa dạng về phong cách (mang kính, 
đội nón) [5]. 
 Hình 3. Quá trình phát triển GPU của 
 NVIDIA. [8] 
 Hình 3 cho thấy quá trình phát triển lõi 
 GPU của NVIDIA đặc biệt là sự đột phá của 
 NVIDIA Pascal ra mắt vào năm 2016 và sau 
 đó đã được đem vào trong kiến trúc của phần 
 cứng Jetson TX2. 
 4. MẠNG NƠ-RON TÍCH CHẬP 
 Mạng CNN được xây dựng trên ngôn 
 ngữ Python và sử dụng thư viện Keras. Mạng 
 Hình 2. Quá trình xử lý tập dữ liệu RAF CNN được xây dựng gồm sáu lớp tích chập, 
 ba lớp Max-pooling và cuối cùng là hai lớp 
 Hình 2 cho thấy quá trình xử lý tập dữ Full-connected. Số lượng filter tương ứng lần 
liệu RAF mà nhóm thức hiện để đưa tập dữ lượt là 32, 64 và 128. Kích thước của filter 
liệu này vào tập dữ liệu chung. Ban đầu, tập 3x3 và lớp Max-pooling có kích thước stride 
dữ liệu là tập hợp những hình ảnh cảm xúc là 2x2. Lớp Max-pooling được sử dụng sau 
khuôn mặt người chưa được phân loại và một mỗi hai lớp tích chập. Max pooling được 
tệp .txt chứa dữ liệu phân loại (tên ảnh, nhãn dùng để giảm kích thước ma trận nhưng vẫn 
cảm xúc). Từ đó nhóm phân loại ra từng thư làm nổi bật lên được đặc trưng có trong ma 
mục cảm xúc khác nhau. Tiền xử lý hình ảnh trận đầu vào và giảm thiểu công việc tính 
(chuyển ảnh sang ảnh xám và giảm kích toán cho phần cứng [9]. 
thước ảnh về 48x48), chuyển ảnh về dạng 
pixel và cập nhật vào file Dataset (.csv). Sau mỗi lớp Max Pooling sẽ có một lớp 
 Drop Out nhằm giảm hiện tượng overfitting 
3. PHẦN CỨNG JETSON TX2 bằng cách loại bỏ ngẫu nhiên một số unit. 
 Jetson TX2 là một máy tính nhúng có Để giữ được kích thước không gian của 
hiệu quả năng lượng cao của NVIDIA được ngõ ra, các zero-padding được thêm vào. Sau 
sử dụng rộng rãi cho thị giác máy tính, trí tuệ khi qua các lớp tích chập, ngõ ra sẽ qua 
nhân tạo, máy học. Jetson TX2 là một máy Flatten trở thành vector 1 chiều để đưa vào 
tính nhỏ nhưng khá mạnh mẽ. TX2 có 2 CPU: lớp dense (hay lớp full connected). 
ARM Cortex-A57 (4 lõi) 2GHz và NVIDIA 
Denver2 (lõi kép) @ 2GHz [6]. Ngoài ra, ở Hàm kích hoạt được sử dụng trong mạng 
một máy tính của NVIDIA, GPU là 1 thành CNN là Leaky Rectifier Linear Unit (Leaky 
phần không thể thiếu với Pascal 256 lõi 1300 ReLU) theo công thức sau [10]: 
MHz. Bộ nhớ 8Gb được chia sẻ giữa CPU và ( ) = max⁡( , ) (1) 
GPU. Tất cả những tác vụ tính toán có thể 20
 Tạp Chí Khoa Học Giáo Dục Kỹ Thuật Số 63 (04/2021) 
 14 Trường Đại Học Sư Phạm Kỹ Thuật TP. Hồ Chí Minh 
 Giá trị 20 được sử dụng theo tập 
validation của FER-2013 [11]. Từ công thức 
(1), giá trị trả về thay vì bằng 0 khi < 0 
như RELU, leaky RELU sẽ tạo thành đường 
dốc với giá trị giảm về nhỏ hơn 0. Ở mạng 
nơ-ron, kết quả đầu ra cần được chuẩn hóa 
sang dạng phần trăm để dự đoán giữa các lớp. 
Khi đó lớp cuối cùng của mạng CNN là lớp 
Softmax với 7 ngõ ra. 
 푒 
 = , (2) 
 푛 푖
 ∑푖=1 푒
 Với là tỉ lệ dự đoán lớp thứ k, n là 
tổng số lớp được dự đoán (7 cảm xúc) và 
là hệ số của các node trước cho lớp thứ k. 
 Thuật toán sử dụng để cập nhật trọng số 
của mạng CNN là Adam. Thuật toán Adam 
nổi trội hơn một số thuật toán khác bởi khả 
năng vượt qua vùng local minimum và đạt 
tới điểm tối ưu nhất (flat minimum). Một đặc 
điểm ở thuật toán Adam đó chính là khả năng 
tận dụng “động lực” để hội tụ nhanh hơn. 
“Động lực” chính là khả năng tận dụng một 
số phần trong lần cập nhật trọng số trước để 
cập nhật cho trọng số hiện tại [11]. 
 Kết quả cuối cùng của model cần được 
đánh giá để biết hiệu quả của quá trình 
training dữ liệu. Ở đây hàm mất mát chính là 
công cụ để thực hiện điều đó. Hàm mất mát 
sử dụng trong bài báo này là hàm 
“categorical_crossentropy”. 
 푛
퐿 = − ∑ ( ∗ 퐿표 ( ̂ )), (3) 
 푖=1 푖 푖
 Với L là ký hiệu của hàm mất mát, yi là 
kết quả thực và ̂ là kết quả dự đoán. Biểu 
 푖 
thức (3) chính là hàm tính sai số được áp 
dụng phổ biến và được sử dụng để vẽ đồ thị Hình 4. So sánh giữa một số thuật toán tối ưu. 
đánh giá kết quả cuối cùng. Hình 5 cho thấy sự khác nhau trong quá 
 Ngoài hàm mất mát, việc đánh giá model trình huấn luyện dữ liệu giữa các bộ 
cũng có thể dựa vào độ chính xác: optimizer khác nhau bao gồm Adam, 
 Adagrad và Sgd. Rõ ràng, từ hình 4 cho thấy 
 Số⁡lượng⁡dự⁡đoán⁡chính⁡xác
Độ chính xác = (4) thuật toán Adam cho kết quả với độ chính 
 Số⁡lượng⁡được⁡dự⁡đoán xác khá cao so với Sgd và Adagrad. Trong 
 Biểu thức (4) là biểu thức tổng quát để khi đó, quá trình huấn luyện dữ liệu của Sgd 
tính độ chính xác, được sử dụng để tính độ và Adagrad lại cho thấy sự giao động khá lớn 
chính xác cho quá trình đánh giá kết quả của ở những epoch đầu tiên. Hình 5 trình bày 
hệ thống. tổng quát toàn bộ kiến trúc mạng CNN. 
 Tạp Chí Khoa Học Giáo Dục Kỹ Thuật Số 63 (04/2021) 
 Trường Đại Học Sư Phạm Kỹ Thuật TP. Hồ Chí Minh 15 
 Hình 6. Kết quả nhận diện của 2 kiến trúc 
 mạng CNN phổ biến, VGG16 và Big Xception. 
 Bảng 2 trình bày kết quả so sánh giữa 
 các thông số ảnh hưởng kết quả huấn luyện 
 dữ liệu. Đối với mỗi thông số khác nhau sẽ 
 phù hợp với một bộ dataset và model khác 
 nhau. Do đó, việc lựa chọn thông số là cần 
 thiết để có thể đạt được hiệu suất tốt nhất 
 trong quá trình huấn luyện dữ liệu. 
 Bảng 2. Bảng so sánh độ chính xác khi thay 
 đổi các thông số 
 Phần Jetson Jetson Jetson Jetson Jetson Laptop 
 Hình 5. Cấu trúc mạng CNN cứng (GPU) (GPU) (GPU) (GPU) (GPU) (CPU) 
 Trong bảng 1, chúng tôi so sánh kết quả optimizer Adam adam adam adam adam Adam 
nhận diện đạt được giữa kiến trúc CNN Learning 0,01 0.001 0.0001 0.001 0.001 0.001 
 rate 
ConvNet V2 với một số mô hình CNN khác. 
 Batch 64 64 64 32 128 64 
 Bảng 1. So sánh độ chính xác giữa các kiến size 
 Thời 8 giờ 8 giờ 12 giờ 10 giờ 7 giờ 16 giờ 
 trúc CNN gian train 
 Model Accuracy Param Acc 0.25 0.69 0.69 0.68 0.68 0.68 
 Simple CNN 0.6291 0.64 Loss 1.8 0.91 0.91 0.93 0.92 0.92 
 Simpler CNN 0.6356 0.6 5. KẾT QUẢ ĐÁNH GIÁ 
 Tiny Xception 0.6236 0.02 Việc đánh giá model được sử dụng sẽ 
 Mini Xception 0.6586 0.06 dựa trên độ chính xác của tập Validation và 
 Big Xception 0.6606 0.21 tập test. Hình 7 cho thấy độ chính xác của 
 quá trình huấn luyện dữ liệu đã hội tụ sau 
 VGG 16 0.6656 20.86 khoảng 85 epoch và đạt được độ chính xác 
 ConvNet V1 0.6803 5.01 trên tập test là 72%. 
 ConvNet V2 0.72 9,74 
 Đối với vác model có lượng Param thấp 
như Mini Xception nhưng lại đạt được độ 
chính xác tốt. Tuy nhiên vẫn chưa đạt được 
mục tiêu đề ra. Đối với model VGG 16 có 
lượng tham số cao nhưng đối với dataset có 
kích thước khá nhỏ khiển model này dễ dẫn 
đến hiện tượng overfitting. Hình 6 trình bày 
kết quả nhận diện của 2 kiến trúc mạng CNN 
phổ biến, VGG16 và Big Xception, với độ 
chính xác lên tới 66%. Hình 7. Độ chính xác trên tập train và tập test. 
 Tạp Chí Khoa Học Giáo Dục Kỹ Thuật Số 63 (04/2021) 
 16 Trường Đại Học Sư Phạm Kỹ Thuật TP. Hồ Chí Minh 
 Với sự hội tụ của độ chính xác, hình 8 Bảng 4. Kết quả nhận diện trên nhiều điều 
trình bày sai số của model trên tập test kiện khác nhau 
validation và tập train cũng đã hội tụ sau Khoảng Ánh 
 Khoảng Ánh 
 Cảm cách sáng Thiếu 
khoảng 90 epoch. cách sáng 
 xúc dưới bình sáng 
 trên 1m chói. 
 1m thường 
 Bình 
 57/60 60/60 57/60 33/60 19/60 
 thường 
 Vui 53/60 31/60 53/60 34/60 14/60 
 Buồn 47/60 7/60 47/60 22/60 13/60 
 Giận 23/60 6/60 23/60 16/60 12/60 
 Khó 
 37/60 3/60 37/60 13/60 12/60 
 Chịu 
 Lo sợ 31/60 2/60 31/60 12/60 11/60 
 Ngạc 
 50/60 4/60 50/60 10/60 13/60 
 nhiên 
 Dựa vào bảng 4 có thể thấy kết quả nhận 
 Hình 8. Sai số trên tập train và tập test diện dễ bị ảnh hưởng bởi các điều kiện khác 
 Confusion matrix là một công cụ hữu ích nhau. Trong đó, khoảng cách càng xa hoặc 
trong các bài toán phân loại với việc xem xét độ sáng không đủ dễ làm giảm độ chính xác 
cả những chỉ số về độ chính xác và độ bao của mô hình nhận diện. Tương tự, trong điều 
quát của các dự đoán cho từng lớp. kiện thiếu sáng hoặc quá sáng mô hình cho 
Confusion matrix trong bảng 3 cho thấy kết thấy kết quả nhận diện không tốt. Hơn nữa, 
quả của quá trình đánh giá thực tế và kết quả đối với khoảng cách xa, kết quả phát hiện 
dự đoán của mô hình. khuôn mặt sẽ bị ảnh hưởng đáng kể, phần lớn 
 do độ phân giải của camera khá thấp khiến 
 Bảng 3. Confusion matrix 
 những bức ảnh xa có số lượng đặc trưng thấp 
 Actual Predict emotion ảnh hưởng tới kết quả nhận diện. 
 emotion angry disgust fear happy sad suprise neutral 
 angry 510 35 57 72 157 104 13 Hình 9 và hình 10 tương ứng cho thấy 
 disgust 9 81 2 3 2 11 2 kết quả nhận diện đúng và kết quả nhận diện 
 fear 60 16 504 74 132 173 109 sai trên tập dữ liệu test của FER2013 với 
 happy 4 0 9 1658 82 19 23 khoảng hơn 7000 chiếm khoảng 20% tập dữ 
 liệu của FER. 
 sad 22 2 53 83 978 98 36 
 suprise 62 6 99 70 308 614 17 
 neutral 5 1 70 46 21 11 655 
 Dựa trên kết quả thu được từ tập test, lớp 
Angry đạt được độ chính xác xấp xỉ 53%, 
Disgust đạt 73%, lớp Fear đạt 54%, lớp 
happy đạt 92%, lớp Sad đạt 77%, lớp 
Surprise đạt 52% và lớp Neutral đạt 80%. Ba 
lớp Angry, Fear và Surprise đạt hiệu suất 
thấp nhất và lớp Happy cùng với lớp Neutral 
đạt hiệu suất cao nhất. 
 Để đánh giá model, kết quả thực nghiệm 
được xem xét trong những điều kiện khác 
nhau như được liệt kê trong bảng 4. Hình 9. Kết quả nhận diện đúng trên tập 
 datasest 
 Tạp Chí Khoa Học Giáo Dục Kỹ Thuật Số 63 (04/2021) 
 Trường Đại Học Sư Phạm Kỹ Thuật TP. Hồ Chí Minh 17 
 Hình 10. Kết quả nhận diện sai trên tập 
 dataset 
 Hình 11. Một số hình ảnh nhận diện thực tế. 
 o
 Hình 11 minh họa một số kết quả nhận 45 . Tỷ lệ nhận dạng chính xác các cảm xúc 
diện 7 loại cảm xúc tương ứng bằng cách sử vui vẻ, ngạc nhiên và bình thường khá cao, 
dụng trực tiếp camera được tích hợp sẵn trên cảm xúc buồn và giận dữ có tỷ lệ dự đoán 
phần cứng Jetson TX2. thấp, riêng với cảm xúc ghê tởm tỷ lệ dự 
 đoán là thấp nhất. Việc sử dụng phần cứng 
6. KẾT LUẬN nhúng Jetson TX2 (GPU) cho thấy tốc độ xử 
 Trong đề tài này, tác giả đã triển khai lý nhanh hơn đáng kể so với laptop (CPU). 
một mô hình mạng Nơ-ron tích chập CNN Tuy nhiên, số lượng hình ảnh trong tập dữ 
trên nền tảng phần cứng nhúng Jetson TX2 liệu giữa các lớp có sự chêch lệch quá lớn, 
để nhận diện 7 loại cảm xúc cơ bản của con lớp khó chịu có ít dữ liệu nhất (1424 ảnh) 
người, với độ chính xác của mô hình đạt trong khi đó lớp vui có nhiều dữ liệu nhất 
được 72%. Mô hình nhận diện được cảm xúc (14946 ảnh) trong tổng số 51226 ảnh, điều 
của khuôn mặt trong điều kiện vùng khuôn này dẫn đến sự mất cân bằng dữ liệu giữa các 
mặt sáng, khuôn mặt không bị che khuất, lớp. Từ đó có sự ảnh hưởng rất lớn đến độ 
hướng khuôn mặt nhìn thẳng và nhìn nghiêng chính xác của hệ thống. 
 TÀI LIỆU THAM KHẢO 
[1] HeJun, Li Shuai, Shen Jinming, Liu Yue, Wang Jingwei, Jin Peng, "Facial Expression 
 Recognition Based on VGGNet Convolutional Neural Network," 2018 Chinese 
 Automation Congress (CAC), Xi'an, China, pp. 4146-4151, 2018. 
 Tạp Chí Khoa Học Giáo Dục Kỹ Thuật Số 63 (04/2021) 
 18 Trường Đại Học Sư Phạm Kỹ Thuật TP. Hồ Chí Minh 
[2] Imane Lasri , Anouar Riad Solh , Mourad El Belkacemi, "Facial Emotion Recognition of 
 Students using Convolutional Neural Network," 2019 Third International Conference on 
 Intelligent Computing in Data Sciences (ICDS), Marrakech, Morocco, pp. 1-6, 2019. 
[3] D. V. Sang, N. Van Dat and D. P. Thuan, "Facial expression recognition using deep 
 convolutional neural networks," 2017 9th International Conference on Knowledge and 
 Systems Engineering (KSE), Hue, 2017, pp. 130-135. 
[4] S. Turabzadeh, H. Meng, R. Swash, M. Pleva, and J. Juhar, “Facial Expression Emotion 
 Detection for Real-Time Embedded Systems,” Technologies, vol. 6, no. 1, p. 17, Jan. 2018. 
[5] "Nvidia. Autonomous Machines," NVIDIA, [Online]. Available: 
 https://developer.nvidia.com/embedded/develop/hardware?fbclid=IwAR2SmS-iYoKC
 WGrc6fysbbbd7t07Ly8dw-g9lfldJT-ilbP9aT28vSrFs8I. 
[6] Artiom Basulto-Lantsova , Jose A. Padilla-Medina , Francisco J. Perez-Pinal , Alejandro 
 I. Barranco-Gutierrez, "Performance comparative of OpenCV Template Matching 
 method on Jetson TX2 and Jetson Nano developer kits," 2020 10th Annual Computing 
 and Communication Workshop and Conference (CCWC), Las Vegas, NV, USA, pp. 
 0812-0816, 2020. 
[7] "Technical Specifications," NDIVIA, [Online]. Available: 
 https://developer.nvidia.com/embedded/develop/hardware. 
[8] "Nvidia. Autonomous Machines," NVIDIA, [Online]. Available: 
 https://developer.nvidia.com/embedded/develop/hardware?fbclid=IwAR2SmS-iYoKC
 WGrc6fysbbbd7t07Ly8dw-g9lfldJT-ilbP9aT28vSrFs8I. 
[9] J. Flores, "Training a TensorFlow model to recognize emotions," 24 May 2018. [Online]. 
 Available: 
 https://medium.com/@jsflo.dev/training-a-tensorflow-model-to-recognize-emotions-a20
 c3bcd6468. 
[10] Z. Zhang, "Improved Adam Optimizer for Deep Neural Networks," 2018 IEEE/ACM 
 26th International Symposium on Quality of Service (IWQoS), Banff, AB, Canada, 2018, 
 pp. 1-2. 
[11] Tee Connie , Mundher Al-Shabi , Wooi Ping Cheah, Michael Goh, " Facial Expression 
 Recognition Using a Hybrid CNN–SIFT Aggregator," Multi-disciplinary Trends in 
 Artificial Intelligence (MIWAI), Lecture Notes in Computer Science, vol 10607, 2017. 
Tác giả chịu trách nhiệm bài viết: 
Trương Quang Phúc 
Trường Đại học Sư phạm Kỹ thuật Tp.Hồ Chí Minh 
Email: phuctq@hcmute.edu.vn 

File đính kèm:

  • pdfnhan_dien_cam_xuc_khuon_mat_dung_mang_no_ron_tich_chap_cnn_t.pdf