sabbas-ctrl/VisionIndex-Backend

GitHub: sabbas-ctrl/VisionIndex-Backend

基于人脸识别和CCTV视频分析的事后区域感知人员追踪系统后端,用于考勤记录、移动审计和校园安全洞察。

Stars: 0 | Forks: 0

# 🎯 VisionIndex 后端 **VisionIndex** 是一个事后、区域感知的存在追踪系统,它利用人脸识别和高级视频分析技术,从录制的 CCTV 视频中提取有价值的见解。该项目作为 **伊斯兰堡航空大学** 的学术毕业设计项目,本后端为系统提供了智能层支持——实现了在校园环境中对人体存在的检测、追踪、记录和查询功能。 本仓库仅包含**后端服务**。它也是持续进行 CI/CD、文档编写和部署工作流的基础。 ## 🧠 项目成员 **小组成员:** - Sabbas Ahmad - Syed Wasif Ali Shah - Abdul Mueed **指导教师:** Dr. Mehdi Hassan *伊斯兰堡航空大学,计算机科学系系主任* ## 🚦 项目状态与进度 ### 当前进展 - **后端 API:** 核心 Express.js 服务器已启动并运行。 - **数据库:** 本地 MongoDB 集成已完成;用户和视频元数据的模型已实现。 - **身份验证:** 基于 JWT 的身份验证和基于角色的访问控制已正常运行。 - **日志记录:** 用户活动和错误日志记录功能已实现。 - **测试:** 核心模块的初始单元测试已就位。 ### 后续计划 - 完成检测和 embedding 流水线。 - 集成向量数据库以进行特征存储。 - 实现高级搜索和分析 endpoint。 - 扩大测试覆盖率并完善错误处理。 - 定型仪表盘和报告模块。 ## ⚙️ CI/CD 设置 我们的 CI/CD 流水线旨在实现可靠性和快速迭代: 1. **GitHub Actions** - **代码检查:** 在每次推送和 pull request 时运行 ESLint 和 Prettier。 - **测试:** 执行所有单元和集成测试。 - **构建:** 构建后端并检查依赖项问题。 - **部署:** (计划中)在主分支成功合并后自动部署到预发布/生产环境。 2. **环境变量** - 所有密钥和特定环境的配置均通过 `.env` 文件进行管理(已从 git 中排除)。 ## 🛠 开发者命令 | 命令 | 描述 | |------------------------|-----------------------------------------------------| | `npm run dev` | 启动带有热重载的开发服务器 | | `npm run linter` | 使用 `app` 文件夹中的 `eslint.mjs` 配置运行 ESLint | | `npm test` | 运行 `app/tests` 中的所有单元和集成测试 | | `npm install` | 安装项目依赖 | 🌐 实时部署 后端已上线,可通过以下地址访问: 🔗 https://visionindex-backend-production.up.railway.app/ 此部署完全由 CI/CD 驱动——任何成功合并到 main 分支的操作都会自动触发构建和部署。 ## 🚀 VisionIndex 模块(计划中与开发中) ### 1. 🔐 用户身份验证与访问控制 - 基于角色的访问权限(Admin、Analyst、Viewer) - 安全的基于 JWT 的会话管理 - 记录所有登录/注销和权限操作 ### 2. 📥 视频上传与接收 - 用于上传录制好的 CCTV 视频的接口 - 验证视频格式、大小和完整性 - 提取并记录元数据:时长、分辨率、上传者等 ### 3. 🧹 视频预处理 - 通过 OpenCV 进行帧提取和标准化 - 检测损坏或无法读取的帧 - 记录片段结构:时间戳、帧数 ### 4. 🧍‍♂️ 检测与 Embedding 流水线 - YOLOv8 用于物体和人物检测 - DeepSort 用于带有临时 ID 的实时追踪 - DeepFace/ReID 用于提取面部/身体 embedding - 为检测结果打上时间戳和摄像机来源标签 ### 5. 🧠 特征向量化与知识库 - Embedding 向量在向量数据库中建立索引 - 将向量映射到元数据(帧、区域、时间、检测类型) - 通过相似性检查防止重复 ### 6. 🔍 基于图像与文本的搜索 - 使用图像裁剪或标签(如衣物、时间)进行多模态搜索 - 按区域、物体类型等进行筛选。 - 通过余弦相似度对结果进行排名 - 记录所有查询以供审计 ### 7. 📊 可视化时间线与回放 - 匹配检测结果的按时间索引视图 - 可点击导航以回放准确的帧位置 - 清晰的边界框显示 - 跨会话的频率可视化 ### 8. 📈 分析仪表盘 - 使用统计、标签趋势、上传成功率 - 可导出的图表(PDF、CSV) - 在不暴露个人数据的情况下提供可视化洞察 ### 9. 📝 日志记录与系统审计 - 记录用户活动:上传、查询、导出 - 记录警告、失败和系统异常 - 生成审计追踪,以供评估和追溯 ## 🧰 技术栈(计划中) - **后端框架:** Node.js (Express) - **前端框架:** React.js - **数据库:** MongoDB(主要),PostgreSQL(归档) - **目标检测:** YOLOv8 - **人脸识别:** DeepFace,FaceNet - **追踪:** DeepSort - **向量数据库:** FAISS / Pinecone / Qdrant - **异步任务:** Celery + Redis - **视频处理:** OpenCV - **身份验证:** JWT - **CI/CD:** GitHub Actions ## 📂 仓库结构(进行中) ``` visionindex-backend/ ├── .github/ │ └── workflows/ ├── app/ │ ├── controllers/ │ ├── jobs/ │ ├── logs/ │ ├── middlewares/ │ ├── models/ │ ├── routes/ │ ├── tests/ │ ├── .env │ ├── eslint.config.mjs │ ├── packages.json │ └── server.js ├── .gitignore ├── LICENSE └── README.md ``` ## 📌 项目状态 此后端正在积极开发中。CI/CD、模块连接和生产逻辑正在迭代集成。 初始目标是实现模块化、可扩展和可测试的服务组件,从而支持独立开发和快速迭代。 ## 🔒 贡献政策 这是一个私有的学术项目。 仅限原始项目团队和经授权的伊斯兰堡航空大学教职员工参与贡献。 目前不接受外部的 pull request、fork 和 issue。 ## 📝 许可证 本项目采用修改版的 MIT 许可证。 详情请参阅 LICENSE 文件。 ## 📢 致评审者的说明 开发 VisionIndex 时充分考虑了现实世界中的可扩展性和事后监控的实用性。如果您有任何建议、提议的功能或批评意见,请在评估阶段提出或联系
标签:CCTV, Express.js, GitHub Actions, GNU通用公共许可证, HTTP/HTTPS抓包, JWT认证, MITM代理, MongoDB, Node.js, RBAC权限控制, RESTful API, 事后审计, 人员追踪, 人脸识别, 区域感知, 后端开发, 向量数据库, 安防监控, 态势感知, 提示词优化, 校园安全, 毕业设计, 测试用例, 特征嵌入, 目标检测, 移动轨迹分析, 考勤系统, 自动笔记, 视频分析, 计算机视觉, 身份识别, 闭路电视监控