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.
Trang 1
Trang 2
Trang 3
Trang 4
Trang 5
Trang 6
Trang 7
Trang 8
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
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ượngdựđoánchínhxác Độ chính xác = (4) thuật toán Adam cho kết quả với độ chính Sốlượngđượcdựđ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:
- nhan_dien_cam_xuc_khuon_mat_dung_mang_no_ron_tich_chap_cnn_t.pdf