Skip to content

manhskillgood/facial-expression-recognition

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 

Repository files navigation


Emotion Recognition Using CNN

DaiNam University Logo AIoTLab Logo

Made by AIoTLab Fit DNU DaiNam University

Hệ thống nhận diện biểu cảm khuôn mặt theo thời gian thực

Dự án xây dựng hệ thống nhận diện biểu cảm khuôn mặt theo thời gian thực dựa trên dữ liệu landmark hoặc ảnh grayscale 48x48, sử dụng mô hình CNN và MobileNetV2. Hệ thống hiển thị biểu cảm trên giao diện và phát âm thanh tương ứng với cảm xúc được nhận diện, hỗ trợ trực quan trong các ứng dụng chăm sóc sức khỏe tinh thần, tương tác người-máy...


🌟 Giới thiệu

  • 📸 Nhận diện biểu cảm thời gian thực: Qua webcam, hệ thống phát hiện khuôn mặt, dự đoán biểu cảm như Angry, Fear, Happy, Sad, Surprise.
  • 🔊 Phát âm thanh tương ứng: Khi nhận diện cảm xúc, hệ thống phát lời nhắc bằng giọng nói tiếng Việt phù hợp với biểu cảm.
  • 📊 Đánh giá mô hình: Hiển thị độ chính xác, confusion matrix của mô hình CNN và MobileNetV2 trên tập test.
  • 🖼️ Xử lý ảnh: Tiền xử lý bao gồm chuyển grayscale, cân bằng histogram, resize về 48x48 và chuẩn hóa.

🏗️ QUY TRÌNH HỆ THỐNG

System Flow


📂 Cấu trúc dự án

📦 Project
├── 📂 data # Dữ liệu ảnh biểu cảm (train/test)
├── 📂 models # Chứa các mô hình huấn luyện (.h5)
├── accuracy.py # Đánh giá mô hình CNN
├── accuracy_mobilenet.py # Đánh giá mô hình MobileNetV2
├── cnn_model.py # Huấn luyện mô hình CNN
├── mobilenet_model.py # Huấn luyện mô hình MobileNetV2
├── collect_data.py # Thu thập dữ liệu từ webcam
├── predict.py # Dự đoán biểu cảm từ 1 ảnh tĩnh
├── realtime_prediction.py # Nhận diện biểu cảm thời gian thực, phát âm thanh


🛠️ CÔNG NGHỆ SỬ DỤNG

🧠 AI & Xử lý ảnh

TensorFlow Keras OpenCV MobileNetV2

🎵 Giao diện & Âm thanh

Tkinter gTTS pygame


🧰 Yêu cầu hệ thống

  • Python 3.x
  • Thư viện cần cài đặt:
pip install tensorflow keras opencv-python pillow gtts pygame seaborn scikit-learn
  • Camera (Webcam) để nhận diện biểu cảm thời gian thực.

🚀 Hướng dẫn cài đặt và chạy

1️⃣ Thu thập dữ liệu

Chạy file để thu thập dữ liệu từ webcam:

python collect_data.py
  • Hệ thống lưu ảnh đã tiền xử lý vào data/traindata/test.

2️⃣ Huấn luyện mô hình

Huấn luyện CNN:

python cnn_model.py

Huấn luyện MobileNetV2:

python mobilenet_model.py
  • Mô hình sẽ được lưu vào thư mục models/.

3️⃣ Đánh giá mô hình

Đánh giá độ chính xác và confusion matrix:

python accuracy.py  # cho CNN
python accuracy_mobilenet.py  # cho MobileNetV2

4️⃣ Dự đoán ảnh tĩnh

python predict.py
  • Nhập đường dẫn ảnh cần dự đoán → Hiển thị biểu cảm.

5️⃣ Nhận diện biểu cảm thời gian thực

python realtime_prediction.py
  • Hiển thị giao diện webcam.
  • Tự động phát hiện khuôn mặt, dự đoán biểu cảm và phát âm thanh tương ứng.

🎙️ Ví dụ âm thanh phản hồi

Biểu cảm Phát âm thanh
Angry "Đừng giận dữ như vậy mà. Hãy ngồi xuống và hít thở thật sâu!"
Fear "Bạn đang sợ điều gì à?"
Happy "Có vẻ bạn có một ngày tuyệt vời nhỉ. Hãy lan tỏa nó tới mọi người nào!"
Sad "Đừng buồn nhé. Có mình đây rồi."
Surprise "Ồ, có gì làm bạn ngạc nhiên vậy?"

📊 Kết quả huấn luyện

Confusion Matrix CNN Confusion Matrix MobileNet


📰 Poster

System Architecture


🤝 Đóng góp

Dự án được phát triển bởi 4 thành viên:

Họ và Tên Vai trò
Nguyễn Quang Hiệp Phát triển mã nguồn, thiết kế và huấn luyện mô hình, đánh giá, demo hệ thống.
Vũ Đức Anh Tài liệu, poster, slide, hỗ trợ triển khai và thuyết trình.
Nguyễn Xuân Thuận Thiết kế slide, hỗ trợ tài liệu, test hệ thống, xử lý ảnh.
Lê Đức Mạnh Hỗ trợ huấn luyện, kiểm thử, xử lý ảnh.

© 2025 NHÓM 7, CNTT16-01, TRƯỜNG ĐẠI HỌC ĐẠI NAM


About

Nhận Diện Biểu Cảm Khuôn Mặt

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%