第十三组项目总体报告

1.项目成员分工

俞子君:项目规划、博客撰写、模型训练

蔺一迪:后端开发、模型训练

林思源:接口实现、后端开发

李剑飞:接口实现、后端开发

李瑞涛:前端开发、网页设计

卢浩:服务器搭建、仓库管理

2.预期计划

实现网页版名画识别程序,用户在网页上上传图片,后台可进行识别并可显示出识别结果。

3.项目实际进度

1、Alpha迭代阶段
完成了前端界面的设计,模型的训练以及用户登录、上传图片的功能。

2、Beta迭代阶段
搭建了服务器,完成了显示识别功能、模型测试与后端对接的功能。

4.项目中遇到的问题

1、本地训练模型的环境配置繁琐

​ 从cuda到pytorch的一系列配置,都踩了无数个坑。

2、前后端对接困难

​ 后端运算结果在与前端对接时会出现各种格式上的错误,经常会出bug。

3、模型训练缓慢

​ 硬件太差,本地GPU跑起来十分缓慢;人也太菜,不会进一步优化算法。往往跑一遍就需要半个小时的时间。

4、服务器形同虚设

​ 最后完成了想要在服务器上进行识别,发现搭建的服务器只有CPU,识别一次速度感人。所以只好作罢,没有派上用场,而只是在本地实现了功能。

5、项目进展缓慢

​ 组长没发挥好作用,没能很好的带动整个组。虽然在最后一次迭代中完成任务,但是总体速度还是偏慢,前期的实现过少。

5.项目的实际架构

使用技术:python(识别名画) java(用户系统、识别系统) css(UI设计)

6.项目测试

测试方法:黑盒测试 判定表测试法

划分等价类:
用户:
U1:{用户已注册}
U2:{用户未注册}
U3:{用户密码正确}
U4:{用户密码错误}
图片:
P1:{图片路径正确}
P2:{图片路径错误}

条件桩:
c1:用户情况分别属于U1-U4
c2:上传情况分别属于P1-P4

动作桩:
a1:注册账号
a2:登录
a3:重新输入密码
a4:重新上传图片
a5:等待识别结果

判定表:

测试用例:

准确率:采用研习社测试结果

7.过程体会

俞子君
过程十分艰辛,但是做出来很有成就感,也体验到了团队协作的感觉,收获颇多。对于模型训练感慨万分,既有感动又有无奈。
蔺一迪
在这次项目中,我们第一次完成了一个完整的项目,包括前后端搭建以及接口的连接。虽然在过程中也遇到了很多困难,例如永远改不完的bug,但是我也学到了很多,对深度学习也有了更深入的了解。
李剑飞
在项目开始的时候信心满满,不过随即而来遇到很多bug,更难的是和web前端对接。虽然不是很熟悉,能力也有限,但是从中也获得了很多知识,感受到了团队合作的力量。
林思源
在这个项目中学到了很多东西,也积攒了团队项目的经验。
卢浩
虽然一开始构想起来很简单,但实现的时候还是发现很多问题。做之前感觉理论上很简单的东西想要实现时还是很难,只好退而求其次用别的方法替代。
李瑞涛
前后端对接部分,实际对接时,最大的难题是如何让后端接受到前端发送的信息或数据。这一点上发送方和接收方应该是要提前商量好,避免因为一个问题影响后续开发。

8.附加题

1、对之后上这门课的同学,或者对于开学初的你,有什么建议和告诫

俞子君:建议好好学习,应该再努力一点去学多一点的知识。平日里还是要多下功夫去看看资料,学习知识。

蔺一迪:在刚开始一定要认真地学习深度学习的入门知识,因为之前的积累对后面的项目实现很重要。而且不能偷懒拖延。

李剑飞:希望即将上软件工程这门课的同学,应该从一开始就调整自己的学习时间,能够确保学习和项目的正常进行。要充分利用所学知识(比如开发模式、开发模型、软件测试),在自己的项目过程中实践出来,加深理论知识的理解。最后,一定不要有拖延症,否则会影响整个小组的进程。

林思源:多动手实践,感受下科学的软件工程开发方法

李瑞涛:这门课前期虽然用不到C或java之类的编程语言,但还是需要自己偶尔写写代码,保持手感

2、对于作业或者课程安排有什么样的建议

俞子君:挺好的,很锻炼人的意志力和协作能力。没啥建议。

蔺一迪:无,课程安排很合理。

李剑飞:人员分配上的两种方法:1.是否需要合理分配(比如:一个小组一个人是会写web前端,一个会写后端,一个会搭建服务器,一个会训练模型等等),即小组的每个成员都能各司其职,不会存在某一个模块没有人会,或者这个模块很多人会的局面,那么可能项目开发可能会相对于快一些(不需要学习太多知识)。存在的问题就是没有在原基础上学到新的知识,不过能有更多时间且能对软件工程的整个项目流程会有一个很清晰的理解。2.分配“不合理”,即一个小组中存在某个模块没有人会,大家会的模块出现重叠,这样人员分配上会很难。同时带来的问题就是,项目进程会变慢(需要花费更多的时间去学习新的知识),如果最后项目做出来了,能学到新的知识和能力,但是可能花费时间太多,整个精力都投入在自己的模块,无法对整个软件开发项目流程有充分的了解。所以如果是第一种,那就让组队有要求,有老师分配,或者让同学自己有目的分配;第二种的话对于有想挑战,学习新知识的同学来说,可以让他们自由发挥。

林思源:项目开发方向可以多元一些

李瑞涛:无

3、自己对未来的期许

俞子君:希望以后还是能多做一些项目,提升一下自己的能力。努力复习,期末考好!

蔺一迪:改掉拖延赶ddl的坏习惯,因为这次项目我的任务是后端,所以想以后多多尝试端口连接和项目前端等其他工作。

李剑飞:希望未来的合作项目中能够运用到这次的经验,从人员的组成,分配到最后项目的完成,希望都能实现敏捷开发的目的。(燃尽图是个好东西,比ddl一样还直观)

林思源:多动手实践,把理论知识运用在实际操作中

李瑞涛:成为一名合格的码农。

原文地址:https://www.cnblogs.com/wyyyy/p/14269943.html