# WhatAreYouDoing **Repository Path**: sembre/what-are-you-doing ## Basic Information - **Project Name**: WhatAreYouDoing - **Description**: 基于MQTT的活动追踪系统,可以在后台运行,定时截取屏幕和摄像头画面,并将其发送到服务器进行AI分析 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-10-25 - **Last Updated**: 2025-10-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Waud - 活动监控与分析系统 Waud是一个智能活动监控与分析系统,结合了计算机视觉、MQTT通信协议和AI技术,能够实时监控、分析和总结用户在电脑前的活动。 ![项目效果图](https://7sref.digiplc.cn/i/2025/10/27/68ff20c79c317.png) ## 功能特性 - 人体检测与追踪 - 屏幕截图与分析 - AI驱动的活动总结 - Web界面实时监控 - 多设备管理 - 数据可视化 - 实时设备状态监控 - 心跳检测与离线设备管理 ## 系统架构 ``` +----------------+ MQTT +----------------+ HTTP +----------------+ | Tracker | <----------> | Server | <----------> | Web 浏览器 | | (屏幕截图) | | (数据处理与分析) | | (监控界面) | +----------------+ +----------------+ +----------------+ | ^ | | AI 分析 v | +----------------+ | 数据库 | | (SQLite) | +----------------+ ``` ## 安装与配置 ### 1. 安装依赖 ```bash pip install -r requirements.txt ``` ### 2. 环境配置 系统配置项存储在 `config.py` 文件中,可以通过以下方式配置: #### 方法一:修改 config.py 文件 ```python # MQTT 配置 MQTT_CONFIG = { 'broker': 'your.mqtt.broker', # MQTT服务器地址 'port': 1883, # MQTT端口 'feed_topic': "waud/feed", # 视频流主题 'device_topic': "waud/device", # 设备状态主题 'control_topic': "waud/control", # 控制命令主题 'username': 'mqtt_user', # 用户名 'password': 'mqtt_password' # 密码 } # ModelScope API 配置 MODELSCOPE_CONFIG = { 'api_key': 'your_modelscope_api_key', # ModelScope API密钥 'image_model': 'Qwen/Qwen3-VL-8B-Instruct', # 图像分析模型 'text_model': 'deepseek-ai/DeepSeek-V3.2-Exp' # 文本分析模型 } # Flask 配置 FLASK_CONFIG = { 'host': '0.0.0.0', # Web服务器主机 'port': 8989, # Web服务器端口 'debug': False # 调试模式 } # 数据库配置 DATABASE_CONFIG = { 'path': 'human_detection.db' # 数据库文件路径 } # 截图配置 SCREENSHOT_CONFIG = { 'capture_interval': 30 # 截图间隔(秒) } ``` #### 方法二:使用环境变量 ```bash export MQTT_BROKER=your.mqtt.broker export MQTT_PORT=1883 export MQTT_USERNAME=mqtt_user export MQTT_PASSWORD=mqtt_password export MODELSCOPE_API_KEY=your_modelscope_api_key export FLASK_PORT=8989 export SCREENSHOT_INTERVAL=30 ``` ## 运行系统 ### 1. 启动服务端 ```bash python server.py ``` ### 2. 启动客户端(在需要监控的设备上) ```bash python tracker.py ``` ## Web界面 启动服务端后,通过浏览器访问 `http://localhost:8989` 查看监控界面。 ### 主要功能页面 1. **主页** - 显示所有设备状态和整体统计数据 2. **设备详情** - 查看特定设备的详细活动信息 3. **设备管理** - 管理连接的设备 ### 界面特性 - 暗黑/明亮主题切换 - 实时数据更新(每30秒) - 响应式设计,支持移动端 - 丰富的数据可视化图表 - 最新截图预览 ## 数据处理流程 ### 屏幕截图处理 - 客户端定时捕获屏幕截图(默认每30秒) - 截图立即发送到服务端进行AI分析 - 分析结果实时保存到数据库 ### 人体检测处理 - 客户端定时捕获摄像头图像 - 图像立即发送到服务端进行人体检测 - 检测到人体时创建记录,后续检测更新结束时间 - 一分钟内未检测到人体则结束记录 ## 数据分析与总结 系统每天0点自动生成前一天的活动总结,包括: - 主要活动时间分布 - 使用的应用程序类型 - 工作内容概述 总结以Markdown格式存储和展示,便于阅读和进一步处理。 ## 项目结构 ``` waud/ ├── ai_analyzer.py # AI分析模块 ├── config.py # 系统配置文件 ├── human_detection_logger.py # 人体检测日志模块 ├── server.py # 服务端主程序 ├── tracker.py # 客户端追踪程序 ├── requirements.txt # 依赖包列表 ├── human_detection.db # SQLite数据库 ├── models/ # AI模型文件 ├── screenshots/ # 屏幕截图存储目录 ├── camera_shots/ # 摄像头截图存储目录 ├── detections/ # 检测结果截图存储目录 ├── static/ # Web静态资源 │ ├── css/ # CSS样式文件 │ └── js/ # JavaScript文件 ├── templates/ # Web模板文件 └── utils/ # 工具类目录 ├── db_utils.py # 数据库工具 └── image_utils.py # 图像处理工具 ``` ## 技术栈 - Python 3.8+ - Flask - Web框架 - SQLite - 数据存储 - OpenCV - 图像处理 - paho-mqtt - MQTT通信 - ECharts - 数据可视化 - ModelScope - AI模型服务 - YOLO - 人体检测 - Ultralytics - 人体姿态检测 ## 开发与测试 所有测试脚本都位于 `tests/` 目录下,可以通过以下方式运行: ```bash cd tests python test_logger.py # 测试日志功能 python test_ai.py # 测试AI分析功能 python test_image_analysis.py # 测试图像分析功能 ``` ## 注意事项 1. 系统会自动限制每个截图目录最多保存1000张图片 2. AI分析功能需要网络连接和ModelScope API密钥 3. 请确保MQTT服务器可访问且配置正确 4. 建议定期备份数据库文件 5. 同一台电脑上的设备ID保持一致,确保设备识别的稳定性 6. 离线设备会保留在设备列表中,用户仍可查看其历史数据