logo
0
0
WeChat Login
wwyz<gjq@code1024.net>
test: add video resolution diagnostics

RedChord AI 琴房监控系统

基于 AI 的智能琴房视频监控分析系统。系统通过视觉大模型分析琴房监控视频,识别无人、练琴、物品遗留、桌椅归位等状态,并提供任务进度、分析报告和对话式查询能力。

项目概述

RedChord AI(赤弦)是一套智能琴房监控分析解决方案,通过视觉大模型对监控视频进行智能分析,自动识别练琴、使用手机等行为,为琴房管理提供数据支撑。

功能特点

  • 📹 视频智能分析:自动抽帧并调用 AI 进行行为识别
  • 🏷️ 动态标签配置:可自定义识别标签和规则
  • 📊 数据可视化:直观展示分析结果和统计数据
  • 🤖 AI 智能助手:基于分析结果的对话式问答
  • 🖥️ 多端支持:Web 界面 + REST API

项目结构

.
├── apps/
│   ├── backend/          # FastAPI 后端服务
│   │   ├── main.py       # API 入口
│   │   ├── src/          # 业务逻辑、任务调度、数据访问
│   │   ├── scripts/      # 数据导入导出和维护脚本
│   │   └── data/         # 本地运行数据,不纳入版本管理
│   └── frontend/         # React + Vite 前端
│       ├── src/          # 页面、组件、服务封装
│       └── vite.config.ts
├── docs/                 # 技术文档、白皮书和发布说明
├── tools/                # 连接检查、部署验证等辅助脚本
├── start.sh              # 本地一键启动
└── stop.sh               # 本地停止服务

文档导航

完整代码逻辑分析已整理到 docs/README.md。建议按以下顺序阅读:

  • 架构总览:系统边界、进程模型、入口文件和外部依赖。
  • 前后端数据流:从监控大厅、分析页、SSE 到聊天问答的完整链路。
  • 后端实现说明:FastAPI、TaskManager、Celery、策略层和工具层职责。
  • AI 分析链路:自适应抽帧、相似度复用、片段生成、报告生成和落库。
  • 数据库说明:dev MongoDB 连接、集合结构、导入导出。
  • 运维与排障:启动、日志、健康检查和常见问题。

快速开始

一键启动

./start.sh

启动脚本会自动检查 Node、Python、前端依赖和后端关键依赖,释放旧端口,并后台启动前后端服务。

停止服务:

./stop.sh

默认访问地址:

手动启动

后端:

cd apps/backend
python3 -m pip install -r requirements.txt
python3 -m uvicorn main:app --host 0.0.0.0 --port 8000

前端:

cd apps/frontend
npm install
npm run dev -- --host 0.0.0.0 --port 5123

如需后端热重载:

RELOAD=1 ./start.sh

技术栈

后端

  • Python 3.10+
  • FastAPI
  • OpenCV
  • 火山引擎视觉大模型

前端

  • React 19
  • TypeScript
  • Vite
  • TailwindCSS
  • Recharts

配置说明

环境变量

变量名说明位置
ARK_API_KEY火山引擎 API 密钥apps/backend/.env
ARK_MODEL_ID模型端点 IDapps/backend/.env
MONGO_URIMongoDB 连接串apps/backend/.env
MONGO_DB_NAMEMongoDB 数据库名apps/backend/.env
VITE_API_BASE_URL后端 API 地址,可为空并走 Vite 代理apps/frontend/.env

当前本地配置连接 dev 命名空间的 MongoDB:

mongodb://root:<password>@114.55.61.32:31017/redchord?authSource=admin&directConnection=true

该地址来自 114.55.61.32 服务器上的 K8s dev/mongodb-service,NodePort 为 31017。本地实际连接串以 apps/backend/.env 为准。

数据导入导出

后端提供 MongoDB 数据备份与恢复脚本:

# 导出当前 .env 指向数据库中的所有集合
python3 apps/backend/scripts/export_mongo_data.py

# 将导出的目录导入当前 .env 指向的数据库
python3 apps/backend/scripts/import_mongo_data.py apps/backend/data/exports/<export_dir>

默认导出目录位于 apps/backend/data/exports/,该目录属于运行数据,不建议提交。

常用验证

curl http://127.0.0.1:8000/health
curl http://127.0.0.1:8000/api/cameras
curl 'http://127.0.0.1:8000/api/analyze/latest?camera_id=A215'

许可证

MIT License

About

琴房智能检测

Language
Python67.6%
TypeScript28.8%
Shell2.6%
CSS0.6%
Others0.4%