CN113657354A - 基于深度学习的答题卡识别方法及系统 - Google Patents
基于深度学习的答题卡识别方法及系统 Download PDFInfo
- Publication number
- CN113657354A CN113657354A CN202111213616.3A CN202111213616A CN113657354A CN 113657354 A CN113657354 A CN 113657354A CN 202111213616 A CN202111213616 A CN 202111213616A CN 113657354 A CN113657354 A CN 113657354A
- Authority
- CN
- China
- Prior art keywords
- answer
- image
- area
- answer sheet
- deep learning
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Abstract
本发明提出了一种基于深度学习的答题卡识别方法及系统,包括:获取答题卡图像信息,进行预处理;利用深度学习模型进行关键点检测,抠出准考证区域及答题区域;查询是否存在对应答题卡的json文件;若存在,根据json文件存储的答题卡图像信息,检测所述准考证区域及答题区域中的图像内容,利用深度学习图像分类网络对图像内容进行填涂与非填涂的分类,得到识别结果;若不存在或根据json文件检测发生异常时,利用目标检网络YOLOv4进行文本检测,根据文本检测结果,利用深度学习OCR模型识别答题区域的题号内容,利用深度学习图像分类网络对准考证区域及答题区域进行填涂与非填涂的分类,得到识别结果;整理输出答题卡识别结果。
Description
技术领域
本发明涉及深度学习技术领域,尤指一种基于深度学习的答题卡识别方法及系统。
背景技术
随着计算机技术和人工智能技术的高速发展,网络阅卷由于其贴近互联网发展趋势,且能够有效地降低考试的成本,提高教学质量,得到了越来越广泛地应用。其中,答题卡识别技术是网络阅卷中长期以来的技术难点,传统识别方式一般通过光标阅读机的方式,采用红外线读卡器,设备采用的原理比较精密和复杂,非常依赖设备,一定程度上限制了传播和发展。
最近几年,随着深度学习、机器视觉算法的不断发展,以及其灵活易部署的优点,得到了越来越广泛地应用。虽然红外线读卡器以及图像识别方法都有比较高的识别率,但是随着网络阅卷应用越来越广,对使用设备,纸张质量,扫描方式,答卷质量的要求也越来越宽松,对答题卡识别技术相应地提出了越来越高的技术要求。
综上来看,亟需一种可以高效、准确的识别答题卡的技术方案。
发明内容
为解决现有技术存在的问题,本发明提出了一种基于深度学习的答题卡识别方法及系统。本发明集成两种识别算法确保识别的准确率,可以有效地解决网络阅卷中对答题卡识别时遇到的复杂环境下无法保证答题卡图像精准识别的技术难点,引入深度学习技术,极大地提高了答题卡图像识别的精准度,有效地解决答题卡扭曲、倾斜、褪色、墨迹、移位、扫描环境的光亮度等技术问题;并且整个模型部署在服务器,用户只需在手机APP即可完成答题卡识别。
在本发明实施例的第一方面,提出了一种基于深度学习的答题卡识别方法,该方法包括:
获取答题卡图像信息,其中包括答题卡图像、答题卡的json文件,若答题卡没有对应的json文件则为空;
对所述答题卡图像进行预处理;
利用深度学习模型对预处理后的答题卡图像进行关键点检测,得到答题卡的关键点;
根据所述答题卡的关键点抠出准考证区域及答题区域;
根据所述答题卡图像,查询是否存在对应答题卡的json文件;
若存在,根据json文件存储的答题卡图像信息,检测所述准考证区域及答题区域中的图像内容,利用深度学习图像分类网络对图像内容进行填涂与非填涂的分类,得到识别结果;
若不存在或根据json文件检测发生异常时,利用目标检网络YOLOv4进行文本检测,根据文本检测结果,利用深度学习OCR模型识别答题区域的题号内容,利用深度学习图像分类网络对准考证区域及答题区域进行填涂与非填涂的分类,得到识别结果;
将准考证区域及答题区域的识别结果进行整理,输出答题卡识别结果。
进一步的,获取答题卡图像信息,包括:
将答题卡对应的图像信息存储在json文件中;其中,json文件存储的信息包括:题号坐标信息,选项坐标信息,准考证坐标信息,答题区域宽、高,准考证区域宽、高;
对所述答题卡图像进行预处理,包括:
利用OpenCV中的自适应直方图均衡化调节所述答题卡图像的对比度;
利用OpenCV中的均值滤波对所述答题卡图像降噪处理;
将预处理后的答题卡图像按照等比例缩放,其中,最大边为512,最小边长等比缩放。
进一步的,利用深度学习模型对预处理后的答题卡图像进行关键点检测,得到答题卡的关键点,包括:
采集一定数量的答题卡图像样本;
利用标注工具标注所述答题卡图像样本中的6个关键点,其中,6个关键点为:准考证区域的黑色边框左上角的第一关键点,准考证区域的黑色边框右上角的第二关键点,答题区域的黑色边框左上角的第三关键点,答题区域的黑色边框右上角的第四关键点,答题区域的黑色边框左下角的第五关键点,答题区域的黑色边框右下角的第六关键点;
以Resnet50+heatmap深度学习模型为骨干框架,将答题卡图像样本输入至深度学习模型进行训练;其中,
heatmap采用高斯分布制作标签,设置正负样本的分区,将正负样本的比重设置为10:1;
通过heatmap输出关键点的位置,通过查找heatmap中响应值最大的点来确定关键点的坐标;
将Resnet50最后一层全连接层去掉,替换为1个卷积层,卷积层输入数据的大小为2048,输出数据大小为6,其中,6表示输出的6个关键点的特征向量;
输出的特征向量经过sigmoid激活后得到6×128×96的heatmap分布图;
在深度学习模型的训练过程中,利用数据在线增强操作调节模型的泛化能力,其中,数据在线增强操作至少包括:随机旋转图像,打乱图像RGB通道,调节图像对比度、亮度、黑暗度仿射变换;
采用迭代式更新方法,根据测试结果将准确率未达到设定值的答题卡图像样本叠加到训练样本中,通过迭代训练更新模型的权重参数,在测试结果达到预设要求时得到训练完成的深度学习模型;
将预处理后的答题卡图像输入至所述训练完成的深度学习模型,进行特征提取,输出6个关键点的特征向量,经过sigmoid激活后得到6×128×96的heatmap分布图,其中,每个通道代表预测一个关键点输出的结果为128×96一张heatmap图,heatmap的值分布在0-1之间,若关键点出现在128×96图像中的一位置的概率越大,位置所在区域的值越接近于1,概率越小,越接近于0或者等于0,将heatmap分布图中概率最大值作为关键点出现的位置,将6个通道中heatmap分布图中概率值最大值作为6个关键点的位置,根据6个关键点的位置计算出在预处理后的答题卡图像中的坐标;
根据坐标中第一、第二、第五、第六关键点的坐标,采用OpenCV中的透视变换将的图像矫正,得到矫正的图像。
进一步的,根据所述答题卡的关键点抠出准考证区域及答题区域,包括:
根据坐标中第一、第二、第三、第四关键点的坐标,抠出准考证区域,根据坐标中第三、第四、第五、第六关键点的坐标,抠出答题区域;其中,
采用OpenCV将答题区域转灰度图,做双边滤波处理、图像卷积运算filter2D、二值化处理,得到处理后的答题区域;
采用OpenCV中的基于轮廓查找的识别方法findContours找到答题区域中最大轮廓的矩形框;
采用OpenCV中的多边形拟合曲线,逼近矩形框的区域,得到矩形框的4个角点坐标;
根据4个角点坐标进行透视变换操作,矫正答题区域的图像。
进一步的,根据所述答题卡图像,查询是否存在对应答题卡的json文件;
若存在,根据json文件存储的答题卡图像信息,检测所述准考证区域及答题区域中的图像内容,利用深度学习图像分类网络对图像内容进行填涂与非填涂的分类,得到识别结果,包括:
若存在,根据json文件中题号坐标信息,选项坐标信息,准考证坐标信息,答题区域宽、高,准考证区域宽、高,将答题区域的图像及准考证区域的图像中题号、选项及准考证号的图像抠出,将选项及准考证号的图像送入二分类卷积神经网络,采用mobilenet,外接一个全连接层,对图像内容进行填涂与非填涂的分类,输出类别为2,其中,0代表未填涂,1代表填涂,根据索引值判断题号对应的每道题填涂的选项及准考证号,得到准考证区域及答题区域的识别结果。
进一步的,若不存在或根据json文件检测发生异常时,利用目标检网络YOLOv4进行文本检测,根据文本检测结果,利用深度学习OCR模型识别答题区域的题号内容,利用深度学习图像分类网络对准考证区域及答题区域进行填涂与非填涂的分类,得到识别结果,包括:
搭建YOLOv4模型;其中,
将答题卡图像样本进行矫正,得到矫正后的图像;
利用标注工具标注题目和准考证号,类别为2,其中0代表题目,1代码准考证号;
在模型训练时,将输入图像尺寸设为608×608,使用数据在线增强操作调节魔性的泛化能力,其中,数据在线增强操作至少包括:RGB通道互换,对比度和亮度变化,调节图片有损压缩率;
通过迭代训练,得到训练完成的YOLOv4模型;
将准考证区域及答题区域传入训练完成的YOLOv4模型,预测出每道题及准考证号的边界框;
根据每道题的边界框抠出每道题,根据每道题对应的多个选项所占区域的面积平均切割成多个小图像,得到每道题的图像及每道题的每个选项的图像,存入第一列表中;
根据准考证号的边界框,将每一位准考证号的图像平均切割成10份,存入第二列表;
利用深度学习OCR模型识别答题区域的题号的内容;
将第一列表及第二列表的图像送入二分类卷积神经网络,采用mobilenet,外接一个全连接层,对准考证区域及答题区域进行填涂与非填涂的分类,输出类别为2,其中,0代表未填涂,1代表填涂,根据索引值判断题号对应的每道题填涂的选项及准考证号,得到准考证区域及答题区域的识别结果。
进一步的,将准考证区域及答题区域的识别结果进行整理,输出答题卡识别结果,包括:
将所述答题卡识别结果以字典的形式存储,转换为json格式;其中,答题卡识别结果至少包括:识别状态、准考证号、题目的选项、准考证区域的图像、答题区域的图像、错误信息。
在本发明实施例的第二方面,提出了一种基于深度学习的答题卡识别系统,该系统包括:
图像信息获取模块,用于获取答题卡图像信息,其中包括答题卡图像、答题卡的json文件,若答题卡没有对应的json文件则为空;
预处理模块,用于对所述答题卡图像进行预处理;
关键点检测模块,用于利用深度学习模型对预处理后的答题卡图像进行关键点检测,得到答题卡的关键点;
抠图模块,用于根据所述答题卡的关键点抠出准考证区域及答题区域;
识别模块,用于根据所述答题卡图像,查询是否存在对应答题卡的json文件;
若存在,根据json文件存储的答题卡图像信息,检测所述准考证区域及答题区域中的图像内容,利用深度学习图像分类网络对图像内容进行填涂与非填涂的分类,得到识别结果;
若不存在或根据json文件检测发生异常时,利用目标检网络YOLOv4进行文本检测,根据文本检测结果,利用深度学习OCR模型识别答题区域的题号内容,利用深度学习图像分类网络对准考证区域及答题区域进行填涂与非填涂的分类,得到识别结果;
输出模块,用于将准考证区域及答题区域的识别结果进行整理,输出答题卡识别结果。
在本发明实施例的第三方面,提出了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现基于深度学习的答题卡识别方法。
在本发明实施例的第四方面,提出了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现基于深度学习的答题卡识别方法。
本发明提出的基于深度学习的答题卡识别方法及系统通过获取答题卡图像;对所述答题卡图像进行预处理;利用深度学习模型对预处理后的答题卡图像进行关键点检测,得到答题卡的关键点;根据所述答题卡的关键点抠出准考证区域及答题区域;在预设的json文件库中,查询是否存在当前答题卡的答题卡类型对应的json文件;若存在,利用json文件检测所述准考证区域及答题区域中的图像内容;若不存在或利用json文件检测发生异常时,利用目标检网络YOLOv4进行文本检测,根据文本检测结果识别所述准考证区域及答题区域中的图像内容;将准考证区域及答题区域中的图像内容进行整理,输出答题卡识别结果,采用深度学习的Resnet50+heatmap关键点检测实现精准定位,解决传统方法仅仅局限于固定位置的扫描方式,该发明技术有效解决答题卡倾斜、扭曲等问题。并且,提出基于深度学习的目标检测、图像分类、光学字符识别(OCR)等算法实现准确检测和识别,能够有效解决答题卡图像褪色、墨迹、扫描环境的光亮度、图像变形和扭曲等噪声信息的干扰。为提高答题卡识别系统的性能,本发明采用json文件形式存储答题卡图像信息,能精准定位到选项和准考证号,并且以流对文件进行读取,大大提升模型的计算速度和识别精度。在实际应用中,可以将模型部署在mobile端,使用手机app即可完成答题卡识别,不在需要额外耗费设计硬件设备。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是本发明一实施例的基于深度学习的答题卡识别方法流程示意图。
图2是本发明一实施例的S102的详细流程示意图。
图3是本发明一实施例的S103的详细流程示意图。
图4是本发明一实施例的S104的详细流程示意图。
图5是本发明一实施例的S105及S106的详细流程示意图。
图6是本发明一实施例的S107的详细流程示意图。
图7是本发明一具体实施例的基于深度学习的答题卡识别流程示意图。
图8是本发明一具体实施例的示例性答题卡示意图。
图9是本发明一具体实施例的标注答题卡关键点的示意图。
图10是本发明一具体实施例的答题卡图像示意图。
图11A至图11F分别是答题卡heatmap的各个关键点的示意图。
图11G是答题卡heatmap的全部关键点的示意图。
图12是本发明一实施例的基于深度学习的答题卡识别系统架构示意图。
图13是本发明一实施例的计算机设备结构示意图。
具体实施方式
下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
根据本发明的实施方式,提出了一种基于深度学习的答题卡识别方法及系统,涉及深度学习技术领域。本发明采用深度学习的Resnet50+heatmap关键点检测实现精准定位,解决传统方法仅仅局限于固定位置的扫描方式,该发明技术有效解决答题卡倾斜、扭曲等问题。并且,提出基于深度学习的目标检测、图像分类、光学字符识别(OCR)等算法实现准确检测和识别,能够有效解决答题卡图像褪色、墨迹、扫描环境的光亮度、图像变形和扭曲等噪声信息的干扰。为提高答题卡识别系统的性能,本发明采用json文件形式存储答题卡图像信息,能精准定位到选项和准考证号,并且以流对文件进行读取,大大提升模型的计算速度和识别精度。在实际应用中,可以将模型部署在mobile端,使用手机app即可完成,不在需要额外耗费设计硬件设备。
下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。
图1是本发明一实施例的基于深度学习的答题卡识别方法流程示意图。如图1所示,该方法包括:
S101,获取答题卡图像信息,其中包括答题卡图像、答题卡的json文件,若答题卡没有对应的json文件则为空;
S102,对所述答题卡图像进行预处理;
S103,利用深度学习模型对预处理后的答题卡图像进行关键点检测,得到答题卡的关键点;
S104,根据所述答题卡的关键点抠出准考证区域及答题区域;
S105,根据所述答题卡图像,查询是否存在对应答题卡的json文件;
S106,若存在,根据json文件存储的答题卡图像信息,检测所述准考证区域及答题区域中的图像内容,利用深度学习图像分类网络对图像内容进行填涂与非填涂的分类,得到识别结果;
S107,若不存在或根据json文件检测发生异常时,利用目标检网络YOLOv4进行文本检测,根据文本检测结果,利用深度学习OCR模型识别答题区域的题号内容,利用深度学习图像分类网络对准考证区域及答题区域进行填涂与非填涂的分类,得到识别结果;
S108,将准考证区域及答题区域的识别结果进行整理,输出答题卡识别结果。
为了对上述基于深度学习的答题卡识别方法进行更为清楚的解释,下面结合每一步骤来进行详细说明。
在S101中,获取的答题卡图像可以采用手机或相机对答题卡进行拍摄,答题卡图像可能会有扭曲、倾斜、褪色、墨迹、移位、扫描环境的光亮度过强或过弱的问题,对此,本发明可以通过后续步骤对该些问题进行处理。
对于答题卡的json文件,答题卡是根据需求随机生成,APP端会根据所生成的答题卡生成对应的图像信息(包括:题号坐标信息,选项坐标信息,准考证坐标信息,答题区域宽、高,准考证区域宽、高)存储在json文件中。用户若没有更新app则不会生成对应json文件。
对此,具体过程还包括:将答题卡对应的图像信息存储在json文件中;其中,json文件存储的信息包括:题号坐标信息,选项坐标信息,准考证坐标信息,答题区域宽、高,准考证区域宽、高。
参考图2,为本发明一实施例的S102的详细流程示意图。如图2所示,在S102中,对所述答题卡图像进行预处理的具体流程为:
S1021,利用OpenCV中的自适应直方图均衡化调节所述答题卡图像的对比度;
S1022,利用OpenCV中的均值滤波对所述答题卡图像降噪处理;
S1023,将预处理后的答题卡图像按照等比例缩放,其中,最大边为512,最小边长等比缩放。
参考图3,为本发明一实施例的S103的详细流程示意图。如图3所示,在S103中,利用深度学习模型对预处理后的答题卡图像进行关键点检测,得到答题卡的关键点的具体流程为:
S1031,采集一定数量的答题卡图像样本;
S1032,利用标注工具标注所述答题卡图像样本中的6个关键点;其中,
6个关键点为:准考证区域的黑色边框左上角的第一关键点,准考证区域的黑色边框右上角的第二关键点,答题区域的黑色边框左上角的第三关键点,答题区域的黑色边框右上角的第四关键点,答题区域的黑色边框左下角的第五关键点,答题区域的黑色边框右下角的第六关键点;
S1033,以Resnet50+heatmap深度学习模型为骨干框架,将答题卡图像样本输入至深度学习模型进行训练;其中,
heatmap采用高斯分布制作标签,设置正负样本的分区,将正负样本的比重设置为10:1;
通过heatmap输出关键点的位置,通过查找heatmap中响应值最大的点来确定关键点的坐标;
将Resnet50最后一层全连接层去掉,替换为1个卷积层,卷积层输入数据的大小为2048,输出数据大小为6,其中,6表示输出的6个关键点的特征向量;
输出的特征向量经过sigmoid激活后得到6×128×96的heatmap分布图;
S1034,在深度学习模型的训练过程中,利用数据在线增强操作调节模型的泛化能力;其中,
数据在线增强操作至少包括:随机旋转图像,打乱图像RGB通道,调节图像对比度、亮度、黑暗度仿射变换;
S1035,采用迭代式更新方法,根据测试结果将准确率未达到设定值的答题卡图像样本叠加到训练样本中,通过迭代训练更新模型的权重参数,在测试结果达到预设要求时得到训练完成的深度学习模型;
S1036,将预处理后的答题卡图像输入至所述训练完成的深度学习模型,进行特征提取,输出6个关键点的特征向量,经过sigmoid激活后得到6×128×96的heatmap分布图,其中,每个通道代表预测一个关键点输出的结果为128×96一张heatmap图,heatmap的值分布在0-1之间,若关键点出现在128×96图像中的一位置的概率越大,位置所在区域的值越接近于1,概率越小,越接近于0或者等于0,将heatmap分布图中概率最大值作为关键点出现的位置,将6个通道中heatmap分布图中概率值最大值作为6个关键点的位置,根据6个关键点的位置计算出在预处理后的答题卡图像中的坐标;这里的6个坐标即对应为6个关键点的坐标。
S1037,根据坐标中第一、第二、第五、第六关键点的坐标,采用OpenCV中的透视变换将的图像矫正,得到矫正的图像。
参考图4,为本发明一实施例的S104的详细流程示意图。如图4所示,在S104中,根据所述答题卡的关键点抠出准考证区域及答题区域的具体流程为:
S1041,根据坐标中第一、第二、第三、第四关键点的坐标,抠出准考证区域;
S1042,根据坐标中第三、第四、第五、第六关键点的坐标,抠出答题区域;
其中,采用OpenCV将答题区域转灰度图,做双边滤波处理、图像卷积运算filter2D、二值化处理,得到处理后的答题区域;
采用OpenCV中的基于轮廓查找的识别方法findContours找到答题区域中最大轮廓的矩形框;
采用OpenCV中的多边形拟合曲线,逼近矩形框的区域,得到矩形框的4个角点坐标;
根据4个角点坐标进行透视变换操作,矫正答题区域的图像。
参考图5,为本发明一实施例的S105及S106的详细流程示意图。如图5所示,S105及S106的具体流程为:
S105,根据所述答题卡图像,查询是否存在对应答题卡的json文件;
S1061,若存在,根据json文件中题号坐标信息,选项坐标信息,准考证坐标信息,答题区域宽、高,准考证区域宽、高,将答题区域的图像及准考证区域的图像中题号、选项及准考证号的图像抠出,将选项及准考证号的图像送入二分类卷积神经网络,采用mobilenet,外接一个全连接层,对图像内容进行填涂与非填涂的分类,输出类别为2,其中,0代表未填涂,1代表填涂,根据索引值判断题号对应的每道题填涂的选项及准考证号,得到准考证区域及答题区域的识别结果。
参考图6,为本发明一实施例的S107的详细流程示意图。如图6所示,在S107中,若不存在或利用json文件检测发生异常时,利用目标检网络YOLOv4进行文本检测,根据文本检测结果识别所述准考证区域及答题区域中的图像内容的具体流程为:
S1071,搭建YOLOv4模型;其中,
将答题卡图像样本进行矫正,得到矫正后的图像;
利用标注工具标注题目和准考证号,类别为2,其中0代表题目,1代码准考证号;
在模型训练时,将输入图像尺寸设为608×608,使用数据在线增强操作调节魔性的泛化能力,其中,数据在线增强操作至少包括:RGB通道互换,对比度和亮度变化,调节图片有损压缩率;
通过迭代训练,得到训练完成的YOLOv4模型;
S1072,将准考证区域及答题区域传入训练完成的YOLOv4模型,预测出每道题及准考证号的边界框;
S1073,根据每道题的边界框抠出每道题,根据每道题对应的多个选项所占区域的面积平均切割成多个小图像,得到每道题的图像及每道题的每个选项的图像,存入第一列表中;
S1074,根据准考证号的边界框,将每一位准考证号的图像平均切割成10份,存入第二列表;
S1075,利用深度学习OCR模型识别答题区域的题号的内容;
S1076,将第一列表及第二列表的图像送入二分类卷积神经网络,采用mobilenet,外接一个全连接层,对准考证区域及答题区域进行填涂与非填涂的分类,输出类别为2,其中,0代表未填涂,1代表填涂,根据索引值判断题号对应的每道题填涂的选项及准考证号,得到准考证区域及答题区域的识别结果。
在S108中,将准考证区域及答题区域中的图像内容进行整理,输出答题卡识别结果的具体流程为:
将所述答题卡识别结果以字典的形式存储,转换为json格式;其中,
答题卡识别结果至少包括:识别状态、准考证号、题目的选项、准考证区域的图像、答题区域的图像、错误信息。
需要说明的是,尽管在上述实施例及附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
为了对上述基于深度学习的答题卡识别方法进行更为清楚的解释,下面结合一个具体的实施例来进行说明。
参考图7,为本发明一具体实施例的基于深度学习的答题卡识别流程示意图。如图7所示,具体流程为:
S701,获取答题卡图像信息;
其中,包括:图片和存储图像坐标信息的json文件。
S702,对获得答题卡图像进行预处理。
利用OpenCV中的自适应直方图均衡化(AHE)来提升图像的对比度,该操作对黑暗和反光的图片处理效果较为明显;
其次使用OpenCV中的均值滤波对图像降噪处理,为了处理部分答题卡有墨迹的干扰;
最后图像按照等比例缩放,其中最大边为512,最小边长等比缩放。
S703,关键点检测。
在使用过程中,由于拍照习惯不同,存在拍摄的图片相对正向位置旋转多个角度,导致答题卡图像倾斜、扭曲。如果直接对这种情况的图像去检测,效果都不会太理想,为了解决这一技术难题,本发明提出基于深度学习的关键点检测,准确找出答题区域和准考证区域的四个角,再将其倾斜、扭曲的的图像矫正,为确保下一个网络能够精准找到填涂区域。
由于普通算法在答题卡检测识别应用过程中,极易受到1、相机拍照环境光亮度变化;2、答题卡摆放的位置是否正、是否平整;3、答题卡质量等因素影响。为此,本发明提出基于深度学习Resnet50+heatmap模型有效定位检测答题区域和准考证区域的四个角点。
关键点检测任务,检测6个关键点,如图8所示的示例性答题卡,包括准考证区域黑色边框左上角a点(第一关键点),准考证黑色边框右上角b点(第二关键点),答案区域黑色边框左上角c点(第三关键点),答案区域黑色边框右上角d点(第四关键点),答案区域黑色边框左下角e点(第五关键点),答案区域黑色边框右下角f点(第六关键点)。
实现过程为:
1、数据采集:
数据获取方式:手机拍照。
数据样本数量:2000张,第一次采集2000张左右,本发明采用迭代式对模型优化,也就是根据每次测试后将效果较差的图片不断叠加到训练样本中。
数据标注:使用标注工具为labelme,标注6个关键点。例如,参考图9,标注答题卡的6个关键点。
2、模型选择与设计:
在关键点检测领域,一般很少采用回归的方式来预测关键点位置,取而代之的是采用heatmap输出关键点的位置。这和anchor free的目标检测中的centness之类的做法差不多,即通过查找heatmap中响应值最大的点来确定关键点的坐标。如图10所示为答题卡图像(img),图11A至图11F分别显示了答题卡heatmap的各个关键点(target_0、target_1、target_2、target_3、target_4、target_5),图11G显示了答题卡heatmap的全部关键点(all)。
如果采用直接回归坐标,通常会将最后的featuremap下采样到很小,这样才能够实现全局的回归,但是关键点预测这种任务对位置信息非常敏感,过小的特征会极大的丢失空间信息,因而导致预测位置非常不准。而heatmap方式一般要求最后的特征图比较大,通常是输入图片的1/2或者1/4,那么就非常适合做一些空间相关的任务。
如果人为的将特征图压缩的很小,heatmap的方式也一样不太准。根据以上关键点检测的条件,本发明的关键点检测网络采用了以Resnet50+heatmap为主体的骨干框架。
其中,本发明将Resnet50最后一层全连接层去掉,替换为1个卷积层,即in_features为2048,out_features为6,其中6表示的是输出6个关键点的特征图。
然后输出的特征经过sigmoid激活之后便得到了6×128×96的heatmap。
关于heatmap标签的设计,如果只是简单的将标签转化成一个one_hot的heatmap,效果不会太好。因为标签点附件的点实际上对于网络来说提取的特征是类似的,那么如果强行把不是标签附近的点设置为0,表现不会很好。
因此,本发明在heatmap设计时采用高斯分布来制作标签heatmap。
关于loss的平衡,上面的标签heatmap无论是one-hot的heatmap还是高斯分布的heatmap,大部分的点都是负样本点,直接使用MSE而不加以区分,网络基本上会训练出一个输出全是0的heatmap。主要原因就是训练的梯度被负样本压制,正样本的梯度实在太小。因此本发明做一个正负样本的分区,把正负样本的比重设置为10:1,这样平衡了正负样本,加速网络拟合。
3、模型训练:
使用数据在线增强操作,包括:随即旋转图像、打乱图像RGB通道、增强图像对比度、亮度、黑暗度仿射变换,目的是为了让模型泛化能力变强。
4、模型优化:
采用迭代式的更新方法,根据测试、使用过程中容易出现错误的图像不断叠加到训练样本中,不断迭代学习,经过反复地调整训练时的超参数,最终获得一个将数据集拟合到最佳的权重参数字典。
5、模型推理运算出结果:
根据最佳的权重参数模型,加载训练后的权重参数,前向运行网络,执行预测任务,对输入的答题卡图像进行特征提取,网络最终输出6个特征向量,然后输出的特征经过sigmoid激活之后便得到了6×128×96的heatmap。
其中,每个通道代表预测一个关键点输出的结果为128×96一张heatmap图,heatmap的值分布在0-1之间,若关键点出现在128×96图像中的一位置的概率越大,位置所在区域的值越接近于1,概率越小,越接近于0或者等于0,将heatmap分布图中概率最大值作为关键点出现的位置,将6个通道中heatmap分布图中概率值最大值作为6个关键点的位置,根据6个关键点的位置计算出在预处理后的答题卡图像中的坐标:
(a、b、c、d、e、f)。
6、将图像矫正:
取出a,b,e,f四个点坐标,使用OpenCV中的透视变换(warpPerspective)将倾斜、旋转不同角度、扭曲等的图像矫正,有关键点模型预测时,会造成一些偏差。因此在a(x1,y1),b(x2,y2),e(x3,y3),f(x4,y4)四个点坐标点增加一个偏移量来扩大矫正图像的范围,确保矫正后的图像能完整包含答题区域和准考证区域,设置的offset=95有较好的效果,即增加偏移量后的坐标为a1(x1-95,y1-95),b1(x2+95,y2-95),e1(x3-95,y3+95),f1(x4+95,y4+95)。
根据新坐标进行透视变换,得到矫正的图像。
S704,抠出答题区域和准考证区域。
将矫正后的图像分为两部分,第一部分为准考证区域,第二部分为答题区域。
答题卡区域图像使用OpenCV转灰度图,做双边滤波处理,在作图像卷积运算filter2D,最后将做二值化处理。图像预处理是为了去除图像噪声干扰。
答案区域存在一个连续的矩形框,采用OpenCV中的基于轮廓查找的识别方法findContours找到答题区域中最大轮廓的矩形框。
最后使用OpenCV中多边形拟合曲线(approxPolyDP函数),逼近矩形框的区域,并获得矩形框的4个角点坐标。
根据4个角点坐标再次进行透视变换操作,矫正答题区域和准考证区域图像。
S705,每道题和准考证号的检测识别。
获得答题区域和准考证区域图像后,需要检测出图像中的内容,包括:题目序号、选项、准考证号。该部分在设计两套算法切换运行(S706或S707),该部分的创新使得系统运行更加流畅,运行速度和识别精度都有大幅度的提升。
两套算法的融合是基于算法二(S707)之上提出的,是针对算法二在识别过程中会存在误检和漏检的情况(基于深度学习的框架是无法做到准确率100%),因此,为了分担算法二的任务,开发第二套算法与算法二集成使用。使用流程是优先使用算法一,当在算法一中出现异常无法成功完成识别任务,立刻切换为算法二。
S706,如果有对应的json文件,启动算法一进行答题卡识别。
根据当前答题卡特性,以及针对深度学习模型预测的误差问题,导致识别准确率达不到100%的问题。本发明提出针对某一类答题卡以json文件的形式,将答题卡的图像信息存储在json文件中,其中存储的信息包括:1、答题区域的参数;2、准考证号区域的参数。
1、答题区域的参数:
label:每道题的题号;
type:题目类型,0为判断题,1为单选题,2为多选题;
labelPoints:题号的坐标位置Bounding Box;
points:一整题的坐标位置Bounding Box;
opt0:第一个选项的坐标位置位置Bounding Box;
opt1:第二个选项的坐标位置位置Bounding Box;
opt2:第三个选项的坐标位置位置Bounding Box;
opt3:第四个选项的坐标位置位置Bounding Box;
answerHeight:答题卡涂卡区域的高;
answerWidth:答题卡涂卡区域的宽。
2、准考证号区域的参数:
idNum:第i个准考证号,从左往右数;
id_opt0:第1列准考证号的待涂卡数字的坐标参数Bounding Box;
id_opt1:第2列准考证号的待涂卡数字的坐标参数Bounding Box;
id_opt2:第3列准考证号的待涂卡数字的坐标参数Bounding Box;
id_opt3、id_opt4、id_opt5、id_opt6、id_opt7、id_opt8、id_opt9,以此类推;
idHeight:准考证号区域的高;
idWidth:准考证号区域的宽。
实际上以上的信息是基于人工设计,将答题卡图像信息存入json文件,而算法二是基于深度学习模型预测出的结果。
算法一具体方案为:
1、答题卡:
(1)设计答题卡以及生成并保存相应的图像信息:
用户在客户端界面填写试题的类型和分值,填写完毕后,保存答题卡的坐标信息。并根据试题信息产生HTML页面,使用canvas绘制出相应的答题卡图片,用户下载后即可打印。
(2)答题卡发布记录与答题卡的绑定:
当用户发布一条答题卡记录,在数据库中产生一条发布记录绑定用户产生的答题卡,并在移动客户端的页面新增一条答题卡发布记录。
(3)上传图片进行识别:
用户点击答题卡发布记录下的拍照识别,就发送当前用户提交的图片和记录绑定的答题卡坐标信息到服务器的识别服务端口。
2、json传输:
技术原理:利用HTTP协议和服务器交互,使用POST方式通过填写参数的方法来完成数据的提交,并在提交过程中填写提交到的服务器URI与服务端口。
提交方式:POST。
提交参数:
pic :图片转为base64字符串;
card_json:答题卡的坐标详情。
上述主要是json参数的来源,得到json文件,基于json文件就可以得到每道题题号、选项、准考证号Bounding Box,答题区域的宽高、准考证区域的宽高。
根据Bounding Box将每道题的选项和准考证号数字区域抠下来送入二分类网络(将每道题和每列id(准考证号)作为一个batchsize输入分类网络),该分类网络主干采用mobilenet,外接一个全连接层,输出类别为2,其中0代表未填涂,1代表填涂。根据索引值判断其填涂的id号和选项答案。此次对mobilenet主干网络进行通道压缩,压缩率达到35%,使模型更加轻量。算法一的优点在于计算速度快,0.5s左右,在特定条件下准确率极高,用户可以随意生成想要的答题卡样式;而缺点是答题卡不能出现扭曲,对此,本发明通过前述S702-S704对答题卡图像进行了矫正,以保证算法一的正常运行。
S707,如果没有对应的json文件,或算法一出现异常(如,获取boundingbox的时候发生异常),启动算法二进行答题卡识别。
算法二基于深度学习框架搭建的模型,基于YOLOv4+OCR(CRNN+CTC)+二分类网络实现检测识别。这种方式的优点在于有较强的泛化能力,适应在大部分环境下均可以使用;缺点是存在漏检、误检,计算速度1.2s左右。
1、基于深度学习的目标检网络YOLOv4检测。
其中,检测内容包括:题目序号、选项、准好证号。根据S704获得的图像传入YOLOv4网络,网络预测出每道题、每列id号的Bounding box。并且根据坐标Bounding box将每道题和每列id的图像裁剪下来。
Yolov4模型搭建:
(1)数据处理:
数据采集:通过手机拍照的方式采集,并通过S703、S704得到矫正后的图像。
数据标注:使用标注软件labelme,类别为2,其中0代表题目,1代码id号。
(2)模型选择与设计:
采用深度学习目标检测网络yolov4。
(3)模型训练:
将网络分辨,将输入图像尺寸设为608×608,因为图像中基本属于小目标,增大分辨率对小目标检测的精度有所提高。
使用在线数据增强,包括RGB通道互换、对比度和亮度变化、图片有损压缩率改变。
最后通过反复迭代学习,获得最佳模型权重,将S704的图像输入YOLOv4推理模型,网络预测出两个类别所在位置的Bounding box。根据Bounding box抠出每道题,在根据每个选项所占区域的面积平均切割成多个小图像,将题目序号(1,2,3,4,5......)、选项(A,B,C,D,√,×)分别切割成单个图像,并在存入list1列表中[img0,img1,img2,img3.....],其中img0代表题目序号的图片,img1、img2等为选项;并将每列的id号平均切割成10份,存入在list2列表中。
2、利用深度学习OCR模型识别答题区域的题号的内容,对定位好的文字区域进行识别,将图像中的文字区域进转化为字符信息。
2.1、算法实现:
(1)数据处理:
数据采集:手机拍照采集,通过S703、S704获得的图像,抠出题目序号图,根据图中内容信息并对应生成对应的txt文件。
数据数量:数字字典包括:0-9,并且每个字符出现的频率3000次左右,图像数据20000万张。
数据增强:主要采用图像亮度变化、旋转、图像压缩变化。
(2)模型选择:
文字识别模型选择CRNN+CTC,其中网络分为三个部分,第一是ConvlutionalLayers,这是一个普通的CNN网络;第二部分是Recurrent Layers(循环网络层),一个双向LSTM网络,在卷积特征的基础上继续提取文字序列特征。第三部分是TranscriptionLayers(转录层),将RNN输出做softmax后,为字符输出,而CTC是一种不需要对齐的Loss计算方法,用于训练。特征提取部分使用ResNet50网络结构。
(3)模型训练:
CTC项目中提供的是pytorch自带的ctc,torch.nn.CTCLoss。
2.2、模型推理:
输入上述img0图像通过卷积CNN网络后图像转换卷积特征矩阵,提取到的特征以序列方式输出,特征输入到BLSTM,输出每个序列代表的值(这个值是一个序列,代表可能出现的值),对输出的值进行softmax操作,等于每个可能出现值的概率。根据概率的最大的值的索引在字符典中查找对应的字符,并获得最终的题目序号识别。
3、判断检测出的选项和id号图像是否填涂。
将list1[img1,img2....]和list2的图像送入二分类卷积神经网络,该分类网络主干采用mobilenet,外接一个全连接层,输出类别为2,其中0代表未填涂,1代表填涂。根据索引值判断其填涂的id号和选项答案。结合本次的分类任务,确保精度的同时,将mobilenet主干网络进行通道压缩,压缩率达到35%,使模型更加轻量。
S708,输出结果。
输出结果包括:
Status:0代表识别失败,1代表识别成功。以便于排查问题;
idNumber:注考证号;
Answer:答案;
Pic:检测出的效果,以base64编码格式存储,降低存储空间;
Message:识别过程中出错的信息,以便于排查问题;
以上结果均以字典的形式存储,最后Python数据结构转换为json格式。
在本发明实施过程中,为了实现更高的并发与更快的响应,采用了FLASK+TORNADO的网络框架,部署在后台服务器,以端口的方式调用,较低使用设备的要求,客户在手机端app即可完成答题卡识别。
在算法二的基础上,本发明有提出将算法一集成在算二之上,优先使用算法一,当遇到异常时,迅速启动算法二,确保系统正常运转。采用两套算法集成的框架下,大大提升模型识别速度和精度。结合上述技术创新使用深度学习模型以及通过对网络的改动,在提高模型性能的同时,很好的解决了答题卡噪声干扰、扭曲、褪色、墨迹等教育行业技术问题。
本发明的识别算法是集成两套算法,二者算法结合,答题卡识别精度可达99.8%,处理一张答题卡为0.8s左右,证明了本发明所研究设计实现的系统的实用性和准确性,具有很好的应用推广价值。
在介绍了本发明示例性实施方式的方法之后,接下来,参考图12对本发明示例性实施方式的基于深度学习的答题卡识别系统进行介绍。
基于深度学习的答题卡识别系统的实施可以参见上述方法的实施,重复之处不再赘述。以下所使用的术语“模块”或者“单元”,可以是实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
基于同一发明构思,本发明还提出了一种基于深度学习的答题卡识别系统,如图12所示,该系统包括:
图像信息获取模块110,用于获取答题卡图像信息,其中包括答题卡图像、答题卡的json文件,若答题卡没有对应的json文件则为空;
预处理模块120,用于对所述答题卡图像进行预处理;
关键点检测模块130,用于利用深度学习模型对预处理后的答题卡图像进行关键点检测,得到答题卡的关键点;
抠图模块140,用于根据所述答题卡的关键点抠出准考证区域及答题区域;
识别模块150,用于根据所述答题卡图像,查询是否存在对应答题卡的json文件;
若存在,根据json文件存储的答题卡图像信息,检测所述准考证区域及答题区域中的图像内容,利用深度学习图像分类网络对图像内容进行填涂与非填涂的分类,得到识别结果;
若不存在或根据json文件检测发生异常时,利用目标检网络YOLOv4进行文本检测,根据文本检测结果,利用深度学习OCR模型识别答题区域的题号内容,利用深度学习图像分类网络对准考证区域及答题区域进行填涂与非填涂的分类,得到识别结果;
输出模块160,用于将准考证区域及答题区域的识别结果进行整理,输出答题卡识别结果。
应当注意,尽管在上文详细描述中提及了基于深度学习的答题卡识别系统的若干模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多模块的特征和功能可以在一个模块中具体化。反之,上文描述的一个模块的特征和功能可以进一步划分为由多个模块来具体化。
基于前述发明构思,如图13所示,本发明还提出了一种计算机设备1300,包括存储器1310、处理器1320及存储在存储器1310上并可在处理器1320上运行的计算机程序1330,所述处理器1320执行所述计算机程序1330时实现前述基于深度学习的答题卡识别方法。
基于前述发明构思,本发明提出了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现前述基于深度学习的答题卡识别方法。
本发明提出的基于深度学习的答题卡识别方法及系统通过获取答题卡图像;对所述答题卡图像进行预处理;利用深度学习模型对预处理后的答题卡图像进行关键点检测,得到答题卡的关键点;根据所述答题卡的关键点抠出准考证区域及答题区域;在预设的json文件库中,查询是否存在当前答题卡的答题卡类型对应的json文件;若存在,利用json文件检测所述准考证区域及答题区域中的图像内容;若不存在或利用json文件检测发生异常时,利用目标检网络YOLOv4进行文本检测,根据文本检测结果识别所述准考证区域及答题区域中的图像内容;将准考证区域及答题区域中的图像内容进行整理,输出答题卡识别结果,采用深度学习的Resnet50+heatmap关键点检测实现精准定位,解决传统方法仅仅局限于固定位置的扫描方式,该发明技术有效解决答题卡倾斜、扭曲等问题。并且,提出基于深度学习的目标检测、图像分类、光学字符识别(OCR)等算法实现准确检测和识别,能够有效解决答题卡图像褪色、墨迹、扫描环境的光亮度、图像变形和扭曲等噪声信息的干扰。为提高答题卡识别系统的性能,本发明采用json文件形式存储答题卡图像信息,能精准定位到选项和准考证号,并且以流对文件进行读取,大大提升模型的计算速度和识别精度。在实际应用中,可以将模型部署在mobile端,使用手机app即可完成答题卡识别,不在需要额外耗费设计硬件设备。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种基于深度学习的答题卡识别方法,其特征在于,该方法包括:
获取答题卡图像信息,其中包括答题卡图像、答题卡的json文件,若答题卡没有对应的json文件则为空;
对所述答题卡图像进行预处理;
利用深度学习模型对预处理后的答题卡图像进行关键点检测,得到答题卡的关键点;
根据所述答题卡的关键点抠出准考证区域及答题区域;
根据所述答题卡图像,查询是否存在对应答题卡的json文件;
若存在,根据json文件存储的答题卡图像信息,检测所述准考证区域及答题区域中的图像内容,利用深度学习图像分类网络对图像内容进行填涂与非填涂的分类,得到识别结果;
若不存在或根据json文件检测发生异常时,利用目标检网络YOLOv4进行文本检测,根据文本检测结果,利用深度学习OCR模型识别答题区域的题号内容,利用深度学习图像分类网络对准考证区域及答题区域进行填涂与非填涂的分类,得到识别结果;
将准考证区域及答题区域的识别结果进行整理,输出答题卡识别结果。
2.根据权利要求1所述的基于深度学习的答题卡识别方法,其特征在于,获取答题卡图像信息,包括:
将答题卡对应的图像信息存储在json文件中;其中,json文件存储的信息包括:题号坐标信息,选项坐标信息,准考证坐标信息,答题区域宽、高,准考证区域宽、高;
对所述答题卡图像进行预处理,包括:
利用OpenCV中的自适应直方图均衡化调节所述答题卡图像的对比度;
利用OpenCV中的均值滤波对所述答题卡图像降噪处理;
将预处理后的答题卡图像按照等比例缩放,其中,最大边为512,最小边长等比缩放。
3.根据权利要求2所述的基于深度学习的答题卡识别方法,其特征在于,利用深度学习模型对预处理后的答题卡图像进行关键点检测,得到答题卡的关键点,包括:
采集一定数量的答题卡图像样本;
利用标注工具标注所述答题卡图像样本中的6个关键点,其中,6个关键点为:准考证区域的黑色边框左上角的第一关键点,准考证区域的黑色边框右上角的第二关键点,答题区域的黑色边框左上角的第三关键点,答题区域的黑色边框右上角的第四关键点,答题区域的黑色边框左下角的第五关键点,答题区域的黑色边框右下角的第六关键点;
以Resnet50+heatmap深度学习模型为骨干框架,将答题卡图像样本输入至深度学习模型进行训练;其中,
heatmap采用高斯分布制作标签,设置正负样本的分区,将正负样本的比重设置为10:1;
通过heatmap输出关键点的位置,通过查找heatmap中响应值最大的点来确定关键点的坐标;
将Resnet50最后一层全连接层去掉,替换为1个卷积层,卷积层输入数据的大小为2048,输出数据大小为6,其中,6表示输出的6个关键点的特征向量;
输出的特征向量经过sigmoid激活后得到6×128×96的heatmap分布图;
在深度学习模型的训练过程中,利用数据在线增强操作调节模型的泛化能力,其中,数据在线增强操作至少包括:随机旋转图像,打乱图像RGB通道,调节图像对比度、亮度、黑暗度仿射变换;
采用迭代式更新方法,根据测试结果将准确率未达到设定值的答题卡图像样本叠加到训练样本中,通过迭代训练更新模型的权重参数,在测试结果达到预设要求时得到训练完成的深度学习模型;
将预处理后的答题卡图像输入至所述训练完成的深度学习模型,进行特征提取,输出6个关键点的特征向量,经过sigmoid激活后得到6×128×96的heatmap分布图,其中,每个通道代表预测一个关键点输出的结果为128×96一张heatmap图,heatmap的值分布在0-1之间,若关键点出现在128×96图像中的一位置的概率越大,位置所在区域的值越接近于1,概率越小,越接近于0或者等于0,将heatmap分布图中概率最大值作为关键点出现的位置,将6个通道中heatmap分布图中概率值最大值作为6个关键点的位置,根据6个关键点的位置计算出在预处理后的答题卡图像中的坐标;
根据坐标中第一、第二、第五、第六关键点的坐标,采用OpenCV中的透视变换将的图像矫正,得到矫正的图像。
4.根据权利要求3所述的基于深度学习的答题卡识别方法,其特征在于,根据所述答题卡的关键点抠出准考证区域及答题区域,包括:
根据坐标中第一、第二、第三、第四关键点的坐标,抠出准考证区域,根据坐标中第三、第四、第五、第六关键点的坐标,抠出答题区域;其中,
采用OpenCV将答题区域转灰度图,做双边滤波处理、图像卷积运算filter2D、二值化处理,得到处理后的答题区域;
采用OpenCV中的基于轮廓查找的识别方法findContours找到答题区域中最大轮廓的矩形框;
采用OpenCV中的多边形拟合曲线,逼近矩形框的区域,得到矩形框的4个角点坐标;
根据4个角点坐标进行透视变换操作,矫正答题区域的图像。
5.根据权利要求4所述的基于深度学习的答题卡识别方法,其特征在于,根据所述答题卡图像,查询是否存在对应答题卡的json文件;
若存在,根据json文件存储的答题卡图像信息,检测所述准考证区域及答题区域中的图像内容,利用深度学习图像分类网络对图像内容进行填涂与非填涂的分类,得到识别结果,包括:
若存在,根据json文件中题号坐标信息,选项坐标信息,准考证坐标信息,答题区域宽、高,准考证区域宽、高,将答题区域的图像及准考证区域的图像中题号、选项及准考证号的图像抠出,将选项及准考证号的图像送入二分类卷积神经网络,采用mobilenet,外接一个全连接层,对图像内容进行填涂与非填涂的分类,输出类别为2,其中,0代表未填涂,1代表填涂,根据索引值判断题号对应的每道题填涂的选项及准考证号,得到准考证区域及答题区域的识别结果。
6.根据权利要求4所述的基于深度学习的答题卡识别方法,其特征在于,若不存在或根据json文件检测发生异常时,利用目标检网络YOLOv4进行文本检测,根据文本检测结果,利用深度学习OCR模型识别答题区域的题号内容,利用深度学习图像分类网络对准考证区域及答题区域进行填涂与非填涂的分类,得到识别结果,包括:
搭建YOLOv4模型;其中,
将答题卡图像样本进行矫正,得到矫正后的图像;
利用标注工具标注题目和准考证号,类别为2,其中0代表题目,1代码准考证号;
在模型训练时,将输入图像尺寸设为608×608,使用数据在线增强操作调节魔性的泛化能力,其中,数据在线增强操作至少包括:RGB通道互换,对比度和亮度变化,调节图片有损压缩率;
通过迭代训练,得到训练完成的YOLOv4模型;
将准考证区域及答题区域传入训练完成的YOLOv4模型,预测出每道题及准考证号的边界框;
根据每道题的边界框抠出每道题,根据每道题对应的多个选项所占区域的面积平均切割成多个小图像,得到每道题的图像及每道题的每个选项的图像,存入第一列表中;
根据准考证号的边界框,将每一位准考证号的图像平均切割成10份,存入第二列表;
利用深度学习OCR模型识别答题区域的题号的内容;
将第一列表及第二列表的图像送入二分类卷积神经网络,采用mobilenet,外接一个全连接层,对准考证区域及答题区域进行填涂与非填涂的分类,输出类别为2,其中,0代表未填涂,1代表填涂,根据索引值判断题号对应的每道题填涂的选项及准考证号,得到准考证区域及答题区域的识别结果。
7.根据权利要求5或6所述的基于深度学习的答题卡识别方法,其特征在于,将准考证区域及答题区域的识别结果进行整理,输出答题卡识别结果,包括:
将所述答题卡识别结果以字典的形式存储,转换为json格式;其中,答题卡识别结果至少包括:识别状态、准考证号、题目的选项、准考证区域的图像、答题区域的图像、错误信息。
8.一种基于深度学习的答题卡识别系统,其特征在于,该系统包括:
图像信息获取模块,用于获取答题卡图像信息,其中包括答题卡图像、答题卡的json文件,若答题卡没有对应的json文件则为空;
预处理模块,用于对所述答题卡图像进行预处理;
关键点检测模块,用于利用深度学习模型对预处理后的答题卡图像进行关键点检测,得到答题卡的关键点;
抠图模块,用于根据所述答题卡的关键点抠出准考证区域及答题区域;
识别模块,用于根据所述答题卡图像,查询是否存在对应答题卡的json文件;
若存在,根据json文件存储的答题卡图像信息,检测所述准考证区域及答题区域中的图像内容,利用深度学习图像分类网络对图像内容进行填涂与非填涂的分类,得到识别结果;
若不存在或根据json文件检测发生异常时,利用目标检网络YOLOv4进行文本检测,根据文本检测结果,利用深度学习OCR模型识别答题区域的题号内容,利用深度学习图像分类网络对准考证区域及答题区域进行填涂与非填涂的分类,得到识别结果;
输出模块,用于将准考证区域及答题区域的识别结果进行整理,输出答题卡识别结果。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7任一所述方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至7任一所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111213616.3A CN113657354B (zh) | 2021-10-19 | 2021-10-19 | 基于深度学习的答题卡识别方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111213616.3A CN113657354B (zh) | 2021-10-19 | 2021-10-19 | 基于深度学习的答题卡识别方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113657354A true CN113657354A (zh) | 2021-11-16 |
CN113657354B CN113657354B (zh) | 2022-01-25 |
Family
ID=78494647
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111213616.3A Active CN113657354B (zh) | 2021-10-19 | 2021-10-19 | 基于深度学习的答题卡识别方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113657354B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114120349A (zh) * | 2022-01-10 | 2022-03-01 | 深圳市菁优智慧教育股份有限公司 | 基于深度学习的试卷识别方法及系统 |
CN114998915A (zh) * | 2022-08-08 | 2022-09-02 | 四川云数赋智教育科技有限公司 | 一种基于答题卡的学生作业时长采集方法 |
CN116503721A (zh) * | 2023-06-29 | 2023-07-28 | 中邮消费金融有限公司 | 身份证篡改检测方法、装置、设备及存储介质 |
CN117437650A (zh) * | 2023-12-20 | 2024-01-23 | 山东山大鸥玛软件股份有限公司 | 基于深度学习的手写体签名比对方法、系统、装置及介质 |
CN117830303A (zh) * | 2024-03-04 | 2024-04-05 | 山东山大鸥玛软件股份有限公司 | 一种网评图像检测方法、系统、电子设备及存储介质 |
Citations (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104134072A (zh) * | 2014-07-04 | 2014-11-05 | 北京学信速达科技有限公司 | 一种答题卡识别方法 |
CN104616224A (zh) * | 2015-01-13 | 2015-05-13 | 中国移动通信集团广西有限公司北海分公司 | 一种可提供知识点掌握量化分析的自动阅卷系统 |
CN106846961A (zh) * | 2017-01-25 | 2017-06-13 | 华中师范大学 | 电子试卷的处理方法和装置 |
WO2018006294A1 (zh) * | 2016-07-06 | 2018-01-11 | 王楚 | 一种基于图像模式识别技术的阅卷系统、装置和方法 |
CN107908612A (zh) * | 2017-11-14 | 2018-04-13 | 杭州汉林文化创意股份有限公司 | 答题卡生成方法、答题卡识别方法、作业系统 |
CN108171297A (zh) * | 2018-01-24 | 2018-06-15 | 谢德刚 | 一种答题卡识别方法及装置 |
CN108388895A (zh) * | 2018-03-04 | 2018-08-10 | 南京理工大学 | 一种基于机器学习的试卷答题卡自动处理方法 |
CN109241869A (zh) * | 2018-08-16 | 2019-01-18 | 邯郸职业技术学院 | 答题卡分数识别方法、装置及终端设备 |
CN109460762A (zh) * | 2018-10-19 | 2019-03-12 | 南京理工大学 | 一种基于图像识别的答题卡评分方法 |
CN110163211A (zh) * | 2018-09-06 | 2019-08-23 | 腾讯科技(深圳)有限公司 | 一种图像识别方法、装置和存储介质 |
CN111079562A (zh) * | 2019-11-27 | 2020-04-28 | 浙江大学 | 多阶段数据生成自循环财务发票文本智能识别系统及方法 |
CN112348019A (zh) * | 2020-11-17 | 2021-02-09 | 武汉璞睿互联技术有限公司 | 一种答题卡矫正方法、装置、电子设备及存储介质 |
CN112347946A (zh) * | 2020-11-10 | 2021-02-09 | 成都兴唐信息技术有限公司 | 一种多类型答题卡的识别方法及系统 |
CN112507758A (zh) * | 2019-09-16 | 2021-03-16 | 深圳中兴网信科技有限公司 | 答题卡字符串识别方法、装置、终端和计算机存储介质 |
CN112633277A (zh) * | 2020-12-30 | 2021-04-09 | 杭州电子科技大学 | 基于深度学习的航道船牌检测、定位及识别方法 |
CN113033480A (zh) * | 2021-04-20 | 2021-06-25 | 深圳市智像科技有限公司 | 基于答题卡的客观题批阅方法、装置、设备及存储介质 |
WO2021184847A1 (zh) * | 2020-03-17 | 2021-09-23 | 平安科技(深圳)有限公司 | 一种遮挡车牌字符识别方法、装置、存储介质和智能设备 |
CN113469147A (zh) * | 2021-09-02 | 2021-10-01 | 北京世纪好未来教育科技有限公司 | 答题卡识别方法、装置、电子设备以及存储介质 |
-
2021
- 2021-10-19 CN CN202111213616.3A patent/CN113657354B/zh active Active
Patent Citations (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104134072A (zh) * | 2014-07-04 | 2014-11-05 | 北京学信速达科技有限公司 | 一种答题卡识别方法 |
CN104616224A (zh) * | 2015-01-13 | 2015-05-13 | 中国移动通信集团广西有限公司北海分公司 | 一种可提供知识点掌握量化分析的自动阅卷系统 |
WO2018006294A1 (zh) * | 2016-07-06 | 2018-01-11 | 王楚 | 一种基于图像模式识别技术的阅卷系统、装置和方法 |
CN106846961A (zh) * | 2017-01-25 | 2017-06-13 | 华中师范大学 | 电子试卷的处理方法和装置 |
CN107908612A (zh) * | 2017-11-14 | 2018-04-13 | 杭州汉林文化创意股份有限公司 | 答题卡生成方法、答题卡识别方法、作业系统 |
CN108171297A (zh) * | 2018-01-24 | 2018-06-15 | 谢德刚 | 一种答题卡识别方法及装置 |
CN108388895A (zh) * | 2018-03-04 | 2018-08-10 | 南京理工大学 | 一种基于机器学习的试卷答题卡自动处理方法 |
CN109241869A (zh) * | 2018-08-16 | 2019-01-18 | 邯郸职业技术学院 | 答题卡分数识别方法、装置及终端设备 |
CN110163211A (zh) * | 2018-09-06 | 2019-08-23 | 腾讯科技(深圳)有限公司 | 一种图像识别方法、装置和存储介质 |
CN109460762A (zh) * | 2018-10-19 | 2019-03-12 | 南京理工大学 | 一种基于图像识别的答题卡评分方法 |
CN112507758A (zh) * | 2019-09-16 | 2021-03-16 | 深圳中兴网信科技有限公司 | 答题卡字符串识别方法、装置、终端和计算机存储介质 |
CN111079562A (zh) * | 2019-11-27 | 2020-04-28 | 浙江大学 | 多阶段数据生成自循环财务发票文本智能识别系统及方法 |
WO2021184847A1 (zh) * | 2020-03-17 | 2021-09-23 | 平安科技(深圳)有限公司 | 一种遮挡车牌字符识别方法、装置、存储介质和智能设备 |
CN112347946A (zh) * | 2020-11-10 | 2021-02-09 | 成都兴唐信息技术有限公司 | 一种多类型答题卡的识别方法及系统 |
CN112348019A (zh) * | 2020-11-17 | 2021-02-09 | 武汉璞睿互联技术有限公司 | 一种答题卡矫正方法、装置、电子设备及存储介质 |
CN112633277A (zh) * | 2020-12-30 | 2021-04-09 | 杭州电子科技大学 | 基于深度学习的航道船牌检测、定位及识别方法 |
CN113033480A (zh) * | 2021-04-20 | 2021-06-25 | 深圳市智像科技有限公司 | 基于答题卡的客观题批阅方法、装置、设备及存储介质 |
CN113469147A (zh) * | 2021-09-02 | 2021-10-01 | 北京世纪好未来教育科技有限公司 | 答题卡识别方法、装置、电子设备以及存储介质 |
Non-Patent Citations (2)
Title |
---|
ARIAN MEHMANESH等: "Quality Enhancement in Written Examinations by Automatic Recognition of Correction Results", 《NETWORK ARCHITECTURES AND SERVICES》 * |
张伟池: "面向移动端的答题卡识别系统的设计与实现", 《中国硕士学位论文全文数据库》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114120349A (zh) * | 2022-01-10 | 2022-03-01 | 深圳市菁优智慧教育股份有限公司 | 基于深度学习的试卷识别方法及系统 |
CN114120349B (zh) * | 2022-01-10 | 2022-05-03 | 深圳市菁优智慧教育股份有限公司 | 基于深度学习的试卷识别方法及系统 |
CN114998915A (zh) * | 2022-08-08 | 2022-09-02 | 四川云数赋智教育科技有限公司 | 一种基于答题卡的学生作业时长采集方法 |
CN116503721A (zh) * | 2023-06-29 | 2023-07-28 | 中邮消费金融有限公司 | 身份证篡改检测方法、装置、设备及存储介质 |
CN116503721B (zh) * | 2023-06-29 | 2023-10-13 | 中邮消费金融有限公司 | 身份证篡改检测方法、装置、设备及存储介质 |
CN117437650A (zh) * | 2023-12-20 | 2024-01-23 | 山东山大鸥玛软件股份有限公司 | 基于深度学习的手写体签名比对方法、系统、装置及介质 |
CN117830303A (zh) * | 2024-03-04 | 2024-04-05 | 山东山大鸥玛软件股份有限公司 | 一种网评图像检测方法、系统、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113657354B (zh) | 2022-01-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113657354B (zh) | 基于深度学习的答题卡识别方法及系统 | |
CN111476067B (zh) | 图像的文字识别方法、装置、电子设备及可读存储介质 | |
CN109409398B (zh) | 图像处理装置、图像处理方法以及存储介质 | |
CN110033023B (zh) | 一种基于绘本识别的图像数据处理方法及系统 | |
WO2019089578A1 (en) | Font identification from imagery | |
US20140185933A1 (en) | Document image compression method and its application in document authentication | |
CN109934255B (zh) | 一种适用于饮料瓶回收机投递物分类识别的模型融合方法 | |
CN111950528B (zh) | 图表识别模型训练方法以及装置 | |
WO2020164278A1 (zh) | 一种图像处理方法、装置、电子设备和可读存储介质 | |
CN108334805B (zh) | 检测文档阅读顺序的方法和装置 | |
US20200134382A1 (en) | Neural network training utilizing specialized loss functions | |
GB2609723A (en) | Exposure defects classification of images using a neural network | |
WO2021042505A1 (zh) | 基于文字识别技术的笔记生成方法、装置和计算机设备 | |
KR20190091101A (ko) | 딥러닝을 이용한 문서 종류 자동 분류 장치 및 방법 | |
US11023720B1 (en) | Document parsing using multistage machine learning | |
CN109815823B (zh) | 数据处理方法及相关产品 | |
Alahmadi et al. | Accurately predicting the location of code fragments in programming video tutorials using deep learning | |
US20210149931A1 (en) | Scalable form matching | |
CN111126367A (zh) | 一种图像分类方法及系统 | |
WO2022035942A1 (en) | Systems and methods for machine learning-based document classification | |
CN111079511A (zh) | 基于深度学习的文档自动归类及光学字符识别方法及系统 | |
CN113111880A (zh) | 证件图像校正方法、装置、电子设备及存储介质 | |
JP5003051B2 (ja) | 郵便自動区分機及び郵便自動区分方法 | |
CN113673528A (zh) | 文本处理方法、装置、电子设备和可读存储介质 | |
CN111881880A (zh) | 一种基于新型网络的票据文本识别方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |