刘海敬,毛晚堆,刘永军
(1.石家庄铁道大学,河北 石家庄 050043;2.石家庄经济学院,河北 石家庄 050031)
图像识别技术已日益成熟,以图像处理为依托的网上阅卷也逐步为用户所接受。客观题网上阅卷是由计算机自动完成对学生客观题答卷评阅的技术。本文主要讲述二值图像直方图投影分组方法[1]在网上阅卷系统中的应用。该系统要能对试卷上的选择题答案自动评分,客观题答题由投影分组函数得到。
网上阅卷系统是将纸质试卷的评阅转为对试卷图像评阅的阅卷系统。其主要涉及图像采集及图像处理方面[2]。图像采集采用高速扫描仪实现,图像处理的目标是为了更准确的对目标图像进行识别,本文主要讨论图像直方图投影分组方法[1]。系统工作流程[3]如图1所示,首先制作模版试卷;其次通过过高速扫描仪扫描考生试卷成电子图像;而后对试卷进行预处理,得到答题区域;继而阅卷系统自动识别信息,实现自动阅卷;最后记录数据及结果并将其存入数据库。
图1 系统流程图
此模块的主要功能是将模板试卷的各部分信息,例如,定位点、考号、客观题、主观题等区域的信息识别并记录到文件中[1]。如图2所示,模板试卷信息识别流程如下:
图2 模板试卷信息识别流程
(1)读入试卷图像并对试卷图像进行去噪、增强、倾斜矫正、二值化等预处理。
(2)识别试卷图像左上、右上两个位置的定位点坐标并记录。
(3)识别考号信息。以左上角定位点为基准,在轴、轴分别投影并比较阈值的方式识别出考号区域的边框坐标,以边框坐标为第二次搜索范围,在轴、轴分别投影并比较阈值的方式识别出每位考号的涂卡区域坐标,之后在每个考号区域内在X轴方向上投影获得数字坐标信息并记录。
(4)识别客观题信息。以左上角定位点为基准,在轴、轴分别投影并比较阈值的方式识别客观题区域的边框坐标,以边框坐标为第二次搜索范围,在其区域内在轴、轴分别投影识别出各选项的横竖坐标信息并记录。
(5)识别主观题信息。以左上角定位点为基准,在轴、轴分别投影获取主观题边框线的坐标,由此获得主观题答题区坐标信息并将主观题答题区域坐标信息写入已知文件。
给定一条直线,用垂直该直线的一簇等间距直线将一幅二值图像分割成若干条,每一条内像素值为1的像素个数为该二值图像在给定直线上的投影[4]。定义给定直线为水平或垂直直线时,二值图像列或行上像素值为1的像素数量之和为该图像的水平或垂直投影[4]。模板试卷客观题标准答案识别的原理[5]:首先利用图像投影算法识别出客观题区域,其次通过图像投影分组算法确定每个题目的涂卡区域,最后将模板试卷图像得到的投影值与设置的阈值比较,分析其投影特征并识别选项。
二值图像投影是在垂直给定方向的二值图像像素值的累加,描述像素点在所选方向上的分布情况[6]。
本系统通过分析试卷图像投影中的峰值特征来进行试卷图像信息的识别。在模板试卷中,通过分析图像投影后的特点发现:图像投影后,是包含投影值和坐标值的点序列,而所需的有效组,是由有效点组成的。
需要设置的参数有:投影值的有效区间(投影值在某一给定区间内的点为有效点)、组宽度(大于某一个给定的组宽度才为有效组)以及组内容忍度(组内两个有效点间所夹的无效点个数)。
图像的投影分组算法的原理[1]:依次扫描投影序列的各点,根据参数判断扫描得到的连续有效点组成的块,是否是所需组,如果是则记录该有效组的首尾坐标,继续扫描直至所有投影序列结束,否则直接扫描下一个投影序列。以下是图像投影分组的算法:
算法1(投影分组算法)
输入:在给定方向上的投影序列:序列长度为L,rejects={reject0(pixle0,co0),reject1,…,rejectL};
输出:投影的分组总数 N 以及分组序列groups={group0(begin0,end0),group1,…,groupN};
步骤如下:
(1)将当前输入作为第一个投影序列reject0,首末坐标分别记为beginCo=0,endCo=0,i=0;
(2)如果所扫描的投影序列为空,则转到第(11)步;
(3)如果当前投影值pixle介于最低阈值Tmin和最高阈值Tmax之间,则该点为有效点转到第(7)步,否则该点为无效点转到第(4)步;
(4)如果末坐标endCo=0,或者当前坐标coi与末坐标endCo的差小于组内容忍度,则取下一个投影,令i=i+1转至第(2)步,否则转至第(5)步;
(5)如果末坐标endCo与首坐标beginCo的差值≥组宽,则其为有效组,转至第(6)步,否则令beginCo=0,
enendCo=0,且取下一个投影,令i=i+1转到第(2)步;
(6)将得到的组坐标(beginCo,endCo)写入分组数组begingroups中,然后将首末坐标值初始化为0,取下一个投影 且令i=i+1转到第(2)步;
(7)如果首坐标和末坐标值为0,即beginCo=0且endCo=0,则表明此为新组的开始,则令末坐标endCo=当前坐标coi,取下一个投影,且令i=i+1转到第(2)步,否则转到第(8)步;
(8)如果当前坐标coi与末坐标endCo之差小于组内容忍度,则令endCo=coi并取下一个投影,且令i=i+1转到第(2)步,否则表明当前坐标已经在组内,转至第(9)步;
(9)如果endCo与beginCo的差大于组宽,则其是一个有效组,转至第(10)步,否则表明该组无效,令末坐标endCo=当前坐标coi,取下一个投影且令i=i+1转到第(2)步;
(10)将该组首末坐标写入分组序列groups中,且令beginCo=coi,endCo=coi,取下一个投影且令i=i+1转到第(2)步;
(11)如果endCo与beginCo的差大于组宽,则其是有效组将组坐标记入分组数组groups中。
模板试卷客观题选项识别的算法[1]如下:
算法2(模板试卷客观题选项识别算法)
输入:模板试卷图像S;
输出:模板试卷中客观题所涂选项;
算法步骤如下:
(1)获取客观题数目N和各客观题选项的坐标信息序列
(2)选取首个坐标信息序列objectCo0,i=0;
(3)如果i>N-1,则客观题所涂选项识别结束,退出此算法,否则转至第(4)步;
(4)根据objectCo[i]值设定所涂客观题选项的大致识别区域range;
(5)在识别区域range内,用投影分组算法查找所涂区域的个数Num及各填涂区域坐标序列
(6)将填涂序列black各坐标序列分别与objectCo[i]中各选项坐标比较,判断坐标位置并得到选项结果;
(7)将得到的选项结果转成字符串连接成答案,取下一道客观题i=i+1,转到第(3)步;
(8)将所有的字符串连接即为整个题组的答案。
本程序通过delphi编程实现,部分主要程序代码如下所示:
通过编程实现得到如图3所示的结果。具体参数设置如图3右侧部分所示。通过使用100份考卷对该系统进行测试,且测试时均采用标准的铅笔填涂,结果的识别准确率为99%(其中只有一份考卷发生了一道题的误判,由于考生涂改过程留下的痕迹与新选答案接近)。
图3 实验结果
通过实验结果可以看出,直方图投影分组算法可以得到客观题答题区域及所选答案。
本文以网上阅卷系统为背景,分析了基于直方图的投影分组算法。实验结果表明,采用上述直方图投影分组方法,能够真实客观地反应试卷图像的客观题信息,且为进一步解决考生试卷客观题自动阅卷提供了方法。
[1]宋铮铮.自动化扫描阅卷系统的研究和实现:[D].保定:华北电力大学计算机应用与技术,2008.
[2]肖利峰,杨永跃.图像处理系统在网上阅卷中的作用[J].Computer Knowledge and Technology电脑知识与技术,2008.
[3]王海.基于 Web Services的网上阅卷系统的设计和实现:[D].上海:华东师范大学,2006.
[4]贾云得.机器视觉[M].科学出版社,2000,31-32.
[5]沈庭芝,方子文.数字图像处理及模式识别[M].北京理工大学出版社,1998.
[6]马颂德,张正友.计算机视觉:计算理论与算法基础[M].北京:科学出版社,1998.