第10组 项目总体报告(曹阳)
基于深度学习的鸟类分类识别web应用
技术栈
前端:Bootstrap,Jquery
后端:Django
模型:VGG16
微信小程序:colorUI+wepy
GitHub: https://github.com/BSR-Bird-species-recognition/Bird-species-recognition-web
使用方式:
后端python程序中包含bird_predict.py文件
#载入tensorflow,keras环境依赖
import numpy as np
#Keras
from keras.applications.imagenet_utils import preprocess_input, decode_predictions
from keras.models import load_model
from keras.preprocessing import image
#载入权重文件
MODEL_PATH = 'birds.h5'
model = load_model(MODEL_PATH,compile=False)
model_predict(img_path, model)
#返回传入图片所属的分类
小组分工
*曹 阳: 识别算法,模型测试,微信小程序,组织会议,代码整合,资料翻译
*薛华丰: 识别算法,模型测试资料翻译
*索 欢: 服务器运维,资料翻译
*王宏基: Web后端程序,资料翻译
*吴文敏: Web前端程序,资料翻译
*张子明: 软件测试,报告整理和排版,资料翻译
*戴铭瑞: 产品,资料翻译
beta阶段的目标及完成度
-
前后端连接成功(完成)
-
优化前端用户界面(完成)
-
分工完成250种鸟类的名称和资料翻译的整合(完成)
-
模型平均识别准确率达到80%(95%以上)
-
附加项:完成前4部分则开发微信小程序(完成)
项目遇到的困难以及结局方法
-
假如用户上传的图片主体不是鸟,会识别错误。 解决方案:让用户上传时裁剪照片保证主体是鸟
-
前端用户界面优化。 解决方案:参考了大量网页设计案例,优化使用流程和整体显示方式
工作示意图
总结和体会
曹 阳: 深度体验了深度学习调参的过程,也积累了更多前后端开发的经验.感觉对于web开发和深度学习的理解更进一步.同时也收获了一群好朋友.
薛华丰: 学会了python语言的运用,也体会到了软件工程的概念,算是入门了深度学习了.
索 欢: 从刚开始的需求分析,项目分工再到最后的项目完成,给我最深体会的就是每次的站立会议,在这其中,不只是汇报跟进.反思调整我们的项目进度,更难能可贵的是在一次次的会议中,我收获到了深厚的友情以及来自其他成员不同的知识技能,也让我加深理解了软件工程的意义。
王宏基: 通过这个项目学会了使用python语言,Django框架,积累了许多后端开发的知识与经验
吴文敏: 我是吴文敏,在这次实验中主要负责前端的代码编写。在这次实验中,我新接触了很多概念,对很多新的领域有了更加深刻的理解,在前端方面,对一些常用功能的实现有了实际的动手练习,这些都对我有很大帮助。
张子明: 本学期进行软件工程小组合作,我主要负责软件测试工作和实验报告的撰写,对软件进行了大量的白盒、黑盒测试。我学到了很多,也收获了友情!
戴铭瑞: 很开心认识大家,学到了很多知识。
对于以后上这门课同学的建议
曹 阳:
1.选题和制定开发方案的时候一定要根据自己小组成员的综合水平,项目经验来制定合理的开发计划,切忌好高骛远.
2.在进行写代码之前,应该制定详细的需求文档,程序流程图,分阶段的计划,确保全体开发人员知悉并理解自己的项目.这对后续的顺利开发非常重要.否则开发过程中可能会出现沟通和理解问题导致的时间浪费.
3.如果大家对项目中涉及到的技术栈不熟悉,建议找一个比较好的教程,充分利用谷歌,各大博客,b站的一些教程,进行系统地学习,了解自己的要做的项目从头到尾应该如何开发,需要避免那些坑.一个很容易出现的问题就是,开发项目的时候学了一点知识就去做了,结果犯了很多低级错误却不自知.如果一开始进行了系统的学习,对项目的宏观和一些细节的都有自己的理解,整个开发过程会更加顺利.
4.项目进度终究是由人来驱动,和谐的团队关系,良好的团队氛围对于开发非常重要.
5.尽量不要拖延.用公开的计划和分工约束和鞭策自己.
薛华丰:
自己课下多学点知识
索 欢:
这节课重点部分其实是每一次的实践,在实践中你真的会收获到很多理论外的知识,可能你会遇到不熟悉的领域和很多ddl,但是只要你坚持下来,就能充分体会到这门课带给你的收获。
王宏基:
软件工程这门课程能够帮助你了解一个软件产品诞生的全过程;它的理论部分只需要作为一个“科普”性质的课程来学习;实践部分才是课程的重点。
吴文敏:
在学习一门新知识的时候最困难的也许就是查找资料了,希望在看一门新领域的资料时一定要保持耐心。
张子明:
要学会合作,知识都是从无到有的,不懂的要及时学习,不要拖延。
戴铭瑞:
建议平时多下功夫,努力学好这门课。
对于作业或者课程安排的建议
曹 阳:
理论课知识可以再增加一些较大的案例分析.
感觉两轮冲刺开发,以及每周3次的小组会议对于项目进度的顺利推进作用很大,可以想象如果没有频繁的会议去检查进度,项目很有可能会被大家的拖延症拖垮.不过考虑到大家并不是全职在做这件事情,有时候忙起来3天都没有进展,适当削减频率也许会更合理.
薛华丰:
希望老师多讲一些和作业相关的知识
索 欢:
课程设计的挺合理
王宏基:
alpha阶段的“每周两次站立会议”的要求可能有些高,两周三次的频率可能对我来说更加合适。
吴文敏:
课程和作业方面都非常满意
张子明:
感觉会议有点太频繁了,其他的都很满意!
戴铭瑞:
我觉得老师设置的很好。
对未来的期许
曹 阳:
感觉这次软件工程的项目开发学到了很多新的知识,积累了团队合作的开发经验,还交到了一群志同道合的朋友,希望未来的自己能够参与更多的项目开发,磨练自己的技术,成为优秀的开发者.
薛华丰:
考研成功
索 欢:
今后在合作项目中将软件工程中学到的合作分工应用到更多方面,使自己完成工作的效率更快更好。
王宏基:
能将软件工程课程中学习到的理论知识合理有效地运用到将来的学习、工作中。
吴文敏:
希望自己未来可以以更大的热情去学习新知识
张子明:
求求自己不要再做混子、做five了!考研加油!
戴铭瑞:
希望大家未来都能有一个好的出路。