Day15 情緒辨識
🟡 先看看程式的效果
今天的程式是一個即時情緒偵測系統,能夠透過電腦的攝影機即時捕捉使用者的臉部表情,並利用人工智慧技術分析當前的情緒狀態。這個系統結合了電腦視覺和深度學習技術,讓電腦能夠「讀懂」人類的情緒。
Today’s program is a real-time emotion detection system that can capture users’ facial expressions through a computer’s camera and analyze the current emotional state using artificial intelligence technology. This system combines computer vision and deep learning techniques, enabling computers to “understand” human emotions.
🟡 學習目標
使用 OpenCV 進行影像擷取和處理。
採用 DeepFace 深度學習框架進行情緒分析。
DeepFace 支援的情緒類型:
– 厭惡(Disgust)
– 開心(Happy)
– 傷心(Sad)
– 生氣(Angry)
– 中性(Neutral)
– 害怕(Fear)
– 驚訝(Surprise)
應用場景:
– 娛樂應用:互動遊戲開發
– 教育領域:協助了解學生的學習情緒
– 心理研究:輔助情緒分析研究
– 人機互動:提升使用者體驗
🟡 程式碼
請先下載 “情緒識別.py”
請按此下載
'''
Python + AI in 21 days
https://jasonworkshop.com/python
Designed by Jason Workshop
[請勿修改以上內容]
---
預備工作:
首先,請確保已安裝 opencv-python, deepface 模組
如不確定可直接在 Windows 的 cmd prompt 執行以下指定
pip install opencv-python deepface
'''
import cv2
import numpy as np
from deepface import DeepFace
def emotion_detector():
# 開啟攝影機
cap = cv2.VideoCapture(0)
while True:
# 讀取影像
ret, frame = cap.read()
if not ret:
break
try:
# 使用 DeepFace 分析情緒
result = DeepFace.analyze(frame,
actions=['emotion'],
enforce_detection=False)
# 獲取主要情緒
emotion = result[0]['dominant_emotion']
# 在影像上顯示情緒
cv2.putText(frame,
f'Emotion: {emotion}',
(50, 50),
cv2.FONT_HERSHEY_SIMPLEX,
1,
(0, 255, 0),
2)
except Exception as e:
print(f"Error: {str(e)}")
# 顯示影像
cv2.imshow('Emotion Detection', frame)
# 按 'q' 離開
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# 釋放資源
cap.release()
cv2.destroyAllWindows()
if __name__ == "__main__":
emotion_detector()
🟡 小小挑戰一下
大家可以嘗試進行一些修改或改良喔! 例如:
✌️在畫面上顯示所有偵測到的情緒數值, 而不是只顯示主要情緒。
✌️為不同的情緒使用不同的顯示顏色
😁 明天見!