Danh mục hình ảnhHình 1: Kiến trúc nhận diện cảm xúc gương mặt theo phương pháp truyền thống...8Hình 2: Kiến trúc nhận diện cảm xúc gương mặt theo phương pháp học sâu...9Hình 3: Mô hình
Tổng quan về đề tài
Giới thiệu bài toán
Với sự phát triển của công nghệ, bài toán nhận diện cảm xúc khuôn mặt đã được chú trọng nghiên cứu nhờ tính ứng dụng trong thực tiễn Bài toán nhằm xây dựng mô hình huấn luyện để phân loại cảm xúc trên gương mặt.
Các nghiên cứu thường tập trung vào 7 loại cảm xúc chính gồm: tức giận,kinh tởm, sợ hãi, vui vẻ, bình thường, buồn bã, bất ngờ trong vô số các biểu cảm có thể có của con người Bài toán có đầu vào là bức ảnh tĩnh hoặc hình ảnh khuôn mặt trích xuất từ camera, và đầu ra sẽ là dự đoán về cảm xúc của gương mặt đó.
Ứng dụng
Việc nhận diện cảm xúc khuôn mặt có thể ứng dụng trong nhiều lĩnh vực giúp cải thiện đời sống con người Bao gồm các lĩnh vực như:
Giáo dục: Dự đoán, theo dõi và phân tích phản ứng của người học trong thời gian thực như một thước đo cho hiệu quả của bài giảng.
Tiếp thị: Các công ty kinh doanh có thể áp dụng công nghệ nhận diện cảm xúc nhằm phân tích thái độ, phản ứng của khách hàng khi phản hồi với quảng cáo, sản phẩm, bao bì hay thiết kế cửa hàng.
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 khuôn mặt đóng một vai trò quan trọng để các nhà phát triển cải thiện trải nghiệm chơi trò chơi.
Bảo mật: Nhận diện cảm xúc gương mặt giúp xác định hành vi đáng ngờ của một đối tượng nào đó 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ố.
Chăm sóc sức khỏe: Nhận diện cảm xúc gương mặt rất hữu ích trong việc tự động hóa dịch vụ y tế Cả sức khỏe thể chất và tinh thần có thể được phân tích thông qua ứng dụng này.
Ngoài ra hệ thống nhận diện cảm xúc khuôn mặt được ứng dụng trong rất nhiều cuộc sống như đánh giá mức độ đau của bệnh nhân khi điều trị y tế,phát hiện nói dối, giám sát trạng thái của người lái xe, phát hiện trạng thái buồn ngủ và đưa ra cảnh báo.
Các phương pháp phát triển bài toán
Trong quá trình nghiên cứu và phát triển, bài toán Nhận diện cảm xúc gương mặt đã được áp dụng với hai phương pháp: Phương pháp truyền thống và Phương pháp hiện đại. a Phương pháp truyền thống
Với hệ thống nhận dạng cảm xúc khuôn mặt bằng phương pháp truyền thống thì bài toán sẽ được xử lý qua các giai đoạn:
Tiền xử lý hình ảnh khuôn mặt Trích xuất đặc trưng Phân loại
Hình 1: Kiến trúc nhận diện cảm xúc gương mặt theo phương pháp truyền thống
Tiền xử lý hình ảnh khuôn mặt: Là quá trình được sử dụng để cải thiện hiệu suất của hệ thống, được thực hiện qua các quy trình khác nhau: căn chỉnh độ rõ, chia tỷ lệ hình ảnh, điều chỉnh độ tương phản và sử dụng các quy trình nâng cao để cải thiện các khung biểu thức.
Trích xuất đặc trưng trong thị giác máy tính: Là một giai đoạn quan trọng, giúp chuyển từ mô tả đồ họa sang mô tả dữ liệu ẩn, trích chọn những đặc trưng riêng nhất của hình ảnh Sau đó những mô tả dữ liệu này được sử dụng làm đầu vào cho bài toán phân loại.
Phân loại: Là giai đoạn cuối cùng của hệ thống, nhằm phân loại ra các loại cảm xúc trên khuôn mặt bao gồm hạnh phúc, buồn bã, bất ngờ, tức giận, sợ hãi, ghê tởm và bình thường Sử dụng các phương pháp phân loại như: Cây quyết định (ID3), SVM, HMM (Hidden Markov Model)
Trong đó, phân loại SVM cho độ chính xác cao nhất Chính vì vậy, SVM là đại diện cho phương pháp truyền thống để sử dụng cho hệ thống nhận diện. b Phương pháp hiện đại
Trong phương pháp hiện đại, hệ thống nhận diện cảm xúc qua khuôn mặt được thực hiện qua các giai đoạn:
Tiền xử lý Phân lớp Học sâu
Hình 2: Kiến trúc nhận diện cảm xúc gương mặt theo phương pháp học sâu
Những năm gần đây, học sâu hay còn gọi là Deep Learning là một phương pháp tiếp cận mới, giúp hệ thống đạt được độ chính xác cao hơn so với phương pháp truyền thống, bởi hình ảnh sẽ không phải qua bước trích xuất các đặc trưng nữa.
Tiền xử lý ảnh: Phương pháp hiện đại cũng cần phải xử lý hình ảnh đầu vào hệ thống trước quá trình trainning Các bước thực hiện là: Căn chỉnh khuôn mặt để phát hiện khuôn mặt, tăng dữ liệu hình ảnh đảm bảo đủ dữ liệu training, cuối cùng là chuẩn hóa dữ liệu khuôn mặt Sử dụng các phương pháp CNN, DBN, DAE, RNN, GAN
Phân loại: Trong phương pháp truyền thống, bước trích xuất đặc trưng và bước phân loại là độc lập với nhau Tuy nhiên, Deep Learning sẽ thực hiện đồng thời hai quy trình đó Hàm mất mát hay còn gọi là Loss Function sẽ được thêm vào cuối mạng để điều chỉnh lại tham số của mô hình, thuật toán backpropagation hay còn gọi là lan truyền ngược được thực hiện để tối ưu Loss Function Sau đó, mạng sẽ trực tiếp xuất ra xác suất dự đoán của từng loại cảm xúc.
Các tập dữ liệu
Để huấn luyện mô hình học máy cho bài toán này, chúng ta có thể sử dụng các tập dữ liệu như: a) AffectNet
Nguồn download: http://mohammadmahoor.com/affectnet Benchmark: https://paperswithcode.com/sota/facial-expression- recognition-on-affectnet
Số lượng: 1 triệu ảnh Số lượng cảm xúc: 7 dạng cảm xúc Hình thức ảnh: Ảnh màu RGB b) FER2013
Nguồn download: https://www.kaggle.com/msambare/fer2013 Benchmark: https://paperswithcode.com/sota/facial-expression- recognition-on-fer2013
Số lượng : 35888 ảnh (28709 ảnh cho tập training, 3589 ảnh cho tập validation, 3589 ảnh cho tập test)
Số lượng cảm xúc: 7 dạng cảm xúc Hình thức ảnh: Ảnh đen trắng Grayscale kích thước 48x48 c) Google Facial Expression Comparison Dataset
Nguồn download: https://research.google/tools/datasets/google-facial- expression/
Số lượng: xấp xỉ 156000 ảnh d) CK + 48 5 emotions
Nguồn download: https://www.kaggle.com/gauravsharma99/ck48-5- emotions
Số lượng cảm xúc: 5 dạng cảm xúc (Tức giận, Sợ hãi, Hạnh phúc, Buồn, Ngạc nhiên)
Hình thức ảnh: Ảnh đen trắng Grayscale e) Real-world Affective Faces Database (RAF-DB)
Nguồn download: Real-world Affective Faces (RAF) Database (whdeng.cn)
Số lượng : 29672 ảnhSố lượng cảm xúc: 7 dạng cảm xúcHình thức ảnh: Ảnh màu RGB và ảnh đen trắng Grayscale
Khảo sát các bài nghiên cứu
Facial Emotion Recognition: State of the Art Performance on FER2013
Bài paper sử dụng kiến trúc VGGNet, đồng thời áp dụng nhiều thí nghiệm về các thuật toán optimization và learning rate scheduler khác nhau Đồng thời, nhóm nghiên cứu áp dụng thêm các kỹ thuật tăng cường dữ liệu và điều chỉnh tham số (hyperparameter) để mô hình có thể đạt được độ chính xác là 73.28% Đây là độ chính xác cao nhất có thể đạt được khi training với bộ dữ liệu FER2013 mà không sử dụng thêm bất cứ tập dữ liệu nào khác. c Phương pháp chính
Hình 3: Mô hình VGGNet Bài paper sử dụng mô hình VGGNet với kiến trúc như sau:
4 convolutional stages 3 fully connected layer
Mỗi convolutional stages chứa 2 convolutional blocks và 1 max- pooling layer
1 convolution block bao gồm: 1 convolutional layer ReLU , 1 activation, và 1 batch normalization layer
Batch normalization được sử dụng nhằm:
+ Tăng tốc độ quá trình học + Giảm internal covariance shift + Tránh xảy ra gradient vanishing or explosion 2 lớp fully connected đầu tiên kết hợp với ReLU activation Lớp fully connected cuối cùng dùng để phân loại
Khối convolutional stages có trách nhiệm trích xuất các đặc trưng của khuôn mặt
Các lớp fully connected được huấn luyện để phân loại cảm xúc khuôn mặt với đầu vào là các đặc trung được trích xuất từ các khối convolutional stages d Tập dữ liệu
- Tập dữ liệu FER2013.csv e Kết quả
- Mô hình đạt độ chính xác 73.28% trên tập test
Hình 4: Kết quả của mô hình với các Optimizer và LR Scheduler khác nhau
5 Weakly Supervised Coupled Networks for Visual Sentiment Analysis a Ý tưởng đề tài
Nhận dạng cảm xúc thường khó hơn so với các tác vụ nhận diện thông thường do tính chủ quan cao trong quá trình nhận dạng của con người.
Hơn nữa, một vài nghiên cứu cho thấy các vùng trong 1 bức ảnh biểu thị cảm xúc không giống nhau.Ví dụ như EmotionROI dataset - tập dataset cung cấp các ảnh đã được localize bằng các bounding box, các box này đại diện cho các vùng biểu thị cảm xúc chính trong 1 bức ảnh
Thay vì dùng các bounding box, ý tưởng chính của Weakly Supervised Coupled Networks là tạo ra 1 ma trận trọng số (soft sentiment map) đại diện cho khả năng biểu thị cảm xúc. b Phương pháp chính
WSCNet để thực hiện đồng thời 2 tác vụ là detection và classification cảm xúc ảnh với 2 nhánh: o Nhánh đầu được thiết kế để sinh ra region proposals evoking sentiment, thay vì trích xuất nhiều annotation boxes, ta sử dụng soft sentiment map để biểu diễn xác suất evoking sentiment. o Nhánh 2 bắt localized representation bằng cách coupling sentiment map với deep features, sau đó được combined với representation toàn thể để có 1 semantic vector.
Hình 5: Mô hình WSCNet o Ảnh đầu vào được đưa vào ResNet-101, và feature maps cuối cùng được chia ra làm hai nhánh. o Nhánh đầu tiên:
Hình 6: Quá trình tạo Sentiment map Đưa qua 1 kernel 1x1 để thu thập thông tin cho mỗi loại nhãn, có phản hồi cao với từng vùng phân biệt nhất định Giả sử có k detectors cho mỗi class, ta được feature maps mới F’ với kích thước w.h.kC (C là số nhãn)
Dùng cross-spatial pooling để tổng hợp tất cả thông tin thành 1 vector duy nhất (Gmax: Global Max Pooling):
Sau đó k đầu ra cho mỗi nhãn được tổng hợp bằng Average Pooling, giá trị được tối đa hóa bằng cách tìm tất cả các discriminative regions của 1 cảm xúc cụ thể.
Vector v sau đó được đưa qua softmax layer, ta có hàm loss đầu tiên (sentiment detection loss):
Tạo ra sentiment map: đưa các feature maps trong F’ qua AveragePooling sau đó nhân với các trọng số tương ứng trong v o Nhánh thứ 2: Classification : Sentiment map biểu thị các vùng phân biệt trong ảnh có nhiều thông tin cho classification tasks.
Sau khi tạo ra sentiment map M, Coupled feature maps F với M, sau đó nối (concatenate) luôn với F Từ đấy tạo ra feature d bằng Global Average Pooling các feature máp dã nối ở trên , sentiment scores s(y =c | d, w ) được định nghĩa:i c
Hàm loss thứ hai: o Join training process: Hàm loss chung cho cả quá trình train
Chương 3: Các kết quả huấn luyện mô hình
Trong Project này, nhóm chúng em sẽ thử nghiệm các mô hình với bộ data FER2013.csv với các thông tin như sau:
- Bộ ảnh gồm 35.887 bức ảnh đen trắng, tỉ lệ 48 x 48, được chia thành các tập:
+ Training set: 28709 ảnh + Validation set: 3589 ảnh + Testing set: 3589 ảnh
- Dữ liệu bao gồm 7 loại cảm xúc khác nhau, bao gồm:
+ Tức giận: 4953 ảnh + Ghê tởm: 547 ảnh + Sợ hãi: 5121 ảnh + Vui vẻ: 8989 ảnh + Buồn: 6077 ảnh + Ngạc nhiên: 4002 ảnh + Bình thường: 6198 ảnh
1 Facial Emotion Recognition: State of the Art Performance on FER2013 a VGGNet
Lần thử nghiệm này là tái hiện lại bài paper: “Facial Emotion Recognition:
State of the Art Performance on FER2013”.
- Đạt độ chính xác 69.16% trên tập test khi sử dụng Optimizer SGD vàScheduler ReduceLROnPlateau (RLRP) (50 epochs)
Hình 7: Kết quả training VGG16 với Optimizer SGD và Scheduler RLRP
- Đạt độ chính xác 55.67% trên tập test khi sử dụng Optimizer
Adadelta và Scheduler CosineWR (30 epochs)
Hình 8: Kết quả training VGG16 với Optimizer Adadelta và Scheduler CosineWR f EfficientNet b3
Lần thử nghiệm này dựa trên bài paper “Facial Emotion
Recognition: State of the Art Performance on FER2013”, thay đổi mô hình thành Efficient Net b3, training với 30 epochs và được các kết quả như sau:
- Đạt độ chính xác 67.51% trên tập test khi sử dụng Optimizer
Adagrad và Scheduler CosineWR (30 epochs)
Hình 9: Kết quả training EfficientNet b3 với Optimizer SGD và Scheduler RLRP
- Đạt độ chính xác 69.13% trên tập test khi sử dụng Optimizer SGD vàScheduler ReduceLROnPlateau (RLRP) (30 epochs)
Hình 10: Kết quả training EfficientNet b3 với Optimizer SGD và Scheduler RLRP g Resnet50
- Đạt độ chính xác 69.77% trên tập test khi sử dụng Optimizer SGD và Scheduler ReduceLROnPlateau (RLRP) (50 epochs)
Hình 11: Kết quả training Resnet 50 với Optimizer SGD và Scheduler RLRP h Resnet101
- Đạt độ chính xác 69.07% trên tập test khi sử dụng Optimizer SGD vàScheduler ReduceLROnPlateau (RLRP) (30 epochs)
Hình 12: Kết quả training Resnet 101 với Optimizer SGD và Scheduler RLRP i Bảng tổng hợp kết quả
Model Lầầ n Optimizer Scheduler Kếết quả N
Train accuracy 86.92% Train nha accu xuốố kho n ả và ko t e ừ Val accuracy 72.50%
Train accuracy 87.34% Val a xuốố kho n ả và ko t e ừ Val accuracy 72.00% 73.3352%
3 Adadelta CosineWR 42 epochs Train accuracy 51.58% 51.7256%
(41) Train acc lên tăng epoc thấốp lấần Val accuracy 59.13% 59.3759%
4 Adadelta CosineWR 50 epochs Train accuracy 51.92%
Acc th v i lấ ớ Val accuracy 56.98%
Train accuracy 81.86% Train nha accu xuốố kho n ả và ko t e ừ Val accuracy 70.94% 72.19%
1 Adagrad CosineAnnealingLR 30 epochs Train accuracy 65.49% 65.68%
Các kết quả huấn luyện mô hình
Trong Project này, nhóm chúng em sẽ thử nghiệm các mô hình với bộ data FER2013.csv với các thông tin như sau:
- Bộ ảnh gồm 35.887 bức ảnh đen trắng, tỉ lệ 48 x 48, được chia thành các tập:
+ Training set: 28709 ảnh + Validation set: 3589 ảnh + Testing set: 3589 ảnh
- Dữ liệu bao gồm 7 loại cảm xúc khác nhau, bao gồm:
+ Tức giận: 4953 ảnh + Ghê tởm: 547 ảnh + Sợ hãi: 5121 ảnh + Vui vẻ: 8989 ảnh + Buồn: 6077 ảnh + Ngạc nhiên: 4002 ảnh + Bình thường: 6198 ảnh
1 Facial Emotion Recognition: State of the Art Performance on FER2013 a VGGNet
Lần thử nghiệm này là tái hiện lại bài paper: “Facial Emotion Recognition:
State of the Art Performance on FER2013”.
- Đạt độ chính xác 69.16% trên tập test khi sử dụng Optimizer SGD vàScheduler ReduceLROnPlateau (RLRP) (50 epochs)
Hình 7: Kết quả training VGG16 với Optimizer SGD và Scheduler RLRP
- Đạt độ chính xác 55.67% trên tập test khi sử dụng Optimizer
Adadelta và Scheduler CosineWR (30 epochs)
Hình 8: Kết quả training VGG16 với Optimizer Adadelta và Scheduler CosineWR f EfficientNet b3
Lần thử nghiệm này dựa trên bài paper “Facial Emotion
Recognition: State of the Art Performance on FER2013”, thay đổi mô hình thành Efficient Net b3, training với 30 epochs và được các kết quả như sau:
- Đạt độ chính xác 67.51% trên tập test khi sử dụng Optimizer
Adagrad và Scheduler CosineWR (30 epochs)
Hình 9: Kết quả training EfficientNet b3 với Optimizer SGD và Scheduler RLRP
- Đạt độ chính xác 69.13% trên tập test khi sử dụng Optimizer SGD vàScheduler ReduceLROnPlateau (RLRP) (30 epochs)
Hình 10: Kết quả training EfficientNet b3 với Optimizer SGD và Scheduler RLRP g Resnet50
- Đạt độ chính xác 69.77% trên tập test khi sử dụng Optimizer SGD và Scheduler ReduceLROnPlateau (RLRP) (50 epochs)
Hình 11: Kết quả training Resnet 50 với Optimizer SGD và Scheduler RLRP h Resnet101
- Đạt độ chính xác 69.07% trên tập test khi sử dụng Optimizer SGD vàScheduler ReduceLROnPlateau (RLRP) (30 epochs)
Hình 12: Kết quả training Resnet 101 với Optimizer SGD và Scheduler RLRP i Bảng tổng hợp kết quả
Model Lầầ n Optimizer Scheduler Kếết quả N
Train accuracy 86.92% Train nha accu xuốố kho n ả và ko t e ừ Val accuracy 72.50%
Train accuracy 87.34% Val a xuốố kho n ả và ko t e ừ Val accuracy 72.00% 73.3352%
3 Adadelta CosineWR 42 epochs Train accuracy 51.58% 51.7256%
(41) Train acc lên tăng epoc thấốp lấần Val accuracy 59.13% 59.3759%
4 Adadelta CosineWR 50 epochs Train accuracy 51.92%
Acc th v i lấ ớ Val accuracy 56.98%
Train accuracy 81.86% Train nha accu xuốố kho n ả và ko t e ừ Val accuracy 70.94% 72.19%
1 Adagrad CosineAnnealingLR 30 epochs Train accuracy 65.49% 65.68%
2 Weakly Supervised Coupled Networks for Visual Sentiment Analysis a Resnet18
- Đạt độ chính xác 66.23% trên tập test khi sử dụng Optimizer SGD và Scheduler ReduceLROnPlateau (RLRP) (90 epochs)
Hình 13: Kết quả training Resnet18 với Optimizer SGD và Scheduler RLRP
- Đạt độ chính xác 67.21% trên tập test khi sử dụng Optimizer SGD và Scheduler StepLR (30 epochs)
Hình 14 Kết quả training Resnet18 với Optimizer SGD và Scheduler StepLR : j Resnet34
- Đạt độ chính xác 66.24% trên tập test khi sử dụng Optimizer SGD và Scheduler StepLR (30 epochs)
Hình 15: Kết quả training Resnet34 với Optimizer SGD và Scheduler StepLR k Resnet50
- Đạt độ chính xác 68.03% trên tập test khi sử dụng Optimizer SGD và Scheduler StepLR (30 epochs)
Hình 16: Kết quả training Resnet50 với Optimizer SGD và Scheduler StepLR l Resnet101
- Đạt độ chính xác 67.72% trên tập test khi sử dụng Optimizer SGD và Scheduler StepLR (30 epochs)
Hình 17 Kết quả training Resnet101 với Optimizer SGD và Scheduler StepLR : m Bảng tổng hợp kết quả
Tỉ lệ output1 Optimizer Scheduler Số epoch Kết quả
ReduceLROnPlate au với patience = 3, factor = 0.5
ReduceLROnPlate au với patience = 2, factor = 0.5
Nhận xét các mô hình
1 Facial Emotion Recognition: State of the Art Performance on FER2013 a Kỹ thuật tăng cường dữ liệu Ten-crop
- Bài paper đầu tiên sử dụng kỹ thuật Ten-crop, ngẫu nhiên crop ảnh 48x48 ra thành 10 phần với kích thước 40x40 Nhờ kỹ thuật này, dữ liệu trở nên đa dạng và làm tăng độ chính xác của mô hình.
Hình 18: Thử nghiệm Ten-crop n Sử dụng Optimizer và Scheduler
Hình 19: Các kết quả training VGGNet với Optimizer và Scheduler khác nhau
- Như trong bài đã thực nghiệm, mô hình đạt độ chính xác cao nhất khi sử dụng SGD, và đạt độ chính xác thấp nhất khi sử dụng Adadelta.
- Đối với learning rate, mô hình đạt độ chính xác cao nhất khi sử dụng
Reduce Learning Rate on Plateau (RLRP), và đạt độ chính xác thấp hơn khi thử nghiệm các Scheduler còn lại. o Thử nghiệm các mô hình
- Sau khi thử nghiệm huấn luyện bộ dữ liệu lần lượt với các mô hình VGGNet, EfficientNetb3, Resnet50 và Resnet101, kết quả đều cho thấy rằng độ chính xác trên tập test đều đạt cao nhất ở mức dao động là 69.1%.
3 Weakly Supervised Coupled Networks for Visual Sentiment Analysis a Thử nghiệm các mô hình
- Sau khi thử nghiệm huấn luyện bộ dữ liệu lần lượt với các mô hìnhResnet18, Resnet34, Resnet50, Resnet101, kết quả cho thấy rằng mô hìnhResnet50 cho kết quả độ chính xác cao nhất trên tập test là 68.03% khi sử dụng cùng bộ Optimizer SGD và Scheduler StepLR. p Tập dữ liệu
- Mô hình chưa đạt được độ chính xác như trong paper Kết quả như vậy có thể do dataset trong paper gồm các ảnh màu trong khi bộ FER2013 được sử dụng chỉ có màu đen trắng.