一种答题卡填涂识别方法及系统与流程

文档序号:13282993阅读:1178来源:国知局
一种答题卡填涂识别方法及系统与流程

本发明涉及答题卡计算机应用技术领域,特别涉及一种答题卡填涂识别方法及系统。



背景技术:

答题卡是考试中常用的答题介质和手段。通过答题卡,可实现机器快速扫描识别获得客观题成绩,以达到高速阅卷的目的。

答题卡已应用到考试活动中很多年。目前常用的答题卡应用,通常采用一种叫做光标阅读机的设备,对答题卡进行扫描并获得成绩数据。答题卡在使用之前,必须对答题卡填涂区域的旁边或顶部设置坐标位置锚点,以便光标阅读机能够定位到需要识别的位置。光标阅读机对答题卡纸质有较高的要求,普通打印纸无法让光标阅读机识别。

所以光标阅读机方式的答题卡应用成本很高,使用限制过多。因此光标阅读机的答题卡方式主要应用在一些考试,如中考、高考、大型区级市级调考、学校月考等。

目前已出现一些技术手段,可实现自制答题卡,并用普通扫描仪扫描并识别。但由于纸张厚薄、纸张潮湿程度、静电影响纸张的扫描、扫描仪设备走纸设备不精确等客观因素,造成扫描的答题卡图片经常出现位置偏移、倾斜、大小失真等技术问题,进而造成答题卡识别不精确,成绩数据有误等技术问题,严重影响答题卡技术的发展。



技术实现要素:

本发明提供了一种答题卡填涂识别方法及系统,以解决或部分解决上述技术问题。

本发明解决上述技术问题的技术方案如下:一种答题卡填涂识别方法,包括以下步骤:

步骤1、获取答题者的答题卡扫描图;

步骤2、根据所述答题卡的第一基线框、第一参数信息和直角坐标系,确定所述第一基线框在所述扫描图中对应的第二基线框和所述扫描图的第二参数信息;

步骤3、根据所述第一参数信息、所述第二参数信息和所述直角坐标系,确定所述第二基线框相对于所述第一基线框的坐标偏移系数;

步骤4、根据所述坐标偏移系数和所述第一参数信息,确定所述扫描图中所有填涂格的边界点的坐标值;

步骤5、根据所述坐标值和所述第一参数信息,分别对所述所有填涂格进行填涂识别。

本发明的有益效果是:对于经扫描后的答题卡扫描图相对于答题卡基准图具有一定的偏移导致与答题卡基准图不完全重合的问题,本发明对基准图设定一个基线框,通过基线框对偏移现象进行系数计算,根据计算得到的坐标偏移系数,将基准图中点的坐标映射到扫描图中,然后再进行填涂识别,实现对答题卡的精确识别,另外,该方法中的答题卡可以是普通打印纸制作的,扫描图可以是通过任意扫描仪进行扫描得到的,应用范围广,大幅提高答题卡应用的灵活性和效率。

在上述技术方案的基础上,本发明还可以做如下改进。

进一步,在所述步骤1之前,所述方法还包括:

步骤6、建立所述答题卡对应的基准图,并确定直角坐标系和所述基准图中的第一基线框,以及所述基准图的第一参数信息;

步骤7、保存所述直角坐标系、所述第一基线框和所述第一参数信息,

其中,所述基准图为第一矩形;所述第一基线框为第二矩形,所述第二矩形的上边界线、下边界线、左边界线和右边界线分别一一对应的与所述第一矩形的上边界线、下边界线、左边界线和右边界线平行,所述第二矩形位于所述第一矩形的内部;所述第一参数信息包括所述第二矩形的四个顶点在所述直角坐标系中的坐标值、所述第二矩形的宽度、所述第二矩形的高度、所述基准图中所有填涂格的第一边界点的坐标值、第一预设顶点、第二预设顶点和填涂格填涂阈值,所述第一预设顶点和所述第二预设顶点分别为所述第二矩形的四个顶点中的任一个,所述第一边界点为能确定其对应的填涂格的坐标范围的点。

进一步,所述步骤2包括:

步骤2.1、逐行或逐列识别二值化处理后的所述扫描图,确定每一行或每一列的最大连续黑点个数占像素点总个数的第一比值以及黑点总个数占所述像素点总个数的第二比值;

步骤2.2、对比所述第一比值和第一阈值的大小以及所述第二比值和第二阈值的大小,当所述第一比值大于所述第一阈值且所述第二比值大于所述第二阈值时,则确定该行或列为所述基线框的边界线;

步骤2.3、当确定的边界线为两条时,则完成所述第二基线框的识别,当确定的边界线的个数小于两条且未按照预设旋转角度旋转所述二值化后的扫描图时,则按照所述预设旋转角度,旋转所述二值化后的扫描图,并执行步骤2.1,当确定的边界线的个数小于两条且已按照所述预设旋转角度旋转所述二值化后的扫描图,则结束对答题卡的填涂识别;

步骤2.4、根据所述直角坐标系、所述第一参数信息和所述第二基线框,确定所述第二参数信息,

其中,所述第二基线框为所述第二矩形对应的四边形,所述第二参数信息包括所述第二矩形的四个顶点一一对应的所述四边形的四个顶点在所述直角坐标系中的坐标值、所述四边形的宽度、所述四边形的高度、所述四边形的所述第一预设顶点对应的第三预设顶点和所述四边形的所述第二预设顶点对应的第四预设顶点。

进一步,所述步骤2.1包括:

步骤2.11、对所述扫描图进行二值化处理,得到二值化后的扫描图;

步骤2.12、逐行或逐列识别所述二值化后的扫描图中的像素点及其对应的颜色值;

步骤2.13、根据所述颜色值,确定每一行或每一列的最大连续黑点个数占像素点总个数的第一比值以及黑点总个数占所述像素点总个数的第二比值。

进一步,所述坐标偏移系数包括:横坐标缩放变换参数,纵坐标缩放变换参数,横坐标平行偏移变换参数,纵坐标平行偏移变换参数,横坐标倾斜偏移变换参数和纵坐标倾斜偏移变换参数。

进一步,所述步骤3包括:

步骤3.1、根据所述第一参数信息和所述第二参数信息,计算所述四边形的宽度和所述第二矩形的宽度的比值,得到横坐标缩放变换参数,以及计算所述四边形的高度和所述第二矩形的高度的比值,得到纵坐标缩放变换参数;

步骤3.2、根据所述第二矩形的四个顶点的所述坐标值和所述四边形的四个顶点的所述坐标值,分别确定所述第一预设顶点的坐标值和所述第三预设顶点的坐标值,并计算所述第三预设顶点的横坐标和所述第一预设顶点的横坐标的差值,得到所述横坐标平行偏移变换参数,以及计算所述第三预设顶点的纵坐标和所述第一预设顶点的纵坐标的差值,得到所述纵坐标平行偏移变换参数;

步骤3.3、根据所述四边形,确定所述第四预设顶点左邻或右邻的第一顶点以及所述第四预设顶点上邻或下邻的第二顶点,根据所述四边形的四个顶点的所述坐标值,分别确定所述第四预设顶点的坐标值、所述第一顶点的坐标值和所述第二顶点的坐标值,并根据所述第四预设顶点的坐标值和所述第一顶点的坐标值,计算所述第四预设顶点和所述第一顶点共同所在的一边相对于所述直角坐标系的横坐标轴的第一倾斜角的正切值,以及根据所述第四预设顶点的坐标值和所述第二顶点的坐标值,计算所述第四预设顶点和所述第二顶点共同所在的一边相对于所述直角坐标系的纵坐标轴的第二倾斜角的正切值,所述第一倾斜角的正切值为横坐标倾斜偏移变换参数,所述第二倾斜角的正切值为纵坐标倾斜偏移变换参数。

进一步,所述步骤4包括:

根据所述横坐标缩放变换参数、所述纵坐标缩放变换参数、所述横坐标平行偏移变换参数、所述纵坐标平行偏移变换参数、所述横坐标倾斜偏移变换参数、所述纵坐标倾斜偏移变换参数和所述第一参数信息,分别计算所述扫描图中的所述第一边界点对应的第二边界点在所述直角坐标系中的坐标值。

进一步,所述步骤4中,计算所述第二边界点在所述直角坐标系中的坐标值的计算公式为:xn`=(xn×sx)+mx+(yn-ym)×tanβ,yn`=(yn×sy)+my+(xn-xm)×tanα,其中,n`代表所述第二边界点,n代表所述第一边界点,m代表所述第二预设顶点,xn`代表所述第二边界点的横坐标值,yn`代表所述第二边界点的纵坐标值,xn代表所述第一边界点的横坐标值,sx代表所述横坐标缩放变换参数,mx代表所述横坐标平行偏移变换参数,ym代表所述第二预设顶点的纵坐标值,tanβ代表所述第二倾斜角的正切值,yn代表所述第一边界点的纵坐标值,sy代表所述纵坐标缩放变换参数,my代表所述纵坐标平行偏移变换参数,xm代表所述第二预设顶点的横坐标值,tanα代表所述第一倾斜角的正切值。

进一步,对每一个填涂格进行填涂识别时,所述步骤5包括:

步骤5.1、根据所述第二边界点的坐标值,确定所述填涂格的坐标范围;

步骤5.2、根据所述坐标范围和所述二值化后的扫描图,确定所述填涂格的黑点数量和像素点总数;

步骤5.3、计算所述黑点数量和所述像素点总数的比值,得到所述填涂格的填涂比值;

步骤5.4、对比所述填涂比值和所述填涂格填涂阈值,当所述填涂比值大于所述填涂格填涂阈值时,则标记所述填涂格为填涂状态,完成对该填涂格的填涂识别。

为解决本发明的技术问题,还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述程序被处理器执行时实现上述方法的步骤。

附图说明

图1为本发明一个实施例提供的一种答题卡填涂识别方法的流程示意图;

图2为本发明另一个实施例提供的一种答题卡填涂识别方法的流程示意图;

图3为本发明另一个实施例提供的一种答题卡填涂识别方法中步骤120的流程示意图;

图4为本发明另一个实施例提供的一种答题卡填涂识别方法中步骤121的流程示意图;

图5为本发明另一个实施例提供的一种答题卡填涂识别方法中步骤130的流程示意图;

图6为本发明另一个实施例提供的一种答题卡填涂识别方法中计算坐标平行偏移变换参数的示意图;

图7为本发明另一个实施例提供的一种答题卡填涂识别方法中步骤150的流程示意图;

图8为本发明一个实施例提供的一种答题卡填涂识别系统的示意性结构图。

具体实施方式

以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。

实施例一

一种答题卡填涂识别方法100,如图1所示,包括:

步骤110、获取答题者的答题卡扫描图。

步骤120、根据答题卡的第一基线框、第一参数信息和直角坐标系,确定第一基线框在扫描图中对应的第二基线框和所述扫描图的第二参数信息。

步骤130、根据第一参数信息、第二参数信息和直角坐标系,确定第二基线框相对于第一基线框的坐标偏移系数。

步骤140、根据坐标偏移系数和第一参数信息,确定扫描图中所有填涂格的边界点的坐标值。

步骤150、根据坐标值和第一参数信息,分别对所有填涂格进行填涂识别。

需要说明的是,基准图表示为:答题卡基准图的简称。是指在考试前设计好的答题卡基准图片。基准图是答题卡扫描图片进行识别比对的基础。扫描图表示为:答题卡扫描图的简称。是指将学生做的答题卡,经过扫描后生成的图片。基线框表示为:基准图中,用于对答题卡进行有效识别所必须的黑线框,黑线框的边具有一定厚度。

对于经扫描后的答题卡扫描图相对于答题卡基准图具有一定的偏移导致与答题卡基准图不完全重合的问题,本发明对基准图设定一个基线框,通过基线框对偏移现象进行系数计算,根据计算得到的坐标偏移系数,将基准图中点的坐标映射到扫描图中,然后再进行填涂识别,具有较高的容错性,实现对答题卡的精确识别,另外,该方法中的答题卡可以是普通打印纸制作的,扫描图可以是通过任意扫描仪进行扫描得到的,应用范围广,大幅提高答题卡应用的灵活性和效率。

通过本实施例的方法,让答题卡应用变得更加灵活和易用。无论是大型的通考、调考,还是日常测验、小型考试,都能随时应用答题卡。老师只需要设计基准图,然后通过普通打印机、打印纸即可制作答题卡。考试结束后,通过普通扫描仪进行扫描后,即可快速获得答题结果,不需要依赖光标阅读机这样的传统设备。

实施例二

在实施例一的基础上,如图2所示,步骤110之前,方法100还包括:

步骤160、建立答题卡对应的基准图,并确定直角坐标系和基准图中的第一基线框,以及基准图的第一参数信息。

步骤170、保存直角坐标系、第一基线框和第一参数信息。

其中,基准图为第一矩形;第一基线框为第二矩形,第二矩形的上边界线、下边界线、左边界线和右边界线分别一一对应的与第一矩形的上边界线、下边界线、左边界线和右边界线平行,第二矩形位于第一矩形的内部;第一参数信息包括第二矩形的四个顶点在直角坐标系中的坐标值、第二矩形的宽度、第二矩形的高度、基准图中所有填涂格的第一边界点的坐标值、第一预设顶点、第二预设顶点和填涂格填涂阈值,第一预设顶点和第二预设顶点分别为第二矩形的四个顶点中的任一个,第一边界点为能确定其对应的填涂格的坐标范围的点。

需要说明的是,填涂格表示为:答题卡中用于考生填涂的矩形格子。所有填涂格分别位于第二矩形的内部,以确保基线框足够大,以提高计算得到的坐标偏移系数的精度,进一步提高答题卡填涂识别的精度。第一预设顶点可以和第二预设顶点是同一个顶点,也可以是不同的顶点。

通过答题卡基准图,以及基准图中设定的基线框和参数数据,可以将基准图中填涂格边界点的坐标变换到扫描图中相对应点的坐标,从而识别答题卡的填涂结果。

实施例三

在实施例二的基础上,如图3所示,步骤120包括:

步骤121、逐行或逐列识别二值化处理后的扫描图,确定每一行或每一列的最大连续黑点个数占像素点总个数的第一比值以及黑点总个数占像素点总个数的第二比值。

步骤122、对比第一比值和第一阈值的大小以及第二比值和第二阈值的大小,当第一比值大于第一阈值且第二比值大于第二阈值时,则确定该行或列为基线框的边界线。

步骤123、当确定的边界线个数为两条时,则完成第二基线框的识别,当确定的边界线的个数小于两条且未按照预设旋转角度旋转二值化后的扫描图时,则按照预设旋转角度,旋转二值化后的扫描图,并执行步骤121,当确定的边界线的个数小于两条且已按照预设旋转角度旋转二值化后的扫描图,则结束对答题卡的填涂识别。

步骤124、根据直角坐标系、第一参数信息和第二基线框,确定第二参数信息。

其中,第二基线框为第二矩形对应的四边形,第二参数信息包括第二矩形的四个顶点一一对应的所四边形的四个顶点在直角坐标系中的坐标值、四边形的宽度、四边形的高度、四边形的第一预设顶点对应的第三预设顶点和四边形的第二预设顶点对应的第四预设顶点。

实施例四

在实施例三的基础上,如图4所示、步骤121包括:

步骤211、对扫描图进行二值化处理,得到二值化后的扫描图。

步骤212、逐行或逐列识别二值化后的扫描图中的像素点及其对应的颜色值。

步骤213、根据颜色值,确定每一行或每一列的最大连续黑点个数占像素点总个数的第一比值以及黑点总个数占像素点总个数的第二比值。

需要说明的是,图像经二值化,根据预设阈值,小于阈值的空白色,大于阈值的为黑色。

步骤一,对二值化后的扫描图,按行方向或列方向,逐行(列)识别图片中的像素点,获得像素点的颜色值。确定基线框边界线的条件为:有连续大于1行(列),每行(列)连续黑点占图宽(高)比值大于一个既定的阈值(例如可以是17%),并且黑点占图宽(高)比值大于一个另一个既定的阈值(例如可以是40%),则认为确定了基线框的一条边线。

另外,确定基线框的条件:能够同时确定基线框的两条边,则认为扫描图的基线框被确定。如果只确定基线框的一条边,或无法确定任何边,则基线框识别失败。

步骤二,如果按照步骤一无法满足上述基线框的确定条件,将扫描图片向左旋转。每旋转一定角度,执行步骤一一次,直到确定基线框并退出本步骤。如向左旋转最大角度后仍无法确定基线框,则将图片向右旋转。每旋转一定角度,执行步骤一一次,直到确定基线框并退出本步骤。

其中每次向左或向右旋转的角度、向左或向右最大旋转角度是使用本方法时预先设置的参数。当如果向左或向右旋转最大角度后,任然无法确认基线框,则认定扫描图无效,不能进行后续的答题卡填涂识别。

需要说明的是,黑点占图宽(高)比值表示为:扫描图中,某行或某列的黑点数量总和占扫描图宽或高的比值。连续黑点占图宽(高)比值表示为:扫描图中,某行或某列的连续黑点数量占扫描图宽或高的比值。

同时满足第一比值大于第一阈值且第二比值大于第二阈值时,则确定该行或列为基线框的边界线,且能够同时确定基线框的两条边,则认为扫描图的基线框被确定。另外,在确定基线框的边界过程中,考虑到扫描图会发生倾斜偏移等问题,则在逐行扫描或逐列无法识别基线框边界时,按照预设角度,旋转扫描图进行基线框边界识别。经过上述方法,如果只确定基线框的一条边,或无法确定任何边,则基线框识别失败,结束答题卡填涂识别,进一步提高了答题卡的识别精度。

实施例五

在实施例一至实施例四中的任一实施例的基础上,坐标偏移系数包括:横坐标缩放变换参数,纵坐标缩放变换参数,横坐标平行偏移变换参数,纵坐标平行偏移变换参数,横坐标倾斜偏移变换参数和纵坐标倾斜偏移变换参数。

实施例六

在实施例三至实施例五中的任一实施例的基础上,如图5所示,步骤130包括:

步骤131、根据第一参数信息和第二参数信息,计算四边形的宽度和第二矩形的宽度的比值,得到横坐标缩放变换参数,以及计算四边形的高度和第二矩形的高度的比值,得到纵坐标缩放变换参数。

步骤132、根据第二矩形的四个顶点的坐标值和四边形的四个顶点的坐标值,分别确定第一预设顶点的坐标值和第三预设顶点的坐标值,并计算第三预设顶点的横坐标和第一预设顶点的横坐标的差值,得到横坐标平行偏移变换参数,以及计算第三预设顶点的纵坐标和第一预设顶点的纵坐标的差值,得到纵坐标平行偏移变换参数。

步骤133、根据四边形,确定第四预设顶点左邻或右邻的第一顶点以及第四预设顶点上邻或下邻的第二顶点,根据四边形的四个顶点的坐标值,分别确定第四预设顶点的坐标值、第一顶点的坐标值和第二顶点的坐标值,并根据第四预设顶点的坐标值和第一顶点的坐标值,计算第四预设顶点和第一顶点共同所在的一边相对于直角坐标系的横坐标轴的第一倾斜角的正切值,以及根据第四预设顶点的坐标值和第二顶点的坐标值,计算第四预设顶点和第二顶点共同所在的一边相对于直角坐标系的纵坐标轴的第二倾斜角的正切值,第一倾斜角的正切值为横坐标倾斜偏移变换参数,第二倾斜角的正切值为纵坐标倾斜偏移变换参数。

步骤132中,横坐标平行偏移变换参数为:用第三预设顶点的横坐标减去第一预设顶点的横坐标,记为:mx。公式:mx=xk’-xk。整个扫描图的mx仅有一个数值。纵坐标平行偏移变换参数为:用第三预设顶点的纵坐标减去第一预设顶点的纵坐标,记为:my。公式:my=yk`-yk。整个扫描图的my仅有一个数值。其中,k代表第一预设顶点,k`代表第三预设顶点,xk’代表第三预设顶点的横坐标值,xk代表第一预设顶点的横坐标值,yk`代表第三预设顶点的纵坐标值,yk代表第一预设顶点的纵坐标值。

步骤133中,如图6所示,以四边形的左上顶点m`(如图中数字1标识处)为第四预设顶点,则m`的右邻顶点为a(如图中数字2标识处),m`的下邻顶点为b(如图中数字3标识处)。根据四边形的四个顶点在上述直角坐标系中的坐标值,确定m`坐标为(xm`,ym`),a坐标为(xa,ya),b坐标为(xb,yb)。m`和a共同所在的四边形的一边m`a相对于直角坐标系的横坐标轴的偏移角度为α(即为第一倾斜角,如图中数字4标识所示),m`和b共同所在的四边形的一边m`b相对于直角坐标系的纵坐标轴的偏移角度为β(即为第二倾斜角,如图中数字5标识所示)。则

tanα=(ya-ym`)/(xa-xm`),tanβ=(xb-xm`)/(yb-ym`),其中,δxa=xa–xm`,δxb=xb–xm`,δyb=yb–ym`,δxb=xb–xm`。则根据上述公式,计算四边形中的任一点c`(如图中数字6标识处)相对于基准图的坐标倾斜偏移(即δxc`=xc`–xm`,δyc`=yc`–ym`),δxc`=(yc`-ym`)×tanβ,δyc`=(xc`-xm`)×tanα。

在实际操作过程中,因为不同扫描仪的技术参数差异,会造成扫描图与基准图相比,存在放大或缩小的图像差异问题。为准确识别扫描图,应将扫描图参数与基准图参数进行比对,计算扫描图坐标缩放变换参数;另外,以基准图的基点(第一预设点)坐标为标准,计算扫描图基点坐标平行偏移量,从而获得扫描图坐标平行偏移变换参数;再者,在答题卡扫描过程中,由于存在静电、纸张潮湿、纸张粘连等客观因素,经常导致答题卡扫描图中像素点的横坐标和纵坐标分别发生不同程度的倾斜和偏转。如果这些倾斜偏移不加以变换,则会造成答题卡填涂识别不精确,从而影响答题卡成绩数据正确性。根据计算得到的坐标偏移系数,将基准图中点的坐标映射到扫描图中,然后再进行填涂识别,实现对答题卡的精确识别,具有更高的容错性,另外,该方法中的答题卡可以是普通打印纸制作的,扫描图可以是通过任意扫描仪进行扫描得到的,降低答题卡使用的成本,应用范围广,大幅提高答题卡应用的灵活性和效率。

通过本发明,可有效解决在普通扫描仪扫描答题卡后,进行精确识别的技术问题。在答题卡识别过程中,通过基准图中预置的基线框,可识别出扫描图。对扫描图可能产生的图片缩放、位置偏移、倾斜等技术问题进行有效地变换。从基准图中预置的填涂格边界点,通过各种变换找到扫描图中与之相对应的点坐标。通过确定的坐标,对答题卡的填涂进行识别,从而获得答题卡填涂结果,完成答题卡的识别读取。

实施例七

在实施例五或实施例六的基础上,步骤140包括:根据横坐标缩放变换参数、纵坐标缩放变换参数、横坐标平行偏移变换参数、纵坐标平行偏移变换参数、横坐标倾斜偏移变换参数、纵坐标倾斜偏移变换参数和第一参数信息,分别计算扫描图中的第一边界点对应的第二边界点在直角坐标系中的坐标值。

实施例八

在实施例六或实施例七的基础上,步骤140中,计算第二边界点在直角坐标系中的坐标值的计算公式为:xn`=(xn×sx)+mx+(yn-ym)×tanβ,yn`=(yn×sy)+my+(xn-xm)×tanα,其中,n`代表第二边界点,n代表第一边界点,m代表第二预设顶点,xn`代表第二边界点的横坐标值,yn`代表第二边界点的纵坐标值,xn代表第一边界点的横坐标值,sx代表横坐标缩放变换参数,mx代表横坐标平行偏移变换参数,ym代表第二预设顶点的纵坐标值,tanβ代表第二倾斜角的正切值,yn代表第一边界点的纵坐标值,sy代表纵坐标缩放变换参数,my代表纵坐标平行偏移变换参数,xm代表第二预设顶点的横坐标值,tanα代表第一倾斜角的正切值。

基准图中的点映射到扫描图中点的变换顺序是:首先进行坐标缩放变换,然后进行坐标平行偏移变换,最后进行坐标倾斜偏移变换。

以基准图中像素点c(xc,yc)为例,要寻找扫描图中与c点对应的点c`的坐标,需要经过如下变换步骤:

进行坐标缩放变换:将c点的横坐标、纵坐标分别乘以sx和sy。

进行坐标平行偏移变换:将c点的横坐标、纵坐标分别加上mx和my。

进行倾斜偏移变换:将c点的横坐标、纵坐标分别加上横坐标倾斜偏移变换值δxc和纵坐标倾斜偏移变换值δyc。

将上述计算合成为一个计算公式,即可计算出基准图中c点经过变换后映射到到扫描图中c`点的坐标,即:xc`=(xc×sx)+mx+(yc-ym)×tanβ,yc`=(yc×sy)+my+(xc-xm)×tanα。

实施例九

在实施例七或实施例八的基础上,如图7所示,对每一个填涂格进行填涂识别时,步骤150包括:

步骤151、根据第二边界点的坐标值,确定填涂格的坐标范围。

步骤152、根据坐标范围和二值化后的扫描图,确定填涂格的黑点数量和像素点总数。

步骤153、计算黑点数量和像素点总数的比值,得到填涂格的填涂比值。

步骤154、对比填涂比值和填涂格填涂阈值,当填涂比值大于填涂格填涂阈值时,则标记填涂格为填涂状态,完成对该填涂格的填涂识别。

获得基准图中所有填涂格边界点的坐标,使用步骤140的方法,依次对这些点进行坐标变换,找到这些点在扫描图中相对应点(第二边界点)坐标。

根据第二边界点坐标,确定填涂格识别坐标范围,在范围内,识别黑点数量。计算单个填涂格中的填涂比值,即:填涂比值=黑点数量÷填涂格点总数。若填涂比值大于填涂阈值s,则认为该填涂格被填涂。

例如,答题卡中一个填涂格,pl点和pr点是该填涂格的两个边界点,pl是左上角点,pr右下角点(因为pl点和pr点能够确定该填涂格的坐标范围),经过变换之后,获得两个点的坐标,即pl(xpl,ypl)和pr(xpr,ypr)。由pl点和pr点,可判定该填涂格识别的横坐标范围从xpl到xpr,纵坐标范围从ypl到ypr。

现假定该答题卡的填涂阈值s为0.6。现识别出该填涂格中黑点数为255个,该填涂格总点数为324个,计算得到填涂格中黑点占总点数比值为255÷324=0.787,已大于填涂阈值,所以可认定该填涂格已被填涂。

按照上述步骤,可对答题卡中所有填涂格进行识别,获得学生填涂结果,最终转换为成绩数据,完成答题卡识别。

例如,首先,设计一张答题卡基准图。

其中核心参数包括:基准图基线框宽度w:777像素,基准图基线框高度h:852像素,基准图的第一基线框左上角顶点坐标:m(193,592)。填涂阈值s:0.6。某一个填涂格边界点n1(397,890),n2(426,903)。

得到一张学生填写后的答题卡,扫描后,获得答题卡扫描图。通过与基准图的比对,将基准图中填涂格边界点的坐标,变换到扫描图中相对应点的坐标。

第一步:对扫描图进行二值化。采用的二值化阈值是210。从获得二值化以后的扫描图。

第二步:识别扫描图的基线框

按照行方向,对第一步生成的扫描图进行逐行检索黑点。在经过向右旋转0.5度以后,发现有两组黑线,每组黑线中识别有连续3行,每行的黑点数占行宽45%,并且每行的连续黑点数占行宽达到25%。根据上述条件,可认定当前扫描图有效,并确定了基线框上下两条边和基点的坐标。获得的扫描图具体技术参数如下:

扫描图中的m点对应的即上边界线左上角黑点的坐标m`(199,601)。扫描图基线框宽度w`:758像素。扫描图基线框高度h`:830像素。扫描图基线框最右上角黑点坐标a(957,596)。扫描图基线框最左下角黑点坐标b(205,1431)。

第三步:将扫描图与基准图进行比对,计算坐标缩放变换参数。

横坐标缩放变换参数sx=扫描图基线框宽度w`÷基准图基线框宽度w=758/777=0.97555。纵坐标缩放变换参数sy=扫描图基线框高度h`÷基准图基线框高度h=830/852=0.97418。

第四步:将扫描图与基准图进行比对,计算坐标平行偏移变换参数。

将基准图中的基线框的左上角顶点坐标m(193,592)与扫描图中的基线框的左上角顶点坐标m`(199,601)进行比较,计算扫描图坐标平行偏移变换参数。

横坐标平行偏移变换参数:mx=xm`-xm=199-193=6。纵坐标平行偏移变换参数:my=ym`-ym=601-592=9。

第五步:计算扫描图坐标倾斜偏移变换参数。

计算纵坐标倾斜偏移变换参数tanα:

计算a点与m`点横坐标、纵坐标的差值,即:δya=ya-ym`,δxa=xa-xm`。然后求tanα=δya/δxa=(ya-ym`)/(xa-xm`)=(596-601)/(957-601)=-0.00660。

计算横坐标倾斜偏移变换参数tanβ:

计算b点与m`点横坐标、纵坐标的差值,即:δyb=yb-ym`,δxb=xb-xm`。然后求tanβ=δxb/δyb=(xb-xm`)/(yb-ym`)=(205-199)/(1431-601)=0.00723。

第六步:将基准图中填涂格边界点,按步骤进行坐标变换,得到扫描图中与之对应点的坐标。

首先对基准图中边界点n1(397,890)进行变换,使用如下公式:

xn1`=(xn1×sx)+mx+(yn1-ym)×tanβ

=(397×0.97555)+6+(890-592)×0.00723

=395.44789,

yn1`=(yn1×sy)+my+(xn1-xm)×tanα

=(890×0.97418)+9+(397-193)×(-0.00660)

=874.6738。

经过四舍五入,得到xn1`=395,yn1`=875。

综上步骤,从基准图中n1点经过坐标变换后,得到与基准图n1相对应扫描图中点n1`(395,875)。使用上述步骤,再变换基准图中点n2(426,903),可得到扫描图中点n2`(423,887)。

第七步:对填涂格进行填涂识别。

根据扫描图中点n1`(395,875)和点n2`(423,887)确定的填涂识别坐标范围,并可知该填范围内点的总数为360,识别到其中黑点数量为292,可计算得到填涂比值为292÷360=0.81。将填涂比值与填涂阈值s进行比较,发现0.81>0.6,因为判定该填涂格被填涂。

通过上述步骤,可识别出答题卡扫描图中所有的已填涂格。只需将考生已填涂格与标准答案填涂格进行比对,即可获得考生的成绩数据。自此,完成一张答题卡从识别、变换到数据获取的全部步骤。

实施例十

一种计算机设备200,如图8所示,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,程序被处理器执行时实现上述实施例中的方法的步骤。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1