中国软件杯本科组问答集锦-课工场解析!
课工场 | 2019-04-30 10:33:45  3712 浏览

课工场致力于打造更可靠的IT就业教育,一直以来专注于企业IT岗位专业人才培养业。此次课工场将作为IT培训领域的企业参与大赛命题工作。本次大赛课工场有本科生和高职两道赛题入选题库,同时课工场也将全程参与大赛作品的评审工作。

在过去的一段时间里,有不少本科组同学向课工场老师咨询问题。今天呢,课工场为了解决各位同学的问题,特整理如下:

u=3544398371,880832186&fm=11&gp=0.jpg

"问题33:定位银行卡卡号是什么意思?

回答:就是将银行卡卡号框起来"

"问题34:比赛用什么模型算法合适

回答:用到深度学习算法体系,具体用哪些神经网络架构,则有同学们自己考量,"

"问题35:数据集是不是只能用官方提供的?

回答:不是,咱们提供的数据集是给没有数据集的同学使用的,你也可以用自己的数据集

问题36:数据集增强之后的图片命名有要求吗?

回答:没要求,这个主意可读性就可以,跟实现功能没什么关系

问题37:卡号定位需要做神经网络模型来用么?

回答:需要"

"问题38:_001a_0.png,这个中间的字母a代表什么意思?后面的数字0代表什么意思?

回答:a代表不同类别,后面的0代表该类中的第一张图

问题39:类别是指?

回答:相同的卡号,不同的样式

问题40:老师推荐使用Tensorflow框架,那我使用这个库的一些方法,会影响评分的吗?

回答:使用tf的函数没问题,我们没必要从模型搭建训练部分就用原生实现,避免重复造轮子的同时,原则上不去使用别人构建好的、现成的一句代码实现识别功能,一句代码实现文本定位功能。"

"问题41:请问如何使用Python,最后需要提交.exe程序吗

回答:编程语言不限,建议使用pyhton及深度学习框架进行模型训练,最后的系统需要封装GUI,形式不限,可以是手机app,web,桌面程序,最后模型可以部署到服务器,最终需要提供源码,文档。

问题42:训练是必须通过四个字一组的形式还是可以自己切开单个字

回答:这点没有强制的限制,只要最后识别率高。但是分类器肯定要用到神经网络。因为我们的赛题是基于深度学习的。具体识别细节,同是高准确率的情况下,端到端的算法肯定优于切分后单字符识别的算法。

问题43:数据增强模块是运行在识别模型训练过程中对读取的数据集进行预处理阶段吗?需要单独做一个可视化界面吗?

回答:不需要单独做可视化,是训练前的数据预处理阶段"

"问题44:可以直接用别人的文本定位分类器吗

回答:自己实现不了,可以做迁移学习,都做不了再用现成的,分数依次降低

问题45:银行卡识别可以用opencv吗?

回答:可以用这个库,但是不要用集成好的检测识别功能,要用深度学习,不要用传统ocr的方法

"问题46:官方提供的数据集只有识别文本的部分,请问关于定位的数据集怎么办?是否需要自己去寻找其他的定位的数据集?

回答:文本定位部分不提供银行卡全图数据集,实现方法可参考字符识别模型。"

"问题47:软件杯关于深度学习识别银行卡的数据集中并没有标注数据。是没发还是发漏了?

回答:数据集中,图像文件名为标签,前四位为银行卡的卡号,后面字母为相同卡号不同卡片样式的分类,再后面为该样式的第n张(因为要用数据增强)

问题48:根据本赛题提供的数据集(共1084张卡号截图及标签)实现数据增强模块,将数据集中的每一张图片使用数据增强方式拓展为80张图片,为之后的图像识别训练提供充足的数据样本,并且该模块程序能够继续处理新加入的数据样本。拓展为80张图片 是什么意思?是否可以切割成四张?

回答49:拓展数据集的手段,使用数据增强技术,将一个样本拓展为更多的样本;切割算一种,可以切分生成一些,其余的手段可以去查数据增强这个技术。"

"问题50:关于功能性需求2(程序定位银行卡卡号), 是否必须使用深度学习方法, 我们是否可以使用传统的OCR方法进行定位, 如果可以, 这两种方法得分有没有差别.

回答:可以使用传统ocr方式进行定位,但是得分没有深度学习算法得分高,本赛题有一个很重要的目的就是让参赛选手学习DL

问题51:每个功能模块的给分细则是怎样的? 例如, 赛题中提到: 程序实现银行卡号字符识别15分, 那么我们只要将准确率达到90%即可得到满分吗? 还是说有更详细的评分细则, 其他功能模块的给分标准又是什么?

回答:分数评判标准出题方提供的评分参照,具体的评分细节要根据评委团与参赛选手的表现,90%acc肯定不是满分,这一点可以确定。

问题52:赛题中提到了对程序运行速度的要求, 具体是指程序哪一部分的运行速度? 考虑到不同的硬件环境对程序运行速度的影响很大, 比赛将如何衡量不同程序的运行速度? 大赛组委会是否会提供统一的服务器环境来比较程序的运行速度?

回答:因为每个赛题都会涉及到程序运行速度问题,我们主要关注点在将一批图片输入进去,图像识别完成所需要的时间,关于组委会是否提供统一服务器环境,这一点还请咨询组委会,出题方没有权限确定这个问题。

"问题53:大赛提供的数据集只有四位一组的银行卡号, 没有整张银行卡的图片数据集让我们来训练卡号定位模型, 大赛组委会是否可以向我们提供其他数据集? 我们是否需要自己收集数据集?

回答:定位银行卡号不一定需要带标签的银行卡数据集,本身银行卡涉及到一些隐私问题,还请开拓思路,我们要做的是字符定位。组委会不会提供更多的数据集,同样自己可以收集数据集做训练。

问题54:在比赛最终提交作品后, 我们是否有必要自己搭建服务器来让评委老师亲自使用我们的程序进行检测, 自己搭建的服务器是否必须有GPU环境?

回答:出题方建议,保险起见,自己可以搭建服务器,最好使用GPU环境"

"问题55:题目要求中说操作系统可选Windows和Linux,请问是不是要做出来在Windows或者Linux上运行的程序?还是只是使用Windows或者Linux开发,最后做出来在手机上运行的程序?是否可以选择最后做成一个微信小程序实现银行卡识别的功能。

回答: 操作系统没有明确固定系统的选择,你最终可以做成手机上运行的程序,但是识别检测过程的性能你需要考虑,当然你也可以配置到服务端,展示用手机上的小程序,然后去调服务端的结果。"

"问题56:在“其他要求”项目“3.模型在数据集中的准确率要求达到90%”,这项要求是否是对提供的1000张卡号截图的部分数据进行测试?

回答:这个准确率是你在训练过程中的准确率,就是模型收敛之后在验证集上准确率可以达到90%以上,具体训练集验证集的划分看你自己。

问题57:数据集中卡号截图都是4位银行卡号(含空格),是否训练时不用分割成单个字符,而是按照4位进行训练,定位的实际银行卡号也截取4位进行识别?

回答:卡号训练是否要切分,这是同学需要考虑的,也是本赛题的一个难点,基于切分单字符的识别,还是端到端的识别由你们自己来定。

问题58:近期仔细阅读了近几年这方面的硕士论文,都提到对卡号分割成单个字符进行识别,是否分割成单个字符训练效果更好?这方面有要求吗?

回答:深度学习更提倡端到端的模式,目前以我所知,存在算法可以将不定长度的序列进行端到端的识别"

"问题59:数据集里下标都是什么意思?例如:0000x_0.png每个字符都代表什么意思?

回答:前四位代表卡号,其中前四位里的下划线代表空格。后面的字符代表对卡不同样式,类型,卡号的区分,没有别的意义。"

"问题60:我看训练集图片的标签,对于空格,使用下划线表示的,是否意味着空格的标签就是下划线?那最终测试集的图片,一整串银行卡号中出现空格的时候,识别出来的结果也要用下划线表示,还是不显示空格,只显示一整串数字?

回答:训练集前四位中的下划线代表空格,后面的字符只是为区分卡号的不同样式与种类,最终识别的时候,出现空格能识别出空格最好,用空格表示就行,识别不了空格那就输出一串数字,评分具体按照评委意见,可以预见的是能识别空格的分数肯定不会比识别不了空格的分数低。"

备注:如想查看以往本科组问答,请看《【本科组】第八届“中国软件杯”大学生软件设计大赛,课工场问答集锦!》


标签: 课工场动态
推荐文章