Nhận dạng cảm xúc thông qua khuôn mặt dùng mạng nơ ron tích chập CNN

83 56 1
Nhận dạng cảm xúc thông qua khuôn mặt dùng mạng nơ ron tích chập CNN

Đ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

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH CƠNG TRÌNH NGHIÊN CỨU KHOA HỌC CỦA SINH VIÊN NHẬN DẠNG CẢM XÚC THƠNG QUA KHN MẶT DÙNG MẠNG NƠ-RON TÍCH CHẬP CNN MÃ SỐ: SV2020-133 SKC 0 Tp Hồ Chí Minh, tháng 07/2020 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐH SƯ PHẠM KỸ THUẬT TPHCM BÁO CÁO TỔNG KẾT ĐỀ TÀI NGHIÊN CỨU KHOA HỌC CỦA SINH VIÊN NHẬN DẠNG CẢM XÚC THÔNG QUA KHUÔN MẶT DÙNG MẠNG NƠ-RON TÍCH CHẬP CNN SV2020-133 Chủ nhiệm đề tài: NGUYỄN VĂN PHÚC TP Hồ Chí Minh, tháng 7/2020 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐH SƯ PHẠM KỸ THUẬT TPHCM BÁO CÁO TỔNG KẾT ĐỀ TÀI NGHIÊN CỨU KHOA HỌC CỦA SINH VIÊN NHẬN DẠNG CẢM XÚC THƠNG QUA KHN MẶT DÙNG MẠNG NƠ-RON TÍCH CHẬP CNN SV2020-133 Thuộc nhóm ngành khoa học: Kỹ thuật Sinh viên thực hiện: Nguyễn Văn Phúc Nam, Nữ: Nam Dân tộc: Kinh Lớp: 16141CLVTA Khoa: Đào Tạo Chất Lượng Cao Năm thứ: Số năm đào tạo: năm Ngành học: Công nghệ kỹ thuật điện tử - truyền thông Giảng viên hướng dẫn: ThS Huỳnh Thị Thu Hiền TP Hồ Chí Minh, tháng 7/2020 MỤC LỤC MỤC LỤC i DANH MỤC HÌNH iv DANH MỤC BẢNG vii CÁC TỪ VIẾT TẮT viii THÔNG TIN KẾT QUẢ NGHIÊN CỨU CỦA ĐỀ TÀI ix CHƯƠNG TỔNG QUAN 1.1 TÌNH HÌNH NGHIÊN CỨU 1.2 LÝ DO CHỌN ĐỀ TÀI 1.3 MỤC TIÊU ĐỀ TÀI 1.4 PHƯƠNG PHÁP NGHIÊN CỨU 1.5 ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU 1.6 BỐ CỤC ĐỀ TÀI CHƯƠNG CƠ SỞ LÝ THUYẾT 2.1 TỔNG QUAN VỀ QUÁ TRÌNH XỬ LÝ ẢNH 2.1.1 Xử lý ảnh 2.1.2 Điểm ảnh 2.1.3 Độ phân giải 2.1.4 Tăng cường ảnh 2.1.5 Khôi phục ảnh 2.1.6 Phân tích ảnh 2.1.7 Nén liệu ảnh 2.1.8 Nhận dạng ảnh 2.2 KHUÔN MẶT VÀ CẢM XÚC 10 i 2.2.1 Đặc trưng mặt người : 10 2.2.2 Phương pháp tiếp cận đặc trưng khuôn mặt : 11 2.2.3 Biểu cảm khuôn mặt bày tỏ cảm xúc : 11 2.3 MẠNG NƠ-RON TÍCH CHẬP 12 2.3.1 Mạng nơ-ron nhân tạo 12 2.3.2 Mạng nơ-ron tích chập 15 2.3.2.1 Mơ hình tổng quan 15 2.3.2.2 Các lớp mô hình 16 2.3.3 Những vấn đề xảy với mô hình CNN 20 2.3.3.1 Quá khớp (Overfitting) 20 2.3.3.2 Drop out 21 2.4 Giới thiệu máy tính nhúng kit Raspberry Pi 23 2.5 Xử lý ảnh với Python 24 2.5.1 Giới thiệu ngôn ngữ lập trình Python: 24 2.5.2 Các thư viện sử dụng Python 25 CHƯƠNG THIẾT KẾ HỆ THỐNG NHẬN DẠNG CẢM XÚC THÔNG QUA KHN MẶT DÙNG MẠNG NƠ-RON TÍCH CHẬP TRÊN KIT RASPBERRY PI 28 3.1 YÊU CẦU CỦA HỆ THỐNG 28 3.2 MƠ HÌNH HỆ THỐNG 28 3.2.1 Sơ đồ khối hệ thống 28 3.2.2 Mơ hình CNN sử dụng hệ thống 29 3.3 TẬP DỮ LIỆU 30 3.3.1 Tập liệu mẫu có sẵn 30 ii 3.3.2 Tập liệu riêng 32 3.4 QUÁ TRÌNH HUẤN LUYỆN VÀ KIỂM TRA 34 3.4.1 Quá trình huấn luyện 34 3.4.2 Quá trình kiểm tra 35 CHƯƠNG KẾT QUẢ 37 4.1 KẾT QUẢ HUẤN LUYỆN VÀ KIỂM TRA 37 4.2 ỨNG DỤNG NHẬN DẠNG CẢM XÚC THÔNG QUA KHUÔN MẶT TRÊN KIT RASPBERRY PI 40 CHƯƠNG KẾT LUẬN VÀ KIẾN NGHỊ 53 5.1 KẾT LUẬN 53 5.2 KIẾN NGHỊ 53 TÀI LIỆU THAM KHẢO 54 PHỤ LỤC A 56 iii DANH MỤC HÌNH Hình 2.1: Quy trình xử lý ảnh Hình 2.2: Ví dụ pixel ảnh Hình 2.3: Sự thay đổi độ mịn hình ảnh theo kích thước Hình 2.4: Một số thơng tin tìm thấy ảnh khn mặt 11 Hình 2.5: Cấu trúc tổng quát mạng nơ-ron ANN 13 Hình 2.6: Quá trình xử lý thông tin mạng 13 Hình 2.7: Hàm tổng nhiều nơ-ron n input 14 Hình 2.8: Sự khác cấu trúc ANN CNN 15 Hình 2.9: Quá trình thực mạng CNN 16 Hình 2.10: CNN tìm điểm tương đồng ảnh 16 Hình 2.11: Chập ma trận ảnh với lọc 3x3 17 Hình 2.12: Ví dụ lớp RELU 18 Hình 2.13: Maxpooling với lọc 2x2, bước trượt 19 Hình 2.14: Phân lớp liệu lớp kết nối đầy đủ 20 Hình 2.15: Ví dụ minh họa lỗi khớp CNN 21 Hình 2.16: Kỹ thuật Drop-out giải vấn đề overfitting 22 Hình 2.17: Hình ảnh thực tế kit Raspberry Pi 23 Hình 2.18: Cấu trúc thư viện OpenCV 26 Hình 3.1: Sơ đồ khối hệ thống 28 Hình 3.2: Kiến trúc mạng CNN dùng hệ thống 29 Hình 3.3: Một số hình ảnh tập liệu mẫu 31 Hình 3.4: Biểu đồ số lượng cảm xúc tập liệu mẫu FERC-2013 32 Hình 3.5: Biểu đồ phân loại số lượng cảm xúc tập liệu riêng 33 iv Hình 3.6: Lưu đồ thuật tốn q trình huấn luyện 35 Hình 3.7: Lưu đồ thuật tốn q trình kiểm tra 36 Hình 4.1: Biểu đồ độ xác qua kiểm tra q trình huấn luyện 37 Hình 4.2: Ma trận tương quan mơ hình với ngõ vào liệu tập mẫu 38 Hình 4.3: Ma trận tương quan mơ hình với ngõ vào liệu tập riêng 39 Hình 4.4: Camera kết nối với kit raspberry Pi 41 Hình 4.5: Giao diện ứng dụng nhận dạng cảm xúc 41 Hình 4.6: Thơng báo chọn file 42 Hình 4.7: Nhận dạng cảm xúc “ bình thường ” 43 Hình 4.8: Nhận dạng cảm xúc “ bình thường ”từ ảnh tải lên hệ thống 43 Hình 4.9: Nhận dạng cảm xúc “ vui vẻ ” 44 Hình 4.10: Nhận dạng cảm xúc “ ngạc nhiên ” 45 Hình 4.11: Nhận dạng cảm xúc “ buồn ” 46 Hình 4.12: Nhận dạng cảm xúc “ giận ” 47 Hình 4.13: Nhận dạng cảm xúc “ khó chịu ” 48 Hình 4.14: Nhận dạng cảm xúc “ sợ hãi ” 49 Hình 4.15: Nhận dạng cảm xúc “ bình thường ” thành cảm xúc “ buồn ” biểu cảm không rõ ràng 49 Hình 4.16: Nhận dạng cảm xúc “ bình thường ” thành cảm xúc “ sợ hãi ” cường độ sáng cao ảnh nhận dạng bị ngược sáng 50 Hình 4.17: Khơng nhận dạng khn mặt góc nghiêng đặc trưng khuôn mặt bị 50 Hình 4.18: Nhận dạng cảm xúc “ bình thường ” thành cảm xúc “ sợ hãi ” cường độ ánh sáng khuôn mặt yếu 51 v Hình 4.19: Nhận dạng cảm xúc “ bình thường ” thành cảm xúc “ buồn ” khn mặt bị thay đổi góc nghiêng đồng thời khn mặt khơng ngang tầm diện với camera 51 vi DANH MỤC BẢNG Bảng 3.1: Bảng phân loại số lượng cảm xúc tập liệu mẫu FERC-2013 31 Bảng 3.2: Bảng phân loại số lượng cảm xúc tập liệu riêng 33 Bảng 4.1: So sánh độ xác qua kiểm tra hai mơ hình 37 Bảng 4.2: Đánh giá tỉ lệ nhận dạng cảm xúc kiểm tra tập riêng 40 Bảng 4.3: So sánh độ xác hai mơ hình 40 vii [11] Lương Mạnh Bá, Nguyễn Thanh Thủy, “Nhập môn xử lý ảnh số” Hà Nội, Việt Nam: Nhà xuất khoa học kỹ thuật, 2006 [12] Saad ALBAWI,TareqAbedMOHAMMED, “Understanding of a Convolutional Neural Network” Department of Computer Engineering Faculty of Engineering and Architecture Istanbul Kemerburgaz University Istanbul, Turkey,2017 [13] N Kwak, “Introduction to Convolutional Neural Networks ( CNNs)”, 2016 [14] R E Turner, “Lecture 14 : Convolutional neural networks for computer vision”, 2014 [15] Neeraj Kumar, Alexander C Berg, Peter N Belhumeur, and Shree K Nayar “Attribute and simile classifiers for face verification” In Computer Vision, 2009 IEEE 12th International Conference oti, pages 365-372 IEEE, 2009 [16] Richard F.Lyon “A Brief History of ‘Pixel’”, FoveonInc., 2820 San Tom as Expressway, Santa Clara CA 95051 [17] Robin Milner, Mads Tofte, Robert Harper “The Definition of Standard ML”, Lab oratory for Foundations of Computer Science Department of Computer Science University of Edinburgh [18] Florian Schroff, Dmitrv Kalcnichenko, and James Philbin “Facenet: A unified embedding for face recognition and clustering In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition”, pages 815-823,2015 55 PHỤ LỤC A MÃ NGUỒN CHƯƠNG TRÌNH from tkinter import * from tkinter import ttk from tkinter import messagebox from PIL import ImageTk, Image from tkinter.filedialog import askopenfilename from keras.preprocessing.image import img_to_array from keras.models import load_model import numpy as np import imutils import cv2 import glob import os root = Tk() StringA = StringVar() filename ='' def open_file(): filename = askopenfilename(initialdir="*/", 56 filetypes =(("All Files","*.*"),("Video", "*.mp4"),("Image", "*.jpg"),("Image", "*.png")), title = "Choose a file." ) StringA.set(filename) messagebox.showinfo("Thông báo", "Đã chọn file!!!!") pass def detect_realtime_video(): import detect_real_time_video def detect_image(): image = StringA.get() imagename = os.path.basename(image) imgname = os.path.splitext(imagename)[0] detection_model_path = 'haarcascade_files/haarcascade_frontalface_default.xml' emotion_model_path = 'models/_mini_XCEPTION.106-0.65.hdf5' face_detection = cv2.CascadeClassifier(detection_model_path) emotion_classifier = load_model(emotion_model_path, compile=False) 57 EMOTIONS = ["gian du" ,"kho chiu","so hai", "vui ve", "buon", "ngac nhien","binh thuong"] orig_frame = cv2.imread(image) frame = cv2.imread(image,0) faces = face_detection.detectMultiScale(frame,scaleFactor=1.1,minNeighbors=5,minSize=(30,30 ),flags=cv2.CASCADE_SCALE_IMAGE) if len(faces) > 0: faces = sorted(faces, reverse=True,key=lambda x: (x[2] - x[0]) * (x[3] x[1]))[0] (fX, fY, fW, fH) = faces roi = frame[fY:fY + fH, fX:fX + fW] roi = cv2.resize(roi, (48, 48)) roi = roi.astype("float") / 255.0 roi = img_to_array(roi) roi = np.expand_dims(roi, axis=0) preds = emotion_classifier.predict(roi)[0] emotion_probability = np.max(preds) label = EMOTIONS[preds.argmax()] 58 cv2.putText(orig_frame, label, (fX, fY - 10), cv2.FONT_HERSHEY_SIMPLEX, 2.5, (0, 0, 255), 3) cv2.putText(orig_frame, str(round(emotion_probability*100,2)) + '%', (0,450), cv2.FONT_HERSHEY_SIMPLEX, 3.5, (0, 0, 255), 3) cv2.putText(orig_frame, "Emotion Detection" , (0,50), cv2.FONT_HERSHEY_SIMPLEX, 0.75, (0, 0, 255), 2) cv2.putText(orig_frame, "gian du" + ' ' + str(round(preds[0]*100,2)) + '%', (0,90), cv2.FONT_HERSHEY_SIMPLEX, 0.75, (0, 0, 255), 2) cv2.putText(orig_frame, "kho chiu" + ' ' + str(round(preds[1]*100,2)) + '%', (0,130), cv2.FONT_HERSHEY_SIMPLEX, 0.75, (0, 0, 255), 2) cv2.putText(orig_frame, "so hai" + ' ' + str(round(preds[2]*100,2)) + '%', (0,170), cv2.FONT_HERSHEY_SIMPLEX, 0.75, (0, 0, 255), 2) cv2.putText(orig_frame, "vui ve" + ' ' + str(round(preds[3]*100,2)) + '%', (0,210), cv2.FONT_HERSHEY_SIMPLEX, 0.75, (0, 0, 255), 2) cv2.putText(orig_frame, "buon" + ' ' + str(round(preds[4]*100,2)) + '%', (0,250), cv2.FONT_HERSHEY_SIMPLEX, 0.75, (0, 0, 255), 2) cv2.putText(orig_frame, "ngac nhien"+ ' ' + str(round(preds[5]*100,2)) + '%', (0,290), cv2.FONT_HERSHEY_SIMPLEX, 0.75, (0, 0, 255), 2) cv2.putText(orig_frame, "binh thuong" + ' ' + str(round(preds[6]*100,2)) + '%', (0,330), cv2.FONT_HERSHEY_SIMPLEX, 0.75, (0, 0, 255), 2) cv2.rectangle(orig_frame, (fX, fY), (fX + fW, fY + fH),(0, 0, 255), 2) 59 cv2.imwrite('result/'+ imgname + '_' + label + ".jpg",orig_frame) cv2.imshow('Detect_Image',orig_frame) cv2.waitkey(0) cv2.destroyAllWindows() return def detect_video(): video = StringA.get() detection_model_path = 'haarcascade_files/haarcascade_frontalface_default.xml' emotion_model_path = 'models/_mini_XCEPTION.75-0.64.hdf5' face_detection = cv2.CascadeClassifier(detection_model_path) emotion_classifier = load_model(emotion_model_path, compile=False) EMOTIONS = ["gian du" ,"kho chiu","so hai", "vui ve", "buon", "ngac nhien","binh thuong"] cv2.namedWindow('Video') cap = cv2.VideoCapture(video) while True: frame = cap.read()[1] frame = imutils.resize(frame,width=580) gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) 60 faces= face_detection.detectMultiScale(gray,scaleFactor=1.1,minNeighbors=5,minSize=(30,30), flags=cv2.CASCADE_SCALE_IMAGE) frameClone = frame.copy() if len(faces) > 0: faces = sorted(faces, reverse=True, key=lambda x: (x[2] - x[0]) * (x[3] - x[1]))[0] (fX, fY, fW, fH) = faces roi = gray[fY:fY + fH, fX:fX + fW] roi = cv2.resize(roi, (48, 48)) roi = roi.astype("float") / 255.0 roi = img_to_array(roi) roi = np.expand_dims(roi, axis=0) preds = emotion_classifier.predict(roi)[0] emotion_probability = np.max(preds) label = EMOTIONS[preds.argmax()] for (i, (emotion, prob)) in enumerate(zip(EMOTIONS, preds)): text = "{}: {:.2f}%".format(emotion, prob * 100) 61 w = int(prob * 300) cv2.rectangle(frameClone, (7, (i * 35) + 5),(w, (i * 35) + 35), (0, 0, 255), -1) cv2.putText(frameClone, text, (10, (i * 35) + 23),cv2.FONT_HERSHEY_SIMPLEX, 0.45,(255, 255, 255), 2) cv2.putText(frameClone, label, (fX, fY - 10),cv2.FONT_HERSHEY_SIMPLEX, 0.45, (0, 0, 255), 2) cv2.rectangle(frameClone, (fX, fY), (fX + fW, fY + fH),(0, 0, 255), 2) cv2.imshow('video', frameClone) if cv2.waitKey(1) & 0xFF == ord('q'): break cap.release() cv2.destroyAllWindows() return def label_img(img): word_label = img.split('.',1)[-1] if word_label == 'jpg': return 62 elif word_label == 'png': return elif word_label == 'mp4': return def exit_app(): root.destroy() ######################################################################## ######################################################################## ################################################################### # chữ viết Title = root.title( "Emotion Detection") label_1 = ttk.Label(root, text="TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HỒ CHÍ MINH",foreground = "blue",font = "times 16 bold ") label_2 = ttk.Label(root, text="KHOA ĐÀO TẠO CHẤT LƯỢNG CAO",foreground = "blue",font = "times 16 bold") label_3 = ttk.Label(root, text="NGHÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ TRUYỀN THÔNG",foreground = "blue",font = "times 16 bold") label_4 = ttk.Label(root, text="ĐỀ TÀI NGHIÊN CỨU KHOA HỌC NĂM HỌC 20192020",foreground = "red",font = "times 20 bold") label_5 = ttk.Label(root, text="NHẬN DẠNG CẢM XÚC THƠNG QUA KHN MẶT \n DÙNG MẠNG NƠ-RON TÍCH CHẬP CNN",foreground = "red",font = "times 26 bold") 63 label_6 = ttk.Label(root, text="GVHD: ThS HUỲNH THỊ THU HIỀN",foreground = "blue",font = "times 16 bold") label_7 = ttk.Label(root, text="SVTH: NGUYỄN VĂN PHÚC",foreground = "blue",font = "times 16 bold") label_8 = ttk.Label(root, text="Chọn file Nhận dạng Trực tuyến = "black",font = "times 14 bold") label_1.pack() label_2.pack() label_3.pack() label_4.pack() label_4.place(x=400,y=130) label_5.pack() label_5.place(x=300,y=200) label_6.pack() label_6.place(x=650,y=350) label_7.pack() label_7.place(x=650,y=380) 64 Thoát",foreground label_8.pack() label_8.place(x=645,y=485) ######################################################################## ######################################################################## ################################################################### photo1 = Image.open("icons/click.png") photo1 = photo1.resize((60, 60), Image.ANTIALIAS) photo1 = ImageTk.PhotoImage(photo1) a = Button(root,image = photo1,command=open_file) a.pack() a.place(x = 650, y = 525) photo2 = Image.open("icons/start.png") photo2 = photo2.resize((60, 60), Image.ANTIALIAS) photo2 = ImageTk.PhotoImage(photo2) filename1 = StringA.get() name=label_img(filename1) if name == 0: b = Button(root,image = photo2,command = detect_image) else: 65 b = Button(root,image = photo2,command = detect_video) b.pack() b.place(x = 760, y = 525) photo3 = Image.open("icons/start_1.png") photo3 = photo3.resize((60, 60), Image.ANTIALIAS) photo3 = ImageTk.PhotoImage(photo3) c = Button(root,image = photo3,command=detect_realtime_video) c.pack() c.place(x = 870, y = 525) photo4 = Image.open("icons/off.png") photo4 = photo4.resize((60, 60), Image.ANTIALIAS) photo4 = ImageTk.PhotoImage(photo4) c = Button(root,image = photo4,command=exit_app) c.pack() c.place(x = 980, y = 525) ######################################################################## ######################################################################## ################################################################### 66 im1=Image.open("icons/ute.png") im1 = im1.resize((125, 150), Image.ANTIALIAS) im1=ImageTk.PhotoImage(im1) label_im = Label(image=im1) label_im.image = im1 label_im.pack() label_im.place(x=235, y=0) im2=Image.open("icons/fhq.png") im2 = im2.resize((150, 150), Image.ANTIALIAS) im2=ImageTk.PhotoImage(im2) label_im = Label(image=im2) label_im.image = im2 label_im.pack() label_im.place(x=1105, y=0) im3= Image.open("icons/emotion.jpg") im3 = im3.resize((300, 300), Image.ANTIALIAS) im3 = ImageTk.PhotoImage(im3) label_im = Label(image=im3) label_im.image = im3 label_im.pack() 67 label_im.place(x=235, y=320) menubar = Menu(root) w, h = root.winfo_screenwidth(), root.winfo_screenheight() root.geometry("%dx%d+0+0" % (w, h)) root.config(menu=menubar) root.mainloop() 68 ... đặc trưng khuôn mặt : 11 2.2.3 Biểu cảm khuôn mặt bày tỏ cảm xúc : 11 2.3 MẠNG NƠ -RON TÍCH CHẬP 12 2.3.1 Mạng nơ- ron nhân tạo 12 2.3.2 Mạng nơ- ron tích chập ... cảm xúc người Chính lẽ em lựa chọn đề tài ? ?Nhận dạng cảm xúc thông qua khuôn mặt dùng mạng nơ- ron tích chập CNN ” để nghiên cứu Đề tài hướng đến việc giúp cho máy tính kit raspberry Pi nhận dạng. .. thống nhận dạng cảm xúc thông qua khuôn mặt dùng mơ hình mạng nơ- ron tích chập Chương 4: Kết quả: Chương trình bày kết đạt trình huấn luyện, trình kiểm tra mơ hình ứng dụng nhận dạng cảm xúc thông

Ngày đăng: 07/01/2022, 20:25

Hình ảnh liên quan

Hình 2.3: Sự thay đổi độ mịn của hình ảnh theo kích thước - Nhận dạng cảm xúc thông qua khuôn mặt dùng mạng nơ ron tích chập CNN

Hình 2.3.

Sự thay đổi độ mịn của hình ảnh theo kích thước Xem tại trang 22 của tài liệu.
Hình 2.4: Một số thông tin có thể tìm thấy trong một bức ảnh khuôn mặt - Nhận dạng cảm xúc thông qua khuôn mặt dùng mạng nơ ron tích chập CNN

Hình 2.4.

Một số thông tin có thể tìm thấy trong một bức ảnh khuôn mặt Xem tại trang 25 của tài liệu.
Hình 2.5: Cấu trúc tổng quát của mạng nơ-ron ANN - Nhận dạng cảm xúc thông qua khuôn mặt dùng mạng nơ ron tích chập CNN

Hình 2.5.

Cấu trúc tổng quát của mạng nơ-ron ANN Xem tại trang 27 của tài liệu.
Hình 2.7: Hàm tổng của một và nhiều nơ-ron đối vớ in input. - Nhận dạng cảm xúc thông qua khuôn mặt dùng mạng nơ ron tích chập CNN

Hình 2.7.

Hàm tổng của một và nhiều nơ-ron đối vớ in input Xem tại trang 28 của tài liệu.
Hình 2.8: Sự khác nhau giữa cấu trúc ANN và CNN. - Nhận dạng cảm xúc thông qua khuôn mặt dùng mạng nơ ron tích chập CNN

Hình 2.8.

Sự khác nhau giữa cấu trúc ANN và CNN Xem tại trang 29 của tài liệu.
Hình 2.9: Quá trình thực hiện của mạng CNN - Nhận dạng cảm xúc thông qua khuôn mặt dùng mạng nơ ron tích chập CNN

Hình 2.9.

Quá trình thực hiện của mạng CNN Xem tại trang 30 của tài liệu.
2.3.2.2 Các lớp trong mô hình - Nhận dạng cảm xúc thông qua khuôn mặt dùng mạng nơ ron tích chập CNN

2.3.2.2.

Các lớp trong mô hình Xem tại trang 30 của tài liệu.
Hình 2.11: Chập ma trận ảnh với bộ lọc 3x3 - Nhận dạng cảm xúc thông qua khuôn mặt dùng mạng nơ ron tích chập CNN

Hình 2.11.

Chập ma trận ảnh với bộ lọc 3x3 Xem tại trang 31 của tài liệu.
Hình 2.14: Phân lớp dữ liệu trong lớp kết nối đầy đủ - Nhận dạng cảm xúc thông qua khuôn mặt dùng mạng nơ ron tích chập CNN

Hình 2.14.

Phân lớp dữ liệu trong lớp kết nối đầy đủ Xem tại trang 34 của tài liệu.
Hình 2.15: Ví dụ minh họa lỗi quá khớp trong CNN - Nhận dạng cảm xúc thông qua khuôn mặt dùng mạng nơ ron tích chập CNN

Hình 2.15.

Ví dụ minh họa lỗi quá khớp trong CNN Xem tại trang 35 của tài liệu.
Hình 2.18: Cấu trúc thư viện OpenCV - Nhận dạng cảm xúc thông qua khuôn mặt dùng mạng nơ ron tích chập CNN

Hình 2.18.

Cấu trúc thư viện OpenCV Xem tại trang 40 của tài liệu.
3.2.2 Mô hình CNN sử dụng trong hệ thống - Nhận dạng cảm xúc thông qua khuôn mặt dùng mạng nơ ron tích chập CNN

3.2.2.

Mô hình CNN sử dụng trong hệ thống Xem tại trang 43 của tài liệu.
Hình 3.3: Một số hình ảnh trong tập dữ liệu mẫu - Nhận dạng cảm xúc thông qua khuôn mặt dùng mạng nơ ron tích chập CNN

Hình 3.3.

Một số hình ảnh trong tập dữ liệu mẫu Xem tại trang 45 của tài liệu.
Hình 3.4: Biểu đồ số lượng cảm xúc trong tập dữ liệu mẫu FERC-2013 - Nhận dạng cảm xúc thông qua khuôn mặt dùng mạng nơ ron tích chập CNN

Hình 3.4.

Biểu đồ số lượng cảm xúc trong tập dữ liệu mẫu FERC-2013 Xem tại trang 46 của tài liệu.
Bảng 3.2: Bảng phân loại số lượng cảm xúc trong tập dữ liệu riêng - Nhận dạng cảm xúc thông qua khuôn mặt dùng mạng nơ ron tích chập CNN

Bảng 3.2.

Bảng phân loại số lượng cảm xúc trong tập dữ liệu riêng Xem tại trang 47 của tài liệu.
Hình 3.7: Lưu đồ thuật toán quá trình kiểm tra - Nhận dạng cảm xúc thông qua khuôn mặt dùng mạng nơ ron tích chập CNN

Hình 3.7.

Lưu đồ thuật toán quá trình kiểm tra Xem tại trang 50 của tài liệu.
Hình 4.2: Ma trận tương quan của mô hình với ngõ vào là dữ liệu tập mẫu - Nhận dạng cảm xúc thông qua khuôn mặt dùng mạng nơ ron tích chập CNN

Hình 4.2.

Ma trận tương quan của mô hình với ngõ vào là dữ liệu tập mẫu Xem tại trang 52 của tài liệu.
Hình 4.3: Ma trận tương quan của mô hình với ngõ vào là dữ liệu tập riêng - Nhận dạng cảm xúc thông qua khuôn mặt dùng mạng nơ ron tích chập CNN

Hình 4.3.

Ma trận tương quan của mô hình với ngõ vào là dữ liệu tập riêng Xem tại trang 53 của tài liệu.
Bảng 4.2: Đánh giá tỉ lệ nhận dạng cảm xúc khi kiểm tra tập riêng. - Nhận dạng cảm xúc thông qua khuôn mặt dùng mạng nơ ron tích chập CNN

Bảng 4.2.

Đánh giá tỉ lệ nhận dạng cảm xúc khi kiểm tra tập riêng Xem tại trang 54 của tài liệu.
Hình 4.4: Camera kết nối với kit raspberry Pi 4 - Nhận dạng cảm xúc thông qua khuôn mặt dùng mạng nơ ron tích chập CNN

Hình 4.4.

Camera kết nối với kit raspberry Pi 4 Xem tại trang 55 của tài liệu.
Hình 4.6: Thông báo khi đã chọn được file. - Nhận dạng cảm xúc thông qua khuôn mặt dùng mạng nơ ron tích chập CNN

Hình 4.6.

Thông báo khi đã chọn được file Xem tại trang 56 của tài liệu.
Hình 4.7: Nhận dạng cảm xúc “bình thường” - Nhận dạng cảm xúc thông qua khuôn mặt dùng mạng nơ ron tích chập CNN

Hình 4.7.

Nhận dạng cảm xúc “bình thường” Xem tại trang 57 của tài liệu.
Hình 4.9: Nhận dạng cảm xúc “vui vẻ” - Nhận dạng cảm xúc thông qua khuôn mặt dùng mạng nơ ron tích chập CNN

Hình 4.9.

Nhận dạng cảm xúc “vui vẻ” Xem tại trang 58 của tài liệu.
Hình 4.10: Nhận dạng cảm xúc “ngạc nhiên” - Nhận dạng cảm xúc thông qua khuôn mặt dùng mạng nơ ron tích chập CNN

Hình 4.10.

Nhận dạng cảm xúc “ngạc nhiên” Xem tại trang 59 của tài liệu.
1Hình 4.11: Nhận dạng cảm xúc “buồn” - Nhận dạng cảm xúc thông qua khuôn mặt dùng mạng nơ ron tích chập CNN

1.

Hình 4.11: Nhận dạng cảm xúc “buồn” Xem tại trang 60 của tài liệu.
Hình 4.12: Nhận dạng cảm xúc “giận dữ” - Nhận dạng cảm xúc thông qua khuôn mặt dùng mạng nơ ron tích chập CNN

Hình 4.12.

Nhận dạng cảm xúc “giận dữ” Xem tại trang 61 của tài liệu.
Hình 4.13: Nhận dạng cảm xúc “khó chịu” - Nhận dạng cảm xúc thông qua khuôn mặt dùng mạng nơ ron tích chập CNN

Hình 4.13.

Nhận dạng cảm xúc “khó chịu” Xem tại trang 62 của tài liệu.
Hình 4.17: Không nhận dạng được khuôn mặt do góc nghiêng và các đặc trưng trên khuôn mặt bị mất - Nhận dạng cảm xúc thông qua khuôn mặt dùng mạng nơ ron tích chập CNN

Hình 4.17.

Không nhận dạng được khuôn mặt do góc nghiêng và các đặc trưng trên khuôn mặt bị mất Xem tại trang 64 của tài liệu.
Hình 4.16: Nhận dạng cảm xúc “bình thường” thành cảm xúc “sợ hãi” do cường độ sáng quá cao và ảnh được nhận dạng bị ngược sáng - Nhận dạng cảm xúc thông qua khuôn mặt dùng mạng nơ ron tích chập CNN

Hình 4.16.

Nhận dạng cảm xúc “bình thường” thành cảm xúc “sợ hãi” do cường độ sáng quá cao và ảnh được nhận dạng bị ngược sáng Xem tại trang 64 của tài liệu.
Hình 4.18: Nhận dạng cảm xúc “bình thường” thành cảm xúc “sợ hãi” do cường độ ánh sáng trên khuôn mặt yếu - Nhận dạng cảm xúc thông qua khuôn mặt dùng mạng nơ ron tích chập CNN

Hình 4.18.

Nhận dạng cảm xúc “bình thường” thành cảm xúc “sợ hãi” do cường độ ánh sáng trên khuôn mặt yếu Xem tại trang 65 của tài liệu.

Tài liệu cùng người dùng

Tài liệu liên quan