Skip to content
Mì AI Mì AI Mì AI

Học AI theo cách Mì ăn liền!

Mì AI Mì AI Mì AI

Học AI theo cách Mì ăn liền!

  • Trang chủ
  • Kênh Youtube
  • Facebook Group
  • Nói về chủ tiệm Mì
  • Trang chủ
  • Kênh Youtube
  • Facebook Group
  • Nói về chủ tiệm Mì
Close

Search

  • Trang chủ
  • Kênh Youtube
  • Facebook Group
  • Nói về chủ tiệm Mì
Mì AI Mì AI Mì AI

Học AI theo cách Mì ăn liền!

Mì AI Mì AI Mì AI

Học AI theo cách Mì ăn liền!

  • Trang chủ
  • Kênh Youtube
  • Facebook Group
  • Nói về chủ tiệm Mì
  • Trang chủ
  • Kênh Youtube
  • Facebook Group
  • Nói về chủ tiệm Mì
Close

Search

  • Trang chủ
  • Kênh Youtube
  • Facebook Group
  • Nói về chủ tiệm Mì
Computer Vision

Thử làm model “chị Thanh Tâm” dự đoán tâm trạng và xoa dịu người dùng

By Chủ tiệm Mì
November 4, 2019 4 Min Read
2

Một tuần mới tươi đẹp với tất cả các mem MÌ AI nhé! Hôm nay chúng ta sẽ làm bài toàn Thử làm model “chị Thanh Tâm” dự đoán tâm trạng và xoa dịu người dùng.

Trong bài này mình sẽ xây dựng một model có thể nhìn ảnh và đoán được tâm trạng của người dùng như thế nào. Nếu người dùng đang tức giận, “chị Thanh Tâm” sẽ khuyên bảo “Bình tĩnh nhé bạn, tức giận sẽ mệt mỏi lắm đó”, còn nếu người dùng đang vui, “chị Thanh Tâm” sẽ phát ra âm thanh “Chúc mừng bạn, hãy tiếp tục duy trì niềm vui nhé”!

chị Thanh tâm

Rồi, bắt tay vào làm ngay thôi các bạn nhé!

Phần 1. Chuẩn bị nguyên vật liệu

Chúng ta hãy tạo một thư mục MiAI_Emotion_Detection để lưu các dữ liệu, mã nguồn của bài nhé. Sau khi tạo xong, các bạn chuyển vào trong thư mục đó và gõ lệnh sau để lấy mã nguồn về nhé:

git clone https://github.com/thangnch/MiAI_Emotion_Detection .

Đợi một chút các bạn sẽ thấy các file mã nguồn bay ngay về máy. Bây giờ, chúng ta tiến hành tải dữ liệu train về máy.

Trước hết, các bạn tạo thư mục data nằm trong thư mục MiAI_Emotion_Detection để chứa data đã nhé.

Bộ dữ liệu chúng ta sử dụng là bộ FER 2013 trên Kaggle nhé, các bạn tải về tại đây. Để hiểu rõ hơn về dữ liệu các bạn đọc link sau: https://www.kaggle.com/c/challenges-in-representation-learning-facial-expression-recognition-challenge/data.

Sau khi tải xong chúng ta sẽ có 1 file fer2013.tar.gz, các bạn giải nén ra và copy 3 file trong đó vào thư mục data (chú ý là chỉ copy file, ko copy các thư mục nếu có nhé).

Rồi bây giờ bước cuối cùng các bạn cài đặt các thư viện cần thiết cho bài này bằng lệnh quen thuộc:

pip install -r setup.txt

Chú ý khi chạy các bạn phải đứng ở thư mục MiAI_Emotion_Detection, ngoài ra, do các thư viện được cập nhật liên tục nên có thể lúc các bạn triển khai sẽ có lỗi đôi chút. Vướng mắc gì các bạn cứ post lên group Mì Ai để cùng trao đổi nhé, link Group trao đổi, chia sẻ: https://www.facebook.com/groups/miaigroup .

Công cuộc chuẩn bị đã xong, ale hấp sang bước sau nào.

Phần 2. Tư tưởng thuật toán của bài toán dự đoán tâm trạng

Trong bài này các bạn sẽ làm quen với mạng CNN, một mạng thần thánh trong lĩnh vực Computer Vision, xử lý ảnh. Chúng ta sẽ triển khai bài này như sau:

  • Train:
    • Đọc dữ liệu các hình ảnh từ trong dataset và đưa vào mạng CNN để train với các đầu ra là 7 class: angry (tức giận), disgust (ghê sợ), fear (sợ hãi), happy (hạnh phúc), sad (buồn bã), surprise(ngạc nhiên) và neutral (trung tính)
    • Save file train lại thành file model.h5
  • Test:
    • Với một ảnh đầu vào chúng ta cũng chuẩn hóa, đưa vào mạng CNN.
    • Nhận đầu ra là 1 trong 7 class nói trên và hiển thị lên màn hình.
dự đoán tâm trạng
Nguồn: Microsoft

Phần 3. Mã nguồn chương trình dự đoán tâm trạng

Bây giờ các bạn cần chú ý đến các file sau đây trong thư mục mã nguồn:

  • train_model.py sẽ dùng để train model dự đoán tâm trạng, file này đại khái sẽ làm bước Train ở Phần 2.
  • emotion_detection.py thực hiện nhận đầu vào là một file ảnh và dự đoán tâm trạng của người trong ảnh.
  • emotion_detection_webcam.py: đọc ảnh từ webcam của máy tinh và cũng hiển thị tâm trạng người trong webcam kèm theo lời “tư vấn nhẹ nhàng” của “chị Thanh tâm” nhá (Ai FA thì dùng tạm nha kaka).

Mình đã comment kỹ từng dòng trong mã nguồn, các bạn chịu khó đọc phần comment nhé.

dự đoán tâm trạng

Phần 4. Thực hiện train và test model

Bây giờ các bạn thực hiện chạy lệnh sau để train model:

python train_model.py

Do model này xử lý hình ảnh nên sẽ hơi lâu một chút, các bạn đi pha trà hay cà phê uống cho đỡ sốt ruột nhé. Đến khi nào model hiển thị lên màn hình chữ “Model trained” thì là việc train đã xong.

train model keras

Để kiểm tra model nhận diện trên một ảnh, các bạn chạy lệnh

python emotion_detection.py test.png

Các bạn sẽ thấy tâm trạng của human mà máy dự đoán sẽ in ra màn hình, ví dụ:

Emotion predict= angry

Còn nếu các bạn muốn gặp “chị Thanh Tâm” với giọng tư vấn ngọt ngào hãy chạy lệnh

python emotion_detection_webcam.py

Sau đó các bạn hãy bày tỏ tâm trạng trên webcam để xem chị tư vấn như thế nào nhé. Nếu mọi việc okie thì các bạn sẽ thấy kết quả như sau:

Bài này mình chỉ làm sample 1 câu động viên khi happy thôi nhé, tương tự các bạn sẽ làm với các emotion khác được thôi.

Rồi, như vậy chúng ta đã hoàn thành bài toán Thử làm model “chị Thanh Tâm” dự đoán tâm trạng và xoa dịu người dùng bằng mạng CNN.

Hẹn gặp lại các bạn trong các bài tiếp theo nhé! Nếu trong quá trình triển khai có khó khăn gì các bạn hãy post lên group Mì AI nhé,link Group trao đổi, chia sẻ: https://www.facebook.com/groups/miaigroup .

Hãy tham gia cộng đồng Mì AI để cập nhật các kiến thức mới nhất!

Fanpage: http://facebook.com/miaiblog
Group trao đổi, chia sẻ: https://www.facebook.com/groups/miaigroup
Website: https://miai.vn/
Youtube: http://bit.ly/miaiyoutube

Nguồn: https://github.com/serengil/tensorflow-101/blob/master/python/facial-expression-recognition.py

Tags:

angryCNNdự đoán tâm trạngemotionemotion detectionhappy
Author

Chủ tiệm Mì

Follow Me
Other Articles
Previous

Dạy cho máy tính nghe và phân biệt âm thanh bằng CNN

Next

Tổng hợp phương án khắc phục lỗi khi train YOLO

2 Comments
  1. Patriotic says:
    March 15, 2021 at 1:44 pm

    Dự đoán có vẻ không chính xác lắm phải không ạ? Sao em làm thế nào cũng ra happy hết ạ :((

    Reply
    1. Nguyễn Chiến Thắng says:
      March 16, 2021 at 7:02 am

      Phải tối ưu nhiều nữa em ah. Cần thêm gì em lên Group trao đổi, chia sẻ: https://facebook.com/groups/miaigroup nhé!

      Reply

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Recent Posts

  • Tìm hiểu và cài đặt OpenClaw – trợ lý ảo 24/7 thông minh đa chức năng – Mì Ai
  • Dùng thử Pika – robot học Tiếng Anh cho trẻ cực đỉnh – Mì AI
  • TopView.AI 4.0 – nền tảng tạo AI video cộng tác bá đạo – Mì AI
  • Storm MCP – giải pháp nhanh gọn nhẹ để có MCP Server trong 5 phút – Mì AI
  • VoxCPM thử voice cloning với checkpoint finetune Tiếng Việt – Mì AI

Recent Comments

  1. Chủ tiệm Mì on Thử xây dựng hệ thống Agentic AI với LangGraph – Mì AI
  2. Nguyễn Chiến Thắng on [Nhận diện biển số xe] Chương 3 – Phát hiện biển số bằng OpenCV thuần
  3. Trần Sơn Dương on [Nhận diện biển số xe] Chương 3 – Phát hiện biển số bằng OpenCV thuần
  4. Salomon on [CV] Thử làm model cảnh báo ngủ gật cho tài xế oto bằng Dlib và Resnet
  5. khang on Xây dựng hệ thống nhận diện thủ ngữ – ngôn ngữ ký hiệu tay – để giao tiếp với người khuyết tật

Categories

  • Basic
  • Computer Vision
  • Data Science – Data Analysis
  • Generative AI
  • MÌ ÚP
  • Natural Language Processing
  • RNN-LSTM-GRU
  • Share Data

Là người đi trước, hãy biết đưa tay lại phía sau.

Nguyễn Chiến Thắng
Cảm ơn các bạn đã ủng hộ Mì AI!