第八届“中国软件杯”大学生软件设计大赛,为使高校人才培养和新兴信息产业需求有效衔接,加快培育更多高端、优秀软件人才,增强产业自主创新能力,推动我国软件和信息技术服务业又好又快发展,切实增强学生们自主创新能力和实际动手能力,大赛赛题原型全部来自全国软件骨干企业的实际技术需求,逐步走出了一条产教互动、合作共赢的人才培养路子。
(图片来源:中国软件杯官网 第七届大赛颁奖现场 侵删)
今年课工场作为专注于企业IT岗位的人才培养的教育机构,深度参与本届赛事,成为赛事支持单位和出题方,有本科生和高职两道赛题入选题库。
在过去的一段时间里,有不少本科组同学向课工场老师咨询问题。为了解决各位同学的问题,特整理如下:
赛题名称:基于深度学习的银行卡号识别系统
组类: A 本科及以上
问题1:
银行卡号检测部分也是要求用深度学习吗?单纯用数字图像处理可以吗?
回答:
检测部分建议用深度学习,图像处理算法也行,但是评分会比深度学习少。
问题2:
GUI界面是需要开发在安卓上的还是在windows上?
回答:
本次赛题同时要求使用GPU加速计算。
问题3:
安卓只是作为一个图像获取并传回,图像处理在服务器端,处理结果在传回安卓。这样可以吗?
回答:
可以的,GUI要求的目的不仅是提供友好的交互体验,同时也是为满足本项目一定工作量设计的。出色的GUI能得到相对高的评分,拉开与竞争对手的分数。核心在于使用深度学习技术体系实现检测与识别功能,GUI是锦上添花的加分项。
问题4:
用java开发和Python开发这个会存在评分差异吗?
回答:
评分标准在赛题描述中有说明,推荐使用python,这一项并没有作为评分依据。
问题5:
数据集没标注?
回答:
数据集有标注,文件名就是卡号,检测部分可以去参考开源模型的做法,可以迁移学习。
问题6:
要做成app吗,要做成web项目吗?
回答:
web与app形式均可,实现核心功能就可以,GUI涉及到评分,尽量做到用户体验友好。
问题7:
既然有gui,还需要做app web吗?可以用html?
回答:
Gui是用户图形界面,一种展示手段,做你擅长的就行。只需要一种,不需要都实现一遍,WEB做也没问题。
问题8:
最后核心功能评分的标准是什么,识别速度还是正确率?
回答:
此次比赛是综合的比试,各方面都会综合考虑,准确率影响比重最大。
问题9:
此次比赛的重点强调内容是?
回答:
深度学习技术体系。
问题10:
我想问下智能手机算不算嵌入式硬件设备?
回答:
从用户角度看,智能手机不能算嵌入式系统,但从开发工程师角度看,智能手机仍然是嵌入式系统。
用户角度
如今的智能手机已经覆盖了个人电脑大部分的功能,甚至有些功能是个人电脑没有而智能手机才有的,所以智能手机可以认为是一个通用计算机设备,而嵌入式系统的定义就明确了嵌入式系统是专用的计算机设备。因此,从用户角度看,智能手机已经不能算嵌入式系统了,应该将智能手机归于通用计算机一类。
工程师角度
至少在当前,没有办法在智能手机上开发手机App,仍然需要在个人电脑上开发好App,然后将App下载到手机中运行。手机App的开发环境和运行环境是不一样的,有一个交叉编译的过程,这是典型的嵌入式软件开发套路。所以,从开发工程师的角度看,智能手机仍然是个嵌入式系统。
问题11:
什么时候提交作品?
回答:
2019年6月15日之前。
问题12:
数据集中的图片名称,如 “382_b_0.png” 中的 b 有什么含义吗?是否成品也要标注字母?
回答:
①、前四位是数字,四位中没有数字的就是“_”下划线,后面紧跟的就是同样数字的不同类别,这里是用字母区分的,方便用脚本做批量处理;
②、做来的功能就是说,拍一张银行卡照片,放到系统里,系统把卡号位置标出来,并把卡号输出出来来即可。
问题13:
是否需要按四位四位抠出来?
回答:
最后输出的结果,如果按银行卡号的格式(包含空格)输出出来,那么识别和检测部分你肯定是高分,输出一串数字也可以,分数会稍低于第一种情况。
问题14:
最后结果是否需要得出是哪个银行的卡?
回答:
不需要得出是哪个银行卡。
问题15:
是否一定要用官方提供的数据集?
回答:
不需要,但使用数据增强,有评分。
问题16:
文本检测的训练能提供数据集吗?
回答:
不提供数据集,文本检测有开源的算法可以参考。
问题17:
深度学习建议使用指定软件么?
回答:
建议使用python,tensorflow,keras,opencv等,不局限特定软件,我提的是现在比较流行的框架与库。符合深度学习的技术体系即可。
问题18:
关于数据增强 可以使用keras.preprocessing.image吗?
回答:
如果这个api处理的图像有效,你可以参考他的做法,这个模块有评分,最好自己写。按照评分标准去做。
问题19:
开源库和开源框架可以使用吗?
回答:
可以用,但是核心部分涉及到评分,尽量体现出自己的编程思路,尽量去避免拿一个现成api实现一个功能。
问题20:
选用开源神经网络影响评分吗?
回答:
算法思想可以参考,直接用现成的分数肯定不如自己做的分数高,这需要自己衡量,实现难度,竞争对手能不能自己实现;你要觉得别人都实现不了,你可以拿开源模型去做,但是要注明。本题本着促进参赛选手学习深度学习技术的精神去设计的。
问题21:
在银行卡卡号定位检测中,需要完整的银行卡图片,但是比赛所给的完整的银行卡图片只有几张,不够模型的训练,所以请问是否可以自己加入一部分图片进行训练。
回答:
不一定需要完整的银行卡,开拓下思路,可以使用自己的数据集。
问题22:
需要什么设备来扫描银行卡,还是一个上传照片,用图片呢?
回答:
拍照上传即可,不要求嵌入式。
问题23:
既然要尽量自己实现算法,为什么还推荐使用 TensorFlow 实现模型训练
回答:
tf 只是框架,模型的卷积层结构需要自己设计。
问题24:
可以使用在线 API 是说比如 KNN , CNN 不能用机器学习框架自带函数吗
回答:
可以使用自带函数,不要用现成的功能性接口,就是说避免一句代码,实现了文本检测功能。
问题25:
图像预处理可以使用 opencv 吗?
回答:
可以啊,尽量体现自己的编程思路,要评分的,如果按这个理论,那就要自己写求导方法了,建议不要使用那种开源帮你封装好的,然后一句话就掉用。
问题26:
训练好之后的模型,可不可以部署在服务器,然后本地程序通过api调用。
回答:
可以,讲解文档中需证明服务器调用的是自己训练的模型。
问题27:
怎么衡量题目的非功能性需求“3.使用GPU(图形处理器)加速计算。”是不是达到要求?
回答:
训练过程需要使用gpu加速。可以使用云服务,代码可以体现出来。
问题28:
可以推荐几个相关云服务吗?
回答:
aws
问题29:
请问开源工具包括开源ocr工具么?
回答:
包含,但是不要跑偏,涉及评分标准的慎重选择,开源的资源请注明出处。
问题30:
识别模块机器学习不提倡?只推荐深度学习吗?
回答:
这个题是针对深度学习体系的,不是不提倡,评分肯定以深度学习为主线。
问题31:
“根据本赛题提供的数据集(共1084张卡号截图及标签)实现数据增强模块,将数据集中的每一张图片使用数据增强方式扩展为80张图片”,中“将数据集中的每一张图片使用数据增强方式扩展为80张图片”是什么意思?
回答:
做数据增强为了拓展数据集,可以拓展更多张,80张为参考值。
问题32:
请问需要考虑图片的旋转嘛?
回答:
可以考虑,能提高识别模型的泛化能力。
以上就是课工场为各位同学整理的基于深度学习的银行卡号识别系统相关问题,希望能够帮助到大家!
=END=
目前
课工场课程全面升级
并有课工场定制礼品套装、定制化试听课
行业大咖面对面讲座福利哦~
有兴趣的同学赶紧关注“武汉课工场”公粽号~
想要了解Java软件开发、web前端、UI设计、大数据及人工智能等行业前景、就业薪资、课程学习等问题,可私信小Ke或是后台留言,小Ke看到会第一时间回复!
更可靠的IT就业教育
长按二维码关注我们吧~