130 lines
3.1 KiB
Markdown
130 lines
3.1 KiB
Markdown
# 视觉记录系统
|
||
|
||
一个基于 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 |