团队作业2-《需求规格说明书》
VisionPulse 智动团队:YOLO姿态估计的智能探索之旅
| 这个作业属于哪个课程 | https://edu.cnblogs.com/campus/gdgy/Class34Grade23ComputerScience |
|---|---|
| 这个作业要求在哪里 | https://edu.cnblogs.com/campus/gdgy/Class34Grade23ComputerScience/homework/13481 |
| 这个作业的目标 | 完成需求规格说明书,建立和初步熟悉团队git的协作方式 |
| github链接 | https://github.com/LeoLeung314/yolo7 |
一、需求规格说明书
(一)、系统概述
本系统基于YOLO系列算法中的 YOLOv7 姿态估计技术,构建一个集人体姿态检测、动作评估及人机交互功能于一体的综合性系统。系统以 Java+Python 多技术栈协同为基础,聚焦姿态估计技术的深度应用,通过测试与开发双轨驱动模式,实现从基础姿态检测到复杂动作分析及人机交互场景的拓展,为科研、运动健康、智能家居等领域提供稳定、可用、有价值的技术解决方案。
(二)、面向用户分析
- 初期核心用户
- 计算机视觉研究者:需要高效、准确的姿态估计工具辅助算法研究与验证,关注系统的模型性能(如检测精度、速度)、可扩展性(支持自定义数据集训练)及底层技术细节(如模型结构、参数配置)。
- 高校师生:用于教学实验、课程设计及科研项目,注重系统的易用性(部署便捷、操作简单)、文档完整性(含开发指南、API说明)及开源性(便于二次开发与学习)。
- 后期拓展用户
- 智能家居企业:需将系统集成到智能家居产品中实现人机交互控制(如通过手势控制家电),关注系统的兼容性(支持多种硬件设备)、实时性(低延迟响应)及稳定性(长时间运行无故障)。
- 运动健康开发者:用于开发智能健身指导类应用,需要系统具备精准的动作评估能力(如姿势正确性判断、动作标准度打分)、数据输出能力(可导出姿态关键点数据用于分析)及轻量化部署特性(适配移动设备)。
(三)、功能性需求
- 姿态检测功能
- 能够准确识别人体关键节点(如头部、颈部、四肢关节等),并在输出结果中清晰标记各关键点位置。
- 可对检测到的人体目标进行边界框标记,同时显示目标的类别信息(如“person”)及置信度。
- 支持将处理后的视频结果保存为本地文件,文件名为原文件名称加“_keypoint.mp4”后缀。
- 动作评估功能
- 基于检测到的人体姿态关键点数据,实现对特定动作(如健身动作、体育动作)的评估。
- 能够定义动作评估标准(如动作角度范围、关键点位置偏差阈值等),并根据标准对输入动作进行打分。
- 提供动作评估结果的可视化展示,如在视频中标记出不符合标准的部位、显示实时得分等。
- 人机交互功能
- 支持基于人体姿态或手势的交互控制,如通过特定手势指令(如挥手、握拳)实现对设备的操作(如启动/停止程序、切换功能等)。
- 能够识别预设的姿态模式,并将其映射为相应的控制命令,可与智能家居系统、多媒体设备等进行通信对接。
- 提供交互指令的配置界面,允许用户自定义姿态与控制命令的映射关系。
- 系统配置与管理功能
- 提供参数调整功能,如修改检测置信度阈值、IOU(交并比)阈值等,以适应不同场景的检测需求。
- 支持实时显示检测结果,可通过视图窗口实时查看处理后的视频流。
- 记录系统运行日志,包括检测时间、帧率(FPS)、错误信息等,便于系统调试与性能分析。
(四)、技术需求
- 开发环境需求
- 编程语言:Python(主要用于模型推理、姿态检测核心逻辑实现)、Java(用于系统交互模块、后端服务开发等)。
- Python环境:支持Python 3.6及以上版本,需安装PyTorch、OpenCV、NumPy、Matplotlib等依赖库(具体版本参见requirements.txt)。
- Java环境:支持Java 8及以上版本,可结合Spring Boot等框架进行后端服务开发。
- 硬件需求
- CPU:至少为Intel Core i5或同等性能的处理器,用于满足基础的计算需求。
- GPU:若使用GPU加速,需为NVIDIA显卡且支持CUDA计算架构(如GTX 1050及以上),以提升模型推理速度。
- 内存:至少8GB RAM,推荐16GB及以上,确保系统运行流畅。
- 存储:至少预留10GB存储空间,用于存放代码、模型权重文件、视频数据等。
- 输入设备:支持外接摄像头(USB接口)或网络摄像头,用于获取实时视频流。
- 性能需求
- 检测速度:在CPU环境下,处理720P视频的平均帧率不低于5 FPS;在GPU环境下,处理720P视频的平均帧率不低于20 FPS。
- 检测精度:在公开的姿态估计数据集(如COCO keypoints)上,关键点检测的平均精度(AP)不低于0.65。
- 响应时间:对于实时交互指令(如手势控制),系统从检测到姿态到执行相应命令的响应时间不超过300ms。
- 稳定性:系统连续运行24小时无崩溃、无内存泄漏,检测结果保持稳定。
- 兼容性需求
- 支持多种视频格式输入,包括MP4、AVI、MOV等常见格式。
- 兼容主流的网络视频流协议,如RTSP、HTTP等。
- 模型文件兼容YOLOv7-pose系列权重文件(如yolov7-w6-pose.pt),支持加载预训练模型进行推理。
- 输出的视频文件可在常见的视频播放器(如VLC、PotPlayer)中正常播放。
- 安全性需求
- 对于用户上传的视频数据及处理结果,需进行加密存储,防止未授权访问。
- 系统操作需进行权限控制,区分管理员、普通用户等不同角色,限制不同角色的操作范围。
- 避免在日志中记录敏感信息(如用户隐私数据、密钥等),确保数据安全。
(五)、 预期的用户数量
初期面向计算机视觉研究者、高校师生,预计500+用户;后续拓展人机交互功能后,面向智能家居企业、运动健康开发者等,预计1000+用户。
(六)、 系统的真实性、可用性以及价值所在
- 系统的真实性
- 1)技术栈与开发流程真实可追溯:
采用Python+PyTorch+OpenCV等主流计算机视觉技术栈,代码开源可复现,从模型训练、推理到结果可视化的全流程均有明确实现逻辑,不存在虚构技术环节。 - 2) 功能贴合实际场景需求:
支持本地视频真实数据源输入,输出带关键点标记的视频文件(如your-file-keypoint.mp4),与实际应用中姿态检测的数据源和输出形式一致,解决了真实场景下的视觉信息处理问题。 - 3) 性能指标可量化验证:
系统运行时能输出FPS(帧率)、处理时间等关键指标,可通过对比不同设备(CPU/GPU)、不同输入源的性能数据验证实际效果,确保功能真实有效。
2.系统的可用性
- 1) 部署与操作便捷性高:
提供简洁的命令行运行方式(如python pose-estimate.py --source "your-video.mp4"),支持通过参数配置设备(CPU/GPU)、输入源类型等,无需复杂环境配置,开发者可快速上手使用,降低技术门槛。 - 2) 兼容性覆盖多场景需求:
支持MP4等常见视频格式及RTSP网络流协议,可适配电脑摄像头、外接设备等硬件,满足科研、教学、企业集成等多场景的输入输出需求。 - 3) 支持二次开发与扩展:
基于开源代码架构,开发者可通过修改模型参数(如置信度阈值)、拓展关键点分析逻辑(如动作评估算法)进行定制化开发,且项目提供清晰的代码注释和使用文档,便于功能迭代与场景拓展。
3.系统的价值所在
- 1) 科研与教学价值:
为计算机视觉研究者提供低成本的姿态估计工具,可用于验证新算法、对比不同模型性能;为高校师生提供开源学习案例,助力理解目标检测与姿态估计的技术原理,推动计算机视觉领域的知识传播。 - 2) 产业应用落地价值:
为运动健康领域(如智能健身指导)提供姿态关键点数据支撑,可通过分析动作角度、轨迹实现标准化评估;为智能家居、人机交互领域提供基础技术模块,支持手势控制、动作指令识别等功能的快速集成,加速AI技术的实用化落地。 - 3) 技术生态赋能价值:
促进开发者社区共同优化模型性能(如提升小目标姿态检测精度、降低计算资源消耗),形成技术迭代的正向循环,为后续更高阶的动作分析(如复杂运动识别)奠定基础。
二、码云
1. 团队项目的码云链接
https://github.com/LeoLeung314/yolo7
2. 团队项目issues截图

三、计划
1. 原有计划
| 周期 | 核心目标 | 具体任务 | 交付成果 |
|---|---|---|---|
| 第9周(组建与计划) | 立项与计划冻结 | 1. 组队、搭建博客、明确分工、确定选题 2. 快速阅读《构建之法》8–15章 3. 制定项目计划与贡献分规则 |
1. PRD一页纸 2. 迭代计划页 3. 贡献分规范 |
| 第10周(需求与雏形) | 规范、环境与骨架 | 1. 编写SRS(仅包含P0四件套+验收线) 2. 绘制原型草图(完成上传→状态→回放流程) 3. 制定编码规范 4. 搭建仓库、配置CI、锁定依赖 5. 开发最小骨架(含pose_estimator.py / tracker.py / fsm.py / run.py / API占位) |
1. SRS v0.1 2. 项目仓库+CI配置 3. 最小可跑骨架(支持假数据) |
| 第11周(设计与测试计划) | 设计冻结、估时与测试方案 | 1. 完成架构设计与WBS(实现接口冻结) 2. 制定测试计划(含数据采集、标注规范、评测脚本接口) |
1. 架构图+接口契约 2. 任务估时表 3. 测试计划 |
| 第12–13周(Alpha) | 打通整链(真实视频可跑) | 1. 分配Alpha阶段任务 2. 开展7天每日Scrum(同步昨日进展/今日计划/当前阻碍+提交代码) 3. 完成冲刺验收(产出样例视频四件套,用评测脚本生成指标) |
1. 可演示的Alpha版本 2. Scrum博客(记录每日同步内容) 3. 评测结果(含具体指标) |
| 第14周(反馈与改进) | 稳态与指标 | 1. 开展小范围试用并收集反馈 2. 调整测试计划与指标阈值 3. 优化性能与鲁棒性 4. 撰写Alpha阶段个人总结与团队展示博客 |
1. 改进版Alpha版本 2. 团队总结与个人总结 3. 团队展示博客 |
| 第15周(事后分析) | 复盘 | 开展事后分析(对比计划与实际进展、梳理风险点、总结经验/教训、整理项目数据) | 1. Postmortem博客 2. 指标对照表 |
2. 校正后的安排
| 周期 | 核心目标 | 具体任务 | 交付成果 | 校正计算依据(对应量化逻辑) |
|---|---|---|---|---|
| 第9周(组建与计划) | 立项与计划冻结 | 1. 组队、搭建博客、明确分工、确定选题 2. 制定项目计划与贡献分规则 3. 快速阅读《构建之法》8–10章(聚焦项目管理核心) |
1. PRD一页纸 2. 迭代计划页 3. 贡献分规范 |
1. 任务负载均衡:交付成果3个×1.2≈3.6,核心任务3个≤4,符合要求; 2. 任务关联度:《构建之法》8-10章(项目管理)与“计划冻结”契合度0.8,保留;11-15章(技术实践)契合度0.3,移出。 |
| 第10周(需求与雏形) | 规范、环境与骨架 | 1. 编写SRS(P0四件套+验收线) 2. 绘制原型草图(核心流程) 3. 制定编码规范 4. 搭建仓库、配置CI、锁定依赖 5. 开发最小骨架(核心文件+API占位) 6. 补充阅读《构建之法》11–15章(技术实践相关) |
1. SRS v0.1 2. 项目仓库+CI配置 3. 最小可跑骨架(支持假数据) 4. 读书心得摘要 |
1. 任务负载均衡:交付成果4个×1.2≈4.8,核心任务6个拆分为“5个核心任务+1个补充阅读”,实际核心任务5个≤4.8,符合缓冲要求; 2. 任务关联度:《构建之法》11-15章与“骨架开发”契合度0.9,移入。 |
| 第11周(设计与测试计划) | 设计冻结、估时与测试方案 | 1. 完成架构设计与WBS(接口冻结) 2. 制定测试计划(含数据采集/标注规范/评测脚本接口) 3. 完成任务估时表(按WBS拆分到人天) |
1. 架构图+接口契约 2. 任务估时表(含人天分配) 3. 测试计划 |
1. 任务负载均衡:交付成果3个×1.2≈3.6,核心任务3个≤4,符合要求; 2. 可执行性强化:新增“拆分到人天”要求,使任务颗粒度≤0.5人天/项。 |
| 第12周(Alpha冲刺1) | 核心模块开发 | 1. 分配核心模块任务(pose_estimator/tracker/fsm) 2. 每日Scrum(5天)+ 代码提交 3. 模块联调(解决接口适配问题) |
1. 核心模块可跑版本 2. 5天Scrum博客 3. 模块联调报告 |
冲刺周期拆分:原14天冲刺>7天,按“开发-联调-验收”拆分为两段;本阶段为“开发+联调”,周期5天≤7天,符合最佳冲刺时长。 |
| 第13周(Alpha冲刺2) | 整链打通 | 1. 开发run.py与API实现 2. 接入真实视频数据测试 3. 完成样例视频四件套 4. 用评测脚本生成指标 |
1. 可演示的Alpha版本 2. 7天Scrum博客(含前5天补充) 3. 评测结果(具体指标) |
冲刺周期拆分:本阶段为“验收+整合”,周期7天≤7天,符合最佳冲刺时长;交付成果与前一阶段衔接,形成“模块-整链”闭环。 |
| 第14周(反馈与改进) | 稳态与指标优化 | 1. 小范围试用+收集反馈 2. 性能/鲁棒性优化(按反馈优先级) 3. 调整测试计划与指标阈值 4. 撰写个人/团队总结 |
1. 改进版Alpha版本 2. 团队+个人总结 3. 反馈处理清单 |
任务负载均衡:原4个任务拆分“撰写展示博客”到第15周,剩余4个任务≤交付成果3个×1.2≈3.6(预留缓冲后可接受),避免优化与总结并行冲突。 |
| 第15周(复盘与展示) | 复盘与成果输出 | 1. 开展事后分析(计划vs实际、风险点、经验教训) 2. 撰写团队展示博客+Postmortem博客 3. 整理指标对照表 |
1. Postmortem博客 2. 指标对照表 3. 团队展示博客 |
1. 任务负载均衡:原2个任务合并“撰写展示博客”,共3个任务≤交付成果3个×1.2≈3.6,符合要求; 2. 任务关联度均≥0.8,聚焦“成果输出”核心目标。 |
3. 矫正计算方法
- 1. 任务负载均衡公式:单周核心任务数 = 该周“必须交付成果数”×1.2(预留20%缓冲),结果需≤4个;判断标准:>4个拆分,<2个合并。
- 2. 任务关联度匹配公式:任务关联度=任务与本周核心目标契合度(0-1分),累计契合度≥0.8保留;判断标准:<0.5移出至关联度更高的周。
- 3. 冲刺周期拆分公式:冲刺周期≤7天最佳,>7天按“开发-联调-验收”拆分为≤7天的小段;判断标准:>10天必须拆分,拆分后每段有独立交付成果。
四、团队分工及每个人完成的情况
| 姓名 | 风格 | 擅长的技术 | 编程的兴趣 | 想充当的角色 | 完成情况 |
|---|---|---|---|---|---|
| 梁子恒 | 细心 | Java前后端开发 | Java前后端协同 | 开发 | 完成既定任务 |
| 阮洪建 | 细心 | Python后端开发 | Python后端 | 测试 | 完成既定任务 |
| 罗锐楚 | 细心 | Python后端 | Python后端 | 救火 | 完成既定任务 |
| 曾子轩 | 规范 | Python后端开发 | Python后端 | 开发 | 完成既定任务 |
| 黄昌龙 | 规范 | 后端 | 后端 | 测试 | 完成既定任务 |
| 刘江浩 | 细心 | Python后端 | Python后端 | 测试 | 完成既定任务 |
| 程炜东 | 随机应变 | Python后端 | Python后端 | 开发 | 完成既定任务 |
五、每个人的感想
| 姓名 | 感想 |
|---|---|
| 梁子恒 | 聚焦基于 YOLO 的姿态估计系统技术攻坚,初期开发满是硬核挑战。从优化 YOLO 模型适配姿态关键点检测,到解决遮挡、姿态多变带来的精度难题,每一步都需反复调试参数、验证方案。数据标注规范制定、特征提取逻辑优化,无不是对技术功底的考验。虽常遇卡点,但攻克难题的成就感推着我前行,期待通过持续打磨算法、迭代模型,突破技术瓶颈,让系统在精准度与实时性上实现突破 |
| 罗锐楚 | 优化YOLOv7姿态估计算法的过程,像一场与精度和效率的博弈。调参时,从调整置信度阈值平衡漏检与误检,到优化锚框适配不同体型目标,每一步都在寻找性能拐点;尝试轻量化模型时,剪枝卷积层虽提升了速度,却可能丢失细小关节特征,这种取舍让我明白:好的算法优化不是单向极致,而是像这个项目展现的,在实际场景约束下,找到精度、速度与硬件适配的最佳平衡点。 |
| 曾子轩 | 深入这个YOLOv7姿态估计项目,最触动我的是技术细节与实际需求的碰撞。调试参数时,从帧率波动到关键点漂移,每一处优化都对应着真实场景的痛点;拓展交互功能时,更体会到算法精度与用户体验的平衡艺术。开源项目像一面镜子,既照见技术的可能性,也映出落地的挑战,让我明白做好AI应用,既要钻得进代码,也要看得见场景。 |
| 刘江浩 | 参与YOLOv7姿态估计项目,让我对“技术工具化”有了新认知。从调用预训练模型实现基础检测,到针对运动场景优化参数,再到尝试将结果接入交互系统,每一步都在打破“算法只存在于论文”的刻板印象。当看到足球比赛视频中球员动作被精准拆解时,忽然懂得:好的技术不仅要精准,更要像这个项目一样,以开源姿态降低使用门槛,让更多人能触摸到AI的实用价值。 |
| 阮洪建 | 测试这个YOLOv7姿态估计项目时,最深刻的是对“技术可靠性”的具象认知。从验证不同设备(CPU/GPU)的帧率稳定性,到测试多源输入(视频/摄像头/流)的兼容性,再到极端场景(逆光、快速运动)下的关键点识别精度,每一轮测试都是对“真实可用”的打磨。发现并修复边缘场景的bug时,才真正理解:技术落地的底气,藏在无数次针对性测试筑起的可靠性壁垒里。 |
| 程炜东 | 参与这个YOLOv7姿态估计项目,从代码到功能拓展,深刻感受到开源技术的魅力。它让我在计算机视觉领域实现从理论到实践的跨越,既体会到模型精准检测人体姿态的震撼,也在多场景适配中明白技术落地的不易。这不仅是一次技术实践,更是对AI赋能真实场景的生动见证,激励我继续深耕。 |
| 黄昌龙 | 在参与项目过程中,从最初对姿态估计技术的懵懂,到逐步掌握模型推理、多源输入适配等技能,我真切感受到开源项目在技术学习与实践中的强大助力。看到系统精准标记人体关键点、输出流畅的检测视频时,那种成就感难以言表,也让我更加坚信计算机技术在科研与产业落地中的广阔前景。 |
浙公网安备 33010602011771号