首页> 中国专利> 一种试卷OMR识别和计算方法

一种试卷OMR识别和计算方法

摘要

本发明涉及试卷OMR识别和计算方法技术领域,具体地说,涉及一种试卷OMR识别和计算方法,试卷OMR识别方法包括如下步骤:生成OMR卡,将OMR卡输入成图像,将图像在该方向压缩得到投影,确定图像偏转角度,对图像作相应的选择,完成OMR卡的方向校正,找到横向坐标和纵向坐标,得到每个选项的中心位置坐标,读取卡中的信息,结合中心位置坐标确定每个小条的位置,确定该条是否有涂过的小块,识别考生所作选择,试卷OMR计算方法包括如下步骤:定义组合码和评分标准,连续读取考生OMR卡信息,将读取的结果与标准答案相对比,给出分数,本发明可以高效准确的卡片信息解读,且具有倾斜矫正功能,可在自动检测的基础上进行校正,可以有效的避免偏移误识。

著录项

  • 公开/公告号CN112507878A

    专利类型发明专利

  • 公开/公告日2021-03-16

    原文格式PDF

  • 申请/专利权人 育林汇软件有限公司;

    申请/专利号CN202011443541.3

  • 发明设计人 吴锦青;李华平;

    申请日2020-12-08

  • 分类号G06K9/00(20060101);G06K9/32(20060101);G06K9/62(20060101);

  • 代理机构11818 北京圣州专利代理事务所(普通合伙);

  • 代理人王振佳

  • 地址 510000 广东省广州市天河区黄埔大道西路505号之一2713房(自主申报)

  • 入库时间 2023-06-19 10:16:30

说明书

技术领域

本发明涉及试卷技术领域,具体地说,涉及一种试卷OMR识别和计算方法。

背景技术

为了适应教育规模的快速发展,各种计算机辅助测试(CAA)技术被普遍采用,以满足几益增长的需求,其中光电阅读器OMR是利用光电转换的原理检测涂写标记位置的一种自动化装置,目前OMR技术日益成熟,标准化考试的机器阅卷是OMR技术具体应用之一,它将若干个红外光电管按答题卡信息点的物理尺寸进行装配,组成阅卷系统光电传感器,对信息点的涂写位置进行检测,输出与涂写信息有关的模拟电压,经A/D转换成数字信号后用计算机处理检测结果;

但是目前的试卷OMR识别和计算方法,硬件组成部件复杂,因而成本高,价格昂,其应用普及受到一定的限制,并且走纸质量依赖性大,对有倾斜的走纸容易产生误识。

发明内容

本发明的目的在于提供一种试卷OMR识别和计算方法,以解决上述背景技术中提出的问题。

为实现上述目的,本发明提供一种试卷OMR识别方法,包括试卷OMR识别方法包括如下步骤:

S1.1、根据试卷的具体内容,生成OMR卡;

S1.2、将OMR卡输入成图像,然后转换图像格式,将彩色图像转换为灰度图像,然后进行灰度拉伸以增强图像反差,去除图像周围无用边缘,提高算法效率;

S1.3、采用人脸识别中定位面部器官常用的投影方法,沿某个方向将图像各行或各列的像素灰度相加来,将图像在该方向压缩得到投影;

S1.4、运用投影曲线的标准差为判断依据,确定图像偏转角度,对图像作相应的选择,完成OMR卡的方向校正;

S1.5、找到横向坐标和纵向坐标,得到每个选项的中心位置坐标;

S1.6、读取卡中的信息,结合中心位置坐标确定每个小条的位置,确定该条是否有涂过的小块,识别考生所作选择。

作为本技术方案的进一步改进,所述S1.1中的具体内容包括试卷的数量、题型和分值。

作为本技术方案的进一步改进,所述S1.2中OMR卡包括定位标记和选项涂划区,定位标记包括定位小块和定位直线,选项涂划区包括许多供旋转的矩形小块,定位标记用作卡片整体方向和选项定位的依据,选项涂划区对卡中信息的读取就是正确判断特定位置的选项是否进行了涂划。

作为本技术方案的进一步改进,所述S1.3中的纵向投影计算公式为:

其中,I(x,y)为原始图像,V为在[x

作为本技术方案的进一步改进,所述S1.3中的横向投影计算公式为:

其中,I(x,y)为原始图像,H为在[x

投影反映图像在某一方向上的整体信息,在OMR卡定位中,灰度投影直观反映卡中定位标记的位置,起到关键的导向作用。

作为本技术方案的进一步改进,图像无偏斜时各选项纵向对齐,投影曲线起伏较大:而当图像倾斜时选项的交错使投影起伏变小,由此,可用投影曲线的标准差为判断依据,确定图像偏转角度,所述S4中的纵向投影标准差计算公式:

其中,设α=α

作为本技术方案的进一步改进,所述S1.5中横向坐标和纵向坐标采用标记识别算法,其方法为:

S1.1.1、从上到下扫描二值化图像,按从左到右的方向扫描图像,设检测到的第一个黑色像素为图像的起始边界点;

S1.1.2、按逆时针方向跟踪邻域点是否为黑色像素,记录跟踪点的邻域方向和边界点的坐标,如果邻接点均检测不到边界点,则起始边界点为孤立点,算法结束;

S1.1.3、重复S1.2,记录跟踪过程中左上方和右下方的边界点,直到回到起始边界点,得到标记的中心坐标,得到每个选项的中心位置坐标;

要使识别不受到选项形状的影响,需准确定位各选项的水平和垂直中心,首先通过定位方块实现横向定位,对图像进行横向投影,由于定位标记为深色,其灰度值较小,两处明显的灰度突变即为卡中两条定位直线的位置,其余的锯齿状部分粗咯地代表定位方块的位置,取出定位方块作水平投影,将投影曲线整形得到脉冲序列,该序列给出了小块灰度突变的边缘位置,每一个灰度上升沿和下降沿的中心位置(圆圈标示处)就是定位方块的水平中心,即各选项中心的横向坐标;

然后利用黑色的参考线实现纵向定位,与定位小块的方法相似,通过分析整体图像纵向投影米获取位置信息,其关键是要找到各行选项的始末位置,分析参考直线处的灰度变化,检测出参考线首尾的短划线后,可进步获取每行选项的始术位置,根据每行已知列数可以定位出中间所有选项的中心位置,即选项中心的纵向坐标。

作为本技术方案的进一步改进,所述S1.6中判断考生的选择的操作方法步骤为:

S1.2.1、根据水平定位标记的横坐标点和垂直定位标记的纵坐标组成的序对就可以定位到答题卡图像的一个点;

S1.2.2、中心位置坐标的小条对图像进行切割,然后对切割的局部区域计算黑像素区域的面积、周长和形状参数特征,判断是否为涂写标记;

S1.2.3、通过识别的定位标记来确定每个涂写标记,当确定涂写点的位置后,利用图像切割判断是否有填涂标记,从而判定考生答案正确与否;

其中,定义如下数据类型和主要的函数:

typedef struct

{

int ID;//题号

float weight;//此题所占分值

char

}Score;//定义每个题目的类型

//试卷类

class Paper

{

Public;

Paper();

int InitPaper(AnsiString SelectPaper,Ansi-String PaperDirectory);

//初始化考生试卷

bool OpenPaper(char

bool CheckMark();//识别试卷标记

bool CheckA_B(BYTE

bool CheckNumber(BYTE

bool CheckScore(BYTE*pBitmap,Score

bool SaveScore(char

~Paper();

}。

另一方面,本发明还提供一种试卷OMR计算方法包括上述任意一种试卷OMR识别方法,包括如下步骤:

S2.1、定义组合码和评分标准;组合码是指对于多选题目有两个或者两个以上答案时,用个专用的字符表示这两个或者两个以上答案

S2.2、连续读取考生OMR卡信息,将读取的结果与标准答案相对比,给出分数;

S2.3、将考生信息与分数自动保存在特定的数据库中,对学生考试情况的分析和统计。

作为本技术方案的进一步改进,S2.2中,连续读取OMR卡信息采用动态连接程序OMRCOM.DLL提供阅读机设备访问接口;0MRCOM.DLL文件需放在Windows~ystenl目录中,或放在应用程序指定目录中,在OMRCOM.DLL文件中提供2个外部函数OmrS,OmrG,实现对阅读机驱动并取得返回信息,OmrS,OmrG函数返回值为非零数值,接口程序代码如下:

//定义3个数组

emdray/0..254]of char;//用于存放向读卡器发送得命令

bufarayO..254]of char;//用于存放读卡时的返回数据

Sp:amayl0..199]of char;//存放初始化信息

cmd:=S FOMFILEFOM;"1FOMFILEFOM为格式文件名,即通过s命令,加载预定义的FOMFILEFOM格式文件

0mrS(cmd);//通过此函数送取cemd中的数据命令,

OmrG(bu);//通过此函数读取读卡返回字符串

if copy(buf,1,2)=08"then exit//读取到错误命令显示为未联机,返回

filcar(sp200,ord");//初始化

cmd:="/;//读卡命令,注意此出一定要是“/”“+”(空格)。

omrs(cmd);//送读卡命令

onmrgbu);//取读卡返回字申

if copy(buf,1,2)=`OK`then//

begin

supcopy(cmd,`001`*+Sp+`/`);

omrs(cmd);

//送取数据命令

omrg(bu);

//取返回字串

Mermol.linendd(copy(buf,1,200);

End。

与现有技术相比,本发明的有益效果:

该试卷OMR识别和计算方法中,通过标记识别算法,与扫描装置配合可实现高效准确的卡片信息解读,不仅能达到无差错识别,而且容易实现,处理结果可写入电子表格或数据库供数据统计和后处理之用,对于扫描装置角度误差引起的图像偏斜,具有倾斜矫正功能,可自动纠正走纸过程中产生的倾斜,对走纸机构没有严格的要求,可在自动检测的基础上进行校正,可以有效的避免偏移误识。

附图说明

图1为实施例1的试卷OMR识别方法框图;

图2为实施例1的试卷OMR计算方法框图;

图3为实施例1的标记识别算法框图;

图4为实施例1的判断考生的选择方法框图;

图5为实施例1的试卷OMR识别和计算装置结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”、“顺时针”、“逆时针”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的设备或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。

实施例1

请参阅图1-图5所示,本实施例提供一种试卷OMR识别方法,包括试卷OMR识别方法包括如下步骤:

S1.1、根据试卷的具体内容,生成OMR卡;

S1.2、将OMR卡输入成图像,然后转换图像格式,将彩色图像转换为灰度图像,然后进行灰度拉伸以增强图像反差,去除图像周围无用边缘,提高算法效率;

S1.3、采用人脸识别中定位面部器官常用的投影方法,沿某个方向将图像各行或各列的像素灰度相加来,将图像在该方向压缩得到投影;

S1.4、运用投影曲线的标准差为判断依据,确定图像偏转角度,对图像作相应的选择,完成OMR卡的方向校正;

S1.5、找到横向坐标和纵向坐标,得到每个选项的中心位置坐标;

S1.6、读取卡中的信息,结合中心位置坐标确定每个小条的位置,确定该条是否有涂过的小块,识别考生所作选择。

本实施例中,S1.1中的具体内容包括试卷的数量、题型和分值。

其中,S1.2中OMR卡包括定位标记和选项涂划区,定位标记包括定位小块和定位直线,选项涂划区包括许多供旋转的矩形小块,定位标记用作卡片整体方向和选项定位的依据,选项涂划区对卡中信息的读取就是正确判断特定位置的选项是否进行了涂划。

进一步的,S1.3中的纵向投影计算公式为:

其中,I(x,y)为原始图像,V为在[x

具体的,S1.3中的横向投影计算公式为:

其中,I(x,y)为原始图像,H为在[x

投影反映图像在某一方向上的整体信息,在OMR卡定位中,灰度投影直观反映卡中定位标记的位置,起到关键的导向作用。

值得说明的,图像无偏斜时各选项纵向对齐,投影曲线起伏较大:而当图像倾斜时选项的交错使投影起伏变小,由此,可用投影曲线的标准差为判断依据,确定图像偏转角度,S4中的纵向投影标准差计算公式:

其中,设α=α

更进一步的,S1.5中横向坐标和纵向坐标采用标记识别算法,其方法为:

S1.1.1、从上到下扫描二值化图像,按从左到右的方向扫描图像,设检测到的第一个黑色像素为图像的起始边界点;

S1.1.2、按逆时针方向跟踪邻域点是否为黑色像素,记录跟踪点的邻域方向和边界点的坐标,如果邻接点均检测不到边界点,则起始边界点为孤立点,算法结束;

S1.1.3、重复S1.2,记录跟踪过程中左上方和右下方的边界点,直到回到起始边界点,得到标记的中心坐标,得到每个选项的中心位置坐标。

具体的,要使识别不受到选项形状的影响,需准确定位各选项的水平和垂直中心,首先通过定位方块实现横向定位,对图像进行横向投影,由于定位标记为深色,其灰度值较小,两处明显的灰度突变即为卡中两条定位直线的位置,其余的锯齿状部分粗咯地代表定位方块的位置,取出定位方块作水平投影,将投影曲线整形得到脉冲序列,该序列给出了小块灰度突变的边缘位置,每一个灰度上升沿和下降沿的中心位置(圆圈标示处)就是定位方块的水平中心,即各选项中心的横向坐标;

然后利用黑色的参考线实现纵向定位,与定位小块的方法相似,通过分析整体图像纵向投影米获取位置信息,其关键是要找到各行选项的始末位置,分析参考直线处的灰度变化,检测出参考线首尾的短划线后,可进步获取每行选项的始术位置,根据每行已知列数可以定位出中间所有选项的中心位置,即选项中心的纵向坐标。

具体的,S1.6中判断考生的选择的操作方法步骤为:

S1.2.1、根据水平定位标记的横坐标点和垂直定位标记的纵坐标组成的序对就可以定位到答题卡图像的一个点;

S1.2.2、中心位置坐标的小条对图像进行切割,然后对切割的局部区域计算黑像素区域的面积、周长和形状参数特征,判断是否为涂写标记;

S1.2.3、通过识别的定位标记来确定每个涂写标记,当确定涂写点的位置后,利用图像切割判断是否有填涂标记,从而判定考生答案正确与否;

其中,定义如下数据类型和主要的函数:

typedef struct

{

int ID;//题号

float weight;//此题所占分值

char

}Score;//定义每个题目的类型

//试卷类

class Paper

{

Public;

Paper();

int InitPaper(AnsiString SelectPaper,Ansi-String PaperDirectory);

//初始化考生试卷

bool OpenPaper(char

bool CheckMark();//识别试卷标记

bool CheckA_B(BYTE

bool CheckNumber(BYTE

bool CheckScore(BYTE*pBitmap,Score

bool SaveScore(char

~Paper();

}。

另一方面,本发明还提供一种试卷OMR计算方法,包括上述任意一种试卷OMR识别方法,包括如下步骤:

S2.1、定义组合码和评分标准;组合码是指对于多选题目有两个或者两个以上答案时,用个专用的字符表示这两个或者两个以上答案,如J表示AB,H表示BD等等,对每个识别区域进行定义、分组、命名,例如,有两道选择题目1ABCD 2.AB C D,最后由计算机自动OMR识别每个考生答卷信息卡扫描图像的选择题目(客观题目)填涂情况,同时对计算机不能自动OMR识别的考生答卷进行人工判断考生填涂的答案;

S2.2、连续读取考生OMR卡信息,将读取的结果与标准答案相对比,给出分数;

S2.3、将考生信息与分数自动保存在特定的数据库中,对学生考试情况的分析和统计。

具体的,在S2.2中连续读取OMR卡信息采用动态连接程序OMRCOM.DLL提供阅读机设备访问接口;0MRCOM.DLL文件需放在Windows~ystenl目录中,或放在应用程序指定目录中,在OMRCOM.DLL文件中提供2个外部函数OmrS,OmrG,实现对阅读机驱动并取得返回信息,OmrS,OmrG函数返回值为非零数值,接口程序代码如下:

//定义3个数组

emdray/0..254]of char;//用于存放向读卡器发送得命令

bufarayO..254]of char;//用于存放读卡时的返回数据

Sp:amayl0..199]of char;//存放初始化信息

cmd:=S FOMFILEFOM;"1FOMFILEFOM为格式文件名,即通过s命令,加载预定义的FOMFILEFOM格式文件

0mrS(cmd);//通过此函数送取cemd中的数据命令,

OmrG(bu);//通过此函数读取读卡返回字符串

if copy(buf,1,2)=08"then exit//读取到错误命令显示为未联机,返回

filcar(sp200,ord");//初始化

cmd:="/;//读卡命令,注意此出一定要是“/”“+”(空格)。

omrs(cmd);//送读卡命令

onmrgbu);//取读卡返回字申

if copy(buf,1,2)=`OK`then//

begin

supcopy(cmd,`001`*+Sp+`/`);

omrs(cmd);

//送取数据命令

omrg(bu);

//取返回字串

Mermol.linendd(copy(buf,1,200);

End。

以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的仅为本发明的优选例,并不用来限制本发明,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号