购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

第1章
基于图像分割的答题卡智能识别

1.1 应用背景

答题卡又称为信息卡,广泛应用于考试答题、问卷调查、投票评分等场景。通过计算机进行智能读卡阅卷已成为主流趋势,相比于传统的人工阅卷,计算机智能阅卷具有高效、准确、客观的特点,可支持自动化计分、统计、存储,也可以进行个性化的数据分析。例如,老师可将成绩存储到数据库,调阅不同题目的出错率、统计相同知识点的答题情况等,做出有针对性的专题型讲解,提高教学效果。因此,对答题卡进行智能化识别,并按统一格式规范化存储,具有重要研究意义和实用价值。

根据答题卡的格式布局及答案类型的不同,可将其分为标准的网格机读类型、规范的文字写作类型以及特定的区域填写类型。其中,特定的区域填写类型一般是将答题区域集中到试卷的指定区域,例如试卷头部或尾部,通过集中撰写答案的方式来进行统一批改。考虑到此类答题卡的个性化特点,对其批阅一般是依赖于人工校对、计分,难以做到自动化的智能识别,长时间的人工大量批阅也容易出现批改错误、计分错误等问题。因此,本案例针对此类答题卡,基于计算机视觉处理技术设计一套智能化分析流程,可对答题区域进行分割、识别,实现自动化阅卷的功能。

1.2 答题卡预处理

本案例选择某实际考试的答题复印/扫描图作为实验对象,重点对选择题的答题区域做图像增强处理,提高目标内容的对比度。

如图1-1所示,答题区域集中在试卷头部的网格区域,并且呈现黑白文字图的特点,因此我们可以采用基本的图像灰度化、图像二值化及图像反色来进行预处理,提高区域对比度,关键代码如下所示。

图1-1 答题卡图像示例

程序首先通过imread用于读取指定路径的图像得到数字图像矩阵,rgb2gray用于将RGB图转换为灰度图矩阵;然后通过graythresh用于计算灰度图的otsu阈值,im2bw用于进行二值化变换并反色;最后采用形态学水平闭合操作突出答题区域并通过bwareafilt提取最大面积的连通区域,经imwrite函数写到指定的图像文件。运行后,得到的结果如图1-2所示。

如图1-2所示,通过预处理得到了对比度增强的二值化图,突出了答案区域的文本内容,可以发现答案区域呈现出了网格划分、数字题号、字母答案的特点,并且每个题的答案是单选的A、B、C、D之一,可考虑通过图像分割及模板匹配等方案进行答案定位及识别。

图1-2 答题卡图像预处理

1.3 答题卡网格化分割

根据答题区域的网格化特点,可以对网格进行水平、垂直分割,结合标题、答案的区域大小进行内容定位。假设图像的行数即高度为 M ,列数即宽度为 N ,对预处理后的答题卡进行水平、垂直方向的积分投影计算,计算公式如下:

因此,可对图像进行行列方向的求和得到积分投影序列,通过绘制投影曲线,将其对应于图像的行列分布来得到网格线定位结果,关键代码如下所示。

运行后,可得到归一化后的水平、垂直方向的投影曲线,并将其叠加绘图到原图,具体如图1-3和图1-4所示。

图1-3 水平方向投影曲线

注意到这里采用归一化方法,并分别将水平、垂直方向的投影曲线的尺度对应到图像宽度、高度,由此可方便地与原图叠加分析得到网格线的位置定位。

图1-4 垂直方向投影曲线

如图1-3所示,水平方向的积分投影在水平的网格线位置呈现出明显的峰值;如图1-4所示,垂直方向的积分投影在垂直的网线位置呈现出明显的峰值。但是,垂直的网格线由于图像采集过程中的畸变干扰,呈现出一定的扭曲现象,这导致右半部分的垂直网格线积分投影峰值不够突出,需要一定的补充计算。同时,水平和垂直的波峰分布也具有一定的邻域重叠特点,这正是网格线的宽度引起的波峰重叠,也需要一定的合并计算。

因此,考虑到网格分布的规则性,可根据以计算网格线的间隔以及网格的个数来进行网格线邻域的合并,以及垂直网格线的自动补充,关键代码如下所示。

程序运行后,可绘制水平和垂直的网格线,并观察与实际网格的契合度,效果如图1-5所示。经积分投影方法可以定位答题区域的网格线,并且根据答题区域呈现正方形特点可以方便地定位出答题框,再根据框内的像素分布即可提取有效的答案图像,用于匹配识别。

图1-5 答题区域的网格分布

1.4 答题区域检测

答题区域网格线定位后,可通过预设的题目分布进行答题区域的检测。因此,本节采用循环遍历网格区域的方法,定位有效的答题区域,对内部的像素进行统计分析,判断是否存在答案字符图像。答题区域检测的关键代码如下所示。

根据水平网格线的特点,采用2间隔的扫描方式跳过标题栏,然后遍历垂直网格提取每一行内的答题区域。通过网格区域做二值化筛选,判断内部是否存在字符答案,进而得到答题区域的检测结果。如图1-6所示,绿色实线表示检测到了答案字符区域,红色虚线表示未检测到答案字符区域,可以发现检测结果也与实际的答案分布情况相符。

图1-6 答题区域检测结果

1.5 答案识别

通过对答题区域的网格化分割,以及对答案字符的检测,我们可以得到顺序排列的答案字符图像,用于字符的匹配识别。考虑到单项选择题答案的特殊性,可采用经典的模板匹配算法,将待识别的答案字符图像与标准的字符“ABCD”图像进行模板匹配,得到最相似的字符输出作为识别结果。因此,本节首先进行标准的字符模板图像生成;然后对答案字符图像进行相关性计算,得到模板匹配结果;最后输出答案字符并将其标注到答题卡图像上进行可视化分析,并结合标准答案设置计算试卷得分。

1.5.1 字符模板图像生成

针对字符“ABCD”,通过字符显示及自动化截屏裁剪的方法可生成一套指定字体的字符模板图像,关键代码如下。

运行后,得到文件db.mat,存储了字符模板图像、字符模板内容,模板图像可集中显示如图1-7所示。字符模板图采用黑色底图、白色前景的形式,尺寸统一为[50 30]的大小,这便于进行统一匹配识别。

图1-7 字符模板图像

1.5.2 字符模板匹配识别

模板匹配识别方法的关键在于相似性度量的计算,常用的计算方法有欧氏距离、汉明距离、余弦距离、相关系数等,考虑到字符图像的规范化特点,本节采用相关系数法进行相似性判断,并将相关系数最高的字符作为模板匹配的输出结果。假设对 m n 列的矩阵 A B 计算相关系数,公式如下:

相关系数越高,表示矩阵 A B 相关性越强,将其应用于答案字符图像的模板匹配识别过程,关键代码如下。

对定位到的答案字符图像,进行有效区域的定位,并统一尺寸为[50 30],将其应用于字符模板库进行相关系数计算,并提取最大相关系数对应的字符作为匹配识别结果。

1.5.3 识别结果可视化

网格内的答案字符图像识别后,可以将字符结果输出到对应的网格内进行显示,结合标准答案,比较分析识别结果,关键代码如下。

应用于当前处理的答题卡,对答案字符图像进行识别并对比显示,具体效果如图1-8所示。如图1-8所示,可以发现采用基于相关计算的模板匹配方法能正确识别网格内的答案字符。为了进行验证,将此处理流程应用于其他的答题卡图像,得到的结果如图1-9和图1-10所示,选择其他的答题卡图像依然能得到正确的检测及识别结果,方法具有一定的通用性。

图1-8 答题卡识别结果1

图1-9 答题卡识别结果2

图1-10 答题卡识别结果3

1.6 案例小结

答题卡图像识别是典型的计算机视觉应用,覆盖了图像预处理增强、图像分割、匹配识别等模块,是一个视觉智能分析的综合案例。本案例主要使用了基础的二值化分割提高图像对比度、积分投影分割进行网格线定位、模板匹配进行字符识别,最终得到完整的答题卡图像预处理、分割、识别、计分的处理流程。

此外,在答题卡图像分割识别的实现过程中,每个模块又可使用多种方法进行处理,读者可以考虑融合其他方法进行改进,例如霍夫直线检测、神经网络字符识别等,进一步探索图像分割及识别的应用方法。 PnLLXFijHGhgSVoszdohN6dkXmZ0r0Gu6D+z1Juuz3z1+Hfq3MJnZN7monILsedc

点击中间区域
呼出菜单
上一章
目录
下一章
×