Đồ Án Tốt Nghiệp Về Nhận Dạng Cảm Xúc Khuôn Mặt Người

**Mô tả SEO cho bài viết** Đồ án tốt nghiệp nhận dạng cảm xúc khuôn mặt người sử dụng công nghệ hiện đại, giúp phân tích và nhận diện cảm xúc chính xác.

Người đăng

Ẩn danh

Thể loại

đồ án tốt nghiệp

2018

76
14
0

Phí lưu trữ

30 Point

Mục lục chi tiết

LỜI CAM ĐOAN

LỜI CẢM ƠN

1. CHƯƠNG 1: NỘI DUNG NGHIÊN CỨU

2. CHƯƠNG 2: CƠ SỞ LÝ THUYẾT

3. CHƯƠNG 3: THIẾT KẾ VÀ TÍNH TOÁN

4. CHƯƠNG 4: THI CÔNG HỆ THỐNG

5. CHƯƠNG 5: KẾT QUẢ, NHẬN XÉT VÀ ĐÁNH GIÁ

6. CHƯƠNG 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

Tóm tắt

I. Giới thiệu về Nhận Diện Cảm Xúc Khuôn Mặt Người

Nhận diện cảm xúc là một lĩnh vực quan trọng trong trí tuệ nhân tạohọc máy, tập trung vào việc phân tích và phân loại các trạng thái cảm xúc trên khuôn mặt người. Đồ án tốt nghiệp này sử dụng xử lý ảnhthuật toán AI để xây dựng một hệ thống nhận diện cảm xúc dựa trên ba trạng thái cơ bản: vui, buồn và ngạc nhiên. Hệ thống kết hợp ArduinoMatlab để thực hiện việc nhận diện và điều khiển các thiết bị phần cứng tương ứng với từng cảm xúc.

1.1. Mục tiêu của đồ án

Mục tiêu chính của đồ án là xây dựng một hệ thống nhận diện cảm xúc khuôn mặt người bằng cách sử dụng mô hình nhận diện dựa trên phương pháp PCA (Principal Component Analysis). Hệ thống sẽ nhận diện cảm xúc từ dữ liệu hình ảnh thu được qua webcam và điều khiển các thiết bị như cửa và đèn LED thông qua Arduino. Khi nhận diện được cảm xúc vui, hệ thống sẽ mở cửa; khi buồn, hệ thống sẽ bật đèn; và khi ngạc nhiên, hệ thống sẽ đóng cửa và tắt đèn.

1.2. Ứng dụng thực tế

Hệ thống nhận diện cảm xúc có nhiều ứng dụng thực tế trong các lĩnh vực như an ninh, y học, và tương tác người-máy. Ví dụ, trong y học, hệ thống có thể giúp theo dõi cảm xúc của bệnh nhân để hỗ trợ điều trị tâm lý. Trong an ninh, hệ thống có thể phát hiện các hành vi bất thường dựa trên biểu hiện cảm xúc. Đồ án này cũng mở ra hướng phát triển cho các ứng dụng AI trong tương lai.

II. Cơ sở lý thuyết và phương pháp

Đồ án sử dụng phương pháp PCA để nhận diện cảm xúc trên khuôn mặt. PCA là một thuật toán AI giúp giảm chiều dữ liệu hình ảnh mà vẫn giữ được các đặc trưng quan trọng. Phương pháp này được áp dụng trong xử lý ảnh để tạo ra các eigenfaces, là các thành phần chính đại diện cho các đặc điểm khuôn mặt. Các bước cơ bản bao gồm: thu thập dữ liệu hình ảnh, xử lý ảnh, trích xuất đặc trưng, và phân loại cảm xúc.

2.1. Phương pháp PCA

PCA (Principal Component Analysis) là một kỹ thuật giảm chiều dữ liệu, giúp tối ưu hóa việc biểu diễn dữ liệu trong không gian ít chiều hơn. Trong đồ án này, PCA được sử dụng để trích xuất các đặc trưng chính từ dữ liệu hình ảnh khuôn mặt, giúp hệ thống nhận diện cảm xúc một cách chính xác. Các bước thực hiện bao gồm: tính toán ma trận hiệp phương sai, tìm các giá trị riêng và vectơ riêng, và xây dựng các eigenfaces.

2.2. Xử lý ảnh và trích xuất đặc trưng

Quá trình xử lý ảnh bao gồm các bước như chuyển đổi ảnh sang thang độ xám, chuẩn hóa kích thước ảnh, và loại bỏ nhiễu. Sau đó, các đặc trưng khuôn mặt được trích xuất bằng phương pháp PCA. Các đặc trưng này được sử dụng để huấn luyện mạng nơ-ron hoặc các mô hình học máy khác để phân loại cảm xúc. Đồ án sử dụng Matlab để thực hiện các bước xử lý ảnh và trích xuất đặc trưng.

III. Thiết kế và triển khai hệ thống

Hệ thống được thiết kế gồm ba phần chính: phần cứng, phần mềm, và giao diện người dùng. Phần cứng bao gồm Arduino Uno, webcam, và các thiết bị điều khiển như servo và đèn LED. Phần mềm được phát triển trên Matlab để thực hiện các bước nhận diện cảm xúc. Giao diện người dùng được thiết kế để hiển thị kết quả nhận diện và điều khiển các thiết bị phần cứng.

3.1. Phần cứng

Phần cứng của hệ thống bao gồm Arduino Uno, được sử dụng để điều khiển các thiết bị như servo và đèn LED. Webcam được kết nối với máy tính để thu thập dữ liệu hình ảnh khuôn mặt. Arduino được lập trình để nhận tín hiệu từ Matlab và thực hiện các hành động tương ứng với từng cảm xúc được nhận diện.

3.2. Phần mềm

Phần mềm được phát triển trên Matlab, sử dụng các thư viện hỗ trợ xử lý ảnhhọc máy. Quá trình nhận diện cảm xúc bao gồm các bước: thu thập ảnh, xử lý ảnh, trích xuất đặc trưng, và phân loại cảm xúc. Kết quả nhận diện được hiển thị trên giao diện người dùng và gửi tín hiệu điều khiển đến Arduino.

IV. Kết quả và đánh giá

Hệ thống đã được thử nghiệm với các bộ dữ liệu hình ảnh khác nhau và đạt được độ chính xác cao trong việc nhận diện cảm xúc. Kết quả thực tế cho thấy hệ thống có thể nhận diện chính xác các cảm xúc vui, buồn và ngạc nhiên từ cả ảnh chụp sẵn và ảnh thu được qua webcam. Hệ thống cũng hoạt động ổn định trong việc điều khiển các thiết bị phần cứng tương ứng với từng cảm xúc.

4.1. Kết quả thực nghiệm

Hệ thống đã được thử nghiệm với các bộ dữ liệu hình ảnh khác nhau, bao gồm cả ảnh chụp sẵn và ảnh thu được qua webcam. Kết quả cho thấy hệ thống có thể nhận diện chính xác các cảm xúc vui, buồn và ngạc nhiên với độ chính xác cao. Các thiết bị phần cứng như servo và đèn LED cũng hoạt động ổn định theo các tín hiệu điều khiển từ hệ thống.

4.2. Đánh giá và hướng phát triển

Hệ thống nhận diện cảm xúc khuôn mặt người đã đạt được các mục tiêu đề ra, tuy nhiên vẫn còn một số hạn chế như độ chính xác chưa cao trong điều kiện ánh sáng yếu. Hướng phát triển trong tương lai bao gồm cải thiện độ chính xác của hệ thống bằng cách sử dụng các thuật toán AI tiên tiến hơn và mở rộng khả năng nhận diện các cảm xúc phức tạp hơn.

12/02/2025

Trích đoạn nội dung tài liệu

đặt vấn đề dẫn nhập lý do chọn đề tài, mục tiêu, nội dung nghiên cứu, các giới hạn thông số và bố cục đồ án.  Chƣơng 2: Cơ sở lý thuyết. Giới thiệu về kit Arduino, giới thiệu về cách cài đặt thƣ viện cho Arduino và camera webcam trên phần mềm Matlab. Giới thiệu về phép phân tích thành phần chính PCA và áp dụng vào bài toán nhận dạng cảm xúc trên khuôn mặt ngƣời.

 Chƣơng 3: Thiết kế và Tính toán BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 2 CHƢƠNG 1. TỔNG QUAN Phân tích, xây dựng sơ đồ khối, sơ đồ phần cứng, thiết kế về chƣơng trình cho hệ thống nhận dạng cảm xúc trên khuôn mặt ngƣời đƣợc viết trên phần mềm Matlab, sử dụng thƣ viện của Matlab cho kit Arduino.  Chƣơng 4: Thi công hệ thống Xây dựng chƣơng trình hoàn chỉnh cho toàn hệ thống, các hàm, các lƣu đồ, các chƣơng trình đƣợc sử dụng. Tạo tập tin huấn luyện, lắp ráp và test cho chƣơng trình.

Viết tài liệu hƣớng dẫn sử dụng, quy trình thao tác.  Chƣơng 5: Kết quả, Nhận xét và đánh giá Nêu các kết quả đạt đƣợc khi thực hiện chƣơng trình, phân tích, nhận xét, đánh giá kết quả thực thi đƣợc.  Chƣơng 6: Kết luận và Hƣớng phát triển Tóm tắt những kết quả đạt đƣợc, những hạn chế và nêu lên các hƣớng phát triển trong tƣơng lai. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 3 CHƢƠNG 2.

CƠ SỞ LÝ THUYẾT Chƣơng 2.1 Kit Arduino Arduino ra đời tại thị trấn Ivrea – Italy, đƣợc giới thiệu vào năm 2005 nhƣ một công cụ cho sinh viên tìm tòi, học hỏi, phát triển, nhƣng đến nay Arduino đã đƣợc sử dụng rộng rãi trên thế giới và chứng tỏ đƣợc hiệu quả thông qua vô số ứng dụng từ ngƣời dùng. Arduino là một board mạch vi xử lý đƣợc dùng để tƣơng tác với các thiết bị phần cứng nhƣ cảm biến, động cơ, đèn hay các thiết bị khác. Một board Arduino bao gồm một vi điều khiển AVR với nhiều linh kiện bổ sung đã làm nên board mạch với nhiều thế mạnh hơn so với các vi điều khiển khác nhƣ: chạy đƣợc trên nhiều hệ điều hành khác nhau (Windows, Linux.), dễ dàng lắp ráp và mở rộng phần cứng, phát triển dựa trên nguồn mở, dễ dàng chia sẻ mã nguồn với nhau mà không phải lo lắng ngôn ngữ hay hệ điều hành đang sử dụng… Arduino thƣờng sử dụng các dòng chip megaAVR, đặc biệt là ATmega8, ATmega168, ATmega328, ATmega1280 và ATmega2560. Hầu hết các mạch gồm một bộ điều chỉnh tuyến tính 5V và một thạch anh dao động 16 MHz, các board Arduino hiện tại đƣợc lập trình thông qua cổng USB.

Kit Arduino Uno Kit Arduino có nhiều phiên bản với tính năng và mục đích sử dụng khác nhau. Board Arduino Uno là một trong những phiên bản đƣợc sử dụng rộng rãi nhất bởi chi phí và tính linh động của nó. Arduino Uno [3] là một board mạch vi điều khiển dựa trên chip Atmega328 với 14 chân vào/ra bằng tín hiệu số đƣợc đánh số từ 0 đến 13, trong đó 6 chân có thể tạo xung PWM đƣợc đánh dấu “~” trƣớc mã số của chân, 6 chân nhận tín hiệu analog đƣợc đánh dấu từ A0 đến A5, có thể sử dụng nhƣ là 6 chân I/O số. Có 2 mức điện áp là 0V và 5V với dòng vào/ra tối đa trên mỗi chân là 30 mA.

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 1 CHƢƠNG 2. CƠ SỞ LÝ THUYẾT Bảng 2. Thông số kỹ thuật Arduino Uno. Vi điều khiển Atmega328P họ 8 bit Điện áp hoạt động 5V Điện áp đầu vào 7-12V Điện áp đầu vào giới hạn 6-20V Số chân Digital I/O 14 (có 6 chân PWM) Số chân Analog 6 ( độ phân giải 10bit) DC current per I/O pin 20mA DC current for 3.3V pin 50mA Flash Memory 32KB (ATmega328P) SRAM 2KB (Atmega328P) EEPROM 1KB (Atmega328P) Clock Speed 16MHZ Length 68.4 mm Weight 25 g Hình 2.1 Cấu trúc phần cứng của Arduino Uno.

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 2 CHƢƠNG 2. CƠ SỞ LÝ THUYẾT  Cổng USB(1): Cổng USB dùng để kết nối với máy tính và thông qua đó để upload chƣơng trình cho Arduino từ máy tính, đồng thời cung cấp nguồn cho Arduino.  Nguồn (2 và 4): Sử dụng jack cấm nguồn 2.1mm (cực dƣơng ở giữa) hoặc có thể dùng chân Vin và GND để cấp nguồn cho Arduino. Board mạch hoạt động ở điện áp ngoài khoảng 5-20V, nhƣng nếu cấp nguồn lớn hơn 5V thì ngõ ra chân 5V sẽ lớn hơn, không nên cấp nguồn lớn hơn 12V vì board sẽ nóng và dễ bị hỏng.

Chân 5V và chân 3.3v là 2 chân lấy nguồn từ Arduino ra ngoài, không đƣợc cấp nguồn vào nó, sẽ làm hỏng.  Chip Atmega328P(6): Có 32KB bộ nhớ flash trong đó có 0.5KB dùng cho bootloader, 2KB SRAM, 1KB EEPROM.  Output và input(3 và 5): Arduino có 14 chân Digital với các chức năng Input và Output. PHẦN MỀM MATLAB.

Matlab (Matrix Laboratory ) là một môi trƣờng tính toán số và lập trình, đƣợc thiết kế bởi công ty MathWorks. Matlab [4] là ngôn ngữ lập trình thực hành bậc cao đƣợc sử dụng nhiều để giải các bài toán kỹ thuật. Matlab tích hợp việc tính toán thể hiện kết quả cho phép lập trình, giao diện làm việc rất dễ dàng cho ngƣời sử dụng. Dữ liệu cũng với thƣ viện đƣợc lập trình sẵn cho phép ngƣời dùng có đƣợc những ứng dụng nhƣ:  Tính toán các phép toán học thông thƣờng, tính toán ma trận,  Lập trình tạo ra những ứng dụng mới.

 Cho phép mô phỏng các mô hình thực tế.  Phân tích, khảo sát, hiển thị dữ liệu.  Matlab đƣợc sử dụng trong nhiều lĩnh vực, bao gồm xử lý tín hiệu và ảnh, truyền thông, thiết kế điều khiển tự động, đo lƣờng kiểm tra, phân tích mô hình tài chính, hay tính toán sinh học. Matlab cung cấp giải pháp chuyên dụng gọi là Toolbox.

Toolbox là một tập hợp toàn diện các hàm của Matlab (M-file). Hệ thống Matlab gồm 5 phần chính: BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 3 CHƢƠNG 2. CƠ SỞ LÝ THUYẾT Môi trƣờng làm việc: bao gồm các phƣơng tiện cho việc quản lý các biến trong không gian làm việc Workspace cũng nhƣ xuất nhập dữ liệu. Nó cũng bao gồm các công cụ phát triển, quản lý, gỡ rối và định hình M-file.

Xử lý đồ họa: bao gồm các lệnh cao cấp cho trực quan hóa dữ liệu hai chiều và ba chiều, xử lý ảnh, ảnh động. Cung cấp các giao diện tƣơng tác giữa ngƣời sử dụng và máy tính. Thƣ viện toán học: các hàm cơ bản nhƣ cộng, trừ, nhân, chia, sin, cos.các hàm phức tạp nhƣ tính ma trận nghịch đảo, trị riêng, chuyển đổi fourier, laplace, symbolic library. Giao diện ngƣời dùng (Application Program Interface): cho phép viết chƣơng trình tƣơng tác với các ngôn ngữ khác C, C++.

Simulink là một chƣơng trình đi kèm với Matlab, là một hệ thống tƣơng tác với việc mô phỏng các hệ thống động phi tuyết, mô phỏng mạch.CÁC CẢM XÚC TRÊN KHUÔN MẶT Cảm xúc trên khuôn mặt là một quy luật rất quan trọng trong giao tiếp giữa ngƣời với ngƣời. Những công nghệ giao tiếp tiến bộ nhanh chóng gần đây cùng với sựu phát triển của khoa học máy tính đã cho chúng ta những hi vọng rằng cảm xúc trên khuôn mặt sẽ trở thành một giải pháp then chốt trong lĩnh vực giao diện ngƣời máy và các hƣớng phát triển giao tiếp khác trong tƣơng lai. Trong các cách biểu đạt ngôn ngữ cơ thể, cảm xúc là nơi thể hiện rõ nhất những gì mà ngƣời khác cảm nhận đƣợc. Qua nghiên cứu của nhà tâm lý học Mehrabian năm 1968 đã chỉ ra rằng khi một thông điệp từ một ngƣời chuyển tới ngƣời khác, phần từ ngữ chỉ chiếm 7% ảnh hƣởng, 38% âm lƣợng của giọng nói, trong khi ngôn ngữ cơ thể của ngƣời nói chiếm tới 55% ảnh hƣởng của thông điệp đó [5].

Nhận dạng cảm xúc đƣợc ứng dụng trong rất nhiều lĩnh vực khác nhau nhƣ y học [6], tƣơng tác giao diện giữa ngƣời và máy [7], chuyển động thân ngƣời [8]… Trong đề tài đồ án tốt nghiệp này, chúng em xây dựng một hệ thống nhận dạng cảm xúc dựa trên 3 cảm xúc cơ bản trên đó là: vui, buồn, ngạc nhiên. Các dấu hiệu nhận biết cảm xúc:  Vui: Cảm xúc này thể hiện qua nét mặt rạng rỡ trên khuôn mặt. Nụ cƣời chính là dấu hiệu đơn giản nhất để nhận biết cảm xúc này. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 4 CHƢƠNG 2.

CƠ SỞ LÝ THUYẾT  Buồn: Biểu hiện của cảm xúc này thông qua khuôn mặt là vùng trán nhăn lại, đôi mắt trùng xuống, không có thần thái, vẻ mặt biểu lộ rõ sự buồn khổ, sầu não kèm theo những tiếng thở dài. Nhìn vào dễ dàng tạo cảm giác lặng lẽ, trầm buồn.  Ngạc nhiên: Đây là trạng thái dễ gây cảm giác thú vị khi nhìn vào. Sự ngạc nhiên thể hiện qua lông mày nhô cao, mắt mở to, phần hàm dƣới trề xuống, miệng mở tròn ra.

PHƢƠNG PHÁP NHẬN DẠNG PCA - EIGENFACES. Phƣơng pháp nhận dạng PCA Phân tích thành phần chính PCA (Principal Component Analysis) là một thuật toán sử dụng phép biến đổi trực giao để biến đổi một tập hợp dữ liệu từ một không gian nhiều chiều sang một không gian mới ít chiều hơn (2 hoặc 3 chiều) nhằm tối ƣu hóa việc thể hiện sự biến thiên của dữ liệu. PCA một trong những ứng dụng hữu ích trong việc nhận dạng mặt và nén ảnh, là phƣơng pháp phân tích dữ liệu nhiều biến đơn giản nhất. Phép biến đổi tạo ra những ƣu điểm nhƣ:  Giảm sổ chiều của không gian chứa dữ liệu: tạo ra một ảnh mới từ ảnh ban đầu, ảnh này có kích thƣớt nhỏ hơn nhiều so với ảnh ban đầu nhƣng vẫn giữ lại những nét đặc trƣng nhất từ ảnh ban đầu.

 Thay vì giữ lại các trục tọa độ của không gian cũ. PCA xây dựng những trục tọa độ mới nhƣng có khả năng biểu diễn dữ liệu tƣơng đƣơng, và đảm bảo độ biến thiên của dữ liệu trên mỗi chiều mới.  Trong không gian mới, các liên kết tiềm ẩn của dữ liệu có thể đƣợc khám phá, mà nếu đặt trong không gian cũ thì khó phát hiện hơn vì những liên kết này không thể hiện rõ.  Các trục tọa độ trong không gian mới là tổ hợp tuyến tính của không gian cũ.

Các trục này luôn đƣợc trực giao đôi một với nhau mặc dù trong không gian ban đầu các trục có thể không trực giao.  Nói một cách ngắn gọn, mục tiêu của PCA là tìm một không gian mới với số chiều nhỏ hơn không gian cũ. Các trục tọa độ không gian mới đƣợc xây dựng sao cho trên mỗi trục, độ biến thiên của dữ liệu trên đó là lớn nhất.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ

Nhận Dạng Cảm Xúc Khuôn Mặt Người: Đồ Án Tốt Nghiệp là một tài liệu chuyên sâu tập trung vào việc ứng dụng công nghệ xử lý ảnh và trí tuệ nhân tạo để nhận diện cảm xúc từ khuôn mặt con người. Đồ án này không chỉ cung cấp cái nhìn tổng quan về các phương pháp tiếp cận hiện đại mà còn trình bày chi tiết quy trình thực hiện, từ thu thập dữ liệu đến huấn luyện mô hình. Điều này mang lại lợi ích lớn cho những ai quan tâm đến lĩnh vực thị giác máy tính và AI, giúp họ hiểu rõ hơn về cách thức hoạt động và ứng dụng thực tế của công nghệ này.

Nếu bạn muốn khám phá thêm về các ứng dụng xử lý ảnh trong nhận diện khuôn mặt, hãy xem Đồ án hcmute ứng dụng xử lý ảnh trong nhận diện khuôn mặt. Để tìm hiểu sâu hơn về các mô hình mạng nơ-ron liên quan, Đồ án hcmute thực hiện mạng nơ ron trên fpga là một tài liệu đáng đọc. Ngoài ra, nếu bạn quan tâm đến phân tích cảm xúc ở mức độ cao hơn, Luận án tiến sĩ khoa học máy tính phân giải đồng tham chiếu đối tượng cho phân tích cảm xúc sẽ cung cấp những góc nhìn chuyên sâu và mở rộng kiến thức của bạn.