TOP

一等奖 北京理工大学 阿里里,阿里里,阿里阿里里团队
2016-09-05 00:42:45 来源: 作者: 【 】 浏览:3805

       参赛团队:阿里里,阿里里,阿里阿里里

       参赛队员:张钦、王冬晓、张琪

       指导老师:陈杰浩

 

       经过紧张的筹备制作、激动人心的参赛答辩,历时近五个月的第五届“中国软件杯”大学生软件设计大赛终于落下了帷幕。功夫不负有心人,通过我们的踏实学习和勤勉备战,最终在此次比赛中获得了一等奖的成绩。

 

       我们是来自北京理工大学的“阿里里,阿里里,阿里阿里里”队,队员皆由来自软件学院的大四同学组成。虽然实战经验有所不足,但我们依然决定挑战自我,在这次比赛中学习新知、完善自我、有所收获,因此我们选择了对我们来说难度较高且此前少有接触的“基于人脸识别的商业大数据分析技术”。

 

       “基于人脸识别的商业大数据分析技术”,主要用以街头LED广告投放系统中。传统的街头广告牌只能做到广告的顺序轮播,而事实证明,由于播放不考虑观看广告的观众性质,顺序轮播并不能够有效吸引观众的注意力,不能提高观众对产品的接受程度,投放效率极低。因此,我们开发出一款基于人脸识别与大数据分析的广告投放决策系统,能够根据观众们的人物特征,结合环境与商业因素,通过大数据分析,投放最合适的广告。

 

       我们的系统可以划分为多个模块,即人脸识别模块、离线学习模块、在线学习模块、关系识别模块、综合投放模块。系统首先通过历史收集的“特征-结果”数据集,通过离线学习,拟合观众中长期消费偏好的神经网络决策模型,此模型在系统运行中通过在线学习模块,使用新数据增量地更新优化,以更好地适应观众短期的消费偏好。在系统运行时,系统通过摄像头拍摄前景图像并投入人脸识别模块,得到数个人脸,并通过人脸识别人物的性别、年龄、表情、姿态等人物特征,同时人脸识别模块将识别出观众所处的位置。将人物特征投入之前训练的决策模型中,我们将得到数个基于个人的广告排序,同时将人物特征传入关系识别模块我们将得到人物之间的社会关系分组(如母子、情侣等),将分组与个人广告排序综合考虑,将得到基于群组的广告排序,最后,综合多个群组与商业、环境信息,我们将给出最终的广告排序,并在一般情况下投放排名第一的广告。

 

       该系统能够实时地、离线地进行人脸识别,并通过识别到的特征进行决策推荐,不依赖网络且识别效率极高。从结果上,我们的人脸识别效率达到每秒15帧左右,性别识别正确率高于78%,年龄识别能够达到在80%的情况下误差不超过8岁,且识别能够达到完全实时。最终效果上,顺序轮播策略(普通广告牌)下观众对广告的平均观看时间为1.5s,而进行了人脸识别并大数据分析后,观众的平均观看时间提高到了2.3s,在一定意义上看,对观众的投放精准度提高了53.3%,效果非常显著。

 

       本届大赛以“点燃软件梦想,共创世界未来” 为主题,共有4093支队伍参与角逐。从初赛选题报名到最终提交材料,我们顶着大三的课业压力筹备了两个月,最终实现了第一版的“基于人脸识别和大数据分析的商业广告精准投放系统——ADBANK”。由于大三课业繁重,我们的备战工作不可谓不艰苦。然而即便如此,我们仍然抽出时间,研究机器学习算法、人脸识别技术。最终从4093支队伍中杀出重围,进入决赛。

 

       而在决赛阶段,角逐更为激烈。历时三天,我们进行了现场演示、决赛答辩,和全国各地的队伍商讨题目、互相促进、互相学习。晋级决赛得到219支队伍通过现场评审环节争取30个最终答辩名额,而在现场答辩过程中再去进行最终展示,争取一等奖的荣誉。

 

       在前两天的现场评审环节,我们向各个队伍的指导老师、各大企业的专家评审以及蜡烛各大高校的资深教授展示自己的系统,聆听各专家老师的指导意见,在与老师的交流过程中收获良多。每次和老师交流讨论后,都会发现自己的不足之处,遵循专家评委的建议,我们也在不断的完善自己的系统。比赛的赛程安排十分紧张,在修改、完善系统的过程中,亦会有时间不足的情况。有时为了完善代码,甚至熬夜到凌晨五点。虽然第二天顶着黑眼圈、满脸憔悴,但看到不断改善的系统,心中亦会满溢成就感。如今回想起来,这大概也是竞赛魅力的一部分吧。

 

       “中国软件杯” 大学生软件设计大赛已经走过五年的发展历程,与其他同类赛事不同,“中国软件杯”大学生软件设计大赛的最大特色是题目原型全部来源于全国软件骨干企业的实际技术需求,企业元素的加入使得大赛更具实用性和权威性。在这个参赛过程中,我们第一次接触了面向企业的商业软件系统,这也是“中国软件杯”大学生软件设计大赛的独特之处。不同于科研类的比赛项目,我们要更多的关注软件的核心技术以及它所带来的商业价值。而这,大概也是今后踏上社会、走进工作后更要关注的事情。“中国软件杯”大学生软件设计大赛于我们来说,更像是从象牙塔到社会的过度,是人生另一阶段的提携者、引领者。通过参加此次比赛,我们体验了成熟的商业软件的制作流程,对于一个给定的赛题,自主分析其商业需求,寻找可行的解决方案,将其实现为一个完整的商业软件。这样的经历,在校园学习过程中是不可多得的,也因此,令我们收获颇丰。

 

       同时我们也体会到,制作一个完整的项目是十分不容易的。这涉及到很多环节,包括最开始的项目规划、需求分析。从确定题目开始,就要明确所做软件的功能要点以及项目架构方式,这样才可以便于日后修改bug、增添功能,实现代码复用。之后要进行产品原型设计,完成系统的初始架构。除此之外,还要进行繁杂的代码编写和测试工作,确保软件的实现。

 

       面对如此复杂的编码设计过程,一个人的力量是十分有限的,在竞赛过程中,要发挥各自的聪明才智,确立共同的团队目标。我们在开发过程中也会存在不同的意见,这时就需要但是通过良好的沟通,一定可以良好的解决问题。

 

       开题的时候,已经是四月份,对于即将在五月份截止的初赛提交,而且提交初赛资料的时候正值考试周,实话说心里还是觉得时间非常紧张。我们利用了近半个月的时间分析赛题,在这半个月里我们探讨了许多可行的实现方式,例如人脸识别模块,我们可以使用双目视觉进行深度图的获取,也可以使用彩色摄像头与结构光的方式进行测距,此外还有一些对广告与人群的对应关系的获取上我们也进行了多次探讨,拿出了几套不同的方案。经过半个月的激烈讨论,我们决定项目的其中主要的部分自己写代码实现,而其他的部分使用市面上较为成熟的解决方案。考虑到题目的要求,我们使用Kinect+OpenCV实现人脸面部特征获取以及识别,这样做的一个好处是可以不用在一些细节问题上过多地浪费时间,而在广告大数据分析的时候,我们也使用了较为成熟的神经网络作为解决方案。

 

       通过这次比赛,我们也头一次自己亲自动手设计一个中型项目。对待这样一种代码量较为庞大,而且使用了多种开发环境的项目,我们意识到了妥善地进行源代码管理以及进行自动跨环境部署的重要意义。由于我们的UI使用QTCreator进行开发,而人脸识别部分的逻辑使用Visual Studio进行开发,所以在文件同步的时候需要手动对一些文件添加依赖,例如使用moc预编译器等等。配置好自动跨环境部署脚本的意义就在于可以将一些QT的预编译工作自动完成,而且可以自动解决其他的一些项目配置问题。对待这种中型项目,还存在着许多debug方面的难题。多线程编程在进行调试的时候可能会出现各种难以复现的错误,解决这些问题不但锻炼了我们的编程能力,也使得我们去寻找更高效更安全的编程方式。

 

       我们相信,参加软件杯比赛不仅需要满腔热情,更加需要的是缜密的思维、详细的计划、精确地执行以及无论何时都不放弃努力的执着精神。希望此次获奖不但成为对我们近几个月以来努力的肯定,也能够鞭策我们,使我们对未来的挑战充满信心。

 

关键字: 责任编辑:cnsoft
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到QQ空间
分享到: 
上一篇一等奖 山东科技大学 因缺思婷 下一篇一等奖 武警工程大学 我们在奋斗..

相关栏目