服务外包比赛结束了,好好整理记录下这几个月来的心酸历程吧。服务外包创新创业大赛是我们学院的重点比赛,每年都有很多队伍参赛,这个比赛难度很大,但是国一却不保研(哈哈)。但是还是参加了下,身边的同学和室友都早早开始准备,也没什么队友可以找了,最终我也只和仓仓两个人组队参加了。虽然人数只有两个人,但是足够应付赛题的技术点了。
选题
比赛总共有30题,选择其中一题,按要求完成赛题任务即可。30题中每道题风格不同,思考再三决定选择算法方面的题目,这类题没有纯做系统的卷,更要求算法的创新,会更加适合我们。正值当时处于机器人比赛延期的阶段,暑假又学了点计算机视觉方向的知识,选了两道这个方向的赛题,去找指导老师聊了聊。指导老师是我们班python选修课老师,虽然我没有选(哈哈),仓仓选了,然后主动请金山哥当指导老师。他好像第一次负责这方面的事情,不过也挺上心的。正好他也懂计算机视觉,最终确定了A08铝片缺陷检测赛题。
项目
赛题要求我们利用Paddle框架对400张铝片缺陷图片进行训练,并有一个较好的识别结果,并成功部署在FPGA上。项目前期,我们大致上就只看看了赛题要求,思考下要怎么去实现,因为当时也忙着要期末复习,所以项目没怎么推进。
一眼到寒假了,我呢一直在摸鱼,学了下机器学习和项目部署的知识,基本没有对赛题进行推进。主要还是仓仓在负责,她独立研究了如何利用PaddleDetection框架进行模型训练,然后做了部分前端页面,因为数据集照片太少了,还用了数据增强方法。
寒假我没怎么做还挺愧疚的,开学就全身心投入项目中。由于项目需要部署在FPGA上,因此我去负责这个部分,本以为FPGA是一个很复杂的玩意,后来发现其实企业就是提供了我们一个Linux内核的服务器,我只需要用SSH远程连接上即可,我本来就是一个终端爱好者,这对我来说并不困难。企业提供了一种部署的解决方案,但是只能针对SSD模型,而且还和PaddleDetection的版本相关。为此我重新去官网找了PaddleLite官网部署armLinux教程,还挺复杂的,还要修改cpp文件来对应模型的输入和输出。搞了好久终于部署上去了,但是服务器只是2核CPU,算力极低,一般大模型都无法部署上去,很多队伍只能部署SSD,为了体现我们的优势,最终我们选择了PPYOLO模型,并成功部署在FPGA上。
模型训练这块是仓仓负责的,利用PaddleDetection可以很方便的对模型进行训练。但是受部署影响,并不是所有模型都合适,我们尝试了好多模型SSD、YOLO、PPYOLO模型,最终为了体现差异性选择了PPYOLO模型。
我在查阅资料的时候,发现了除了传统的数据增强手段外,现在还有GAN技术进行缺陷生成。然后我花了一天时间,找了DCGAN代码来跑了下,果然能生成缺陷图片,虽然效果不怎么样,但也算是一个创新点了吧。
前端方面,一直是仓仓在做,也算辛苦仓仓了哈。因为项目也需要后端与FPGA通信,我忙完部署和DCGAN,就接手了后端开发的任务(之前仓仓做了点)。由于FPGA算力实在是太低了,最后我们后端的解决方案是我们电脑作为一个服务器与前端通信,FPGA只负责图片预测。在FPGA上安装flask真是累,会遇到一大堆麻烦,各种版本不对应的,还好最终解决问题了,后端框架也基本搭好,图片用base64编码通信。
报告
虽然,项目基本上完成了,然而服务外包创新创业大赛不仅比拼的是大家对算法的创新程度,也很看中报告、PPT和视频的内容,为此在这方面我们也下了很大功夫。在报告上我们是参考了我们往届的一只国一队伍的,都是算法题,因此报告格式借鉴了下。之前训练模型的时候,我其实是并不知道模型内部具体结构是什么样的,趁着这个机会把计算机视觉基础知识学了,这里推荐b站up主-霹雳吧啦Wz的视频。跟着视频学了目标检测和图像分类的理论知识,感觉大为受用,然后去看了ppyolo的论文,基本网络架构也能了解了。然后把每个模块用的技术与原理也仔细写了出来。视频的话因为之前后自学过FCPX所以剪辑还可以,动画是仓仓用ppt做的,感觉很强,ppt也认真排版了下。后面做的差不多了,也找金山哥讨论了下,他也给出了一些建议,对报告和ppt做了分析,很明显的表示了我们做的不错哈哈哈。
当时机器人比赛其实也已经开始,机器人的队友也都参加了服务外包大赛,为此大家实际上都是双线程进行着,那段时间都挺辛苦,一边赶着报告,一边修改测量代码,劳累又快乐着。机器人比赛结束那周,刚好也是外包赛截止交材料的周。在周日比赛结束,外包材料上交,两件大事都结束了,感觉大学奋斗的生活也结束了哈。
答辩
因为,我们这个赛题参加的人数较少,根据往年来看东部区域赛只能晋级两只队伍,但愿自己能进吧。后面大概过了一个月作用,东部赛区的结果出了,我们赛题晋级两只队伍,我们很幸运的晋级区域赛了。我们学校总共晋级了10只队伍,我们成为其中一支,也算是为自己争口气了,毕竟我们才两个人,不得不说b是装到了。不过竟然晋级了,也要好好准备下答辩,一个星期之后就要答辩了,我们赶紧把我们的ppt修改了,记得是改了两三天,和仓仓一起写稿子,仓仓把稿子背熟了,挺辛苦的。找了金山哥讲了下答辩,他觉得我们挺好的,晋级稳了(哈哈也要看对手吧)。后面帮我们联系了下lkc(学校管竞赛老师)也给我们提了一点意见,让我们更加符合商赛的流程,确实帮助挺大的。
我们提前也准备了很多答辩的问题,答辩那天我们也是穿了白衬衫,毕竟正式答辩还是要隆重点,我们花了10分对自己的项目进行了介绍,后面回答了下问题,有个问部署参数是怎么设置的就很离谱,感觉答辩的一般,但我们自己也满足了。
后面出结果,我们这个赛题晋级的是浙江理工大学的队伍(浙理一生之敌),虽然挺可惜的,但还是觉得和仓仓做的不错了,不后悔了。我们学校最后五只队伍晋级国赛,后面国赛答辩竟然没有一只国一,还是挺可惜的吧。
总结
现在回看当时做的ppt、报告和视频,简直是完美,虽然最后只是拿了区域赛二等奖和全国三等奖,有这样一个答辩体验也是很不错的,而且通过这个项目学到了很多,不仅是计算机视觉方面的知识,还有项目开发之类的。
总要找张图留念下吧,答辩结束图,非你莫属咯~