AzhaanGlitch/VigilCam

GitHub: AzhaanGlitch/VigilCam

一个基于 MERN 栈与 MediaPipe 的实时行为检测监控系统,专为考试场景提供无服务端视频处理的AI分析。

Stars: 10 | Forks: 0

## title: VigilCam - AI 考试监控系统 colorFrom: blue colorTo: cyan sdk: docker pinned: false license: mit app_port: 7860 # VigilCam - AI 驱动的考试监控系统 [![Node.js](https://img.shields.io/badge/Node.js-18+-339933?style=flat-square&logo=node.js)](https://nodejs.org/) [![MongoDB](https://img.shields.io/badge/MongoDB-Atlas-47A248?style=flat-square&logo=mongodb)](https://www.mongodb.com/) [![MediaPipe](https://img.shields.io/badge/MediaPipe-Face_Mesh-00D9FF?style=flat-square)](https://google.github.io/mediapipe/) 专业的、基于 AI 的考试监控系统,使用基于浏览器的机器学习进行实时行为检测。 ## 功能 - **面部检测与追踪**:多面部检测,468 个面部标志点 - **注视追踪**:带有校准的实时虹膜位置监控 - **眨眼检测**:使用眼长宽比 (EAR) 进行精确分析 - **行为分析**:带有风险评分的综合违规检测 - **基于浏览器的 ML**:使用 MediaPipe 进行客户端处理(无需服务器端视频处理) - **实时监控**:基于 WebSocket 的低延迟通信 - **安全认证**:使用 Passport.js 的本地和 Google OAuth 策略 - **综合报告**:可下载的 JSON 报告,包含详细分析 ## 实时演示 立即尝试:点击上方的“App”以访问实时演示! **测试账户:** - 邮箱:`demo@vigilcam.com` - 密码:`demo123` 或者创建您自己的账户以开始使用。 ## 使用方法 1. **注册/登录**:创建账户或使用 Google 登录 2. **开始监控**:点击“START MONITORING”按钮 3. **授予权限**:提示时允许访问摄像头 4. **校准**:直视摄像头 3 秒 5. **监控会话**:系统将检测: - 多张人脸 - 视线偏离屏幕 - 眼睛长时间闭合 - 过度眨眼 - 说话/口部动作 - 头部转向 6. **停止并生成报告**:点击“STOP MONITORING”以生成详细报告 ## 技术栈 ### 前端 - Vanilla JavaScript - MediaPipe Face Mesh (v0.4) - Socket.IO Client - EJS 模板 ### 后端 - Node.js + Express.js - Socket.IO 服务器 - Passport.js 认证 - MongoDB (Atlas) ### 机器学习检测 - MediaPipe Face Mesh (468 个标志点) - 基于浏览器的处理 - 实时帧分析 ## 隐私与安全 - **无视频录制**:所有处理均在您的浏览器中完成 - **无数据存储**:仅保存检测统计信息 - **安全认证**:bcrypt 密码哈希 - **会话管理**:基于安全 Cookie 的会话 ## 检测能力 | 检测类型 | 描述 | 严重程度 | |---------------|-------------|----------| | 多张人脸 | 检测到多于一人的情况 | HIGH | | 无人脸 | 候选人离开画面 | HIGH | | 注视偏离 | 视线离开 >4 秒 | MEDIUM | | 眼睛闭合 | 眼睛闭合 >4 秒 | MEDIUM | | 过度眨眼 | >40 次/分钟 | MEDIUM | | 头部转动 | 显著头部旋转 | MEDIUM | | 检测到说话 | 口部运动模式 | HIGH | ## 风险评分系统 - **低风险 (0-24)**:最小的可疑活动 - **中等风险 (25-49)**:检测到一些担忧 - **高风险 (50+)**:检测到严重违规 **评分算法:** - 高严重性:+10 分 - 中等严重性:+5 分 - 低严重性:+2 分 ## 配置 检测阈值可在 `public/js/ml-detector.js` 中调整: ``` THRESHOLDS = { EAR_BLINK: 0.21, // Eye aspect ratio for blink detection EYES_CLOSED_TIME: 4000, // Maximum eyes closed duration (ms) GAZE_AWAY_TIME: 4000, // Maximum gaze away duration (ms) NO_FACE_TIME: 6000, // Maximum time without face (ms) GAZE_X_DELTA: 0.07, // Horizontal gaze tolerance GAZE_Y_DELTA: 0.06, // Vertical gaze tolerance EXCESSIVE_BLINKS: 40, // Blinks per minute threshold HEAD_TURN_THRESHOLD: 0.22 // Head turn detection threshold } ``` ## 浏览器兼容性 - ✅ Chrome/Edge(推荐) - ✅ Firefox - ✅ Safari - ⚠️ 需要摄像头权限 ## 作者 **Azhaan Ali Siddiqui** - GitHub:[@AzhaanGlitch](https://github.com/AzhaanGlitch) - LinkedIn:[Azhaan Ali Siddiqui](https://www.linkedin.com/in/azhaanalisiddiqui/) - 邮箱:azhaanalisiddiqui15@gmail.com ## 许可证 本项目根据 MIT 许可证授权。 ## 感谢 - [MediaPipe](https://google.github.io/mediapipe/) - 面部网格检测 - [Express.js](https://expressjs.com/) - Web 框架 - [Socket.IO](https://socket.io/) - 实时通信 - [MongoDB Atlas](https://www.mongodb.com/cloud/atlas) - 数据库平台 ## 问题与反馈 发现错误或有建议?请在 [GitHub](https://github.com/AzhaanGlitch/VigilCam/issues) 上打开问题。 **⭐ 如果您发现此项目有用,请考虑给它一颗星!**
标签:AI监考, EJS, Express, Google OAuth, JSON报告, MediaPipe, MERN栈, MITM代理, Passport.js认证, Python机器学习后端, WebSocket实时通信, WSL, 人脸检测, 人脸网格, 动作检测, 受保护监控区域, 在线考试系统, 安全仪表板, 实时行为检测, 无服务器视频处理, 本地认证, 浏览器端机器学习, 深色主题, 眨眼检测, 考试监控, 视线追踪, 远程监考, 逆向工具, 面部地标, 风险评分