Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 18 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
18
Dung lượng
1,25 MB
Nội dung
ỦY BAN NHÂN DÂN THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC SÀI GÒN BÁO CÁO ĐỀ TÀI NHẬN DẠNG CẢM XÚC HỌC PHẦN: PHÂN TÍCH XỬ LÝ ẢNH Sinh viên thực hiện: LÊ NGUYỄN QUỲNH THƠ BÙI THANH THÚY VY TRẦN CHIỀU XUÂN Lớp: DTU 1182 Nhóm thực hiện: TP HỒ CHÍ MINH, THÁNG NĂM 2022 ỦY BAN NHÂN DÂN THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC SÀI GÒN BÁO CÁO ĐỀ TÀI NHẬN DẠNG CẢM XÚC HỌC PHẦN: PHÂN TÍCH XỬ LÝ ẢNH Sinh viên thực hiện: LÊ NGUYỄN QUỲNH THƠ BÙI THANH THÚY VY TRẦN CHIỀU XUÂN Lớp: DTU 1182 Nhóm thực hiện: TP HỒ CHÍ MINH, THÁNG NĂM 2022 MỤC LỤC LỜI MỞ ĐẦU PHẦN 1: TỔNG QUAN VỀ NHẬN DẠNG CẢM XÚC KHUÔN MẶT 1.1 Giới thiệu 1.2 Các biểu cảm cảm xúc mặt người 1.3 Phương pháp nhận dạng cảm xúc khuôn mặt 1.3.1 Phương pháp truyền thống 1.3.2 Phương pháp đại 1.4 Ứng dụng nhận dạng cảm xúc khuôn mặt PHẦN 2: TỔNG QUAN VỀ BÀI TỐN NHẬN DẠNG CẢM XÚC KHN MẶT 2.1 Giới thiệu học sâu (Deep learning) 2.2 Bài tốn nhận dạng cảm xúc khn mặt 2.3 Mơ hình mạng nơ-ron tích chập cho nhận dạng cảm xúc khn mặt PHẦN 3: KẾT QUẢ THỰC NGHIỆM 10 3.1 Tập liệu FER2013 10 3.2 Mơ hình đề xuất 10 3.3 Kết thực nghiệm 12 TÀI LIỆU THAM KHẢO 14 DANH MỤC HÌNH ẢNH STT Hình Hình 1.1 Hình 1.2 Hình 2.1 Hình 3.1 Hình 3.2 Hình 3.3 Hình 3.4 Tên hình ảnh Kiến trúc hệ thống nhận dạng cảm xúc khuôn mặt phương pháp truyền thống Kiến trúc hệ thống nhận dạng cảm xúc khuôn mặt phương pháp Deep Learning Một mơ hình học sâu nhận dạng mặt người Kiến trúc CNN dùng để nhận dạng cảm xúc khn mặt Biến động độ xác mơ hình tập huấn luyện tập kiểm tra theo số lượt huấn luyện Kết nhận diện cảm xúc khuôn mặt Kết nhận diện sai cảm xúc khuôn mặt Trang 11 12 13 13 LỜI MỞ ĐẦU Con người có nhiều cách để truyền đạt thông tin với nhau: ngôn ngữ, cử chỉ, lời nói Biểu cảm xúc khn mặt cách để truyền đạt thơng tin, biểu nhận định người trước vật, tượng Cảm xúc người phản ứng rời rạc quán kiện bên bên người Chúng tạo thành phần quan trọng giao tiếp phi ngơn ngữ xã hội lồi người Tuy việc nhận dạng cảm xúc khuôn mặt dễ dàng với người thách thức lớn việc nhận dạng phân loại máy tính hệ thống điện tử Bài toán nhận dạng cảm xúc khn mặt có lịch sử nghiên cứu lâu dài Nhận dạng cảm xúc khuôn mặt bước phát triển tiếp sau việc phát khuôn mặt, nhiên có nhiều quan điểm việc định nghĩa khái niệm cảm xúc, vốn không rõ ràng Cảm xúc khn mặt chia thành nhóm thể chính: hạnh phúc, buồn, ghê tởm, sợ hãi, bất ngờ, giận bình thường Trong đề tài này, chúng tơi trình bày tốn nhận dạng cảm xúc khn mặt dựa vào sử dụng mạng Nơ-ron tích chập (CNN) – kiến trúc phổ biến học sâu để nhận diện phân loại cảm xúc khuôn mặt Đề tài gồm phần: Phần 1: Tổng quan nhận dạng cảm xúc khuôn mặt Phần 2: Tổng quan tốn nhận dạng cảm xúc khn mặt Phần 3: Kết thực nghiệm PHẦN 1: TỔNG QUAN VỀ NHẬN DẠNG CẢM XÚC KHUÔN MẶT 1.1 Giới thiệu Khuôn mặt người biểu nhiều cảm xúc mà khơng cần phải nói Đó phương tiện mạnh mẽ tự nhiên để người truyền đạt thể cảm xúc Hiện nay, nhận dạng phân tích cảm xúc khn mặt tự động vấn đề thú vị đầy thách thức, có ảnh hưởng to lớn đến xã hội Cảm xúc khn mặt phân tích dễ dàng thơng qua hình ảnh khn mặt máy tính tương tác với người, cách người tương tác với Đó lý nhận dạng cảm xúc qua khuôn mặt ngày quan tâm lĩnh vực 1.2 Các biểu cảm cảm xúc mặt người Con người có nhiều cách để truyền đạt thông tin với nhau: ngôn ngữ, cử chỉ, lời nói, … Biểu cảm xúc khuôn mặt cách để truyền đạt thông tin, biểu nhận định người trước vật, trường Có loại cảm xúc xác định, phổ biến tất văn hóa người: hạnh phúc, buồn, ghê tởm, sợ hãi, bất ngờ, giận bình thường 1.3 Phương pháp nhận dạng cảm xúc khn mặt Phương pháp nhận dạng cảm xúc qua khuôn mặt chia thành nhiều hướng theo tiêu chí khác nhau, chia thành hai loại chính: phương pháp truyền thống phương pháp đại 1.3.1 Phương pháp truyền thống Hệ thống nhận dạng cảm xúc qua khuôn mặt với phương pháp truyền thống xử lý qua giai đoạn: tiền xử lý hình ảnh khn mặt, trích xuất đặc trưng phân loại Hình 1.1 Kiến trúc hệ thống nhận dạng cảm xúc khuôn mặt phương pháp truyền thống Tiền xử lý trình sử dụng để cải thiện hiệu suất hệ thống nhận dạng cảm xúc qua khuôn mặt thực loại quy trình khác nhau: chỉnh độ rõ, chia tỷ lệ hình ảnh, điều chỉnh độ tương phản sử dụng quy trình nâng cao để cải thiện khung biểu thức Trích xuất đặc trưng thị giác máy tính giai đoạn quan trọng, phát việc chuyển từ mô tả đồ họa sang mô tả liệu ẩn, trích chọn đặc trưng riêng hình ảnh, sau mơ tả liệu sử dụng làm đầu vào cho toán phân loại Phân loại giai đoạn cuối hệ thống nhận diện cảm xúc qua khuôn mặt (FER) để phân loại loại cảm xúc khuôn mặt: hạnh phúc, buồn bã, bất ngờ, tức giận, sợ hãi, ghê tởm bình thường Sử dụng phương pháp phân loại như: Cây định (ID3), SVM, HMM (Hidden Markov Model), phân loại SVM cho độ xác phân loại tốt 1.3.2 Phương pháp đại Phương pháp mơ tả bước phổ biến hệ thống nhận dạng cảm xúc qua khuôn mặt thực qua giai đoạn: tiền xử lý, phân lớp sử dụng học sâu Những năm gần đây, học sâu có độ xác phương pháp truyền thống khơng phải qua bước trích xuất đặc trưng cách tường minh, thực kèm với phương pháp phân loại Hình 1.2 Kiến trúc hệ thống nhận dạng cảm xúc khuôn mặt phương pháp Deep Learning Tiền xử lý ảnh: phải xử lý số vấn đề ảnh đầu vào hệ thống, xử lý trước trình trainning Các bước thực hiện: Căn chỉnh khuôn mặt để phát khn mặt, tăng liệu hình ảnh đảm bảo đủ liệu training, cuối chuẩn hóa liệu khuôn mặt Sử dụng 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 bước phân loại tính độc lập với nhau, Deep learning thực FER theo cách từ đầu đến cuối Một lớp thêm vào cuối mạng để điều chỉnh lỗi lan truyền ngược, sau xác suất dự đốn mẫu mạng trực tiếp xuất 1.4 Ứng dụng nhận dạng cảm xúc khuôn mặt Nhận dạng cảm xúc qua khuôn mặt có ứng dụng lĩnh vực khác nhau: Giáo dục: Phản ứng người học thời gian thực tham gia vào nội dung thước đo lường cho hiệu giảng Tiếp thị: Đây cách thức để cơng ty kinh doanh phân tích nhu cầu phản hồi hài lòng khách hàng quảng cáo, sản phẩm, bao bì thiết kế cửa hàng họ Bảo mật: Nó giúp xác định hành vi đáng ngờ đám đông sử dụng để ngăn chặn tội phạm kẻ khủng bố tiềm Chăm sóc sức khỏe: Nó hữu ích việc tự động hóa dịch vụ y tế Cả sức khỏe thể chất tinh thần phân tích thơng qua ứng dụng PHẦN 2: TỔNG QUAN VỀ BÀI TỐN NHẬN DẠNG CẢM XÚC KHN MẶT 2.1 Giới thiệu học sâu (Deep learning) Học sâu (deep learning) tập thuật toán học máy với ý tưởng xây dựng mơ hình liệu có mức độ trừu tượng cao dựa liệu có mức độ trừu tượng hóa thấp hơn, cách phân lớp liệu biến đổi phi tuyến Nghiên cứu từ lâu cho thấy mạng nơron chứng minh khả xấp xỉ vạn với không lớp, chưa có phương pháp cụ thể ước lượng số nơron cần thiết lớp Việc nghiên cứu mạng có số lớp lớn trở nên phổ biến sau thành công mạng AlexNet mơ hình thắng giải ImageNet 2012 với khoảng cách xa so với mơ hình cạnh tranh, kiến trúc CNN LeCun giới thiệu từ trước lâu Ngồi kiến trúc CNN, mơ hình mạng học sâu cịn nhiều dạng kiến trúc khác lớp truyền thẳng kết nối đầy đủ (fully connected layer), RNN, LSTM, GRU, DBN, … Hình 2.1 biểu diễn mơ hình học sâu tiêu biểu sử dụng nhận dạng mặt người, liệu đầu vào mạng liệu dạng thơ điểm ảnh RGB (thậm chí khơng cần qua tiền xử lý) Các đặc trưng tổ hợp tạo thành chi tiết nhỏ lớp ẩn đầu tiên, sau tiếp tục tái tạo tổ hợp mức chi tiết lớn lớp ẩn thứ hai, cuối hình ảnh đặc trưng tồn khn mặt lớp ẩn thứ Lớp output cho đánh giá xác suất khuôn mặt thuộc phân lớp (người nào) Hình 2.1 Một mơ hình học sâu nhận dạng mặt người Một mơ hình học sâu thường có nhiệm vụ kết hợp kiến trúc mạng nhất: Các lớp đặc trưng (features): có nhiệm vụ chuyển đổi đặc trưng thành dạng liệu phù hợp để xử lý, chẳng hạn tầng tích chập (convolution), mẫu (subsampling), pooling, … Các lớp mơ hình (modeling): sử dụng thuật tốn học để khái qt hóa liệu, chẳng hạn nơron network, restricted BM, DBN, autoencoder, … Các lớp giải mã (decoding): dựa liệu khái quát biến đổi thành đầu (markov random field cơng cụ tương tự) 2.2 Bài tốn nhận dạng cảm xúc khuôn mặt Một hệ thống nhận diện cảm xúc khuôn mặt thường triển khai gồm bước: Nhận ảnh tiền xử lý: Ảnh khuôn mặt lấy từ nguồn liệu tĩnh (chẳng hạn từ file, database), động (từ livestream, webcam, camera, …), nguồn liệu trải qua số bước tiền xử lý nhằm tăng chất lượng hình ảnh để giúp việc phát cảm xúc trở nên hiệu Trích xuất đặc trưng: Bước quan trọng, đặc biệt với phương pháp truyền thống, đặc trưng khn mặt tính tốn dựa thuật tốn có sẵn, kết thường vector đặc trưng làm đầu vào cho bước sau Phân lớp nhận diện cảm xúc: Đây tốn phân lớp điển hình, nhiều thuật tốn áp dụng bước KNN, SVM, LDA, HMM, … 2.3 Mơ hình mạng nơ – ron tích chập cho nhận dạng cảm xúc khuôn mặt Mạng CNN xây dựng ngôn ngữ Python sử dụng thư viện Keras Mạng CNN xây dựng gồm sáu lớp tích chập, ba lớp Max-pooling cuối hai lớp Full-connected Số lượng filter tương ứng 32, 64 128 Kích thước filter 3x3 lớp Max-pooling có kích thước stride 2x2 Lớp Max-pooling sử dụng sau hai lớp tích chập Max pooling dùng để giảm kích thước ma trận làm bật lên đặc trưng có ma trận đầu vào Sau lớp Max Pooling có lớp Drop Out nhằm giảm tượng overfitting cách loại bỏ ngẫu nhiên số unit Để giữ kích thước không gian ngõ ra, zero-padding thêm vào Sau qua lớp tích chập, ngõ qua Flatten trở thành vector chiều để đưa vào lớp dense (hay lớp full connected) Hàm kích hoạt sử dụng mạng CNN Leaky Rectifier Linear Unit (Leaky 𝑥 ReLU) theo công thức sau: 𝑓 (𝑥) = max(𝑥, ) 20 Giá trị 20 sử dụng theo tập validation FER-2013 Từ công thức trên, giá trị trả thay 𝑥 < ReLU, leaky ReLU tạo thành đường dốc với giá trị giảm nhỏ Ở mạng nơ-ron, kết đầu cần chuẩn hóa sang dạng phần trăm để dự đốn lớp Khi lớp cuối mạng CNN lớp Softmax với ngõ 𝑎𝑘 = 𝑒 𝑧𝑘 ∑𝑛𝑖=1 𝑒 𝑧𝑖 Với 𝑎𝑘 tỉ lệ dự đoán lớp thứ 𝑘, 𝑛 tổng số lớp dự đoán (7 cảm xúc) 𝑧𝑘 hệ số node trước cho lớp thứ 𝑘 Thuật toán sử dụng để cập nhật trọng số mạng CNN Adam Thuật toán Adam trội số thuật toán khác khả vượt qua vùng local minimum đạt tới điểm tối ưu (flat minimum) Một đặc điểm thuật tốn Adam khả tận dụng “động lực” để hội tụ nhanh “Động lực” khả tận dụng số phần lần cập nhật trọng số trước để cập nhật cho trọng số Kết cuối model cần đánh giá để biết hiệu trình training liệu Ở hàm mát cơng cụ để thực điều Hàm mát sử dụng báo hàm “categorical_crossentropy” 𝑛 𝐿 = −∑ (𝑦𝑖 ∗ 𝐿𝑜𝑔𝑦̂𝑖 ) 𝑖=1 Với 𝐿 ký hiệu hàm mát, 𝑦𝑖 kết thực 𝑦̂𝑖 kết dự đoán Biểu thức hàm tính sai số áp dụng phổ biến sử dụng để vẽ đồ thị đánh giá kết cuối Ngoài hàm mát, việc đánh giá model dựa vào độ xác: Độchínhxác = Sốlượngdựđốnchínhxác Sốlượngđượcdựđốn Biểu thức biểu thức tổng quát để tính độ xác, sử dụng để tính độ xác cho trình đánh giá kết hệ thống PHẦN 3: KẾT QUẢ THỰC NGHIỆM 3.1 Tập liệu FER2013 Cảm xúc người mn hình vạn trạng Mỗi người điều có cách bày tỏ cảm xúc khác Chính thế, liệu cần để huấn luyện cho mơ hình nhận diện cảm xúc khuôn mặt người lớn Tập liệu nguồn mở FER2013.csv, tạo cho dự án PierreLuc Carrier Aaron Courville, chia sẻ công khai thi Kaggle (2013) Dữ liệu tập FER2013.csv bao gồm 35.887 ảnh xám: hình ảnh khn mặt kích thước 48x48 pixel từ nhiều góc độ khác Hình ảnh phân loại thành bảy lớp thể cảm xúc khuôn mặt khác nhau, tất gán nhãn từ – (0 = Giận dữ, = Ghê tởm, = Sợ hãi, = Vui vẻ, = Buồn, = Ngạc nhiên, = Bình thường) Gồm 8.989 ảnh ‘Happy’, 6.077 ảnh ‘Sad’, 6.198 ảnh ‘Neutral’, 4002 ảnh ‘Suprised’, 5121 ảnh ‘Scared’, 547 ảnh ‘Disgust’ 4593 ảnh ‘Angry’ 3.2 Mơ hình đề xuất Kiến trúc CNN gồm khối có khối CNN khối cuối đầu softmax, xem Hình 3.1 Đầu tiên, ảnh 48x48 đa cấp xám chuyển vào khối A, khối có 32 filter, sử dụng kernel filter cỡ 3x3, hàm kích hoạt ReLU, kết tính tốn chuyển qua lớp batch normalization Khối A thiết kế với ý đồ tạo 32 đặc trưng cho việc phát cảm xúc khuôn mặt Khối B thiết kế tương tự khối A, ngoại trừ việc sử dụng 64 filter, mục tiêu khối giúp tổ hợp đặc trưng thành đặc trưng phức tạp Kết đầu khối B xử lý độc lập khối C D, khối C depthwise separable CNN 128 filter [7], sau chuẩn hóa lớp batch normalization max pooling Khối D filter nhằm điều chỉnh trọng số đặc trưng tính gộp kết với khối C Khối E F thiết kế tương tự Cuối cùng, sử dụng khối F có filter (tương ứng với loại cảm xúc), kết tính tốn CNN chuyển vào global average pooling (chuyển kết 2D thành vector), kết xử lý qua lớp softmax để trả xác suất loại cảm xúc 10 Ảnh đầu vào 32 feature maps (3x3 / ReLU) BatchNorm 48x48 A 64 feature maps (3x3 / ReLU) BatchNorm B 128 separable feature maps (3x3 / ReLU) BatchNorm / MaxPooling 128 feature maps D C 256 separable feature maps (3x3 / ReLU) BatchNorm / MaxPooling (1x1 / ReLU) BatchNorm 256 feature maps F E (1x1 / ReLU) BatchNorm feature maps (3x3 / ReLU) Global AveragePooling G H Hình 3.1 Softmax Kiến trúc CNN dùng để nhận dạng cảm xúc khuôn mặt 11 3.3 Kết thực nghiệm Để triển khai huấn luyện thử nghiệm mơ hình đề xuất, ngơn ngữ Python thư viện Keras/TensorFlow sử dụng cho việc xây dựng mơ hình mạng CNN Dữ liệu FER2013 tiền xử lý không đáng kể, ngoại trừ việc chuyển đổi đa cấp xám từ dạng số nguyên đến 255 miền số thực [0, 1] nhằm hỗ trợ tốt cho liệu đầu vào mạng tích chập Ngơn ngữ Python kết hợp thêm OpenCV sử dụng để viết chương trình minh họa hỗ trợ cho việc xử lý liệu đầu vào từ webcam/camera Quá trình xử lý qua bước sau: Ảnh đầu vào chuyển thành đa cấp xám Dùng haar cascade (OpenCV) tìm kiếm vùng mặt người ảnh đầu vào Vùng ảnh mặt người chuyển đổi kích thước 48x48 Ảnh 48x48 đa cấp xám chuyển đổi miền [0, 1] sau đưa vào mơ hình CNN Đầu CNN xác suất cảm xúc, chọn cảm xúc có xác xuất cao làm kết cuối Độ xác tập liệu kiểm tra không bị giảm sau mạng ổn định, thấy mơ hình khơng bị tượng q khớp Muốn tăng độ xác mơ hình, điều chỉnh phù hợp số filter lớp tăng thêm số lớp ẩn mạng CNN nhằm tăng khả nhận biết cấu trúc phức tạp khuôn mặt Hình 3.2 Biến động độ xác mơ hình tập huấn luyện tập kiểm tra theo số lượt huấn luyện 12 Kết thử nghiệm thực tế cho thấy mơ hình nhạy nhận biết cảm xúc hạnh phúc (happy), với cảm xúc căm phẫn (disgust) Việc hầu hết mơ hình công bố với tập liệu FER-2013 đạt độ xác thấp, điều cho thấy liệu có yếu tố cân nhiễu gán nhãn liệu Hình 3.3 Hình 3.4 Kết nhận diện cảm xúc khn mặt Kết nhận diện sai cảm xúc khuôn mặt 13 TÀI LIỆU THAM KHẢO [1] Xây dựng mạng nhận diện cảm xúc khuôn mặt cho người bắt đầu: https://viblo.asia/p/real-time-emotion-detection-xay-dung-mang-nhan-dien-cam-xuckhuon-mat-cho-nguoi-moi-bat-dau[2] Nghiên cứu ứng dụng kỹ thuật nhận dạng cảm xúc qua khuôn mặt: https://viblo.asia/p/nghien-cuu-va-ung-dung-cac-ky-thuat-nhan-dang-cam-xuc-quakhuon-mat[3] Facial Emotion Recognition: https://edps.europa.eu/system/files/2021-05/21-0526_techdispatch-facial-emotion-recognition_ref_en.pdf 14