1. 成员分工
- 王嘉毅:规划项目进度、组织例会、前端开发
- 范新东:后端开发、算法学习及系统设计
- 万文龙:后端开发、算法学习及系统设计
- 王泓元:文档维护、系统测试、服务器运维
- 单岳超:后端开发、文档维护
2. 项目介绍和演示
2.1 项目简介
- 本系统是基于神经网络模型、能够自动准确识别图片中人物口罩佩戴情况的跨平台系统(网站+App+客户端+小程序)
- 本地桌面应用实现了实时视频检测功能,旨在为商场、餐饮、地铁等人员密集场所提供检测人员是否佩戴口罩的功能。
2.2 项目亮点
- 界面精简,操作简单,交互性好
- 跨平台性,免安装,敏捷高效
- 算法先进,识别快速
- 实时视频检测功能应用场景丰富
- 媒体响应设计,适配不同尺寸的屏幕
2.3 项目架构
2.4 完成情况
1. 跨平台版(图片上传检测)【已完成】
- 特性:跨平台(网页版+Android+微信小程序)
- 功能:图片上传检测、登录、注册、历史检测记录查询、疫情信息查询
2. 桌面版(实时视频检测)【已完成】
- 特性:无需联网,单机运行,适用于公共场所的电脑设备(地铁口,火车站,飞机场)
- 功能:实时视频检测
2.5 视频演示
2.6 软件体验
在线网址:http://amoniaa.gitee.io/facemask-identify
- 服务器带宽和内存有限,同时访问时图片检测结果响应可能较慢
- 小程序版:由于小程序未正式上线,需要使用调试模式运行小程序(点击右上角->开发调试->打开调试)
3. 小组工作展示
3.1 团队博客和SCRUM会议
3.2 Github仓库
前端:https://github.com/Amoniaa/Group4-front-end
后端:https://github.com/Xisaname/Group4-back-end
项目文档:https://github.com/Amoniaa/Group4-project-documentation
3.3 Github Issues
3.4 项目文档
4. 开发过程
4.1 预期计划
- 可交互的网页
- 上传图片,系统通过调用接口给出反馈(佩戴与否),成功佩戴可以标注图中的口罩位置
- 制作跨平台的客户端
项目选题博客截图(2020/11/7)
4.2 燃尽图
- 经过六周(2020/11/16~2020/12/26)的共同努力、α和β两轮迭代,我们按计划完成了本项目全部功能
- 还增加了部分新的功能,如:疫情信息,实时视频检测等
- 在β迭代阶段提前完成项目全部内容
4.3 部署流程
4.4 遇到的问题&解决方案
5. 软件测试
5.1 测试安排
5.2 测试工具
5.3 测试结论
本项目根据业务需求及开发人员的反馈意见,覆盖了绝大多数的测试需求及案例,均已测试完成。有效案例一共40个,执行率100%,通过率95%。综上所述,口罩佩戴识别检测系统达到项目测试标准,项目测试通过,可以进行正常发布使用。
6. 成员心得
王嘉毅
在本项目的开发过程中,由我负责前端开发部分、规划项目进度和组织例会。虽然在此之前我并没有跨平台应用程序的开发经验,但由于有过微信小程序的开发经历,经过自学研究后逐渐掌握了uni-app框架及其开发流程。经过漫长的前端开发过程后,我收获了很多。首先,我对跨平台应用程序的开发流程有了更为清晰的认识;其次,实现了前后端分离的程序开发模式,与团队内的其他成员共同开发,最终实现本项目的全部功能。最后,感谢小组成员的齐心配合和共同协作,使我从软件工程学的角度,系统地从设计到实现,完成本项目的工作,并获得许多宝贵的前端开发和团队合作经验。
范新东
在项目开发的过程中得益于团队之间密切地交流,我们在遇到问题时都会积极交流,因此节省下许多时间和精力用于代码任务上。团队之间明确的分工也让我们每个人都能静下心来攻克属于自己的难题。软件工程给予我的这次项目锻炼的机会使我提高了自己的编程能力,更重要的是明白了团队协作的重要性,让我明白了一个成功的项目不仅仅需要出色的代码能力,更需要强大的团队协作。
万文龙
刚开始项目时,对深度学习不熟悉,通过和主助教的沟通,确定了大致的方向,后面不断地查找相关资料和阅读一些yolo的代码,慢慢地能够看懂代码,到能够修改和自己写一些代码;后端开发的时候,因为一些代码的习惯,产生过一些bug,好的代码习惯是比较重要的。
王泓元
每个项目的实现都不是一蹴而就的,是需要项目组所有成员分工合作、共同努力才能完成的。作为本项目的一员我深刻体会到一个项目从零到有的艰辛。在项目实施初期,和组内成员交流、团结互助,给项目后续实施打下良好基础。在项目整合阶段,合理的分工合作让前后端衔接工作异常顺利。同时通过服务器端的调配使项目成功上线并能够正常使用。在项目进展后期,整理报告、进行测试让项目变得更加完善。整个项目实施过程,加强了我对所学知识的运用,收获了宝贵的项目开发和成员协调经验,真正达到了锻炼自己的目的。
单岳超
通过这个项目,收获颇丰。让我了解了软件工程的内容,在一定程度上体会到了软件工程的意义,其核心就是,如何组织和完成软件开发的5个重要组成部分:需求分析,设计,编码,调试和维护。并且,让我们知道了编写软件不应该是闭门造车的,需要不断地去借鉴别人的经验。这次的团队项目,也让我知道了在编程过程中,团队应该如何进行合作,去发挥各自的作用。整个项目过程中,自己也学到了很多新的知识和新技术,收获了项目开发的经验,锻炼和提升了自己在软工开发这方面的能力。
附加题
1、对之后上这门课的同学,或者对于开学初的你,有什么建议和告诫
王嘉毅
1.项目分工是项目开发的关键,物尽其用,人尽其才,也许能在开发的过程中事半功倍
2.选题能为接下来的开发过程指明方向,因此选择一个最适合自己团队的题目至关重要
3.开发过程中难免遇到各种各样的问题,抱着一个一定能够解决问题的心态也许真的就能一路走过来,发现自己竟然完成了难以想象的工作。因此,大胆尝试,不要害怕出bug,战略上蔑视敌人!
4.团队协作中的有效沟通也非常重要,经过一个学期的开发过程,也学到了提高沟通能力的方法
范新东
认真对待老师布置的作业,你的汗水不会白费。这门课是爆款,选到就是赚到
万文龙
对之后上这门课的同学,我想说,小组项目的完成是需要付出很多努力的,这也离不开小组成员的相互合作,小组成员之间需要多沟通协调,才能事半功倍
王泓元
1.选题一定要严谨,在选题的时候一定要认真讨论,不能觉得简单就选,实际上做起来可能很难。
2.小组合作很重要,一个小组想有好的成绩,和组长的带领、组员之间的合作密切相关。
单岳超
这门课精髓很多,能从中学到很多方面的知识,一定要好好听,要好好学,将这些课本上学不到的东西转化成自己的,能受益很多。并且,高峰老师的颜值会让你赏心悦目。
2、对于作业或者课程安排有什么样的建议
王嘉毅
1.本学期是基于深度学习方向的项目选题,能在学习软件工程课程内容的同时接触到深度学习相关内容,我认为这个很有创新,可以继续延续下去。
2.在软件开发过程中,我深深体会到了敏捷开发的基本流程。在短时间内高效开发十分有必要。因此严格按照项目开发计划和时间安排进行十分关键。
范新东
作业没啥安排,课程的话建议加强签到。
万文龙
项目选题的时间可以更早,在中期可以多进行一两次小组汇报。
王泓元
课程很好,上课很舒心,老师很负责,没有建议。
单岳超
课程上:比如上课的课程可以安排得紧凑一点,然后更多的时间侧重于动手实践方面,毕竟只有自己亲自操作后才能学得更快,更容易。
3、自己对未来的期许
王嘉毅
过好平凡的每一天。
范新东
未来能学到更多的技术,能找到自己努力的方向。
万文龙
争取能够保研。
王泓元
好好学习,天天向上,顺顺利利大学毕业。同时今年准备考研,希望能考上研究生,毕业后能获得一份轻轻松松的好工作。
单岳超
想去杭州发展,离家更近点,离自己想陪的人也更近点。