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 驱动的考试监控系统
[](https://nodejs.org/)
[](https://www.mongodb.com/)
[](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, 人脸检测, 人脸网格, 动作检测, 受保护监控区域, 在线考试系统, 安全仪表板, 实时行为检测, 无服务器视频处理, 本地认证, 浏览器端机器学习, 深色主题, 眨眼检测, 考试监控, 视线追踪, 远程监考, 逆向工具, 面部地标, 风险评分