基于计算机视觉的答题卡识别系统设计与实现*
2019-07-12张菲菲种兰祥
张菲菲,种兰祥
(1.西北大学 现代教育技术中心,陕西 西安 710069;2.西北大学 信息科学与技术学院,陕西 西安 710069)
一、引言
光标阅读机(Optical Mark Reader)作为自动化阅卷工具,在很大程度上能减轻教师在批阅客观考试题上花费的精力,但由于其属于光电设备,本身的价格和维护成本较高,且只能用阅读专用铅笔在专用答题卡上填涂答案,还不能保存答题卡的数字图像,难以普及到个人使用。[1][2]本文采用消费级USB摄像头,以VS2012为开发平台,选用MySQL数据库,融合计算机视觉、Ajax和Socket相关技术,设计开发了成本低廉、使用方便,对纸张和填涂笔无特殊要求,适合教师个人、偏远地区和普通学校使用的客观题答题卡识别系统。
二、系统主要功能的设计与实现
答题卡识别系统由用户管理、图像处理、答卷识别、数据管理四部分组成,每一部分有若干个功能模块,结构如图1所示。其中,用户管理包括个人密码账号管理、登录和注销等日志管理。图像处理包括图像采集、图像存储、图像预处理和答题卡模板设计。答卷识别包括定位信息提取、精确定位和填涂信息识别。数据管理包括学生信息管理、学生成绩管理和标准答案管理。
图1 系统功能图
1.图像处理
图像处理部分包含三个功能模块。实际上,系统实现时首先要做好答题卡模板设计。本文在分析现有答题卡结构与特点的基础上,考虑到通用性,方便用户使用普通激光打印机和普通A4复印纸就可打印答题卡,自行设计了答题卡模板,由六个分区构成,分别是①标题区、②考生信息填写区、③学号或准考证号填涂区、④答案填涂区、⑤信息提示区、⑥定位信息区,如图2所示。本文使用Visio软件绘制答题卡标准模板后存储为PDF文件供打印使用,存储为JPG格式,大小为2480×3508像素作为标准模板图像。
教师使用本系统时,存在摄像头性能参数不一、光照环境各异、采集的图像会发生倾斜或变形等多种情况,故必须对答题卡图像进行图像灰度化、图像二值化、图像倾斜矫正等预处理,以尽可能地减小噪声和人工操作对图像识别的影响,保证后续图像识别结果的正确性。
图2 答题卡模板
同样,本文将待阅答题卡图像进行缩放,使其和答题卡标准模板图像大小相同,以保证最好的图像识别效果。
图像灰度化和二值化采用常规方法处理。[3][4]由于在采集图像时,拍照设备和答题卡是平行的,属于平面倾斜。因此,图像倾斜矫正采用仿射变换方法[5],仿射变换是一个二维坐标(u,v)到二维坐标(x,y)之间的线性变换,图像仿射变换的过程就是图像倾斜矫正的过程,且变换后的图像具有平直性、平行性。其坐标映射关系如公式1所示,其中(u,v)为源图像坐标,(x,y)为变换后图像坐标,a11、a12、a21、a22表示图像旋转、缩放变化,a13、a23表示图像的平移量,仿射变换矩阵。
要实现答题卡图像的倾斜矫正,首先要提取答题卡图像角定位点坐标,由于三个点可以确定一个面,因此,在待阅答题卡图像角定位点的左上角坐标取(u1,v1)、(u2,v2)、(u3,v3),对应的在标准模板图像角定位点的左上角坐标取(x1,y1)、(x2,y2)、(x3,y3);然后,建立待阅答题卡图像与模板图像相应角定位点坐标的映射关系,将这六个点代入(公式1),解六元一次方程组(见公式2),即可求得待阅答题卡与标准模板图像之间的仿射变换矩阵A。
最后,根据仿射变换矩阵A,对待阅答题卡图像角定位点组坐标进行插值计算,得出矫正后答题卡图像角定位点坐标,对其标记并做输出。即可实现对待阅答题卡图像的倾斜矫正,进而得到矫正后答题卡图像效果图(见图3),为后续的图像识别奠定了重要基础。
2.答题卡图像的识别
识别答题卡图像,需要进行定位信息提取、精确定位和填涂区识别等。答题卡定位信息包括答题卡四个角定位点信息和定位线信息。定位线包括顶部定位线、右侧定位线和底部定位线,分别由11个、34个、20个矩形定位信息点组成,共有65个定位信息点。
提取答题卡角定位点信息,常用边缘检测、轮廓区域检测、角点检测、模板匹配等方法。[6]边缘检测和轮廓区域检测利用图像边缘的突变性质来检测并提取其边缘信息,适合处理没有发生透视情况的倾斜矫正,处理范围比较局限,[7]由于摄像头在采集答题卡图像时避免不了图像发生透视的情况,所以这种方法不能实现在透视情况下对答题卡角定位点的提取;采用角点检测来获取答题卡图像的角点特征,其特点是检测精度高、运算速度慢,[8]由于答题卡四个角定位点简单明显,如果采用角点检测来提取答题卡角定位点信息,其运算速度太慢,延长了角定位点信息提取的时间,因此这种方法不适用于对答题卡角定位点的提取;采用模板匹配方法提取答题卡图像的角定位点,这种方法简单易行,能弥补前两种方法的不足,更适用于答题卡角定位点信息的提取。
图3 答题卡图像效果图
模板匹配是当模板图像块的图案以图像的形式表现时,根据该图案与待阅答题卡各个局部的相似度来判断其是否存在,并求得模板图像块在待阅答题卡中的位置。[9]待阅答题卡图像角的定位点是59×59像素的图像块,称为模板图像块。设待阅答题卡图像函数为I(x,y),模板图像块函数为 T(x,y),相似度函数为 R(x,y),将待阅答题卡图像分成左上、右上、左下、右下四部分,分别在这四个部分里找每个部分的角定位点信息;采用归一化相关系数匹配法(见公式 3)计算,R 在(0,1)之间取值,R越大表示匹配程度越高。当答题卡图像扫描完毕时,将最大的R标记并以坐标点的形式输出,R取最大值时,即答题卡角定位点的左上角坐标信息(以左上部分为例,如图4所示)。
图4 答题卡图像左上角坐标信息
要提取答题卡图像的定位线信息,首先是在矫正后的二值化图像中,从答题卡图像顶部、右侧、底部分别提取像素大小为 2478×60、60×3506、2478×60 的感兴趣区域。然后,由于答题卡图像在水平方向上的投影就是每行的灰度累计值,这些值就构成了水平方向的投影曲线;图像在垂直方向上的投影就是每列的灰度累计值,这些值就构成了垂直方向的投影曲线。因此,分别计算答题卡图像顶部、右侧、底部定位线在水平方向、垂直方向、水平方向的投影曲线。最后,通过分析投影曲线的特征,采用差分遍历向量法[10]得出投影曲线的波峰位置并做输出(见图5),从而获取到答题卡定位线的信息,即每个矩形定位信息点的波峰位置,对后续图像的精确定位起到关键作用。
图5 定位线波峰位置标记图
精确定位,包括对准考证区和答案填涂区每个选项的定位;答题卡顶部、右侧分别由11个、10个矩形定位信息点共同定位110个矩形定位信息点,即准考证区域;答题卡底部、右侧分别由20、24个矩形定位信息点共同定位480个矩形定位信息点,即答案填涂区。采用逐步遍历的方法定位到每个选项左上角的坐标信息并做标记(见图 6、7)。
图6 准考证区精确定位
图7 答案填涂区精确定位
对于答题卡图像填涂区域的识别,从每个选项的左上角坐标开始,从左到右、从上到下检索,累计非零像素点的个数即每个选项的填涂面积,当实际填涂面积大于等于平均灰度面积的60%时,就判定为已填涂并且进行标记,否则视为没有填涂(见图8)。
图8 填涂信息识别
3.B/S架构实现
本文完成了单机版和B/S架构的答题卡识别系统。在这里,主要阐述B/S架构的答题卡识别系统的实现过程。首先,连接好摄像头、支架、底座等硬件设备,在计算机中打开客户端主界面,选择页面自动加载目前可以使用的摄像头,在主界面的下拉菜单里,选择要采集答题卡的摄像头,点击“开启摄像头”按钮,在主界面的左下方区域会出现摄像头拍摄的视频画面;其次,调整答题卡位置,使其答题卡图像四个角定位点完全出现在摄像头画面中,并且尽可能保证其位置不倾斜,周围光照等环境最佳,点击“空格键”,即开始识别,通过TCP通信[11],将答题卡图像数据传给应用程序,进行识别处理;接着,应用程序通过服务器端,收到答题卡图像数据,通过图像处理算法进行识别,将识别出的答案与数据库中的标准答案进行对比计算出分数,将准考证号、分数、识别后的文件名,存入数据库中,通过TCP通信,将识别结果返回给客户端;最后,客户端将识别的准考证号、分数显示在主界面上,同时,主界面显示了识别之前答题卡图像填涂情况和识别之后标记的答题卡图像的填涂情况,可以直观地对比得出考生所填涂的信息是否被识别。
在实现过程中,含有标准答案的答题卡图像是通过Visio软件进行填涂、打印而得到的。标准答案的数据是通过摄像头采集之后,进行图像处理得到的,同时,需将标准答案数据存入数据库中。
三、系统测试
测试坏境:主机为宏碁4752G,内存4G,Windows 7操作系统,摄像头为普通视频摄像头,像素为1200W,共测试300份答题卡,每份120道题,其中含擦除不干净、填涂深浅不一等各种特殊情况。
测试结果:对于规范填涂的答题卡,识别率是100%;对于填涂不规范并且填涂面积小于矩形框的一半的答题卡误判率为0.3%。
四、结束语
答题卡识别系统是计算机视觉研究的一个典型应用,将教师从繁重重复的客观题阅卷劳动中解放出来,并且能够对成绩排序分析,辅助教师调整教学方案。也让偏远地区和经费紧张地区的中小学教师能够使用上信息化的教学系统,享受到信息化发展的红利。对于其它类型的大型考试,以及当前推行的过程性评价中应用随堂测试,更具有广泛的应用前景和实用价值。当然,如何提高答题卡识别的自动化程度,还需要进一步研究。