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[.]
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 khuôn mặt MỤC LỤC MỤC LỤC DANH MỤC HÌNH CÁC TỪ VIẾT TẮT GIỚI THIỆU 1.1 GIỚI THIỆU 1.2 MỤC TIÊU 1.3 GIỚI HẠN ĐỀ TÀI THÁCH THỨC PHƯƠNG PHÁP DCNN 3.1 Giới thiệu CNN 3.2 Cấu trúc DCNN 3.2.1 Giới thiệu DCNN 3.2.2 Lớp Convolution 3.2.3 Lớp Pooling 10 3.2.4 Lớp Fully-Connected 10 3.3 Giải thách thức sử dụng DCNN 11 TẬP DỮ LIỆU VÀ MÔI TRƯỜNG HUẤN LUYỆN 12 4.1 Tập 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 dự án 13 KẾT QUẢ THỰC HIỆN 15 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 DANH MỤC HÌNH Hình Hình ảnh bị nhiễu cường độ ánh sáng thấp Hình 2 Hình ảnh chụp nhiều tư Hình Hình ảnh bị che đeo kiếng mát Hình Mơ hình CNN Hình Ma trận cửa sổ trượt Hình 3 Cấu trúc DCNN so với CNN Hình Mơ hình ma trận vào, lớp Convolutional Hình Ảnh trước sau lớp Pooling 10 Hình Ảnh chụp với nhiều tư 11 Hình Nhận dạng cảm xúc bị che phần 11 Hình Ví dụ tập liệu sử dụng 12 Hình Trang web kaggle.com 13 Hình Mơ hình DCNN thực 14 Hình Giá trị “accuracy” “loss” 15 Hình Phân phối hiệu suất 16 Hình Ma trận tương quan 16 Hình Bảng dự đốn kết 17 Hình 5 Kết thực chạy tập kiểm tra 17 CÁC TỪ VIẾT TẮT CNN : Convolutional Neural Network DCNN: Deep Convolutional Neural Network GIỚI THIỆU 1.1 GIỚI THIỆU Con người giỏi việc nhận diện khn mặt hình mẫu phức tạp Ngay thời gian trôi qua không ảnh hưởng đến khả người muốn máy tính trở nên mạnh mẽ họ việc nhận diện khn mặt [1] Hệ thống nhận diện khn mặt giúp: Tra cứu thông tin tội phạm Giám sát camera để phát tội phạm khu vực cơng cộng Tìm trẻ lạc dựa vào camera đặt nơi công cộng Phát nhân vật VIP đặt chân vào khách sạn Phát tội phạm nơi công cộng Biểu thức tiết lộ diễn tâm trí người thời điểm Những điều thường thể qua lời nói, cử thể nét mặt Trong tất phương thức biểu hiện có, nét mặt dường phương tiện biểu cảm mà người thể cảm xúc Vai trị quan trọng nét mặt sống hàng ngày người khiến số nhà nghiên cứu phát triển hệ thống tự động để nhận biết 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 khn mặt có hình Xác định đối tượng nhanh chóng đủ tin tưởng (độ xác 90%) 1.3 GIỚI HẠN ĐỀ TÀI Hệ thống nhận dạng khuôn mặt ánh xạ để phát cảm xúc người bao gồm: bình thường, vui, buồn, giận dữ, ngạc nhiên, sợ hãi ghê tởm Hệ thống nhận diện ảnh cắt sẵn khuôn mặt để đưa vào huấn luyện kiểm tra THÁCH THỨC Trong thực tế việc nhận diện khn mặt gặp nhiều khó khăn Các yếu tố làm ảnh hưởng đến xác kết ảnh: Đặc điểm khuôn mặt khác nhau: người có đặc điểm chân mày, mắt, mũi, miệng khác dẫn đến việc nhận dạng bị sai lệch Ví dụ: người có nếp nhăn trán bị nhíu chân mày chưa trạng thái giận dữ… Hình Hình ảnh bị nhiễu cường độ ánh sáng thấp Ánh sáng: cường độ sáng đối tượng, ánh sáng thay đổi, thông tin đối tượng bị ảnh hưởng [1] Hình 2 Hình ảnh chụp nhiều tư Tư đối tượng: tư đối tượng xác định thông tin đối tượng Việc tư thay đổi lớn làm thay phần lớn thông tin đối tượng, dẫn đến kết nhận dạng sai Hình Hình ảnh bị che đeo kiếng mát Trang phục đối tượng: Kết nhận dạng bị ảnh hưởng lớn đối tượng có trang phục khác biệt so với mẫu đeo kính, đội mũ,… [1] 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) mơ hình Deep Learning tiên tiến giúp cho xây dựng hệ thống thông minh với độ xác cao nay: hệ thống xử lý ảnh lớn Facebook, Google hay Amazon đưa vào sản phẩm chức thông minh nhận dạng khuôn mặt người dùng, phát triển xe tự lái hay drone giao hàng tự động CNN bao gồm lớp “Convolution” “Max-Pooling” xếp xen kẽ với Giai đoạn cuối thường gồm nhiều lớp “Fully-Connected” Hình Mơ hình CNN Convolutional: Là cửa sổ trượt (Sliding Windows) ma trận Hình Ma trận cửa sổ trượt Các convolutional layer có parameter(kernel) học để tự điều chỉnh lấy thông tin xác mà khơng cần chọn feature Convolution hay tích chập nhân phần tử ma trận Sliding Window hay gọi kernel, filter feature detect ma trận có kích thước nhỏ ví dụ 3×3 3.2 Cấu trúc DCNN 3.2.1 Giới thiệu DCNN DCNN có cấu trúc giống với CNN số lượng hidden layers lại nhiều so với CNN thông thường Những hidden layers sử dụng để trích xuất nhiều đặc trưng tăng độ xác cho thuật toán [3] DCNN chia làm loại: Tăng số lượng hidden layers Tăng số lượng nodes hidden layers Hình 3 Cấu trúc DCNN so với CNN Mạng DCNN tập hợp lớp Convolution chồng lên sử dụng hàm nonlinear activation ReLU để kích hoạt trọng số node Mỗi lớp sau thơng qua hàm kích hoạt tạo thông tin trừu tượng cho lớp Mỗi lớp sau thông qua hàm kích hoạt tạo thơng tin trừu tượng cho lớp Mỗi lớp sử dụng filter khác thơng thường có hàng trăm hàng nghìn filter kết hợp kết chúng lại Ngồi có số layer khác pooling/subsampling layer dùng để chắt lọc lại thơng tin hữu ích (loại bỏ thơng tin nhiễu) Trong trình huấn luyện mạng (traning) DCNN tự động học giá trị qua lớp filter dựa vào cách thức thực Cũng giống mơ hình CNN, DCNN có khía cạnh cần quan tâm tính bất biến (Location Invariance) tính kết hợp (Compositionality) Với đối tượng, đối tượng chiếu theo gốc độ khác (translation, rotation, scaling) độ xác thuật tốn bị ảnh hưởng đáng kể Pooling layer cho bạn tính bất biến phép dịch chuyển (translation), phép quay (rotation) phép co giãn (scaling) Tính kết hợp cục cho ta cấp độ biểu diễn thông tin từ mức độ thấp đến mức độ cao trừu tượng thông qua convolution từ filter Đó lý DCNN cho mơ hình với độ xác cao 3.2.2 Lớp Convolution Convolution layer lớp quan trọng lớp của mơ hình DCNN Lớp có chức phát đặc trưng có tính khơng gian hiệu Trong tầng có đối tượng là: ma trận đầu vào, filters, receptive field, feature map Conv layer nhận đầu vào ma trận chiều filters cần phải học Bộ filters trượt qua vị trí ảnh để tính tích chập (convolution) filter phần tương ứng ảnh Phần tương ứng ảnh gọi receptive field, tức vùng mà neuron nhìn thấy để đưa định, mà trận cho bới trình gọi feature map [4] Để hình dung, bạn tưởng tượng, filters giống tháp canh nhà tù quét qua không gian xung quanh để tìm kiếm tên tù nhân bỏ trốn Khi phát tên tù nhân bỏ trốn, chng báo động reo lên, giống filters tìm kiếm đặc trưng định tích chập cho giá trị lớn Hình Mơ hình ma trận vào, lớp Convolutional 3.2.3 Lớp Pooling Sau hàm kích hoạt, thơng thường sử dụng tầng pooling Một số loại pooling layer phổ biến max-pooling, average pooling, với chức giảm chiều tầng trước Với pooling có kích thước 2x2, bạn cần phải trược filter 2x2 vùng ảnh có kích thước tương tự sau tính max, hay average cho vùng ảnh [4] Hình Ảnh trước sau lớp Pooling Ý tưởng đằng sau tầng pooling vị trí tuyết đối đặc trưng khơng gian ảnh khơng cịn cần thiết, thay vào vị trí tương đối giữ đặc trưng đủ để phân loại đối tượng Hơn giảm tầng pooling có khả giảm chiều nhiều, làm hạn chế over-fitting giảm thời gian huấn luyện tốt 3.2.4 Lớp Fully-Connected Tầng cuối mơ hình DCNN tốn phân loại ảnh tầng fully connected layer Tầng có chức chuyển ma trận đặc trưng tầng trước thành vector chứa xác suất đối tượng cần dự đốn Ví dụ, tố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 chuyển ma trận đặc trưng tầng trước thành vector có 10 chiều thể xác suất 10 lớp tương ứng [4] 10 3.3 Giải thách thức sử dụng DCNN Khi thực phương pháp DCNN, toán giải khó khăn thường hay gặp phải Vị dụ như: Giải vấn đề nhận dạng cảm xúc trời tối Hình Ảnh chụp với nhiều tư Giải vấn đề ảnh chụp nhiều tư Hình Nhận dạng cảm xúc bị che phần Nhận dạng cảm xúc khuôn mặt dù ảnh bị che hay bị mờ 11 TẬP DỮ LIỆU VÀ MÔI TRƯỜNG HUẤN LUYỆN 4.1 Tập liệu sử dụng Trong dự án nhóm lựa chọn liệu FER2013 Dữ liệu bao gồm hình ảnh thang độ xám 48x48 pixel khuôn mặt Các khuôn mặt tự động nhiều chiếm khoảng khơng gian hình ảnh Nhiệm vụ phân loại khuôn mặt dựa cảm xúc thể nét mặt thành bảy loại (0 = Giận dữ, = Chán ghét, = Sợ hãi, = Hạnh phúc, = Buồn, = Bất ngờ, = Trung lập ) [5] Hình Ví dụ tập liệu sử dụng Trong tập liệu FER2013, cảm xúc bao gồm nhiều ảnh với tư khác độ sáng background đa dạng Việc hỗ trợ nhiều việc huấn luyện mơ hình Kết hợp với phương pháp DCNN ta dễ dàng giải vấn đề thách thức việc huấn luyện đưa vào kiểm tra Chia tập liệu thành hai phần bao gồm train(80%) gồm 28709 ảnh test(20%) bao gồm 7178 ảnh Với tập liệu lớn ta chia tập train thành hai liệu train(80%) gồm 22976 ảnh tập valid(20%) gồm 5742 ảnh để huấn luyện đạt kết tốt Như tập liệu chia thành ba phần gồm: Train: 2967 ảnh Valid: 5742 ảnh Test: 7178 12 4.2 Mơi trường huấn luyện Mơ hình huấn luyện kaggle.com Hình Trang web kaggle.com Thực kaggle có ưu điểm: Tốc độ xử lý nhanh: Đối với máy có cấu hình yếu, khơng thể chạy máy tính được, ta chạy kaggle Kaggle cung cấp cho môi trường làm việc gồm CPU/GPU, RAM để thực Dữ liệu: Trên kaggle cung cấp nhiều tập liệu sử dụng Ta lấy thêm trực tiếp sử dụng Bên cạnh 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 kaggle cho phép tiếng Nếu mô hình thuật tốn chạy q lâu bị gián đoạn ta phải chạy lại từ đầu 4.3 Mơ hình DCNN sử dụng dự án Trong dự án lần này, nhóm thực mơ hình DCNN với: lớp Convolution lớp Maxpooling 13 Hình Mơ hình DCNN thực 14 Trong mơ hình DCNN thực dự án, nhóm có thêm hàm “Batch Normalization” “dropout”: Hàm “Batch Normalization”, chuẩn hóa hàng loạt, phương pháp sử dụng để làm cho mạng nơ-ron nhân tạo nhanh ổn định thơng qua q trình chuẩn hóa lớp đầu vào cách chia tỷ lệ lại [6] Chuẩn hóa hàng loạt làm giảm số lượng 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 việc bỏ qua vài unit suốt q trình train mơ hình, unit bị bỏ qua lựa chọn ngẫu nhiên Việc bỏ học giúp ta tránh việc bị “over-fitting” KẾT QUẢ THỰC HIỆN Đánh giá kết mơ hình dựa việc nhận dạng cảm xúc khuôn mặt Đối tượng cần quan tâm độ xác việc nhận dạng cảm xúc Hình Giá trị “accuracy” “loss” Trong hình 5.1, ta thấy biểu đồ biểu diễn độ xác(hình bên trái) đạt giá trị cao train 0.5969 valid 0.6313 Xu hướng độ xác cịn tiếp tục theo chiều hướng lên Để cải thiện độ xác ta tăng epochs để huấn luyện đạt kết tốt Và biểu đồ biểu diễn giá “loss”(hình bên phải) đạt giá trị thấp train 1.1004và valid 1.0080 Xu hướng giá trị “loss” xuống nên việc tăng epochs cải thiện tốt mơ hình 15 Hình Phân phối hiệu suất Trong hình 5.2, kết cho thấy việc phân phối ngưỡng đạt mơ hình Do mơ hình huấn luyện đạt kết 0.6(đối với “accuracy” hình bên trái) 1.1(đối với “loss” hình bên phải) epoch gần cuối nên đa phần ngưỡng tập trung nhiều từ 0.5-0.6(hình bên trái) 1-1.3(hình bên phải) Hình Ma trận tương quan Để đánh giá mơ hình chạy tốt hay khơng tố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 ma trận tương quan để đánh giá mơ hình, đường chéo đạt kết cao(so với cột đó) mơ 16 hình ta hoạt động tốt Dựa vào ma trận ta xem class dễ bị nhầm lẫn với Hình Bảng dự đốn kết Trong hình 5.4, ta thấy độ xác trung bình mơ hình đạt 0.63 Ta từ ma trận tương quan để đưa giá trị “precision” “recall” để đánh giá Hình 5 Kết thực chạy tập kiểm tra Để kiểm tra mơ hình, ta sử dụng train để đưa vào mơ hình kiểm tra Chọn ngẫu nhiên bảy hình từ hai class giận hạnh phúc để xem xét Kết đa phần 17 ảnh dự đốn xác Bên cạnh số ảnh chụp nhiều tư dự đốn xác KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 6.1 Kết luận Sau tìm hiểu thực đề tài “ Nhận dạng cảm xúc khuôn mặt”, nhóm đạt kết sau: Hệ thống nhận dạng cảm xúc gồm: bình thường, vui, buồn, giận dữ, ngạc nhiên, sợ hãi ghê tởm khuôn mặt với ảnh đầu vào ảnh chụp sẵn Phát cảm xúc khuôn mặt nhiều tư Tuy nhiên hệ thống số nhược điểm chưa khắc phục được: Hệ thống cịn xảy tình trạng nhận dạng khơng xác cảm xúc buồn ngạc nhiên Hạn chế công cụ huấn luyện nên độ xác khơng cao(độ xác 0.63 chưa đạt so với yêu cầu ban đầu) Hướng mặt ảnh đầu vào phải trực diện với camera, góc nghiêng lớn 30º hệ thống khơng phát cảm xúc khuôn mặt 6.2 Hướng phát triển Cải thiện model để đạt độ xác cao: Thay đổi layer DCNN: nhóm dự kiến thay đổi cấu trúc DCNN để xem thay đổi có ảnh hưởng nhiều đến kết hay khơng Tăng số lượng datasets: tập liệu ban đầu cịn có chênh lệch liệu biểu cảm nên nhóm dự kiến tăng số lượng cách thay đổi độ sáng hay background ảnh để tăng liệu(cân liệu ảnh) Phát triển mơ hình để áp dụng thực tế: Nhận dạng cảm xúc video,camera,… Trong thực tế việc nhận dạng cảm xúc đóng vai trị quan trọng khảo sát hay trình bày sản phầm Phát triển mơ hình vừa phát vừa nhận dạng cảm xúc khuôn mặt để thống kê kết Từ đưa đánh giá tốt cho hướng phát triển sản phẩm 18 TÀI LIỆU THAM KHẢO [ "FPT TECHINSIGHT," [Online] Available: https://techinsight.com.vn/nhan-dien1 khuon-mat-va-ung-dung-thuc-te/ ] [ "ScienceDirect," [Online] Available: https://www.sciencedirect.com/science/article/pii/S2468227620302039 ] [ "TopDev," [Online] Available: https://topdev.vn/blog/thuat-toan-cnn-convolutional3 neural-network/ ] [ Q Pham [Online] Available: https://pbcquoc.github.io/cnn/#:~:text=Convolution%20layer%20l%C3%A0%20l%E1 ] %BB%9Bp%20quan,t%C3%ADnh%20kh%C3%B4ng%20gian%20hi%E1%BB%87u %20qu%E1%BA%A3.&text=B%E1%BB%99%20filters%20n%C3%A0y%20s%E1% BA%BD%20tr%C6%B0%E1%BB%A3t,t%C6%B0%C6%A1ng%20%E1%BB%A9ng %20tr [ "Kaggle," [Online] Available: https://www.kaggle.com/c/challenges-in-representation5 learning-facial-expression-recognition-challenge/data ] [ "Machine learning Mastery," [Online] Available: https://machinelearningmastery.com/batch-normalization-for-training-of-deep-neural] networks/#:~:text=Batch%20normalization%20is%20a%20technique,required%20to% 20train%20deep%20networks [ "Towards data science," [Online] Available: https://towardsdatascience.com/batch7 normalization-in-neural-networks-1ac91516821c ] Link download: https://drive.google.com/file/d/1JaRo3A-cjtj92Qcifhx1P-oao0MtIkB0/view?usp=sharing 19 ... Vị dụ như: Giải vấn đề nhận dạng cảm xúc trời tối Hình Ảnh chụp với nhiều tư Giải vấn đề ảnh chụp nhiều tư Hình Nhận dạng cảm xúc bị che phần Nhận dạng cảm xúc khuôn mặt dù ảnh bị che hay... “ Nhận dạng cảm xúc khuôn mặt”, nhóm đạt kết sau: Hệ thống nhận dạng cảm xúc gồm: bình thường, vui, buồn, giận dữ, ngạc nhiên, sợ hãi ghê tởm khuôn mặt với ảnh đầu vào ảnh chụp sẵn Phát cảm. .. nhận dạng cảm xúc khuôn mặt cho phép nhận diện biểu cảm khn mặt có hình Xác định đối tượng nhanh chóng đủ tin tưởng (độ xác 90%) 1.3 GIỚI HẠN ĐỀ TÀI Hệ thống nhận dạng khuôn mặt ánh xạ để phát cảm