当前位置: 首页 > news >正文

人脸专注度检测系统(课堂专注度检测、人脸检测、注意力检测系统)

人脸专注度检测系统

项目介绍

本项目是基于Flask、MobileNetV2、Mediapipe的人脸专注度检测系统。
项目采用tensorflow.keras库内置的MobileNetV2预训练模型,对自主采集的少量人脸图片数据迁移训练而得到最终的人脸专注度检测模型。
项目采用前后端分离的技术框架,基于 Flask 轻量级 Web 框架搭建后端服务,结合 HTML/CSS/JavaScript 实现前端用户界面。

人脸专注度检测原理

  • ①通过MobileNet预训练模型迁移学习自主采集的人脸照片数据集,最终训练得到人脸专注度检测模型,实时对摄像头画面人脸状态检测;
  • ②通过Mediapipe提供的 468 个面部关键点,检测头部姿态,用于标注人脸状态为不集中时的原因,如:抬头、低头、侧脸;
  • ③最后将识别的人脸状态和状态不集中的原因显示在镜头界面上。
1、面部关键点检测:

使用 MediaPipe 检测用户面部的 468 个关键点。

通过关键点的位置关系,判断用户是否侧脸、抬头或低头。

2、专注度分类:

使用预训练的深度学习模型(基于 MobileNetV2)对用户的面部图像进行分类,判断用户是否专注。

模型输出为二分类结果:专注(0)或不专注(1)。

3、姿态判断:

如果用户被判断为不专注,系统会进一步分析面部关键点,判断不专注的原因(侧脸、抬头、低头)。

主要技术与框架

  • 深度学习框架:

    • TensorFlow/Keras:用于训练和加载专注度检测模型。
  • 计算机视觉库:

    • OpenCV:用于图像处理和摄像头帧捕获。

    • MediaPipe:用于面部关键点检测。

  • Web 框架:

    • Flask:用于构建 Web 应用,提供用户界面和 API 接口。
  • 前端技术:

    • HTML/CSS/JavaScript:用于构建用户界面。

    • Jinja2 模板引擎:用于动态生成 HTML 页面。

  • 其他工具:

    • Pillow:用于图像处理和文字绘制。

    • NumPy:用于数值计算。

主要功能

  • 功能1:训练集预览

    • 用户可以分页预览采集状态为专注和不专注的人脸图片,用于模型的训练。
  • 功能2:专注度实时检测

    • 实时显示摄像头画面,并标注用户的专注状态(专注/不专注)。
    • 如果用户不专注,系统会显示原因(侧脸、抬头、低头)。
  • 功能3:采集人脸照片

    • 用户可以采集专注和不专注的人脸照片,用于训练模型。
  • 功能4:模型训练

    • 用户可以通过系统启动模型训练,训练完成后会保存新的模型。
    • 在模型训练过程中,用户可以实时查看训练日志,包括损失和准确率。
  • 功能5:登录、注册、注销

    • 使用 Flask 的 session 来管理用户登录状态。在导航栏中根据登录状态显示不同的内容。
    • 用户可以通过注册账号并登录系统,使用专注度检测功能。

环境说明

参考以下环境(已跑通),可按顺序安装库的版本:

Windows10及以上(操作系统)
python 3.9.12
numpy==1.22.4
tensorflow==2.7.4
pillow==9.0.1
flask==3.0.3
opencv-python==4.5.5
mediapipe==0.10.5

目录说明

人脸专注度检测系统/
├── start.py                  # Flask 应用主程序(运行启动项目)
├── models/                   # 存放预训练模型和训练后的模型
│   └── focus_detection_model.h5
├── dataset/                  # 存放采集的人脸照片
│   ├── focused/              # 专注状态的照片
│   └── unfocused/            # 不专注状态的照片
├── static/                   # 静态资源文件
│   ├── background_img/       # 背景图片
│   └── fonts/                # 字体文件
├── templates/                # HTML 模板文件
│   ├── base.html             # 基础模板
│   ├── index.html            # 数据集预览页面(首页)
│   ├── login.html            # 登录页面
│   ├── register.html         # 注册页面
│   ├── focus_detection.html  # 专注度检测页面
│   ├── collect_faces.html    # 人脸照片采集页面
│   └── train_model.html      # 模型训练页面
├── README.md                 # 项目说明文档
└── environment.txt           # 项目依赖列表

右键运行 start.py 后,浏览器输入地址:127.0.0.1:5000 访问系统。

视频演示(效果图)

人脸专注度检测系统

相关文章:

  • 【C++】第九节—string类(中)——详解+代码示例
  • JVM深入原理(六)(一):JVM类加载器
  • 基于51单片机和8X8点阵屏、独立按键的双人弹球小游戏
  • 智能气候:AI Agent结合机器学习与深度学习在全球气候变化驱动因素预测中的应用
  • 区块链日记6 - Solana入门 - PDA增删改查数据1
  • 【数据结构】并查集应用
  • 面试可能会遇到的问题回答(编程语言部分)
  • 清晰易懂的 HeidiSQL 安装教程
  • 第四章:透明多级分流系统_《凤凰架构:构建可靠的大型分布式系统》
  • JavaScript基础--12-基本包装类型
  • C++堆,栈,静态成员及使用准则
  • lib-zo,C语言另一个协程库,dns协程化, gethostbyname
  • 解决 PDF 难题:批量处理、文档清理与自由拆分合并
  • 力扣经典算法篇-9-跳跃游戏(贪心算法,反向递推)
  • Debezium嵌入式连接postgresql封装服务
  • 前端常用环境安装
  • Python3 MySQL (PyMySQL) 教程
  • DHCPv6 笔记250405
  • Word在生成PDF后,PDF左侧导航书签目录错误显示的解决方法
  • AI Agent设计模式六:ReAct
  • 百度拉新推广平台/陕西seo推广
  • 宝石网站建设/国外域名购买
  • 有关游戏的网站建设规划书/济南竞价托管
  • 海口网红美食餐厅/aso优化工具
  • 如何成为网站开发工程师/厦门seo关键词
  • 建个电子商务网站多少钱/专业的推广公司