1. Trang chủ
  2. » Tất cả

Nhận dạng cảm xúc trên khuôn mặt

20 1 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Nhận dạng cảm xúc trên khuôn mặt
Trường học Trường Đại học Sư phạm Kỹ Thuật Thành phố Hồ Chí Minh
Chuyên ngành Khoa Đào Tạo Chất Lượng Cao
Thể loại Báo cáo cuối kỳ
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 20
Dung lượng 842,57 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

1 TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH KHOA ĐÀO TẠO CHẤT LƯỢNG CAO BÁO CÁO CUỐI KỲ Nhận dạng cảm xúc trên khuôn mặt 1 MỤC LỤC MỤC LỤC 1 DANH MỤC HÌNH 2 CÁC TỪ VIẾT TẮT 3 1 GIỚI THIỆU[.]

Trang 1

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH

KHOA ĐÀO TẠO CHẤT LƯỢNG CAO

BÁO CÁO CUỐI KỲ

Nhận dạng cảm xúc trên khuôn mặt

Trang 2

MỤC LỤC

MỤC LỤC 1

DANH MỤC HÌNH 2

CÁC TỪ VIẾT TẮT 3

1 GIỚI THIỆU 4

1.1 GIỚI THIỆU 4

1.2 MỤC TIÊU 4

1.3 GIỚI HẠN ĐỀ TÀI 4

2 THÁCH THỨC 5

3 PHƯƠNG PHÁP DCNN 6

3.1 Giới thiệu CNN 6

3.2 Cấu trúc của DCNN 8

3.2.1 Giới thiệu DCNN 8

3.2.2 Lớp Convolution 9

3.2.3 Lớp Pooling 10

3.2.4 Lớp Fully-Connected 10

3.3 Giải quyết các thách thức khi sử dụng DCNN 11

4 TẬP DỮ LIỆU VÀ MÔI TRƯỜNG HUẤN LUYỆN 12

4.1 Tập dữ liệu sử dụng 12

4.2 Môi trường huấn luyện 13

4.3 Mô hình DCNN sử dụng trong dự án 13

5 KẾT QUẢ THỰC HIỆN 15

6 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 18

6.1 Kết luận 18

6.2 Hướng phát triển 18

TÀI LIỆU THAM KHẢO 19

Trang 3

DANH MỤC HÌNH

Hình 2 1 Hình ảnh bị nhiễu do cường độ ánh sáng thấp 5

Hình 2 2 Hình ảnh chụp nhiều tư thế 5

Hình 2 3 Hình ảnh bị che do đeo kiếng mát 6

Hình 3 1 Mô hình CNN 7

Hình 3 2 Ma trận cửa sổ trượt 7

Hình 3 3 Cấu trúc DCNN so với CNN 8

Hình 3 4 Mô hình ma trận vào, ra ở lớp Convolutional 9

Hình 3 5 Ảnh trước và sau lớp Pooling 10

Hình 3 6 Ảnh được chụp với nhiều tư thế 11

Hình 3 7 Nhận dạng cảm xúc khi bị che một phần 11

Hình 4 1 Ví dụ về tập dữ liệu sử dụng 12

Hình 4 2 Trang web kaggle.com 13

Hình 4 3 Mô hình DCNN thực hiện 14

Hình 5 1 Giá trị “accuracy” và “loss” 15

Hình 5 2 Phân phối hiệu suất 16

Hình 5 3 Ma trận tương quan 16

Hình 5 4 Bảng dự đoán kết quả 17

Hình 5 5 Kết quả thực hiện khi chạy trên tập kiểm tra 17

Trang 4

CÁC TỪ VIẾT TẮT

CNN : Convolutional Neural Network

DCNN: Deep Convolutional Neural Network

Trang 5

1 GIỚI THIỆU

1.1 GIỚI THIỆU

Con người rất giỏi việc nhận diện khuôn mặt và các hình mẫu phức tạp Ngay cả khi một thời gian trôi qua vẫn không ảnh hưởng đến khả năng này và con người muốn máy tính trở nên mạnh mẽ như họ trong việc nhận diện khuôn mặt [1]

Hệ thống nhận diện khuôn mặt có thể giúp:

 Tra cứu thông tin tội phạm

 Giám sát bằng camera để phát hiện tội phạm tại các khu vực công cộng

 Tìm trẻ lạc dựa vào các camera đặt ở các nơi công cộng

 Phát hiện các nhân vật VIP đặt chân vào khách sạn

 Phát hiện tội phạm tại các nơi công cộng

Biểu thức tiết lộ những gì diễn ra trong tâm trí con người tại một thời điểm Những điều này thường được thể hiện qua lời nói, cử chỉ cơ thể hoặc nét mặt Trong tất cả các phương thức biểu hiện hiện có, nét mặt dường như là phương tiện biểu cảm nhất mà con người thể hiện cảm xúc của mình Vai trò quan trọng của nét mặt trong cuộc sống hàng ngày của con người đã khiến một số nhà nghiên cứu phát triển các hệ thống tự động để nhận biết và giải thích chúng [2]

1.2 MỤC TIÊU

Xây dựng hệ thống nhận dạng cảm xúc khuôn mặt cho phép nhận diện biểu cảm của từng khuôn mặt có trong hình

Xác định đối tượng nhanh chóng và đủ tin tưởng (độ chính xác hơn 90%)

1.3 GIỚI HẠN ĐỀ TÀI

Hệ thống chỉ nhận dạng khuôn mặt rồi ánh xạ để phát hiện cảm xúc của con người bao gồm: bình thường, vui, buồn, giận dữ, ngạc nhiên, sợ hãi và ghê tởm

Hệ thống chỉ nhận diện được những ảnh được cắt sẵn khuôn mặt để đưa vào huấn luyện và kiểm tra

Trang 6

2 THÁCH THỨC

Trong thực tế việc nhận diện khuôn mặt gặp rất nhiều khó khăn Các yếu tố làm ảnh

hưởng đến sự chính xác của kết quả ảnh:

 Đặc điểm khuôn mặt khác nhau: mỗi người đều có đặc điểm chân mày, mắt,

mũi, miệng khác nhau dẫn đến việc nhận dạng bị sai lệch Ví dụ: người có nếp

nhăn trên trán và bị nhíu chân mày chưa chắc là đang trong trạng thái giận

dữ…

Hình 2 1 Hình ảnh bị nhiễu do cường độ ánh sáng thấp

 Ánh sáng: cường độ sáng của đối tượng, do đó khi ánh sáng thay đổi, thông tin

về đối tượng sẽ bị ảnh hưởng [1]

Hình 2 2 Hình ảnh chụp nhiều tư thế

Trang 7

 Tư thế của đối tượng: tư thế của đối tượng sẽ xác định thông tin của đối tượng

đó Việc tư thế thay đổi quá lớn sẽ làm thay phần lớn thông tin về đối tượng, dẫn đến kết quả nhận dạng sai

Hình 2 3 Hình ảnh bị che do đeo kiếng mát

 Trang phục của đối tượng: Kết quả nhận dạng có thể bị ảnh hưởng lớn nếu như đối tượng có các trang phục khác biệt so với mẫu như đeo kính, đội mũ,… [1]

3 PHƯƠNG PHÁP DCNN

3.1 Giới thiệu CNN

Convolutional Neural Network (CNN – Mạng nơ-ron tích chập sâu) là một trong những mô hình Deep Learning tiên tiến giúp cho chúng ta xây dựng được những hệ thống thông minh với độ chính xác cao như hiện nay: hệ thống xử lý ảnh lớn như Facebook, Google hay Amazon đã đưa vào sản phẩm của mình những chức năng thông minh như nhận dạng khuôn mặt người dùng, phát triển xe hơi tự lái hay drone giao hàng tự động CNN bao gồm các lớp “Convolution” và “Max-Pooling” được xếp xen kẽ với nhau Giai đoạn cuối thường gồm 1 hoặc nhiều lớp “Fully-Connected”

Trang 8

Hình 3 1 Mô hình CNN

Convolutional:

Là một cửa sổ trượt (Sliding Windows) trên một ma trận

Hình 3 2 Ma trận cửa sổ trượt

Các convolutional layer có các parameter(kernel) đã được học để tự điều chỉnh lấy ra những thông tin chính xác nhất mà không cần chọn các feature

Convolution hay tích chập là nhân từng phần tử trong ma trận 3 Sliding Window hay còn gọi là kernel, filter hoặc feature detect là một ma trận có kích thước nhỏ như trong ví

dụ trên là 3×3

Trang 9

3.2 Cấu trúc của DCNN

3.2.1 Giới thiệu DCNN

DCNN có cấu trúc giống với CNN nhưng số lượng các hidden layers lại nhiều hơn

so với CNN thông thường Những hidden layers này được sử dụng để trích xuất nhiều đặc trưng hơn và tăng độ chính xác cho thuật toán [3]

DCNN được chia ra làm 2 loại:

 Tăng số lượng các hidden layers

 Tăng số lượng các nodes trong 1 hidden layers

Hình 3 3 Cấu trúc DCNN so với CNN

Mạng DCNN là một tập hợp các lớp Convolution chồng lên nhau và sử dụng các hàm nonlinear activation như ReLU và tanh để kích hoạt các trọng số trong các node Mỗi một lớp sau khi thông qua các hàm kích hoạt sẽ tạo ra các thông tin trừu tượng hơn cho các lớp tiếp theo Mỗi một lớp sau khi thông qua các hàm kích hoạt sẽ tạo ra các thông tin trừu tượng hơn cho các lớp tiếp theo

Mỗi một lớp được sử dụng các filter khác nhau thông thường có hàng trăm hàng nghìn filter như vậy và kết hợp kết quả của chúng lại Ngoài ra có một số layer khác như pooling/subsampling layer dùng để chắt lọc lại các thông tin hữu ích hơn (loại bỏ các thông tin nhiễu) Trong quá trình huấn luyện mạng (traning) DCNN tự động học các giá trị qua các lớp filter dựa vào cách thức thực hiện

Trang 10

Cũng giống như mô hình CNN, DCNN cũng có 2 khía cạnh cần quan tâm là tính bất biến (Location Invariance) và tính kết hợp (Compositionality) Với cùng một đối tượng, nếu đối tượng này được chiếu theo các gốc độ khác nhau (translation, rotation, scaling) thì

độ chính xác của thuật toán sẽ bị ảnh hưởng đáng kể Pooling layer sẽ cho bạn tính bất biến đối với phép dịch chuyển (translation), phép quay (rotation) và phép co giãn (scaling) Tính kết hợp cục bộ cho ta các cấp độ biểu diễn thông tin từ mức độ thấp đến mức độ cao và trừu tượng hơn thông qua convolution từ các filter Đó là lý do tại sao DCNN cho ra mô hình với độ chính xác rất cao

3.2.2 Lớp Convolution

Convolution layer là lớp quan trọng nhất và cũng là lớp đầu tiên của của mô hình DCNN Lớp này có chức năng chính là phát hiện các đặc trưng có tính không gian hiệu quả Trong tầng này có 4 đối tượng chính là: ma trận đầu vào, bộ filters, và receptive field, feature map Conv layer nhận đầu vào là một ma trận 3 chiều và một bộ filters cần phải học Bộ filters này sẽ trượt qua từng vị trí trên bức ảnh để tính tích chập (convolution) giữa

bộ filter và phần tương ứng trên bức ảnh Phần tương ứng này trên bức ảnh gọi là receptive field, tức là vùng mà một neuron có thể nhìn thấy để đưa ra quyết định, và mà trận cho ra bới quá trình này được gọi là feature map [4]

Để hình dung, các bạn có thể tưởng tượng, bộ filters giống như các tháp canh trong nhà tù quét lần lượt qua không gian xung quanh để tìm kiếm tên tù nhân bỏ trốn Khi phát hiện tên tù nhân bỏ trốn, thì chuông báo động sẽ reo lên, giống như các bộ filters tìm kiếm được đặc trưng nhất định thì tích chập đó sẽ cho giá trị lớn

Hình 3 4 Mô hình ma trận vào, ra ở lớp Convolutional

Trang 11

3.2.3 Lớp Pooling

Sau hàm kích hoạt, thông thường chúng ta sử dụng tầng pooling Một số loại pooling layer phổ biến như là max-pooling, average pooling, với chức năng chính là giảm chiều của tầng trước đó Với một pooling có kích thước 2x2, các bạn cần phải trược filter 2x2 này trên những vùng ảnh có kích thước tương tự rồi sau đó tính max, hay average cho vùng ảnh đó [4]

Hình 3 5 Ảnh trước và sau lớp Pooling

Ý tưởng đằng sau tầng pooling là vị trí tuyết đối của những đặc trưng trong không gian ảnh không còn cần thiết, thay vào đó vị trí tương đối giữ các đặc trưng đã đủ để phân loại đối tượng Hơn nữa giảm tầng pooling có khả năng giảm chiều cực kì nhiều, làm hạn chế over-fitting và giảm thời gian huấn luyện tốt

3.2.4 Lớp Fully-Connected

Tầng cuối cùng của mô hình DCNN trong bài toán phân loại ảnh là tầng fully connected layer Tầng này có chức năng chuyển ma trận đặc trưng ở tầng trước thành vector chứa xác suất của các đối tượng cần được dự đoán Ví dụ, trong bài toán phân loại số viết tay MNIST có 10 lớp tương ứng 10 số từ 0-1, tầng fully connected layer sẽ chuyển ma trận đặc trưng của tầng trước thành vector có 10 chiều thể hiện xác suất của 10 lớp tương ứng [4]

Trang 12

3.3 Giải quyết các thách thức khi sử dụng DCNN

Khi thực hiện bằng phương pháp DCNN, bài toán đã giải quyết được những khó khăn thường hay gặp phải Vị dụ như:

 Giải quyết vấn đề nhận dạng được cảm xúc khi trời tối

Hình 3 6 Ảnh được chụp với nhiều tư thế

 Giải quyết được vấn đề khi ảnh được chụp ở nhiều tư thế

Hình 3 7 Nhận dạng cảm xúc khi bị che một phần

 Nhận dạng được cảm xúc khuôn mặt dù ảnh bị che hay bị mờ đi

Trang 13

4 TẬP DỮ LIỆU VÀ MÔI TRƯỜNG HUẤN LUYỆN

4.1 Tập dữ liệu sử dụng

Trong dự án này nhóm lựa chọn bộ dữ liệu FER2013

Dữ liệu bao gồm hình ảnh thang độ xám 48x48 pixel của khuôn mặt Các khuôn mặt

đã được tự động căn giữa nhiều hơn hoặc ít hơn và chiếm cùng một khoảng không gian trong mỗi hình ảnh Nhiệm vụ là phân loại từng khuôn mặt dựa trên cảm xúc thể hiện trên nét mặt thành một trong bảy loại (0 = Giận dữ, 1 = Chán ghét, 2 = Sợ hãi, 3 = Hạnh phúc,

4 = Buồn, 5 = Bất ngờ, 6 = Trung lập ) [5]

Hình 4 1 Ví dụ về tập dữ liệu sử dụng

Trong tập dữ liệu FER2013, các cảm xúc bao gồm nhiều ảnh với các tư thế khác nhau

và độ sáng của background cũng đa dạng Việc này hỗ trợ rất nhiều trong việc huấn luyện

mô hình Kết hợp với phương pháp DCNN ta có thể dễ dàng giải quyết các vấn đề thách thức trong việc huấn luyện và đưa vào kiểm tra

Chia tập dữ liệu thành hai phần bao gồm bộ train(80%) gồm 28709 ảnh và bộ test(20%) bao gồm 7178 ảnh Với tập dữ liệu khá lớn ta có thể chia tập train thành hai bộ

dữ liệu là train(80%) gồm 22976 ảnh và tập valid(20%) gồm 5742 ảnh để huấn luyện đạt kết quả tốt hơn Như vậy tập dữ liệu sẽ được chia thành ba phần gồm:

 Train: 2967 ảnh

 Valid: 5742 ảnh

 Test: 7178

Trang 14

4.2 Môi trường huấn luyện

Mô hình được huấn luyện trên kaggle.com

Hình 4 2 Trang web kaggle.com

Thực hiện trên kaggle có những ưu điểm:

 Tốc độ xử lý nhanh: Đối với những máy có cấu hình yếu, không thể chạy trên máy tính được, ta có thể chạy trên kaggle Kaggle sẽ cung cấp cho chúng ta môi trường làm việc gồm CPU/GPU, RAM để thực hiện

 Dữ liệu: Trên kaggle cung cấp rất nhiều tập dữ liệu sử dụng Ta có thể lấy về hoặc thêm trực tiếp khi sử dụng

Bên cạnh đó cũng có nhiều khuyết điểm mà kaggle chưa tối ưu được:

 Thời gian thực hiện: Thời gian thực hiện trên kaggle chỉ cho phép 9 tiếng Nếu

mô hình thuật toán chạy quá lâu sẽ bị gián đoạn và ta phải chạy lại từ đầu

4.3 Mô hình DCNN sử dụng trong dự án

Trong dự án lần này, nhóm thực hiện mô hình DCNN với:

 6 lớp Convolution

 3 lớp Maxpooling

Trang 15

Hình 4 3 Mô hình DCNN thực hiện

Trang 16

Trong mô hình DCNN thực hiện trong dự án, nhóm có thêm hàm “Batch Normalization” và “dropout”:

 Hàm “Batch Normalization”, chuẩn hóa hàng loạt, là một phương pháp được

sử dụng để làm cho mạng nơ-ron nhân tạo nhanh hơn và ổn định hơn thông qua quá trình chuẩn hóa lớp đầu vào bằng cách căn giữa và chia tỷ lệ lại [6] Chuẩn hóa hàng loạt làm giảm số lượng do giá trị đơn vị ẩn thay đổi xung quanh [7]

 Hàm “Dropout”, bỏ học Trong mạng neural network, kỹ thuật dropout là việc chúng ta sẽ bỏ qua một vài unit trong suốt quá trình train trong mô hình, những unit bị bỏ qua được lựa chọn ngẫu nhiên Việc bỏ học giúp ta tránh việc bị

“over-fitting”

5 KẾT QUẢ THỰC HIỆN

Đánh giá kết quả của mô hình dựa trên việc nhận dạng đúng cảm xúc của khuôn mặt Đối tượng cần quan tâm là độ chính xác của việc nhận dạng cảm xúc

Hình 5 1 Giá trị “accuracy” và “loss”

Trong hình 5.1, ta thấy biểu đồ biểu diễn độ chính xác(hình bên trái) đạt giá trị cao nhất ở train là 0.5969 và ở valid là 0.6313 Xu hướng của độ chính xác vẫn còn tiếp tục theo chiều hướng lên Để cải thiện độ chính xác ta có thể tăng epochs để huấn luyện đạt được kết quả tốt hơn Và biểu đồ biểu diễn giá “loss”(hình bên phải) đạt giá trị thấp nhất ở train là 1.1004và ở valid là 1.0080 Xu hướng của giá trị “loss” vẫn còn xuống nên việc tăng epochs có thể cải thiện tốt mô hình

Trang 17

Hình 5 2 Phân phối hiệu suất

Trong hình 5.2, kết quả cho thấy việc phân phối các ngưỡng đạt được của mô hình

Do mô hình huấn luyện đạt kết quả trên 0.6(đối với “accuracy” hình bên trái) và dưới 1.1(đối với “loss” hình bên phải) ở các epoch gần cuối nên đa phần các ngưỡng tập trung nhiều từ 0.5-0.6(hình bên trái) và 1-1.3(hình bên phải)

Hình 5 3 Ma trận tương quan

Để đánh giá được mô hình chạy tốt hay không của bài toán nhận dạng nhiều class, ta dựa vào ma trận tương quan để đánh giá Dựa vào đường chéo chính của ma trận tương quan để đánh giá mô hình, nếu đường chéo chính đạt kết quả cao(so với cột đó) thì mô

Trang 18

hình ta hoạt động tốt Dựa vào ma trận ta cũng có thể xem những class nào dễ bị nhầm lẫn với nhau

Hình 5 4 Bảng dự đoán kết quả

Trong hình 5.4, ta thấy độ chính xác trung bình của mô hình đạt 0.63 Ta có thể từ

ma trận tương quan để đưa ra các giá trị “precision” và “recall” để đánh giá

Hình 5 5 Kết quả thực hiện khi chạy trên tập kiểm tra

Để kiểm tra mô hình, ta sử dụng bộ train để đưa vào mô hình kiểm tra Chọn ngẫu nhiên bảy tấm hình từ hai class là giận dữ và hạnh phúc để xem xét Kết quả đa phần các

Trang 19

ảnh được dự đoán chính xác Bên cạnh đó một số ảnh được chụp ở nhiều tư thế cũng được

dự đoán chính xác

6 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

6.1 Kết luận

Sau khi tìm hiểu và thực hiện đề tài “ Nhận dạng cảm xúc trên khuôn mặt”, nhóm đã đạt được những kết quả như sau:

 Hệ thống đã nhận dạng được 7 cảm xúc gồm: bình thường, vui, buồn, giận

dữ, ngạc nhiên, sợ hãi và ghê tởm trên khuôn mặt với ảnh đầu vào là ảnh đã được chụp sẵn

 Phát hiện cảm xúc khuôn mặt ở nhiều tư thế

Tuy nhiên hệ thống cũng còn một số nhược điểm chưa khắc phục được:

 Hệ thống vẫn còn xảy ra tình trạng nhận dạng không chính xác cảm xúc buồn

và ngạc nhiên

 Hạn chế công cụ huấn luyện nên độ chính xác không được cao(độ chính xác 0.63 chưa đạt so với yêu cầu ban đầu)

 Hướng mặt của ảnh đầu vào phải trực diện với camera, các góc nghiêng lớn hơn 30º thì hệ thống không phát hiện được cảm xúc khuôn mặt

6.2 Hướng phát triển

Cải thiện model để đạt độ chính xác cao:

 Thay đổi các layer trong DCNN: nhóm dự kiến thay đổi cấu trúc của DCNN

để xem sự thay đổi có ảnh hưởng nhiều đến kết quả hay không

 Tăng số lượng datasets: vì tập dữ liệu ban đầu còn có sự chênh lệch về dữ liệu giữa các biểu cảm nên nhóm dự kiến tăng số lượng bằng cách thay đổi độ sáng hay background của các ảnh để tăng dữ liệu(cân bằng dữ liệu giữa các ảnh) Phát triển mô hình để áp dụng trong thực tế: Nhận dạng cảm xúc bằng video,camera,… Trong thực tế việc nhận dạng cảm xúc cũng đóng vai trò quan trọng trong các cuộc khảo sát hay trình bày sản phầm mới Phát triển mô hình vừa phát hiện và vừa nhận dạng cảm xúc khuôn mặt để thống kê kết quả Từ đó đưa ra các đánh giá tốt nhất cho hướng phát triển của một sản phẩm

Ngày đăng: 11/02/2023, 09:44

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w