1. Trang chủ
  2. » Giáo Dục - Đào Tạo

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 81 2

Đ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

Định dạng
Số trang 83
Dung lượng 5,61 MB

Nội dung

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 (Trang 22)
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 (Trang 25)
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 (Trang 27)
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 (Trang 28)
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 (Trang 29)
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 (Trang 30)
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 (Trang 30)
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 (Trang 31)
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 đủ (Trang 34)
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 (Trang 35)
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 (Trang 40)
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 (Trang 43)
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 (Trang 45)
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 (Trang 46)
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 (Trang 47)
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 (Trang 50)
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 (Trang 52)
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 (Trang 53)
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 (Trang 54)
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 (Trang 55)
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 (Trang 56)
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” (Trang 57)
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ẻ” (Trang 58)
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” (Trang 59)
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” (Trang 60)
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ữ” (Trang 61)
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” (Trang 62)
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 (Trang 64)
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 (Trang 64)
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 (Trang 65)

TỪ KHÓA LIÊN QUAN

w