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

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

18 4 0

Đ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 18
Dung lượng 1,25 MB

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

Nội dung

Trong đề tài này, chúng tôi trình bày bài toán nhận dạng cảm xúc khuôn mặt dựa vào sử dụng mạng Nơ-ron tích chập CNN – một trong những kiến trúc phổ biến của học sâu để nhận diện và phân

Trang 1

Ủ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

TP HỒ CHÍ MINH, THÁNG 5 NĂM 2022

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

Nhóm thực hiện: 1

Trang 2

Ủ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

TP HỒ CHÍ MINH, THÁNG 5 NĂM 2022

BÙI THANH THÚY VY TRẦN CHIỀU XUÂN

Trang 3

MỤC LỤC

LỜI MỞ ĐẦU 1

PHẦN 1: TỔNG QUAN VỀ NHẬN DẠNG CẢM XÚC KHUÔN MẶT 2

1.1 Giới thiệu 2

1.2 Các biểu cảm cảm xúc trên mặt người 2

1.3 Phương pháp nhận dạng cảm xúc khuôn mặt 2

1.3.1 Phương pháp truyền thống 2

1.3.2 Phương pháp hiện đại 3

1.4 Ứng dụng nhận dạng cảm xúc khuôn mặt 4

PHẦN 2: TỔNG QUAN VỀ BÀI TOÁN NHẬN DẠNG CẢM XÚC KHUÔN MẶT 6 2.1 Giới thiệu về học sâu (Deep learning) 6

2.2 Bài toán nhận dạng cảm xúc khuôn mặt 7

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 8

PHẦN 3: KẾT QUẢ THỰC NGHIỆM 10

3.1 Tập dữ liệu FER2013 10

3.2 Mô hình đề xuất 10

3.3 Kết quả thực nghiệm 12

TÀI LIỆU THAM KHẢO 14

Trang 4

DANH MỤC HÌNH ẢNH

1 Hình 1.1 Kiến trúc hệ thống nhận dạng cảm xúc khuôn mặt bằng

2 Hình 1.2 Kiến trúc hệ thống nhận dạng cảm xúc khuôn mặt bằng

4 Hình 3.1 Kiến trúc CNN dùng để nhận dạng cảm xúc khuôn mặt 11

5 Hình 3.2 Biến động về độ chính xác của mô hình trên tập huấn

Trang 5

1

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 hiện cảm xúc trên khuôn mặt cũng là một cách để truyền đạt thông tin, nó có thể biểu hiện một nhận định của con người trước sự vật, hiện tượng Cảm xúc của con người là những phản ứng rời rạc và nhất quán đối với các sự kiện bên ngoài hoặc bên trong con người đó Chúng tạo thành một phần quan trọng trong giao tiếp phi ngôn ngữ của xã hội loài người Tuy việc nhận dạng cảm xúc khuôn mặt dễ dàng với con người nhưng đó vẫn là thách thức lớn đối với việc nhận dạng và phân loại bởi máy tính hoặc các hệ thống điện tử

Bài toán nhận dạng cảm xúc khuôn 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 là bước phát triển tiếp sau của việc phát hiện khuôn mặt, tuy nhiên có nhiều quan điểm trong việc định nghĩa khái niệm cảm xúc, vốn rất không rõ ràng Cảm xúc khuôn mặt chia thành 7 nhóm thể hiện chính: hạnh phúc, buồn, ghê tởm, sợ hãi, bất ngờ, giận dữ và bình thường

Trong đề tài này, chúng tôi trình bày bài toán nhận dạng cảm xúc khuôn mặt dựa vào sử dụng mạng Nơ-ron tích chập (CNN) – một trong những kiến trúc phổ biến của học sâu để nhận diện và phân loại cảm xúc khuôn mặt

Đề tài gồm 3 phần:

Phần 1: Tổng quan về nhận dạng cảm xúc khuôn mặt

Phần 2: Tổng quan về bài toán nhận dạng cảm xúc khuôn mặt

Phần 3: Kết quả thực nghiệm

Trang 6

2

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 của con người biểu hiện nhiều cảm xúc mà không cần phải nói ra Đó là một trong những phương tiện mạnh mẽ và tự nhiên nhất để con người truyền đạt thể hiện cảm xúc Hiện nay, nhận dạng và phân tích cảm xúc khuôn mặt tự động là một vấn đề thú vị và đầy thách thức, có ảnh hưởng to lớn đến xã hội

Cảm xúc khuôn mặt có thể được phân tích dễ dàng thông qua hình ảnh khuôn mặt và máy tính có thể tương tác với con người, như cách con người tương tác với nhau Đó là lý do tại sao nhận dạng cảm xúc qua khuôn mặt ngày càng được sự quan tâm trong mọi lĩnh vực

1.2 Các biểu cảm cảm xúc trên 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 hiện cảm xúc trên khuôn mặt cũng là một cách để truyền đạt thông tin, nó có thể biểu hiện một nhận định của con người trước sự vật, hiện trường Có 7 loại cảm xúc cơ bản được xác định, phổ biến trong tất cả các nền văn hóa con người: hạnh phúc, buồn, ghê tởm, sợ hãi, bất ngờ, giận dữ và bình thường

1.3 Phương pháp nhận dạng cảm xúc khuôn mặt

Phương pháp nhận dạng cảm xúc qua khuôn mặt được chia thành nhiều hướng theo các tiêu chí khác nhau, chia thành hai loại chính: phương pháp truyền thống và phương pháp hiện đạ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 thì xử lý qua các giai đoạn: tiền xử lý hình ảnh khuôn mặt, trích xuất đặc trưng và phân loại

Trang 7

3

Hình 1.1 Kiến trúc hệ thống nhận dạng cảm xúc khuôn mặt bằng phương pháp truyền thống

 Tiền xử lý là quá trình được sử dụng để cải thiện hiệu suất của hệ thống nhận dạng cảm xúc qua khuôn mặt và được thực hiện các loại quy trình khác nhau: căn chỉnh độ rõ, chia tỷ lệ hình ảnh, điều chỉnh độ tương phản và sử dụng các quy trình nâng cao để cải thiện các khung biểu thức

 Trích xuất đặc trưng trong thị giác máy tính là một giai đoạn quan trọng, nó phát hiện ra việc chuyển từ mô tả đồ họa sang mô tả dữ liệu ẩn, trích chọn những đặc trưng riêng nhất của hình ảnh, sau đó những mô tả dữ liệu này có thể được sử dụng làm đầu vào cho bài toán phân loại

 Phân loại là giai đoạn cuối cùng của hệ thống nhận diện cảm xúc qua khuôn mặt (FER) để phân loại ra các loại cảm xúc trên khuôn mặt: hạnh phúc, buồn bã, bất ngờ, tức giận, sợ hãi, ghê tởm và bình thường Sử dụng các phương pháp phân loại như: Cây quyết định (ID3), SVM, HMM (Hidden Markov Model), thì phân loại SVM cho độ chính xác và phân loại tốt nhất

1.3.2 Phương pháp hiện đại

Phương pháp mô tả các bước chính phổ biến trong hệ thống nhận dạng cảm xúc qua khuôn mặt thực hiện qua các 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ó độ chính xác hơn phương pháp truyền thống vì nó không phải qua

Trang 8

4

bước trích xuất các đặc trưng một cách tường minh, nó sẽ thực hiện đi 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 bằng phương pháp Deep

Learning

 Tiền xử lý ảnh: cũng phải xử lý 1 số vấn đề của ảnh đầu vào hệ thống, xử lý trước quá trình trainning Các bước thực hiện: Căn chỉnh khuôn mặt để phát hiện khuôn mặt, tăng dữ liệu hình ảnh đảm bảo đủ dữ liệu training, cuối cùng là chuẩn hóa

dữ liệu khuôn mặt Sử dụng các 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 và bước phân loại tính năng là độc lập với nhau, trong Deep learning có thể thực hiện FER theo cách từ đầu đến cuối Một lớp mất được 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ự đoán của từng mẫu có thể được mạng trực tiếp xuất ra

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 trong các lĩnh vực khác nhau:

 Giáo dục: Phản ứng của người học trong thời gian thực và sự tham gia vào nội dung

là một thước đo lường cho hiệu quả của bài giảng

Trang 9

5

 Tiếp thị: Đây là một cách thức để các công ty kinh doanh phân tích các nhu cầu và phản hồi sự hài lòng của khách hàng đối với quảng cáo, sản phẩm, bao bì và thiết kế cửa hàng của họ

 Bảo mật: Nó có thể giúp xác định hành vi đáng ngờ trong đám đông và có thể được

sử dụng để ngăn chặn tội phạm và những kẻ khủng bố tiềm năng

 Chăm sóc sức khỏe: Nó có thể hữu ích trong việc tự động hóa dịch vụ y tế Cả sức khỏe thể chất và tinh thần có thể được phân tích thông qua ứng dụng này

Trang 10

6

PHẦN 2: TỔNG QUAN VỀ BÀI TOÁN NHẬN DẠNG CẢM XÚC

KHUÔN MẶT

2.1 Giới thiệu về học sâu (Deep learning)

Học sâu (deep learning) là tập các thuật toán học máy với ý tưởng xây dựng mô hình dữ liệu có mức độ trừu tượng cao dựa trên các dữ liệu có mức độ trừu tượng hóa thấp hơn, bằng cách phân lớp dữ liệu và các biến đổi phi tuyến Nghiên cứu từ rất lâu cho thấy mạng nơron được chứng minh khả năng xấp xỉ vạn năng chỉ với không quá 4 lớp, nhưng chưa có phương pháp nào cụ thể ước lượng số nơron cần thiết trên mỗi lớp Việc nghiên cứu về các mạng có số lớp lớn chỉ trở nên phổ biến sau thành công của mạng AlexNet khi mô hình này thắng giải ImageNet 2012 với khoảng cách rất xa so với các mô hình cạnh tranh, mặc dù kiến trúc CNN đã được LeCun giới thiệu từ trước đó rất lâu

Ngoài kiến trúc CNN, các mô hình mạng học sâu còn nhiều dạng kiến trúc khác như cá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ột mô hình học sâu tiêu biểu sử dụng trong nhận dạng mặt người, trong đó

dữ liệu đầu vào của mạng có thể là dữ liệu ở dạng thô nhất là các điểm ảnh RGB (thậm chí không cần qua tiền xử lý) Các đặc trưng được tổ hợp và tạo thành các chi tiết nhỏ ở lớp ẩn đầu tiên, sau đó tiếp tục được tái tạo và tổ hợp mức chi tiết lớn ở lớp ẩn thứ hai, và cuối cùng các hình ảnh đặc trưng của toàn bộ khuôn mặt ở lớp ẩn thứ 3 Lớp output cho ra đánh giá xác suất khuôn mặt thuộc phân lớp nào (người nào)

Trang 11

7

Hình 2.1 Một mô hình học sâu trong nhận dạng mặt người

Một mô hình học sâu thường có 3 nhiệm vụ được kết hợp trong một kiến trúc mạng duy nhất:

 Các lớp đặc trưng (features): có nhiệm vụ chuyển đổi các đặc trưng thành dạng dữ liệu phù hợp để xử lý, chẳng hạn như các tầng tích chập (convolution), mẫu (subsampling), pooling, …

 Các lớp mô hình (modeling): sử dụng các thuật toán học để khái quát hóa dữ liệu, chẳng hạn nơron network, restricted BM, DBN, autoencoder, …

 Các lớp giải mã (decoding): dựa trên dữ liệu khái quát biến đổi thành đầu ra (markov random field hoặc những công cụ tương tự)

2.2 Bài toá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 được triển khai gồm 3 bước:

Trang 12

8

 Nhận ảnh và tiền xử lý: Ảnh khuôn mặt được lấy từ nguồn dữ liệu tĩnh (chẳng hạn như từ file, database), hoặc động (từ livestream, webcam, camera, …), nguồn dữ liệu này có thể trải qua một số bước tiền xử lý nhằm tăng chất lượng hình ảnh để giúp việc phát hiện cảm xúc trở nên hiệu quả hơn

 Trích xuất các đặc trưng: Bước rất quan trọng, đặc biệt với các phương pháp truyền thống, các đặc trưng khuôn mặt được tính toán dựa trên các thuật toán có sẵn, kết

quả thường là một vector đặc trưng làm đầu vào cho bước sau

 Phân lớp và nhận diện cảm xúc: Đây là một bài toán phân lớp điển hình, rất nhiều các thuật toán có thể áp dụng trong bước này như 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 được xây dựng trên ngôn ngữ Python và sử dụng thư viện Keras Mạng CNN được xây dựng gồm sáu lớp tích chập, ba lớp Max-pooling và cuối cùng là hai lớp Full-connected Số lượng filter tương ứng lần lượt là 32, 64 và 128 Kích thước của filter 3x3 và lớp Max-pooling có kích thước stride là 2x2 Lớp Max-pooling được sử dụng sau mỗi hai lớp tích chập Max pooling được dùng để giảm kích thước ma trận nhưng vẫn làm nổi bật lên được đặc trưng có trong ma trận đầu vào

Sau mỗi lớp Max Pooling sẽ có một lớp Drop Out nhằm giảm hiện tượng overfitting bằng cách loại bỏ ngẫu nhiên một số unit

Để giữ được kích thước không gian của ngõ ra, các zero-padding được thêm vào Sau khi qua các lớp tích chập, ngõ ra sẽ qua Flatten trở thành vector 1 chiều để đưa vào lớp dense (hay lớp full connected)

Hàm kích hoạt được sử dụng trong mạng CNN là Leaky Rectifier Linear Unit (Leaky ReLU) theo công thức sau: 𝑓(𝑥) = max⁡(𝑥, 𝑥

20) Giá trị 20 được sử dụng theo tập validation của FER-2013 Từ công thức trên, giá trị trả

về thay vì bằng 0 khi 𝑥 < 0 như ReLU, leaky ReLU sẽ tạo thành đường dốc với giá trị giảm về nhỏ hơn 0 Ở mạng nơ-ron, kết quả đầu ra cần được chuẩn hóa sang dạng phần trăm để dự đoán giữa các lớp Khi đó lớp cuối cùng của mạng CNN là lớp Softmax với

Trang 13

9

7 ngõ ra

𝑧𝑘

∑𝑛 𝑒𝑧𝑖 𝑖=1

Với 𝑎𝑘 là tỉ lệ dự đoán lớp thứ 𝑘, 𝑛 là tổng số lớp được dự đoán (7 cảm xúc) và 𝑧𝑘 là hệ số của các node trước cho lớp thứ 𝑘

Thuật toán sử dụng để cập nhật trọng số của mạng CNN là Adam Thuật toán Adam nổi trội hơn một số thuật toán khác bởi khả năng vượt qua vùng local minimum và đạt tới điểm tối ưu nhất (flat minimum) Một đặc điểm ở thuật toán Adam đó chính là khả năng tận dụng

“động lực” để hội tụ nhanh hơn “Động lực” chính là khả năng tận dụng một số phần trong lần cập nhật trọng số trước để cập nhật cho trọng số hiện tại

Kết quả cuối cùng của model cần được đánh giá để biết hiệu quả của quá trình training dữ liệu Ở đây hàm mất mát chính là công cụ để thực hiện điều đó Hàm mất mát sử dụng trong bài báo này là hàm “categorical_crossentropy”

𝐿 = − ∑ (𝑦𝑖 ∗ 𝐿𝑜𝑔𝑦̂𝑖)

𝑛

𝑖=1

Với 𝐿 là ký hiệu của hàm mất mát, 𝑦𝑖 là kết quả thực và 𝑦̂𝑖 là kết quả dự đoán Biểu thức trên chính là hàm tính sai số được áp dụng phổ biến và được sử dụng để vẽ đồ thị đánh giá kết quả cuối cùng

Ngoài hàm mất mát, việc đánh giá model cũng có thể dựa vào độ chính xác:

Độ⁡chính⁡xác =Số⁡lượng⁡dự⁡đoán⁡chính⁡xác

Số⁡lượng⁡được⁡dự⁡đoán Biểu thức là biểu thức tổng quát để tính độ chính xác, được sử dụng để tính độ chính xác cho quá trình đánh giá kết quả của hệ thống

Trang 14

10

PHẦN 3: KẾT QUẢ THỰC NGHIỆM

3.1 Tập dữ liệu FER2013

Cảm xúc của con người là muôn hình vạn trạng Mỗi người điều có mỗi cách bày tỏ cảm xúc của mình khác nhau Chính vì thế, dữ 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à rất lớn

Tập dữ liệu nguồn mở FER2013.csv, được tạo ra cho một dự án bởi PierreLuc Carrier và

Aaron Courville, được chia sẻ công khai trong cuộc thi Kaggle (2013)

Dữ liệu trong tập FER2013.csv này bao gồm 35.887 ảnh xám: hình ảnh khuôn mặt kích thước 48x48 pixel từ nhiều góc độ khác nhau Hình ảnh được phân loại thành một trong bảy lớp thể hiện cảm xúc khuôn mặt khác nhau, tất cả được gán nhãn từ 0 – 6 (0 = Giận

dữ, 1 = Ghê tởm, 2 = Sợ hãi, 3 = Vui vẻ, 4 = Buồn, 5 = Ngạc nhiên, 6 = 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’ và 4593 ảnh ‘Angry’

3.2 Mô hình đề xuất

Kiến trúc CNN gồm 8 khối chính trong đó có 7 khối CNN và khối cuối là đầu ra softmax,

xem tại Hình 3.1 Đầu tiên, ảnh 48x48 đa cấp xám được 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 quả tính toán được chuyển qua một lớp batch normalization Khối A được thiết kế với ý đồ tạo ra 32 đặc trưng cơ bản cho việc phát hiện cảm xúc khuôn mặt Khối B được thiết kế tương tự khối A, ngoại trừ việc sử dụng 64 filter, mục tiêu của khối này giúp tổ hợp các đặc trưng cơ bản thành các đặc trưng phức tạp hơn Kết quả đầu ra khối B được xử lý độc lập trong 2 khối C và D, khối C là một depthwise separable CNN 128 filter [7], sau đó được chuẩn hóa bởi một lớp batch normalization và max pooling Khối D chỉ là một filter nhằm điều chỉnh trọng số của đặc trưng khi tính gộp kết quả với khối C Khối E và F cũng được thiết kế tương tự như vậy Cuối cùng, chúng tôi sử dụng khối F có 7 filter (tương ứng với 7 loại cảm xúc), kết quả tính toán của CNN được chuyển vào một global average pooling (chuyển kết quả 2D thành vector), kết quả này được xử lý qua một lớp softmax để trả về xác suất của từng loại cảm xúc

Ngày đăng: 16/06/2022, 08:05

TỪ KHÓA LIÊN QUAN

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