基于 DeepFace 与 OpenCV 的实时情绪分析器
项目背景
情绪识别技术正在逐步走进我们的生活,从心理健康评估到智能助手,应用场景非常广泛。今天咱们就利用 Python 生态中成熟的 DeepFace 和 OpenCV 库,搭建一个能实时捕捉摄像头画面并分析人脸情绪的 Demo。
环境准备
硬件要求
- 摄像头:电脑内置或外接 USB 摄像头即可,用于采集视频流。
软件依赖
- Python:建议 3.6+ 版本。
- OpenCV (
cv2):负责视频流的捕获、图像预处理及绘图显示。 - DeepFace:核心深度学习库,专门处理面部属性(年龄、性别、情绪)预测。
- NumPy & Time:辅助计算 FPS 和处理数组数据。
安装依赖很简单:
pip install opencv-python deepface numpy
实现思路
整个程序的核心逻辑其实很直观:打开摄像头 -> 读取帧 -> 计算 FPS -> 调用 DeepFace 分析情绪 -> 在画面上标注结果 -> 循环直到退出。
1. 初始化与导入
首先引入必要的库。这里要注意,import 语句必须分行写,否则 Python 会报错。
import cv2
import time
import numpy as np
from deepface import DeepFace
接着打开默认摄像头(通常是设备 ID 0),并初始化一些变量用来计算帧率。
cap = cv2.VideoCapture(0)
prev_time = time.time()
fps = 0
alpha = 0.9 # 滑动平均权重,数值越大,FPS 曲线越平滑
2. 主循环与 FPS 计算
我们使用 while True 循环不断读取视频帧。为了监控性能,需要实时计算 FPS。
这里用到了滑动平均算法来平滑 FPS 值,避免数字跳动太剧烈影响观察:
while True:
ret, frame = cap.read()
if not ret: break
current_time = time.time()
delta_time = current_time - prev_time
prev_time = current_time
if delta_time > 0:
instant_fps = 1.0 / delta_time
fps = alpha * fps + ( - alpha) * instant_fps









