师之友和SheetReader阅卷软件阅卷原理

师之友阅卷软件和SheetReader手机阅卷软件的答题卡识别原理基本是一样的,都是属于基于图片识别的原理。

今天写这篇文章目的在于让用户能够大概知晓软件阅卷原理,然后能够自行地,相对较好地判断或者推断在软件使用过程中识别成功率低、准确率低问题的原因所在,从而去避免导致这些问题的出现,达到提高软件识别准确率的最终目的。

先来介绍一下软件的识别原理。

当软件每获取一张包含答题卡的图片(这些图片可能是取出USB摄像头设备,或者存储在电脑中的图片,或者是取自手机摄像头拍摄),首先就是试图从图片中找到只包含答题卡的区域(本质上应该为矩形,但由于拍摄角度等问题可能是梯形,甚至不规则四边形),然后通过一定的算法,软件会将答题卡区域恢复为矩形图片。

得到答题卡区域的矩形图片了,接下来相对就好解决一些了。具体是怎么解决的呢?简单讲,就是切割,很机械的切割。我们看下边的答题卡图片,软件识别出答题卡区域后,对答题卡区域进行切割,然后每一个小矩形都是一个“数据格”,这些数据格就可以去表示一个“涂点”是否被填涂。当然,并非每一个数据格都实际表示一个涂点(因为可能没用着),只是说能够表示一个涂点。

如何去判断一个“涂点”是否被填涂了呢?答案就是:涂点覆盖率。这个概念展开来讲,就是一个数据格的黑色像素总数(也可理解为黑色区域面积,因为在图片上讲,面积就是一些图片像素的和)与数据格的总的像素数的比值。

如果软件在识别过程中,我们把这个值设置为20%,那么针对一个具体的数据格来说,如果这个数据格的黑色像素总数与总像素数的值大于20%,那么软件就会判定这个数据格,也就是涂点是涂了的,反之就是没涂。这是软件判断一个涂点是否涂的了的基本原理。

之后,软件都会依据这个基本原理去判断答题卡上的所有信息,包括考号,各题目选项,主观分等信息,从而完整的得出这个卡的所有填涂信息,所以其他后续处理的具体细节就就没必要多说了。而且,也因为其他后续的处理基本不会影响阅卷准确率。

稍微总结一下,软件识别原理就是找答题卡区域,接着拟合为矩形,然后机械地(注意:是机械地,就是傻傻地,不够明智地)进行数据格切割,然后根据答题卡的格式依次进行相应位置数据格是否填涂的判断,最后完成一张卡的识别。

细心的你可能会发现问题。在这里,我们也直接抛出这两个重要细节:

一是如何保证在软件识别并拟合为矩形图片,在切割后数据格没有错位?

直接点回答就是切割现在只能是机械地,傻傻地,因为目前没有别的好的办法。所以我们就应该回退一步,去考虑:如何才能使这个拟合后的区域就恰好是我们想要的答题卡区域。

这个的实现我们其实可以类比,如何才能用摄像头(无论是电脑摄像头还是手机摄像头)拍出像扫描仪扫描出来的图片一样,使图片中的答题卡区域尽量保持为“标准的矩形”,从而让软件识别出来答题卡区域后,在切割后尽量保持数据格不错位。

所以你应该知道摄像头阅卷以下两个要求的原因了:

阅卷时使用的摄像头不能有明显的变形(普通电脑摄像头由于成本的原因,导致图片或多或少有一定变形,通常为桶状变形)。

答题卡一定要完全平铺于桌面阅卷,不能有褶皱。千万不要一只手拿着答题卡进行阅卷啊,千万不要,已经有很多用户这样阅卷操作,然后来质疑说软件识别效果不好了。

下边上一个就是用手拿着答题卡进行阅卷的不正确例子。会发现左侧的数据格许多是错乱了的,这样也就导致识别极不准确。

所以为什么手机阅卷(SheetReader)要比电脑摄像头阅卷要好?因为现在智能手机摄像头质量要高的多,基本不会有形变。

为什么师之友扫描版的阅卷(特指处理扫描仪扫描出来的高质量无形变答题卡图片)要比摄像头的阅卷效果要好,原因不用多说了吧。

二是在数据格没有错位的前提下,如何去准确的确定数据格的“涂点覆盖率”的值?

判定原理其实很简单,就是软件会把灰度图片转换成二值化图片(也就是呈现要么纯黑,要么纯白,而没有灰色层次感的图片),然后就可以简单的统记黑色像素的数量了,从而得到涂点覆盖率的值。

这里也会有一个问题就是:依据什么样的原则去把不同的灰色转化为或者纯白或者纯黑呢?

不往深了讲,简单讲就是颜色越深的就很有可能会转换为黑色,颜色越浅的就很有可能转换为白色。所以,铅笔涂的答题卡效果不如用油性Mark笔涂的答题卡的识别效果好。主要是因为铅笔涂的通常颜色较浅,而且比较不好的是铅笔涂的卡有可能造成涂点的镜面反光效果,导致在摄像头拍照时,这样的涂点完全呈白色,从而造成识别准确率的降低。所以如果答题卡多是用铅笔填涂的,那么在阅卷时对光线环境有一定要求(主要是指附近不能有强光源)。

但扫描仪在扫描答题卡时,由于扫描环境是相对封闭的,所以不会出现反光效果,所以用扫描仪阅卷时,铅笔的填涂效果也是可以接受的(但,仍然不如用油性Mark笔涂的好)。

我们看下图,就是铅笔涂的效果与用Mark笔涂的效果对比,显然Mark笔更黑,在二值化时,转化效果更佳(但:注意,图中的铅笔填涂也是可以很好的识别的)

再看下图,我们在答题卡上方打开了一个手机LED灯,会明显发现铅笔填涂的答题卡的1-20题多数填涂因为反光,导致涂点的黑色信息丢失了。这样就会造成识别错误,造成漏选。但mark笔填涂的不受影响!

我们再来看一下经过软件二值化后(就是将图片进行绝对的黑白化,要是纯黑,要么纯白,就是没有了“灰度”这个样子。这样方便软件处理,当然,软件也是必须会经过这样的处理的),图片是什么样的呢?

显然,反光严重的区域的涂点信息就丢失了,自然也会导致软件出现较明显的识别错误。但是,务必请知道:这不是软件的问题,和软件没有任何关系,因为我们在给软件的原材料之前,材料即图片信息已经丢失了!!


啰啰嗦嗦,现在总结一下,本文是想说明两点:

  • 摄像头阅卷时,拍摄的答题卡没有明显形变,对阅卷准确率提高有很大作用。
  • 如果让学生填涂时涂点颜色要深,对阅卷准确率提高有很大作用。

还有通过本文,也希望用户能够对涂点覆盖率这个值的调节有一定的认识。很多用户反应说为什么有时读同一张卡,分数不一样(注意:以后不要问这样的问题了,因为软件会勾勒出涂点,看两次勾勒的不同就知道识别出错在哪个涂点了)?

我们假定两次读卡的图片都非常标准,也就是说答题卡数据格没有错乱。一个学生的某个数据格的实际覆盖率刚好是20%。那么由于两次拍照造成的微小误差,导致第一次覆盖率为21%,第二次为19%,这样就导致了两次识别结果的不一样。这样的情况是很有可能存在的。

如何避免,让学生在涂黑的前提下涂满啊,尽量远离我们软件限定的值啊:他的实际覆盖率为35%的话,你拍一万次他也不可能识别错误嘛。


初次使用软件时,师之友阅卷系统软件可以在摄像头阅卷界面,勾选上【显示识别详情图片】;SheetReader用户可以在阅卷界面,点击【菜单】-》【参数设置】-》【总是显示阅卷详情图片】。

这样每当软件阅卷成功一张答题卡时,都会弹出一个类似如下的图片界面:

软件会把“软件通过算法判断、认为的所有涂点”都会用红色小矩形勾勒出来,这样用户就能清晰的知道软件的阅卷情况,更加有助于用户理解阅卷原理、分析问题。绿色是软件判断这个题目没有任何选项填涂的意思,即该题目漏选。

本文肯定对师之友用户和SheetReader用户有帮助。

11 comments

  1. 网站改版了,简洁大方,很好。我用了最新的版电脑版阅卷系统,还用原来的答题卡依然可以吧。我原先印制了好多好多。

Leave a Reply

电子邮件地址不会被公开。 必填项已用*标注