Bài viết này trình bày về việc 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á. Mời các bạn cùng tham khảo!
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 11 NHẬN DIỆN CẢM XÚC KHN MẶT DÙNG MẠNG NƠ – RON TÍCH CHẬP CNN TRÊN PHẦN CỨNG JETSON TX2 IMPLEMENTATION OF FACIAL EMOTION RECOGNITION USING CNN ON JETSON TX2 Phạm Minh Quyền, Phùng Thanh Huy, Đỗ Duy Tân, Huỳnh Hoàng Hà, Trương Quang Phúc Trường Đại học Sư phạm Kỹ thuật TP.HCM, Việt Nam Ngày soạn nhận 19/8/2020, ngày phản biện đánh giá 3/9/2020, ngày chấp nhận đăng 29/9/2020 TÓM TẮT Trong báo này, tác giả sử dụng mạng nơ-ron tích chập, kiến trúc phổ biến học sâu để nhận diện phân loại cảm xúc khuôn mặt Một cách tổng quát, mạng nơ-ron chọn có cấu trúc phức tạp có tham số lớn, tác giả tập trung vào việc xây dựng mạng nơ-ron đơn giản phù hợp với liệu thông qua phương pháp so sánh đánh giá Ngoài ra, tác giả tập trung vào việc thu thập tập liệu đủ lớn để đạt kết cao Cụ thể, tác giả lựa chọn sử dụng tảng phần cứng nhúng Jetson TX2 NVIDIA để tận dụng khả tính tốn GPU nhằm tối ưu thời gian tính tốn huấn luyện liệu Trong đó, liệu sử dụng FER2013 RAF để huấn luyện kiểm tra Phương pháp sử dụng đạt độ xác 72% tập dự liệu kiểm tra Từ khóa: Nhận diện; cảm xúc khn mặt; mạng nơ-ron; CNN; Jetson TX2 ABSTRACT In this paper, a convolutional neural network (CNN), one of the most popular deep learning architectures used for facial extraction research, has been implemented on NVIDIA Jetson TX2 hardware Different from many existing approaches investigating CNN with complex structure and large parameters, we have focused on building a robust neural network through extensive performance comparison and evaluation In addition, we have collected a dataset using a built-in camera on a laptop computer Specifically, we have applied our model on Jetson TX2 hardware to take advantage of the computational power of the embedded GPU to optimize computation time and data training In particular, both FER2013 and RAF datasets with seven basic emotions have been used for training and testing purposes Finally, the evaluation results show that the proposed method achieves an accuracy of up to 72% on the testing dataset Keywords: recognition; facial emotion; neural network; CNN; Jetson TX2 GIỚI THIỆU Trong hệ thống thơng minh hỗ trợ tương tác người dùng, q trình thu thập liệu đánh giá hành vi khách hàng cần thiết, việc đòi hỏi hệ thống ghi nhận trạng thái cảm xúc khách hàng thông qua nhận diện cảm xúc khuôn mặt cần thiết Thực vậy, phương pháp hệ thống nhận diện cảm xúc khuông mặt quan tâm nhiều nhà nghiên cứu ngồi nước Trong [1], nhóm nghiên cứu thuộc trường đại học Nanchang, Trung Quốc áp dụng kiến trúc mạng nơ-ron tích chập, mạng VGG, đạt độ xác 73.06% Mạng VGG xem có hiệu cao có cấu trúc đơn giản so với nhiều kiến trúc mạng CNN khác lại có số lượng tham số nhiều tăng chiều sâu lớp Mạng VGG có kích thước lớn nhiều tham số (136 triệu) nên tốn 12 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 nhiều thời gian huấn luyện liệu Bên cạnh đó, [2], tác giả xây dựng ứng dụng nhận diện cảm xúc khuôn mặt sinh viên sử dụng CNN với độ xác đạt 70% Ở trường đại học Hà Nội, Việt Nam, nhóm nghiên cứu triển khai dạng kiến trúc khác CNN BKStart với khoảng 7.17 triệu tham số đạt độ xác cao (70,4%) FERC2013 dataset [3] BKStart khác với VGG việc sử dụng kernel có kích thước lớn nhiên lại sử dụng stride để tăng hiệu trích xuất đặc trưng Tác giả áp dụng mạng Nơ-ron tích chập CNN, kiến trúc phổ biến học sâu, để nhận diện cảm xúc người Bên cạnh phát triển thuật toán, yếu tố quan trọng khác yếu tố phần cứng Một nhóm nghiên cứu Ln đơn, Vương Quốc Anh tiến hành thực thiết kế kết hợp với phần cứng Xilinx Spartan-6 LX45 FPGA cho hệ thống nhận diện cảm xúc khuôn mặt [4] Với phần cứng FPGA, tốc độ xử lý cải thiện đáng kể, đạt được 30FPS Tuy cải thiện khả tính tốn lại khơng thể áp dụng thuật tốn phức tạp nên dẫn đến độ xác cịn thấp 51.28% Phần cứng Jetson TX2 lựa chọn để thực mơ hình nhận diện cảm xúc Jetson TX2 tích hợp vào lõi CUDA với hệ thống GPU mang lại tốc độ xử lý cao [5] Ngoài Jetson TX2 đáp ứng hầu hết yêu cầu khắt khe thời gian thực lại mang kích thước nhỏ gọn, dễ dàng lắp đặt [6] Tác giả thực mơ hình nhận diện cảm xúc khn mặt người sử dụng mạng Nơ-ron tích chập CNN phần cứng nhúng Jetson TX2 với mục tiêu, phát triển mơ hình nhận có khả nhận diện loại cảm xúc: vui, buồn, kinh tởm, ngạc nhiên, bình thường, sợ hãi giận người Mơ hình xây dựng hệ thống nhúng riêng biệt (Jetson TX2) đạt độ xác cao (trên 70% cho trình phát khn mặt người nhận diện cảm xúc) TẬP DỮ LIỆU Cảm xúc người mn hình vạn trạng Mỗi người điều có cách bày tỏ cảm xúc khác Chính thế, liệu cần để huấn luyện cho mơ hình nhận diện cảm xúc khn mặt người lớn Trong đề tài này, tập liệu FER2013 lựa chọn sử dụng, phần tập liệu RAF liệu thu thập từ internet Hình tổng quan toàn tập liệu cách xử lý loại liệu để đưa tốn nhận diện cảm xúc: Hình Tập liệu huấn luyện 2.1 Tập liệu FER2013 Tập liệu nguồn mở FER2013.csv, tạo cho dự án PierreLuc Carrier Aaron Courville, chia sẻ công khai thi Kaggle (2013) Dữ liệu tập FER2013.csv Bộ liệu bao gồm 35.887 ảnh xám: hình ảnh khn mặt kích thước 48x48 pixel từ nhiều góc độ khác Hình ảnh phân loại thành bảy lớp thể cảm xúc khuôn mặt khác nhau, tất gán nhãn từ – (0 = Giận dữ, = Ghê tởm, = Sợ hãi, = Vui vẻ, = Buồn, = Ngạc nhiên, = Bình thường) Gồm 8.989 ảnh ‘Happy’, 6.077 ảnh ‘Sad’, 6.198 ảnh ‘Neutral’, 4002 ảnh ‘Suprised’, 5121 ảnh ‘Scared’, 547 ảnh ‘Disgust’ 4593 ảnh ‘Angry’ [4] 2.2 Tập liệu RAF RAF-DB (Real-world Affective Faces Database) tập 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 hình ảnh khn mặt với nhiều loại biểu cảm khác thu thập từ internet Hình ảnh tập liệu có thay đổi lớn tuổi tác, dân tộc, tư đầu điều kiện ánh sáng đa dạng phong cách (mang kính, đội nón) [5] 13 tiêu thụ 7,5W lượng Đây phần cứng tốt để thực giải thuật học sâu tảng hệ thống nhúng [7] Hình Quá trình phát triển GPU NVIDIA [8] Hình cho thấy trình phát triển lõi GPU NVIDIA đặc biệt đột phá NVIDIA Pascal mắt vào năm 2016 sau đem vào kiến trúc phần cứng Jetson TX2 Hình Quá trình xử lý tập liệu RAF Hình cho thấy trình xử lý tập liệu RAF mà nhóm thức để đưa tập liệu vào tập liệu chung Ban đầu, tập liệu tập hợp hình ảnh cảm xúc khuôn mặt người chưa phân loại tệp txt chứa liệu phân loại (tên ảnh, nhãn cảm xúc) Từ nhóm phân loại thư mục cảm xúc khác Tiền xử lý hình ảnh (chuyển ảnh sang ảnh xám giảm kích thước ảnh 48x48), chuyển ảnh dạng pixel cập nhật vào file Dataset (.csv) PHẦN CỨNG JETSON TX2 Jetson TX2 máy tính nhúng có hiệu lượng cao NVIDIA sử dụng rộng rãi cho thị giác máy tính, trí tuệ nhân tạo, máy học Jetson TX2 máy tính nhỏ mạnh mẽ TX2 có CPU: ARM Cortex-A57 (4 lõi) 2GHz NVIDIA Denver2 (lõi kép) @ 2GHz [6] Ngoài ra, máy tính NVIDIA, GPU thành phần thiếu với Pascal 256 lõi 1300 MHz Bộ nhớ 8Gb chia sẻ CPU GPU Tất tác vụ tính tốn MẠNG NƠ-RON TÍCH CHẬP Mạng CNN xây dựng ngôn ngữ Python sử dụng thư viện Keras Mạng CNN xây dựng gồm sáu lớp tích chập, ba lớp Max-pooling cuối hai lớp Full-connected Số lượng filter tương ứng 32, 64 128 Kích thước filter 3x3 lớp Max-pooling có kích thước stride 2x2 Lớp Max-pooling sử dụng sau hai lớp tích chập Max pooling dùng để giảm kích thước ma trận làm bật lên đặc trưng có ma trận đầu vào giảm thiểu cơng việc tính tốn cho phần cứng [9] Sau lớp Max Pooling có lớp Drop Out nhằm giảm tượng overfitting cách loại bỏ ngẫu nhiên số unit Để giữ kích thước khơng gian ngõ ra, zero-padding thêm vào Sau qua lớp tích chập, ngõ qua Flatten trở thành vector chiều để đưa vào lớp dense (hay lớp full connected) Hàm kích hoạt sử dụng mạng CNN Leaky Rectifier Linear Unit (Leaky ReLU) theo công thức sau [10]: 𝑥 𝑓(𝑥) = max(𝑥, 20) (1) 14 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 Giá trị 20 sử dụng theo tập validation FER-2013 [11] Từ cơng thức (1), giá trị trả thay 𝑥 < RELU, leaky RELU tạo thành đường dốc với giá trị giảm nhỏ Ở mạng nơ-ron, kết đầu cần chuẩn hóa sang dạng phần trăm để dự đốn lớp Khi lớp cuối mạng CNN lớp Softmax với ngõ 𝑒 𝑧𝑘 𝑎𝑘 = ∑𝑛 𝑖=1 𝑒 𝑧𝑖 , (2) Với 𝑎𝑘 tỉ lệ dự đoán lớp thứ k, n tổng số lớp dự đoán (7 cảm xúc) 𝑧𝑘 hệ số node trước cho lớp thứ k Thuật toán sử dụng để cập nhật trọng số mạng CNN Adam Thuật toán Adam trội số thuật toán khác khả vượt qua vùng local minimum đạt tới điểm tối ưu (flat minimum) Một đặc điểm thuật tốn Adam khả tận dụng “động lực” để hội tụ nhanh “Động lực” khả tận dụng số phần lần cập nhật trọng số trước để cập nhật cho trọng số [11] Kết cuối model cần đánh giá để biết hiệu trình training liệu Ở hàm mát cơng cụ để thực điều Hàm mát sử dụng báo hàm “categorical_crossentropy” 𝑛 𝐿 = − ∑𝑖=1(𝑦𝑖 ∗ 𝐿𝑜𝑔(𝑦̂𝑖 )), (3) Với L ký hiệu hàm mát, yi kết thực 𝑦̂𝑖 kết dự đoán Biểu thức (3) hàm tính sai số áp dụng phổ biến sử dụng để vẽ đồ thị đánh giá kết cuối Ngoài hàm mát, việc đánh giá model dựa vào độ xác: Độ xác = Sốlượngdựđốnchínhxác Sốlượngđượcdựđốn (4) Biểu thức (4) biểu thức tổng quát để tính độ xác, sử dụng để tính độ xác cho trình đánh giá kết hệ thống Hình So sánh số thuật tốn tối ưu Hình cho thấy khác trình huấn luyện liệu optimizer khác bao gồm Adam, Adagrad Sgd Rõ ràng, từ hình cho thấy thuật tốn Adam cho kết với độ xác cao so với Sgd Adagrad Trong đó, q trình huấn luyện liệu Sgd Adagrad lại cho thấy giao động lớn epoch Hình trình bày tổng qt tồn 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 Kết nhận diện kiến trúc mạng CNN phổ biến, VGG16 Big Xception Bảng trình bày kết so sánh thông số ảnh hưởng kết huấn luyện liệu Đối với thông số khác phù hợp với dataset model khác Do đó, việc lựa chọn thơng số cần thiết để đạt hiệu suất tốt trình huấn luyện liệu Bảng Bảng so sánh độ xác thay đổi thơng số Hình Cấu trúc mạng CNN Trong bảng 1, so sánh kết nhận diện đạt kiến trúc CNN ConvNet V2 với số mơ hình CNN khác Bảng So sánh độ xác kiến trúc CNN Model Phần cứng Jetson (GPU) Jetson (GPU) Jetson (GPU) Jetson (GPU) Jetson (GPU) Laptop (CPU) optimizer Adam adam adam adam adam Adam Learning rate 0,01 0.001 0.0001 0.001 0.001 0.001 Batch size 64 64 64 32 128 64 Thời gian train giờ 12 10 giờ 16 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 Tiny Xception 0.6236 0.02 Mini Xception 0.6586 0.06 Big Xception 0.6606 0.21 VGG 16 0.6656 20.86 ConvNet V1 0.6803 5.01 Việc đánh giá model sử dụng dựa độ xác tập Validation tập test Hình cho thấy độ xác q trình huấn luyện liệu hội tụ sau khoảng 85 epoch đạt độ xác tập test 72% ConvNet V2 0.72 9,74 Đối với vác model có lượng Param thấp Mini Xception lại đạt độ xác tốt Tuy nhiên chưa đạt mục tiêu đề Đối với model VGG 16 có lượng tham số cao dataset có kích thước nhỏ khiển model dễ dẫn đến tượng overfitting Hình trình bày kết nhận diện kiến trúc mạng CNN phổ biến, VGG16 Big Xception, với độ xác lên tới 66% KẾT QUẢ ĐÁNH GIÁ Hình Độ xác tập train tập test 16 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 Với hội tụ độ xác, hình trình bày sai số model tập test validation tập train hội tụ sau khoảng 90 epoch Hình Sai số tập train tập test Confusion matrix cơng cụ hữu ích toán phân loại với việc xem xét số độ xác độ bao quát dự đoán cho lớp Confusion matrix bảng cho thấy kết trình đánh giá thực tế kết dự đốn mơ hình Bảng Confusion matrix Predict emotion Actual emotion angry angry disgust fear happy sad suprise neutral 510 35 57 72 157 104 13 disgust 81 11 fear 60 16 504 74 132 173 109 happy 1658 82 19 23 sad 22 53 83 978 98 36 suprise 62 99 70 308 614 17 neutral 70 46 21 11 655 Bảng Kết nhận diện nhiều điều kiện khác Cảm xúc Khoảng cách 1m Khoảng cách 1m Ánh sáng bình thường Thiếu sáng Ánh sáng chói Bình thường 57/60 60/60 57/60 33/60 19/60 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ó Chịu 37/60 3/60 37/60 13/60 12/60 Lo sợ 31/60 2/60 31/60 12/60 11/60 Ngạc nhiên 50/60 4/60 50/60 10/60 13/60 Dựa vào bảng thấy kết nhận diện dễ bị ảnh hưởng điều kiện khác Trong đó, khoảng cách xa độ sáng khơng đủ dễ làm giảm độ xác mơ hình nhận diện Tương tự, điều kiện thiếu sáng sáng mơ hình cho thấy kết nhận diện khơng tốt Hơn nữa, khoảng cách xa, kết phát khuôn mặt bị ảnh hưởng đáng kể, phần lớn độ phân giải camera thấp khiến ảnh xa có số lượng đặc trưng thấp ảnh hưởng tới kết nhận diện Hình hình 10 tương ứng cho thấy kết nhận diện kết nhận diện sai tập liệu test FER2013 với khoảng 7000 chiếm khoảng 20% tập liệu FER Dựa kết thu từ tập test, lớp Angry đạt độ 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% lớp Neutral đạt 80% Ba lớp Angry, Fear Surprise đạt hiệu suất thấp lớp Happy với lớp Neutral đạt hiệu suất cao Để đánh giá model, kết thực nghiệm xem xét điều kiện khác liệt kê bảng Hình Kết nhận diệ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 nhận diện sai tập dataset Hình 11 Một số hình ảnh nhận diện thực tế Hình 11 minh họa số kết nhận diện loại cảm xúc tương ứng cách sử dụng trực tiếp camera tích hợp sẵn phần cứng Jetson TX2 KẾT LUẬN Trong đề tài này, tác giả triển khai mơ hình mạng Nơ-ron tích chập CNN tảng phần cứng nhúng Jetson TX2 để nhận diện loại cảm xúc người, với độ xác mơ hình đạt 72% Mơ hình nhận diện cảm xúc khuôn mặt điều kiện vùng khuôn mặt sáng, khuôn mặt khơng bị che khuất, hướng khn mặt nhìn thẳng nhìn nghiêng 45o Tỷ lệ nhận dạng xác cảm xúc vui vẻ, ngạc nhiên bình thường cao, cảm xúc buồn giận có tỷ lệ dự đoán thấp, riêng với cảm xúc ghê tởm tỷ lệ dự đoán thấp Việc sử dụng phần cứng nhúng Jetson TX2 (GPU) cho thấy tốc độ xử lý nhanh đáng kể so với laptop (CPU) Tuy nhiên, số lượng hình ảnh tập liệu lớp có chêch lệch lớn, lớp khó chịu có liệu (1424 ảnh) lớp vui có nhiều liệu (14946 ảnh) tổng số 51226 ảnh, điều dẫn đến cân liệu lớp Từ có ảnh hưởng lớn đến độ xác 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 18 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 [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 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 ... mạng Nơ- ron tích chập CNN tảng phần cứng nhúng Jetson TX2 để nhận diện loại cảm xúc người, với độ xác mơ hình đạt 72% Mơ hình nhận diện cảm xúc khn mặt điều kiện vùng khuôn mặt sáng, khuôn mặt. .. giả thực mơ hình nhận diện cảm xúc khn mặt người sử dụng mạng Nơ- ron tích chập CNN phần cứng nhúng Jetson TX2 với mục tiêu, phát triển mơ hình nhận có khả nhận diện loại cảm xúc: vui, buồn, kinh... trúc mạng CNN Trong bảng 1, so sánh kết nhận diện đạt kiến trúc CNN ConvNet V2 với số mơ hình CNN khác Bảng So sánh độ xác kiến trúc CNN Model Phần cứng Jetson (GPU) Jetson (GPU) Jetson (GPU) Jetson