基于图像识别的自动阅卷系统设计

来源:期刊VIP网所属分类:教育技术发布时间:2012-11-19浏览:

  摘要:本文运用图像识别技术来对答题卡进行识别,旨在解决对书写工具约束、要特制答题卡等问题,实现了答题卡的计算机自动识别。答题时可采用打钩的方法,方便快速。实验结果表明,本文所提出的算法具有100%的识别率。

  关键字:图像识别,答题卡,小波变换,区域连通

  The Design for Auto Grading System Based on Image Recognition Technology

  Abstract:Comprehensive usage the theory of image processing and pattern recognition to set up the recognition system of a card of answer.Carried out the computer recognition of a card of answer, adopt the method answer of beat the hook, convenience, fast. The experimental result shows , this algorithms put forward have 100% recognition capability.

  Keyword:image recognition,card of answer,wavelet transforms,region to connect

  中图分类号:S611 文献标识码:A 文章编号:

  引言

  目前英语四六级考试大多采用光标阅读机来进行自动阅卷。光标阅读机通过光电头对填涂的答题信息进行识别,并通过阅读机专用软件进行判卷。光标阅读机只对黑色敏感,答题卡上原本印有黑色的条块,来帮助光标阅读机确认答题卡的方向与位置,铅笔在答题卡上的填涂的黑块和印好的黑块共同组成了一个只有黑与白的图像。其原理与二进制"0""1"近似,光标阅读机扫描后与预先存储的答案生成的图像进行比较,相符的部分就是得分,不符的就是错误。光标阅读机对考试的填题方式限制较多,对考试用笔、填涂的范围与轻重要求较高,拖慢了考生的填题速度,甚至由于考试填题方式的错误,对考生成绩造成影响。

  1、问题分析

  若考生在答题时通过在答题卡中的选项上打“√”来答题,可极大的提高考试的答题速度。通过对英语四六级考试的答题卡进行分析,答题卡的大小及各题选项中的位置都是固定的,若是将答题卡扫描出计算机图像,并利用图像识别技术进行分析,很容易根据答题卡选项的分布情况来确定各选项在答题卡图像中的位置。又因答题卡的选项区域中,未勾选答案时与勾选答案后该区域颜色值的分布情况有很大的差别,因此可以通过这个特征来判别该区域是否被考生所勾选。

  基于图像识别的自动阅卷系统的开发主要要解决两个问题,一个是对答题框中的“√”进行识别,另一个是提高答题卡图像有干扰情况下识别的正确率[1-3]。

  系统的具体识别过程:软件读取答题卡图像,对图像进行阈值分割并二值化图像,找到答题卡的水平与垂直投影线后再对图像投影,利用小波变换求其答案框的中间坐标,根据中间坐标,利用求最大概率值算法求其上下前后间距,结合中间坐标得到答案框的坐标。得到各区域坐标后,利用该区域颜色特征值的变化,判定该选项是否被勾选。

  2、阈值确定算法

  图象的二值化需要一个阈值,先对图象进行纵向扫描,利用双峰算法找到图象中线条部分与空白部分的一系列中心坐标,对各自的一系列中心坐标点的灰度进行最大概率值计算,取各自概率最大的值的平均值,以此值作为阈值,二值化图象[4]。设B2为100时为红线水平中点的象素灰度相对值,B2为102时为白色部分的中点象素灰度相对值,算法如下:

  for(y=y1+3;y

  再令z=1; L=1; H=0;

  for(y=y1+4;y

  switch(z) {//先从线外一点进入case1,if不成立跳转到case-1,L=y-1,

  case 1;

  若w[y-1]>=w[y],此时找到正峰点,红的灰度低,白的高,且y-1

  若w[y-1]>TD,则y-1为浅色点,即红线下边缘点并令H=y-1,否则L=0

  若L>0 ,B2[(L+H+1)/2][x]=100,否则z=-1;

  case -1;

  若if(w[y-1]<=w[y]),此时找到负峰点

  若w[y-1]<-TD,则 y-1为红线上边缘外一点,并令L=y-1,否则H=0

  若H>0 ),则B2[(H+L+1)/2][x]=102,否则z=1;

  3、求水平和垂直投影线算法

  用两条间距较小的水平夹线平移至线条两端,横向扫描两条直线间的象素点,记录每水平行象素点的个数,如果大于一定的值,则其为一直线,取其中一条象素点最多的作为水平投影线。

  找垂直投影线的夹线法算法如下:

  for(x=x1;x

  for(y=y1;y

  for(i=0;i<=3;i++)

  若B2[y][x-i]==101,则w[x]++;

  若B2[y][x+i]==101,则 w[x]++

  令xo=x1;

  for(x=x1+1;x

  若w[x1]<=w[x],则xo=x; w[x1]=w[x];

  找水平投影线的双夹线法算法如下

  for(y=y1;y<=y2;y++),令w[y]=0;

  for(x=x1;x

  for(i=0;i<=2;i++) //允许线条存在不水平,邻域即可

  若B2[y-i][x]==101),则 w[y]++;

  若B2[y+i][x]==101),则w[y]++;

  令yo=y1;

  for(y=y1+1;y<=y2;y++) //找到W[y]最大,即水平方向101点最多的线

  若w[y1]

  4、小波变换算法

  小波变换是对一个信号与该小波基进行卷积运算,它把信号分解成位于不同频带和时段内的各个成分,是一种时频分析方法。采用连续小波函数Marr小波,就可以根据连续小波变换的卷积定义对信号进行运算。计算机采集实际波形信号时必须以一定的时间间隔采样数据,只要这个时间间隔满足先农采样定理,就可以完全反映连续信号的全部信息。鉴于计算机离散采样的特点,在算法实现上必须考虑这一特点,即要按照数字信号处理的方法实现连续信号的处理,采用连续小波变换的离散化形式进行计算[5]。 系统采用的小波变换算法如下:

  令a=2.0/sqrt(3.0*PI);

  for(n=0;n<=D;n++),令b=n*4.0f/D,wave[n]=a*(b*b-1)*exp(-0.5*b*b);

  for(x=0;x

  for(n=1;n

  若x-n>0,则b+=f[x-n]*wave[n];

  若x+n

  g[x]=-(short)b;

  5、区域连通算法

  区域填充指先将区域的一点赋予指定的颜色,然后将该颜色扩展到整个区域的过程。区域填充算法要求区域是连通的,因为只有在连通区域中,才可能将种子点的颜色扩展到区域内的其它点。区域可分为4向连通区域和8向连通区域。4向连通区域指的是从区域上一点出发,可通过四个方向,即上、下、左、右移动的组合,在不越出区域的前提下,到达区域内的任意象素;8向连通区域指的是从区域内每一象素出发,可通过八个方向,即上、下、左、右、左上、右上、左下、右下这八个方向的移动的组合来到达[6]。系统采用的小波变换算法如下:

  for(x=x1+1;x

  for(y=y1+1;y

  令n=150;

  for(yo=y1+2;yo

  for(xo=x1+2;xo

  若B2[yo][xo]==101,则令s=0, sp=0,Stk[0].x=xo,Stk[0].x=yo

  while(1)时,B2[y][x]=n,s++,y--

  若B2[y][x]==101,则B2[y][x]=n, Stk[sp].x=x,Stk[sp].y=y,sp++,

  若sp<=0且s<10时

  for(x=x1;x

  for(y=y1;y

  若B2[y][x]==n,则B2[y][x]=103,n++;

  sp--,x=Stk[sp].x; y=Stk[sp].y,s=0;

  for(yo=y1+1;yo

  for(xo=x1+1;xo

  若B2[yo][xo]>=150,则B2[yo][xo]=101; s++;

  6、钩子识别算法

  可用勾选答案后该区域颜色值的特征来进行识别,算法如下:

  for(n=0;n<6;n++)

  memset(L,0,sizeof(L));

  memset(H,0,sizeof(H));

  x1=ABCD[n*5][0].x1; x2=ABCD[n*5+4][0].x2;

  for(x=x1;x<=x2;x++){

  for(y=ABCD[0][0].y1;y

  若B2[y][x]==100,则L[pix[y][x]]++;

  否则若B2[y][x]==102,则H[pix[y][x]]++;

  令Ymax=Ymin=0;

  for(x=1;x<256;x++)

  若L[x]>L[0]) ,则 L[0]=L[x]; Ymin=x; }

  若H[x]>H[0],则 H[0]=H[x]; Ymax=x; }

  令t=(Ymax+Ymin)/2;

  for(x=x1;x<=x2;x++)

  for(y=ABCD[0][0].y1;y

  若pix[y][x]

  for(m=0;m<30;m++)

  for(n=0;n<4;n++)

  令ABCD[m][n].Mark=IsMark(ABCD[m][n].x1,ABCD[m][n].y1,ABCD[m][n].x2,ABCD[m][n].y2);

  7、实验及结论

  本文对答题卡的自动识别进行了初步研究,提出了基于图像识别的答题卡识别方法。在实验中,以英语四级答题卡计算图像研究对象进行实验。实验结果如图所示。

  实验结果表明,本文提出的方法具有和好的识别能力,图像针对旋转或缩放后的图像可以达到100%的识别率。

  参考文献

  1邓炜,王军安,杨永生.计算机图像识别系统的设计与实现[J].计算机应用研究,2000,17(6);79~80

  2张量,詹国华.开放式、智能化计算机考核阅卷系统的设计与实现[J].计算机工程与应用,2001(10)

  3杨俊,陈明,张晓平.基于视觉检测技术的微文字识别系统设计[J].测控技术,2003(09)

  4周军,彭培欣,范永法.图像处理和识别技术在自动磁粉探伤系统中的应用[J].工矿自动化,2003(6);12~14

  5李开宇,张焕春,经亚枝.基于FPGA的高速高质量图像旋转[J].中国图象图形学报,2004(03)

  6孙羽菲.低质量文本图像OCR技术的研究[D].中国科学院研究生院,2005

期刊VIP网,您身边的高端学术顾问

文章名称: 基于图像识别的自动阅卷系统设计

文章地址: http://www.qikanvip.com/jiaoyujishu/5368.html