Face Emotion App 是一个本地人脸情绪识别应用,使用 YOLOv8-face 进行人脸检测,并用 Vision Transformer(ViT)进行7类情绪分类,提供暗色玻璃拟态 UI 和完整的 REST API。

Stars

8

7 天增长

暂无数据

Fork 数

5

开放 Issue

0

开源协议

MIT

最近更新

2026-07-11

AI 仓库情报摘要
FR-AI / ANALYSIS

为什么值得关注

它提供完全离线的 ONNX 推理流水线,无需 PyTorch 或 Ultralytics;一键启动脚本自动创建环境、下载模型并启动服务;界面采用暗色拟态设计,支持实时摄像头流和视频处理。

适合谁使用

  • 构建本地 AI 应用的 Python 开发者
  • 关注隐私、需要离线人脸情绪分析的用户
  • 研究或爱好者探索端侧情绪识别
  • 需要自包含情绪检测 REST API 的系统集成人员

典型使用场景

  • 通过浏览器实时监控摄像头捕捉的面部情绪
  • 批量分析上传图片中的表情分布
  • 为上传视频逐帧添加表情标签并下载标注后的视频
  • 通过 REST API 将情绪检测集成到其他应用程序中

项目优势

  • 纯 ONNX 运行,无需额外 GPU 库(无 torch / ultralytics)
  • 一键启动脚本自动搭建环境、下载模型(支持断点续传)
  • 深色玻璃拟态 UI,使用 SVG 图标和动画,视觉风格现代
  • 完整的 API 文档(Swagger),支持图片、视频、摄像头三种输入方式

使用前须知

  • 需要至少 8GB 内存,图片上传时可能占用较高
  • 视频处理采用流式写入磁盘,但图片接口仍需将整张图片加载到内存
  • GPU 加速目前仅支持 Windows 上的 DirectML,未内置 CUDA 支持
  • 模型下载在受限网络环境下可能失败(虽有重试机制)

README 快速开始

Face Emotion App

本地人脸情绪识别 · YOLOv8-face 检测 + ViT 7 类情绪分类 · 暗色玻璃拟态 UI · 完整本地 API


✨ 功能

  • 图片识别:拖入或上传图片,返回带人脸框 + 情绪标签的图,并统计情绪分布
  • 视频处理:上传视频,后台逐帧推理,完成后下载带标注的 MP4
  • 摄像头实时:选择摄像头,浏览器看带标注的实时画面 (MJPEG 流)
  • 本地 API:完整的 REST API + Swagger 文档,供其他程序调用
  • 暗色玻璃拟态 UI:深色主题、毛玻璃 + 渐变 + 动画
  • 纯 ONNX 推理:无 torch / 无 ultralytics / 无 transformers

🏗️ 架构

face-emotion-app/
├── app/                  # FastAPI 后端
│   ├── main.py
│   ├── config.py
│   ├── schemas.py
│   ├── models/
│   │   ├── detector.py   # YOLOv8-face ONNX (akanametov/yolo-face)
│   │   ├── classifier.py # ViT ONNX (trpakov/vit-face-expression)
│   │   └── pipeline.py
│   ├── services/
│   │   ├── video_processor.py
│   │   └── camera_service.py
│   └── routers/          # health / image / detect / video / camera
├── static/               # 暗色玻璃拟态前端 (无 emoji,纯 SVG 图标)
│   ├── index.html
│   ├── style.css
│   └── app.js
├── models/               # yolov8n-face.onnx + trpakov-vit-face.onnx
├── outputs/              # 生成的 MP4
├── .venv/                # 项目本地虚拟环境 (自动创建)
├── requirements.txt
├── check_env.py
├── run.py                # 一键启动
└── README.md

🚀 快速开始

1. 环境要求

项目要求
Python3.10 ~ 3.13
内存≥ 8 GB
系统Windows / macOS / Linux

2. 一键启动

cd face-emotion-app
python run.py

run.py 会自动:

  1. 找到系统里的 Python 3.10+ (优先 3.12)
  2. .venv/ 下创建虚拟环境
  3. requirements.txt 装进 venv
  4. 下载两个 ONNX 模型到 models/
  5. 启动 uvicorn + 自动打开浏览器

如果想用 GPU 加速(推荐):

.venv\Scripts\pip install onnxruntime-directml

然后启动,默认会优先使用 DmlExecutionProvider

3. 手动启动(可选)

# 创建 venv
python -m venv .venv
.venv\Scripts\activate          # Windows
# source .venv/bin/activate     # macOS/Linux

# 装依赖
pip install -r requirements.txt

# 跑环境检查
python check_env.py

# 启动服务
uvicorn app.main:app --host 0.0.0.0 --port 8000

打开 。


🤖 模型与下载

模型用途大小来源
yolov8n-face.onnx人脸检测~12 MBakanametov/yolo-face v1.0.0
trpakov-vit-face.onnx7 类情绪分类~327 MBtrpakov/vit-face-expression onnx/

模型在首次运行时自动下载。自带断点续传 — 如果公司网络 SSL 频繁断,会自动从断点续下,最多 8 次重试。

手动下载(如网络不通):

# YOLO
curl -L -o models/yolov8n-face.onnx \
  https://github.com/akanam

项目描述

本地人脸情绪识别

相关仓库与替代方案

根据分类、Topic 和编程语言匹配的相似项目。

lopopolo
精选
lopopolo GitHub avatar

harness-engineering

Harness Engineering is a methodology for improving coding agent outputs by carefully crafting the environment around them—providing curated context, tools, and executable constraints that encode an organization’s nonfunctional requirements and cumulative lessons.

AI 与机器学习AI 智能体
2,390
slvDev
精选
slvDev GitHub avatar

esp32-ai

A 28.9 million parameter language model runs on an $8 ESP32-S3 microcontroller entirely on-device, generating simple stories at about 9.5 tokens per second.

AI 与机器学习大语言模型
1,960
littledivy
精选
littledivy GitHub avatar

mimic

mimic captures traffic from any iOS or web app and automatically generates a Python client library that lets you call the app's API like a regular library.

AI 与机器学习
1,482