Flask + Vue 前后端分离的 多任务视觉 / 语音 AI 管理平台(RBAC + 模型管理 + 检测 / 姿态 / 人脸 / 车辆 / OCR 等)。
许可证: Apache-2.0(中文要点译本,仅供参考,以英文原版为准)· 仓库: https://github.com/5758703/CV_PythonVue_TigerPro
backend/ Flask + SQLAlchemy + JWT + Ultralytics / InsightFace / OCR …
frontend/ Vue3 + Vite + Element Plus + Pinia + ECharts
- 后端:见
backend/README.md(推荐 Python 3.12 +scripts/setup_venv.ps1/run_backend.ps1) - 前端:
cd frontend && npm install && npm run dev - 默认账号:
admin/admin123(详见下文种子说明)
GitHub 是任务与决策的最终记录场所。统一流程:
Discussion → Issue(含验收标准)→ 认领 → PR → 评审 → Squash 合并 → CHANGELOG / 发版
| 文档 | 说明 |
|---|---|
| CONTRIBUTING.md | 开发环境、规范、分支与 PR |
| GOVERNANCE.md | 角色、权限、晋升与决策 |
| ROADMAP.md | 版本规划 |
| SECURITY.md | 安全漏洞请私密报告,勿公开开 Issue |
| CODE_OF_CONDUCT.md | 行为准则 |
| THIRD_PARTY_NOTICES.md | 依赖与模型许可证 |
| CHANGELOG.md | 版本变更 |
| 新手任务(8 条) | good-first-issue 文案 |
| 社区索引 | 文档导航 |
backend/ Flask + Flask-SQLAlchemy + PyMySQL + Flask-Cors + Flask-JWT-Extended
frontend/ Vue3 + Vite + Element Plus + Vue Router + Pinia + Axios + ECharts
segment_result.mp4
wudao_1782559579_pose.mp4
02_1784196851_det.mp4
badminton_1784461172982.mp4
video_1783781025_pose.mp4
segment_result.2.mp4
0f2b3ace2fc0d2be0bba35e2f8b43cf8_1782640338_track.mp4
segment_result.1.mp4
footballtrack.mp4
video_1783781402_pose.mp4
e0b459e132f2d00241930cae1d9674b3_1783843146_det.mp4
segment_result.6.mp4
2026-07-21_064358_872.mp4
2026-07-21_064406_945.mp4
02_1784202781_det.mp4
badminton_1783162518673.mp4
- 用户注册 / 登录(JWT 认证)
- RBAC:用户·角色·部门(无限级树)·岗位·菜单/权限
- 多对多:用户↔角色、用户↔部门、用户↔岗位、角色↔权限、用户↔权限
- 权限分类:
- 功能权限 — 菜单(M目录/C菜单)、按钮(F,前端
v-permission)、API 接口(A,后端校验) - 数据权限 — 角色
data_scope:1 仅本人 / 2 本部门 / 3 本部门及下级 / 4 全部
- 功能权限 — 菜单(M目录/C菜单)、按钮(F,前端
- 视觉:目标检测 / 姿态 / 分割 / 人脸识别(InsightFace 底库 1:N) / 表格识别(YOLO+RapidOCR+SLANet) / 目标追踪(含车辆追踪、人员离岗检测场景;离岗支持多工位与移动镜头运动补偿) 等
- 安防检测模型包(11 个本地 ONNX):烟火 / 森林火灾 / 灾害扩展、PPE 与安全帽、跌倒与行为、打架、武器、车牌等,种子分类「安防检测」(
sec-*),ONNX Runtime CPU 推理,可挂图片/视频/摄像头检测与告警规则 - 模型权重转换(pt → onnx):模型管理支持异步导出(imgsz / dynamic / half),同目录存在
.onnx时检测优先走 ONNX Runtime(YOLO_PREFER_ONNX=0可关闭);列表支持自定义每页条数(1–200)并本地记忆 - 摄像头实时检测:支持 本地摄像头 与 网络摄像头(摄像头管理视频流)
| 账号 | 密码 | 角色 | 数据范围 | 说明 |
|---|---|---|---|---|
admin |
admin123 |
超级管理员(admin) | 全部数据 | 全菜单 + 全部增删改 |
tiger |
123456 |
普通角色(common) | 本部门(前端组) | 只读,用户列表仅见本部门 |
初始化幂等:
sys_user无数据时才灌种子(5 部门 / 4 岗位 / 31 菜单 / 2 角色 / 2 用户)。
| 表 | 说明 |
|---|---|
sys_user |
用户(主部门 dept_id) |
sys_role |
角色(data_scope 数据范围) |
sys_dept |
部门(无限级树,ancestors 祖级链) |
sys_job |
岗位 |
sys_menu |
菜单/权限(menu_type M/C/F/A) |
sys_user_role / sys_user_dept / sys_user_post |
用户的角色/部门/岗位(多对多) |
sys_role_menu / sys_user_menu |
角色权限 / 用户直接授权(多对多) |
conda activate cv_python_tigerpro
cd backend
pip install -r requirements.txt
cp .env.example .env # 编辑 .env 填入 MySQL 账号密码(默认 root/123456)
# MySQL 建库:
# CREATE DATABASE cv_python_tigerpro DEFAULT CHARSET utf8mb4;
python app.py # http://127.0.0.1:5001 (启动自动建表 + 灌种子)返回结构统一 { code, message, data },code=0 成功。请求头带 Authorization: Bearer <token>。
接口:
| 模块 | 路径 | 说明 |
|---|---|---|
| 认证 | POST /api/auth/login |
登录,返回 {token} |
| 认证 | POST /api/auth/register |
注册(默认普通角色) |
| 认证 | GET /api/auth/info |
当前用户 + 角色标识 + 权限标识 |
| 认证 | GET /api/auth/routers |
当前用户可见菜单树(侧栏) |
| 认证 | POST /api/auth/logout |
退出 |
| 用户 | /api/system/user |
GET 列表(数据权限) / POST / PUT / DELETE |
| 角色 | /api/system/role |
CRUD + 菜单授权 + data_scope |
| 部门 | /api/system/dept |
树 + CRUD |
| 岗位 | /api/system/job |
CRUD |
| 菜单 | /api/system/menu |
树 + CRUD |
| 健康 | GET /api/health |
健康检查 |
功能权限装饰器 @permission_required("system:user:add");数据权限 apply_user_data_scope() 按角色 data_scope 过滤。
cd frontend
npm install
npm run dev # http://127.0.0.1:5173Vite 代理:前端 /api → http://127.0.0.1:5001。
- 登录后守卫调
getInfo+getRouters→ 动态侧栏 + 权限标识 - 按钮级权限:
v-permission="'system:user:add'",无权限移除元素 - 页面:登录、首页(统计卡+ECharts)、系统管理(用户/角色/部门/岗位/菜单)
| 文档 | 说明 |
|---|---|
| 羽毛球分析模块 | 技术栈、姿态/球模型、球场与网线、HUD、API;含 §11 Roboflow 导出 YOLO zip 与自训指南 |
| 图像/视频分割模块 | 技术栈、依赖、模型权重、API 与使用流程(RF-DETR-Seg / YOLOE 图片视频 / MobileSAM) |
| 数据标注功能说明 | 视频抽帧、Canvas 标注、YOLO 格式、构建训练集、API 与 FAQ |
| 外接标注工具操作说明 | X-AnyLabeling / CVAT / Roboflow 小白入门、分步举例与回灌说明 |
| 姿态估计模型选型说明 | 平台 7 款姿态模型对比;含羽毛球页六模型速查 |
| 数据标注质量检测与格式转换 | 质量检测指标解读、五类格式转换与训前检查清单 |
| TigerAI平台模型框架与类型汇总 | 推理框架 / 任务类型 / 种子模型与工作台对照(含配图位) |
| 人脸识别模块 | InsightFace 1:N、底库登记、API、阈值/隔帧与许可隐私说明 |
| 人脸识别功能汇总 | 框架/模型对比、本项目选型、底库与实时识别、API、配图占位 |
| 表格识别功能汇总 | YOLO 检表 → RapidOCR → SLANet_plus;模型、API、前端与代码位置 |
| 目标追踪-场景分类说明 | 通用追踪 / 车辆追踪 / 人员离岗三场景架构、权限路由与扩展方式 |
| 人员离岗检测-功能说明 | 多工位离岗规则、镜头运动补偿(移动镜头工位锚定)、API 与验收 |
| 车辆追踪-技术说明与操作手册 | 车牌 OCR、测速、拥堵、运动轨迹与过车记录 |
| 检测告警模块 | P0 烟火/聚集 + P1 PPE未戴帽/越线入侵、规则引擎与事件 |
| P2 监控墙与陌生人脸告警 | RTSP 监控墙 7×24、陌生人脸告警使用与实现 |
| 烟火与人员聚集告警功能汇总 | 框架与检测模型配合、规则阈值、叠加/事件实践、配图占位 |
| 越线入侵告警功能汇总 | 越线几何原理、规则引擎、追踪页画线使用与配置排查 |
文档内保留 实测截图占位,可在
docs/images/下按章节补充项目截图后替换。
- 启动 MySQL,建库
cv_python_tigerpro - 后端
python app.py(:5001,自动建表+种子) - 前端
npm run dev(:5173),浏览器打开,用admin/admin123登录
开源不易,接收赞赏