# 视觉记录系统 一个基于 Python 的视觉监控系统,使用摄像头定期拍照并通过大模型分析场景事件。 ## 功能特性 - 📹 **摄像头拍照** - 定时或手动触发拍照 - 🔍 **智能分析** - 通过 Vision API 分析图片中的事件 - 📊 **Web 界面** - 查看图片时间线、事件列表 - ⚙️ **灵活配置** - 可调整拍照间隔、自动分析开关 - 🗄️ **数据存储** - SQLite 本地存储图片和事件记录 ## 系统要求 - Python 3.10+ - Windows / Linux / macOS - 可用的摄像头 - Vision API(支持 OpenAI 格式的视觉模型) ## 快速启动 ### Windows ```bash 双击 start.bat 或在命令行运行: python main.py ``` ### Linux/macOS ```bash ./start.sh 或: python main.py ``` 访问地址: http://localhost:19016 ## 配置说明 在 `config.py` 中可以修改: ```python # Web 服务端口 WEB_PORT = 19016 # 摄像头索引(默认 0) CAMERA_INDEX = 0 # 拍照间隔(秒) CAPTURE_INTERVAL = 60 # 大模型配置 LLM_API_URL = "https://dashscope.aliyuncs.com/compatible-mode/v1" LLM_API_KEY = "your-api-key" LLM_MODEL = "qwen-vl-plus" ``` ## Web 界面功能 ### 控制面板 - 启动/停止定时拍照 - 设置拍照间隔 - 开启/关闭自动分析 - 立即拍照按钮 ### 图片时间线 - 查看所有拍摄的图片 - 按已分析/未分析筛选 - 点击查看详情 - 手动分析未分析的图片 ### 事件列表 - 查看所有识别的事件 - 按事件类型筛选 - 点击事件查看对应图片 ## API 接口 | 接口 | 方法 | 说明 | |------|------|------| | `/api/status` | GET | 获取系统状态 | | `/api/scheduler/start` | POST | 启动定时拍照 | | `/api/scheduler/stop` | POST | 停止定时拍照 | | `/api/capture` | POST | 立即拍照 | | `/api/analyze/{id}` | POST | 分析指定图片 | | `/api/images` | GET | 获取图片列表 | | `/api/events` | GET | 获取事件列表 | ## 项目结构 ``` vision-record/ ├── main.py # 主入口 ├── config.py # 配置管理 ├── camera.py # 摄像头拍照模块 ├── analyzer.py # 图片分析模块 ├── database.py # 数据库管理 ├── scheduler.py # 定时任务调度 ├── web/ │ ├── app.py # FastAPI 后端 │ └── static/ # 前端文件 │ ├── index.html │ ├── style.css │ └── app.js ├── data/ │ ├── images/ # 图片存储 │ └── events.db # SQLite 数据库 ├── requirements.txt ├── start.bat # Windows 启动脚本 ├── start.sh # Linux/Mac 启动脚本 └── README.md ``` ## 依赖项 - `opencv-python` - 摄像头拍照 - `fastapi` - Web 后端 - `uvicorn` - ASGI 服务器 - `requests` - API 调用 ## 注意事项 - Windows 上使用 DirectShow (`cv2.CAP_DSHOW`) 者提升摄像头性能 - 拍照间隔建议不少于 10 秒 - Vision API 需要配置正确的 API Key - 图片分析可能需要 10-30 秒,请耐心等待 ## Git 仓库 http://192.168.2.8:12007/coder/vision-record