9e3308db1238754961e4fd4605aaf3cb13596812
视觉记录系统
一个基于 Python 的视觉监控系统,使用摄像头定期拍照并通过大模型分析场景事件。
功能特性
- 📹 摄像头拍照 - 定时或手动触发拍照
- 🔍 智能分析 - 通过 Vision API 分析图片中的事件
- 📊 Web 界面 - 查看图片时间线、事件列表
- ⚙️ 灵活配置 - 可调整拍照间隔、自动分析开关
- 🗄️ 数据存储 - SQLite 本地存储图片和事件记录
系统要求
- Python 3.10+
- Windows / Linux / macOS
- 可用的摄像头
- Vision API(支持 OpenAI 格式的视觉模型)
快速启动
Windows
双击 start.bat 或在命令行运行:
python main.py
Linux/macOS
./start.sh 或:
python main.py
访问地址: http://localhost:19016
配置说明
在 config.py 中可以修改:
# 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 仓库
Description
Languages
Python
62.6%
JavaScript
19.7%
HTML
8.7%
CSS
8.3%
Batchfile
0.4%
Other
0.3%