答题系统设计

核心提示本科毕业设计GRADUATION DESIGN本科生院制2022年6月摘要考试在当前的教育教学中举足轻重,是衡量教学质量的重要指标,然而阅卷批改却是一项繁杂重复的劳动,往往会给阅卷人带来很大的压力,浪费阅卷人的时间和精力,随着计算机技术的发

本科毕业设计

GRADUATION DESIGN

本科生院制

2022年6月

摘要

考试在当前的教育教学中举足轻重,是衡量教学质量的重要指标,然而阅卷批改却是一项繁杂重复的劳动,往往会给阅卷人带来很大的压力,浪费阅卷人的时间和精力,随着计算机技术的发展进步,渐渐出现了很多机器阅卷的方式,但这些方式仍然存在成本高、无法大范围普及的缺陷。基于上述问题,本文研究设计一种成本低、使用方便的试卷批改系统。

本系统设计主要运用机器视觉、图像处理以及字符识别技术,实现对考生手写简单题型答案的阅卷和批改,包括选择题、判断题和计算题等题型,统计考生试卷所得分数,并将所有考生的成绩进行统计和排名。实现了代替阅卷人对试卷客观题的阅卷批改,极大减轻阅卷人的负担。

本系统设计是目前计算机技术应用于教育方面的重要表现之一,具有一定的实际应用价值,同时对减轻教育考试中阅卷人的阅卷批改负担具有一定的现实指导意义。

关键词

:机器视觉 图像处理 试卷批改 字符识别

Design of test paper correcting system based on machine

vision

ABSTRACT

Examination plays an important role in current education and teaching. It is an important index to measure the quality of teaching. However, marking and correcting is a complex and repetitive work, which often brings great pressure to the marking people and wastes the marking people's time and energy. With the development of computer technology, many machine marking methods have gradually appeared, but these methods still have the defects of high cost and can not be popularized on a large scale. based on the above problems, this paper studies and designs a low-cost and easy-to-use test paper correction system.

The design of this system mainly uses machine vision, image processing and character recognition technology to realize the marking and correction of candidates' handwritten answers to simple questions, including multiple-choice questions, judgment questions and calculation questions, count the scores of candidates' test papers, and count and rank the scores of all candidates. It realizes the marking and correction of the objective questions of the test paper instead of the marking person, which greatly reduces the burden of the marking person.

The design of this system is one of the important manifestations of the application of computer technology in education. It has a certain practical application value. At the same time, it has a certain practical guiding significance to reduce the burden of marking and correcting in educational examination.

K

ey wordsPlant design Sensitivity analysis Energy balance calculation Water pinch Dynamic control

目 录

第1章 绪论..1

1.1 项目背景和建设意义1

1.1.1 项目背景1

1.1.2 项目建设意义2

1.2 国内外研究现状3

1.2.1 国内研究现状3

1.2.2 国外研究现状4

1.3 基础理论简述5

1.4 章节安排6

第2章 试卷卷面图像预处理方法7

2.1 试卷卷面模板设计7

2.2 试卷图像预处理8

2.2.1 试卷图像灰度化8

2.2.2 试卷图像去噪声9

2.2.3 试轮廓检测和透视变换11

2.3 手写答案区域提取14

2.4 本章小结15

第3章 手写答案字符识别方法16

3.1 支持向量机原理16

3.2 基于支持向量机的多分类方法18

3.3 基于支持向量机的字符识别 19

3.3.1 训练集的选择和处理19

3.3.2 训练并保存模型20

3.3.3 手写答案识别21

3.4 本章小结22

第4章 系统结构设计23

4.1 系统整体设计23

4.2 软硬件选择23

4.3 试卷批改处理流程24

4.4 试卷批改效果25

4.5 本章小结26

第5章 总结与展望27

5.1 总结27

5.2 展望27

结束语29

参考文献30

绪论

1.1 项目背景和建设意义

1.1.1 项目背景

随着目前国内教育力度的加强,每年入学的学生人数越来越多,而考试仍然是目前应试教育的首要考察手段,也是评估和选拔的主要方法,因此对学生的考试部署工作要求也越来越高,学生参与考试完成试卷解答,再由老师负责试卷的审察批改。但是目前的教育规模庞大,老师人数要远远少于学生人数,需要一个老师审查批改多个学生的试卷,造成学生试卷的审批需要投入大量的人力物力。

对阅卷人而言,尤其是中小学的老师,试卷的批改往往是一种繁琐且重复的工作,尤其是对选择题、判断题等客观题的批改,老师不仅需要浏览每个学生的试卷判断学生书写答案的正确与否,还需要对每个学生的试卷进行批改作出标记、统计全部学生的得分情况,最后还要对所有学生的成绩进行排名、分类等整理工作,常常会出现老师不仅无法从试卷中获取有效的信息、反而会在这种重复繁杂的机械式工作中浪费很多时间和精力的情况。通过浏览中办、国办印发的《关于减轻中小学教师负担进一步营造教育教学良好环境的若干意见》[1],可以发现该《意见》从不同方面提出了很多意见,从这些意见中可以看出中小学教师的工作任务繁琐、工作时间紧张、工作压力很大,老师们不仅要备课、教课,还要投入大量的时间和精力到批改试卷中,进而导致老师把精力应用到实际教学上的时间大大减少,这不仅会影响教师的教学安排,甚至会影响教师的教学质量。

我国在《国家中长期教育改革和发展规划纲要》中明确提出要努力提高计算机等信息技术在教育方面的融合程度与使用普及度,要通过信息技术对教育方面的渗入实现教学方法的改进、教学观念的更新、教学成果的提高,将信息化技术融入教学是当今各学校和教育机构发展的重要任务[2]。就目前而言,课上投屏教学、线上网课教学、电子书包等新技术都已经很普及了,而在考试方面,还没有能大量减轻教师负担的成熟技术方法被普及使用。对中小学生的试卷而言,分值占比较大的是一些答案单一的选择题、填空题和判断题等简单的客观题,选择题一般只有A、B、C、D四种答案,判断题一般只有对和错两种答案,填空题一般是数字、字母或汉字字符,这些题型的答案都比较简单、单一且固定,目前这类题型答案字符识别的算法已经相当成熟,因此为机器视觉实现系统对试卷的自动阅卷批改提供了颇有成效的基础理论和解决方法。

1.1.2 项目建设意义

随着计算机科学与互联网的发展进步,其在教育方面中的应用越来越多,包括线上授课、线上考试等,例如驾照考试就采用电子试卷的方式,这种线上考试的方式近年也越来越普及。而中小学生群体中也出现了电子作业、电子书包,有学校试验点实行学生人手一台平板电脑的教育方式,学生可以将网络课程、电子版教材保存在自己的平板电脑中,老师和学生可以通过计算机网络进行教学活动,包括线上网课、线上作业甚至线上考试等。虽然这种电子书包方式能减轻很多学生和老师的负担,但是这种教学方式仍然存在很大的争议:人们日常生活中用纸笔手写汉字的机会变得越来越少,进而会造成提笔忘字的现象越来越多;其次长期注视电脑屏幕可能会对学生和老师的视力造成损害;第三,线上考试的方法很难保证学生诚信应考,尤其对一些自律性较差、喜欢投机取巧的学生而言,会严重降低他们的学习效果;第四,很多种例如绘制几何图形或手写书法等题型无法完全由电子试卷代替,仍然需要传统的纸和笔[3]。综上所述,电子作业、电子试卷仍然无法完全代替纸质版作业和试卷。

将机器视觉应用到试卷批改中,可以代替老师解决很多单一繁琐的工作,包括对选择题、判断题、填空题和计算题等题型作出对错批改并给出分数结果,试卷批改系统可以根据学生每个人专有的考号对考试结果进行统计,可以统计出每位学生的分数并可进行排名,可以统计某道题或某种题型的全班准确率等等,这样可以极大地方便老师对全体学生的得分情况与学生对某部分知识的掌握情况有更深一步的了解。试卷中的客观题可以全部由该系统代替老师进行批改和统计,而对于没有标准答案的主观题,系统无法对其进行批改,但是仍可以协助老师对其进行分数计算和统计。

目前在试卷批改中实现机器阅卷的较为普及的方法是答题卡阅卷,由学生用特定的涂卡笔在答题纸上所选答案处进行涂抹,最后由专业设备对答题纸进行分数统计。这种方法目前广泛应用于中小学生的各种大小型考试中,包括中考和高考,答题纸阅卷方式都是必不可少的。虽然这种方法目前很普及,但是它的缺点同样非常明显,例如答题卡所用的纸张是特殊的纸张,导致其使用成本和加工成本要比传统考试方法高很多,而且在使用答题卡的过程中需要非常小心避免弄脏或损坏答题卡,一旦对答题卡造成损坏,甚至会影响机器判卷过程进而影响分数情况,出现这种情况时往往还是会采用人工阅卷的方法来解决,读卡设备的使用成本和维护成本也很高,进而提高答题卡批改试卷的成本;其次答题卡阅卷的方式只能统计分数,不能对试卷进行批改,学生想要知道自己出错的题是哪一道只能对照参考答案从答题卡上一道一道的检查,老师也无法直观的了解学生的得分和出错情况;第三,答题卡阅卷的方式针对性较强,一种读卡设备往往只支持一种格式的答题卡,而不同的学科又往往需要使用不同规格的答题卡,无法实现阅卷的普及性与通用性[4]。综上所述,答题卡阅卷的方法确实在考试阅卷过程中起到了很重要的作用,减轻了老师很多的繁杂工作,并且得到了大范围普及,但是它仍然存在很多的缺陷,而本次设计的基于机器视觉的试卷批改系统能够基本克服上述答题卡阅卷方式的所有缺点,降低试卷批改统计的成本,灵活性和通用性强,可以应用于任何一台计算机,能批改的题型更多,相比答题卡阅卷方式具有很明显的优势。

除此以外,该系统也可以应用到日常的作业批改和随堂测试批改中,可以减少老师更多的负担,而且相比老师手动判卷能更快的得到作答结果情况,能更及时的对学生的知识掌握情况进行反馈,及时对学生的教学进行巩固与加强。

1.2 国内外研究现状

1.2.1 国内研究现状

国内目前在中小学各种大小型考试中大量普及的有光标机阅卷和计算机网上阅卷两种方式,光标机识别答题卡阅卷的优势和缺陷已经在上文作了阐述,可以看出它的缺陷还是很明显,大大提高了阅卷的成本,且通用性和灵活性低。

纵观光标阅卷机技术的发展历史,国内自1983年开始研究这项技术,到5年后生产制造出了可以实用的光标阅读机,但是自此到目前为止该技术设备并没有取得明显的改进完善和突破,国内相关技术研究机构的研究方向也主要是在提高位置识别准确率、提高光强敏感度等细微工作上,很难取得重大突破。计算机网上阅卷也是近年信息化教学课题中的研究热点,其基本实现方法是利用图像输入设备将学生的试卷卷面以数字图像形式上传到计算机,老师在计算机上对学生的电子卷面或作业进行阅卷操作,最后输入题目所得分数即可。相比光标机阅卷,计算机网上阅卷方式成本更低、操作简单并且功能更加丰富,但是同样对试卷纸张有着严格的要求,而且对图像处理部分技术要求较高,对处理速度和答题区域识别准确率都有着极高的要求,相比光标机阅卷在对选择题判断题等客观题方面仍需要老师手动判卷批改,仍然未解决繁琐劳动问题,此外对试卷图像文件清晰度也有极高的要求,为了保持试卷图像的清晰度也需要占有计算机大量的磁盘存储空间[5]。结合上述两种阅卷方式的优势,目前国内在中小学生考试中多采用客观题使用光标机阅卷、主观题使用计算机网上阅卷来实现,而且目前实现了两种格式答题纸的结合,学生可以在同一张答题纸上作答,同一张答题纸分别进行光标机客观题评分和老师网上阅卷主观题评分。

而近些年在作业批改方面出现了大量的类似作业帮、搜题等等APP或者小程序,其使用方法也很简单,学生通过手机或平板将题目拍下来,APP或小程序会从图片中识别文字,从题目数据库中搜索相同或相似的题目,并把对应题目答案显示,然而这些APP或小程序仅仅能实现题目答案的搜索,无法实现自动批改。2016年大拿科技有限公司开发了一种能够进行作业批改的APP,该APP能实现对数学算式的智能自动批改,使用方法同样是拍照上传题目照片,再由APP扫描照片中的算式区域即可。就目前而言国内一些商用的试卷自动批改系统已经较为普及,例如句酷,根据相关专业调查已有一千多所高校使用了该系统,而该系统主要用于学生考试中的作文批改,经过测试发现该系统的打分标准和由老师手动批改打分的标准极为接近。除此之外也出现了一些类似处理英语学科批改的APP,其识别准确率也能近似100%[6],但是由于种种问题,并没有几款APP实现了大范围普及。

究其根本,实现自动批改试卷或作业的最基本原理就是字符识别,而我国对于字符识别技术部的研究起步较晚,最早由复旦大学开始研究这项技术,并在上世纪七十年代开发出国内第一台能够识别字符的专业机器设备,后来其他的大学和研究机构也陆续投入到字符识别技术的研究中,尤其是近年国家大力推进人工智能技术的发展,更是促进了字符识别技术的发展和突破。由于我们书写汉字的缘故,汉字相比英文字母和阿拉伯数字有着更复杂的结构、更多的数量和更多的组合类型,因此对中文汉字字符的识别要比对英文字母和阿拉伯数字的识别难度大很多,而且基于每个人的书法以及书写习惯不同,手写汉字字符的识别难度相比印刷标准体汉字还要难很多,目前国内对印刷体汉字的识别准确率达到了98%以上,而对识别难度更大的手写汉字字符,识别率也达到了70%以上[7]。而现在国内字符识别应用场景也越来越多元化,比如搜狗输入法、识图、小区门禁车牌号识别等等,可见字符识别在我国已经越来越成熟而且得到了广泛的应用。

1.2.2 国外研究现状

国外很早之前就对试卷或作业题目的自动批改展开了课题研究,并且取得了一些比较成功的进展,开发出了一些批改效果很好的批改系统,诸如E-ratcr、C-ratcr和AutoMark等等,其中有些批改系统已经进入了实用阶段并已经实现了大范围普及应用。究其原因,是因为国外对字符识别的研究起步较早,最早可追溯到20世纪50年代,发展至今已有近百年的历史,领先我国国内字符识别研究最早起步时间20年左右,作为工业应用中极其重要的一部分,字符识别的发展在国外一直备受关注,纵观国外字符识别发展史,字符识别技术研究的发展阶段大致可以分为早期阶段、发展阶段和提高阶段三个阶段[8]。

早期阶段:1929年,德国科学家Dausheck提出光学字符识别的概念,1933年,美国科学家Handel通过使用OCR技术实现了对文字的识别,两人因各自的技术实现分别获得了相关专利权。而此时计算机还未出现,所以此时并没有生产出真正的OCR系统,之后在20世纪50年代随着计算机的出现才制造出了世界上的第一个字符识别系统。到了20世纪60年代初,随着技术的日渐成熟,随即出现了第一代具有商业价值的OCR系统,能实现对部分字体的字符进行识别。在字符识别技术发展早期阶段主要由于技术发展不够先进,技术理论支撑不足,智能勉强实现对单个字符的识别

发展阶段:基于计算机技术的飞速发展,OCR技术也取得了巨大的进步,多种多样的字符识别方法相继涌现,上世纪七八十年代,IBM、NCR、Fuji等公司开发的第二代字符识别系统已经实现了对手写字符的识别,虽然只能用于识别简单的手写字符,但是打破了早起科学界存在的“成功实现手写字符识别的几率基本为零”的这一说法,鼓舞了大批的科学研究机构组织投入到手写字符识别的研究中,掀起了字符识别科学研究领域的新热潮。

提高阶段:经过半个世纪的时间推移,计算机技术发展突飞猛进,图像处理技术和模式识别技术也都取得了重要的技术突破,逐渐实现了两种技术的有效结合,在这样的背景下各研究机构设计出了更高级、更先进并且更精确的字符识别算法,更新一代的字符识别系统产品也在这样的前提下不断出现,但是仍然无法保证离线状态手写字符的精确识别度,字符识别技术仍需要更加深入的研究才能取得突破和进步。

1.3 基础理论简述

本系统设计基于机器视觉理论,主要功能模块涉及图像处理和字符识别方法,接下来对上述三种基础理论进行解释:

机器视觉:机器视觉是一门涉及人工智能、模式识别、图像处理、光学、生物学和计算机硬件技术等多个技术领域融合贯通的学科[9]。其设计原理灵感来源于对生物体结构功能的研究,自然界的生物通过眼睛接收外界自然环境中的电磁波信号产生神经信号刺激,神经刺激通过神经网络进入生物大脑的特定区域,在此区域生物大脑对电磁波信号产生的刺激进行分析处理和加工,进而形成了视觉。而机器视觉通过相机等视觉传感器获取被测目标的图像,利用计算机相关功能实现生物大脑中对神经刺激分析处理加工的过程,从被测目标图像中提取有效信息进行分析处理加工,进而将分析结果转换为数字化信号,系统进而将这些数字化信号进行分类、分析及处理,最终用于实际的检测、测量和识别等[10]。

图像处理:图像处理是指将拍摄扫描得到的图像从图像信号转换成数字信号后,使用计算机等硬件设备进行处理操作的过程,具有处理精度高、处理内容丰富和有灵活的变通能力等优点。数字图像是指存储在计算机中的一个二维数组,数组中的每一个值保存图像中一个像素点的颜色、亮度等信息,图像处理的本质就是对该二维数组进行一列操作的过程。图像处理技术主要包括六大组成部分:图像变换、图像描述、图像分割、图像编码压缩、图像增强复原和图像分类识别[11]。

字符识别:字符识别是指将图像中印刷或打印的文字字符通过图像处理和模式识别等技术进行识别,将识别结果以文本的形式存储在计算机中,字符识别技术大体分为检测和识别两大步骤,并且字符识别技术的准确率离不开图像处理和模式识别的技术支撑。自1929年诞生至今,字符识别技术已经相当成熟,即使是数据量极大的汉字,该技术依然能实现很高的识别准确率。到目前为止,字符识别技术已经融入日常生活中交通、金融、教育、安保等各个应用领域[12],在生活中的方方面面都能为人们的日常生活带来极大的方便与快捷。

1.4 章节安排

本文主要针对试卷阅卷批改系统进行研究,主要涉及机器视觉、图像处理和字符识别方面的基础理论以及算法实现的研究,具体章节安排如下:

第一章介绍试卷批改系统的研究背景及其建设意义,着重介绍试卷批改系统的国内外研究现状,简述本次系统设计所涉及的基础理论。

第二章详细介绍试卷卷面图像的预处理方法,包括试卷卷面模板的设计、试卷图像的灰度化、去噪声、轮廓检测和透视变换,最后实现手写答案区域的提取。

第三章详细介绍了手写答案字符识别方法,首先研究支持向联机的基本原理以及利用支持向量机实现多分类的方法,之后介绍利用代码实现通过数据集训练模型、保存模型和手写答案字符的识别。

第四章介绍了本系统设计的整体结构设计,包括软硬件的选择,辅助工具库的选择以及试卷批改处理的流程,并展示本次所设计的系统对试卷的批改效果。

第五章对本文的全部工作进行总结,并根据本文工作结果提取对未来的展望。

试卷卷面图像预处理方法

2.1 试卷卷面模板设计

试卷卷面信息主要包括题目、考生信息和考生手写答案,而打印的题目信息在自动阅卷批改过程中属于无用信息,所以需要通过设计试卷卷面模板将考生信息、考生手写答案与题目信息分离开,因此,本次试卷批改系统设计采用传统的答题框答题方式来分离考生作答信息与题目信息。这种方式为提取考生作答信息提供了极大的便捷,系统只需提取所有答题框的区域即可获取考生的手写答案图像组,再对每一个答案进行字符识别、与正确答案对比即可实现自动阅卷。

本次系统设计将题目分为4种类型:单选题、多选题、判断题和计算题,每种题型的题目个数、题型分数、题目答案都需要在启动判卷系统前手动输入到相关代码区域。

图2-1 试卷卷面模板

实际情况中试卷一般会有很多页,而根据本系统设计的功能,只需将试卷中书写答题的一页或多页上传即可,并且需要将考号框和答题框区分开,方法就是区别框的长度,代码中会根据框的像素长度区分考号框和答题框。在扫描拍摄试卷图像时需要尽量使试卷铺平,尽量避免有折痕与阴影,否则会影响试卷图像的处理,其次需要找一个与试卷颜色对比明显的背景板,这样也会更有利于试卷图像的轮廓检测与透视变换。

2.2 试卷图像预处理

2.2.1 试卷图像灰度化

本系统试卷卷面图像处理部分采用OpenCV工具库,首先利用OpenCV库中的imread函数从计算机文件夹中读取一张张的试卷卷面图像,此时得到的图像是三通道彩色图像,三个通道分别代表红、绿、蓝三种颜色的分量,每种通道用8位内存即一个字节表示该通道颜色分量的强度,每个像素点由三种通道不同的数值组合而成不同的颜色,需要注意的是OpenCV读取的图像为BGR格式,区别于常规的RGB图像。但是试卷卷面通常由黑白两种颜色组成,而且三通道图像会增加图像处理算法的复杂度,因此需要将试卷卷面图像进行灰度化处理以便后续算法的实现。灰度化图像每个像素点只包含一个通道,同样使用8位内存即一个字节表示,数值大小表示该像素点的明暗程度,该数值被称为灰度值,最小值0代表黑色,最大值255代表白色。通过将彩色图像的灰度化处理,可以使图像数据量由三通道变为单通道,缩小了图像所占空间大小,同时也减少了图像处理的算法任务量,会极大减轻算法复杂度和缩短算法的处理时间。

图像的灰度化处理一般有四种方式[13]:

分量法:将彩色图像中的三通道分量作为三个灰度图像的灰度值,根据实际情况需要选择其中一个作为结果灰度图像:

最大值法:将彩色图像中三通道分量的最大值作为灰度图的灰度值:

平均值法:将彩色图像的三通道分量的平均值作为灰度图的灰度值:

加权平均值法:使用者根据情况制定要求指标,将彩色图像的三通道分量根据不同的规定加权值进行加权平均,而由于人眼对不同颜色的敏感度有差别,尤其对蓝和绿色的敏感度差别明显,因此按照以下加权法则能得到较合理的灰度图像:

本系统中采用OpenCV工具库中的cvtColor函数将读取到的彩色的试卷图像转化为灰度图,该函数在python中的原型为:def cvtColor,该函数的基本原理就是采用的加权平均法获得灰度图像。参数src和dst分别表示需要进行灰度化的三通道彩色目标图像和相同大小的输出图像;参数code表示需要选择的颜色空间转换类型代码,转换类型有很多种,因为我们需要将读取到的BGR图像转换为灰度图,所以此时code参数选择“cv2.COLOR_BGR2GRAY”;参数dstCn表示目标图像中的通道数量,若参数为0,则从src和code自动获得通道数量[14]。综上所述,后两个参数我们设为默认即可,因此调用函数时代码应为:img_gray = cv2.cvtColor。

2.2.2 试卷图像去噪声

得到灰度图像后,会发现由于试卷纸质问题、考生书写不规范等会造成试卷图像有折痕或污点,而且在扫描拍摄试卷图像时也会由于光照或电磁等因素造成对试卷图像的进一步干扰,使图像的数据产生多余的、无效的干扰信号,这就是图像的噪声。图像噪声会降低图像的真实性,增加图像处理过程的复杂度与任务量,甚至会严重影响图像处理的效果,造成系统的准确性、实用性和快捷性明显降低,因此需要对灰度图像进行进一步的滤波去噪声处理。

图像噪声的来源主要分为两个方面:

图像获取过程中:图像传感器在采集图像的过程中,由于受传感器组成成分、电路构造、工作环境等影响,会引入如电阻热噪声、场效应管沟道热噪声、暗电流噪声、光响应非均匀性噪声等各种噪声。这种在图像获取过程中产生的由于系统外部信息干扰以电磁波或经电源串进系统内部而引起的噪声又称为外部噪声。

图像信号传输过程中:由于传导媒介和存储设备的不稳定,数字图像在其传导过程和存储过程中往往会受到多种噪声的污染,此外,在图像处理的某些过程中,如果输入的图像信号存在瑕疵、未达到理想输入时,也会导致过程结果输出图像存在过多过少的噪声。这种在图像信号传输过程中产生的由系统内部机构引起的噪声又称为内部噪声。

常见的图像噪声基本上有以下四种:椒盐噪声,高斯噪声,泊松噪声,乘性噪声。椒盐噪声随机改变一些像素值,使图像上随机出现黑色白色的像素;高斯噪声是指它的噪声概率密度函数服从高斯分布的一类噪声;泊松噪声是指它的噪声概率密度函数服从泊松分布的一类噪声;乘性噪声一般由信号通道传输不理想引起,该噪声与信号存在相乘的关系,信号在噪声就在,反之亦然。

减少或消除图像噪声的过程就是滤波,其原理是根据一张图像每个像素点相邻像素区域的各像素值分析处理计算得到新图像的每个对应的像素点,进而得到一整张滤波图像,滤波过程中需要使用一个特定大小的滤波器从目标图像的第一个像素点由左向右、由上向下的滑动,直至遍历全部的像素点,滤波器中含有不同的加权值,滑动过程中对应的目标图像像素点进行加权操作。

根据空间滤波的特点可将图像滤波分为两种:线性滤波和非线性滤波。线性滤波是指滤波过程中只引入较少的参数运算对各像素灰度值进行简单的运算处理,最后进行简单求和的滤波方式;而非线性滤波对像素灰度值的运算比较复杂,在滤波过程中会引入更多的参数进行运算,而不是做简单的求和运算,相比线性滤波有着更加复杂的算法。常见的线性滤波有均值滤波和高斯滤波,常见的非线性滤波有中值滤波和双边滤波[15]。

均值滤波:基本原理就是将滤波器中对应全部像素点取平均值作为滤波图像的像素点,该滤波方法的滤波器所有权值相同,将滤波器对应的所有加权后的像素点值除以滤波器的大小即可得到均值。

高斯滤波:图像中的噪声大多为高斯噪声,而高斯滤波主要针对的就是高斯噪声,高斯滤波同样采用对图像进行加权平均的方法,但相比于滤波器中所有权重都相等的均值滤波,高斯滤波器中会将中心像素点的权重值加大,突出中心点像素值的重要性,同时将滤波器边缘点的权重值减小,弱化边缘像素点对滤波结果的影响。

中值滤波:中值滤波对椒盐噪声的消除非常有效,常常用于保护边缘信息,基本原理是将滤波器对应的全部像素点进行数值从小到大的排序,排序得到的中值作为滤波图像中对应像素点的值,中值滤波遵循“最小绝对误差”的准则,是该准则实现的最优滤波方法。

双边滤波:双边滤波是一种结合图像空间邻近度与像素相似度的处理办法,具有算法简短、非循环迭代的特点,在滤波过程中既考虑空间邻近信息又考虑灰度相似信息,能实现在消除噪声的同时保护图像边缘像素信息、使图像更加平滑。

综合算法复杂度、时间复杂度和试卷图像噪声情况,本次试卷批改系统设计选择高斯滤波的方法消除试卷图像噪声,高斯滤波是建立在高斯正态分布基础上的滤波方法,而高斯滤波器的基础就是二维高斯函数:

该二维高斯函数分布如图2-2所示:

图2-2 二维高斯函数分布

根据二维高斯函数可以发现在滤波器大小固定的情况下,σ值越大,权值分布越均匀平缓,σ值越小,权值分布越陡峭凸起;而当σ值固定的情况下,滤波器越大图像会越模糊,滤波器越小图像变化越小。

代码实现方法是调用OpenCV函数库中的高斯滤波函数:GaussianBlur。src和dst分别表示输入图像和输出图像;ksize表示滤波器大小,滤波器的长和宽可以不同,但为了包含中心点,必须为奇数,或者为0,可通过sigma计算得到,本次系统设计选择5*5的滤波器大小;sigmaX和sigmaY分别表示高斯核函数在x方向和y方向的标准差。

图2-3 高斯滤波效果

2.2.3 轮廓检测和透视变换

经过图像灰度化和图像滤波去噪声,已经可以得到较平滑的试卷灰度化图像,但是由于扫描拍摄试卷时很难做到角度准确,所以需要对试卷图像进行透视变换,透视变换是指利用透视中心、图像点、目标点三点共线的条件,按透视旋转定律使透视面绕透视轴旋转某一角度,破坏原有的投影光线束,仍能保持透视面上投影几何图形不变的变换,简而言之,就是将一个平面通过一个投影矩阵投影到指定平面上。因此需要在扫描拍摄试卷图像时包含试卷的轮廓,以便后续的轮廓检测与透视变换。

首先需要检测图像中试卷的轮廓,采用OpenCV工具库中的Canny函数,Canny算法是John F. Canny于1986 年开发出来的一个多级边缘检测算法,其检测过程大致分为5个步骤[16]:

使用高斯滤波来处理图像进行滤波去噪操作,进而消除图像中的噪声、使图像更加平滑;

通过计算得到图像的边缘梯度和方向,利用SobelX、SobelY核分别在x轴方向与y轴方向对去噪平滑后的图像进行滤波,找到全部像素点的边缘梯度和方向;

应用非最大抑制技术消除边缘误检,在得到梯度大小和方向后再次对图像进行整体扫描,去除不属于边缘像素无效像素,检查像素是否在其梯度方向的像素邻域区间中是最大值,不是的话就把它抑制;

应用双阈值的方法人为决定可能存在的边缘,使用者根据实际情况制定两个阈值minVal和 maxVal,梯度强度大于maxVal的默认为边缘,梯度强度小于minVal的默认为非边缘,介于minVal和maxVal两之间的则视为候选项,需要对其进行进一步处理;

利用滞后的技术跟踪边界,将与强边界相连接的弱边界视为边界,而将不与强边界连接的弱边界视为非边界,对其进行抑制。

图2-4 Canny边缘检测效果

利用Canny算法得到试卷轮廓后,进而使用OpenCV库的findContours函数和approxPolyDP函数得到试卷轮廓的四个顶点坐标,通过四个顶点坐标可以确定透视变换后的试卷图像大小和图像位置,再通过OpenCV库的getPerspectiveTransform函数和warpPerspective函数即可自动计算变换矩阵、实现试卷图像的透视变换。

图2-5 透视变换效果

findContours函数作用是进行轮廓查找,其函数原型是findContours,其返回值有两个:contours、hierarchy,contours表示所有检测到的轮廓,hierarchy表示每条轮廓对应的属性。参数image表示需要寻找轮廓边界的目标图像;参数mode表示轮廓的检索模式,包括检测外轮廓、检测无等级关系关系轮廓、检测内外边界轮廓和检测并建立等级树结构轮廓共四种检索模式,本次只需检测答题边框外轮廓即可;参数method表示轮廓的近似办法,包括存储相邻位置不超过特定值的所有轮廓点、压缩水平垂直对角线方向只保留终点坐标等。

approxPolyDP函数作用是对指定顶点集进行多边形逼近,其函数原型为approxPolyDP。参数curve表示输入二维点集的数组;参数epsilon表示指定近似结果的精度,是原曲线和其近似曲线之间的最大距离,其值越小,近似结果的折线形状越接近曲线;参数closed是一个bool值,true表示近似曲线是闭合的,false表示曲线是不闭合的。

getPerspectiveTransform函数作用是根据源图像和目标图像上的四对点坐标来计算从原图像透视变换到目标头像的透视变换矩阵,其函数原型为getPerspectiveTransform。参数src表示源图像上四个点的坐标构成的矩阵,要求其中任意三点不共线;参数dst表示目标图像上四个点的坐标构成的矩阵,要求其中任意三个点不共线,且每个点与src的对应点对应;参数solveMethod表示矩阵分解方法,设为默认即可。

warpPerspective函数作用是对图像进行透视变换[17],其函数原型为warpPerspective。参数src和dst分别表示输入和输出图像;参数M表示通过getPerspectiveTransform函数得到的变换矩阵;参数dsize表示输出图像的大小;其他参数设为默认即可。

2.3 手写答案区域提取

得到透视变换后的试卷图像,我们可以很直观的看到平铺的试卷图像,下一步就是提取手写答案区域,需要提取考生考号和提前规定好数量的题目,为了方便提取与区分考号和手写答案,使考号边框的长度比手写答案边框长度长,在提取考生手写信息时可以通过判断边框长度像素点加以区分考号和答案。

首先将透视变换后的试卷图像进行灰度化和二值化处理,分别调用OpenCV库的cvtColor和threshold函数,再通过OpenCV库的findContours函数找到透视变换后的全部字迹和边框轮廓,通过approxPolyDP函数计算每个轮廓的顶点坐标和顶点数,遍历所有的轮廓,寻找边框顶点个数为4且长和宽大小在一定区间的轮廓,即可找到全部的手写区域边框,再通过判断边框的长度大小,即可区分考号和答案区域,再通过每个答题框的长和宽以及左上角顶点坐标将所有答题框进行裁剪从而得到所有的答题信息图像组[18]。但是由于遍历所有图像轮廓的顺序是从右往左、从下往上,导致提取到的手写区域排序是混乱的,因此需制定一个轮廓排序算法,实现将轮廓从左往右、从上往下的顺序排序,即对应题目编号的顺序排序。

图2-6 手写信息提取结果

需要注意的是提取答题框图像前首先进行的是答题框轮廓检测,此时选择的轮廓检索模式参数为cv2.RETR_EXTERNAL,即只检测外轮廓,所以提取到的答题区域图像会把答题框一起提取,但是这样会影响字符的识别,因此需要截取分割去掉此时的答题区域图像,方法是分割上下左右各15像素长度的区域,即可得到上图所示的答题区域图像组。

2.4 本章小结

本章介绍了试卷卷面图像的一系列处理操作,首先设计出试卷的卷面模板,用答题框的方法区别答案与题目,便于手写答案的提取,接下来对试卷图像的灰度化、去噪声处理都是为了进行轮廓检测和透视变换,这样能解决拍摄试卷图像时卷面不平铺、观察不直观的问题,同时方便后续的答题框识别以及系统自动阅卷和批改。最后进行答题区域的提取,需要进行轮廓检测进而检测试卷图像中顶点个数、像素长度等合适的区域即可。

手写答案字符识别方法

3.1 支持向量机原理

支持向量机是一种基于统计学理论、按监督学习方式对数据进行二元分类的的机器学习方法,其决策边界是对学习样本求解的最大边距超平面。在一个n维的样本空间中进行分类时,支持向量机的目的是寻找一个超平面来对n维样本空间进行分离切割,分割的原理是使间隔最大化,即保证不同类别的样本数据之间的距离最大,寻找实现最大间隔的超平面就是支持向量机的学习策略,方法是通过将其转化为一个凸二次函数,求解该二次函数的最小值就是求解间隔最大化的超平面。

当给定一组样本数据集,如果样本数据是二维的,则需要找到一条直线将样本数据集分隔开,而能分割样本数据集的直线可能有多种答案,因此我们需要找到一条泛化能力最好、鲁棒性最强的直线;如果样本数据在三维空间中,则需要找到一个平面来分割样本数据集,这种平面也可能有多个可能解,同样需要找到泛化能力最好、鲁棒性最强的一个平面;若果样本数据集分布在三维以上的维数,则需要找到一个泛化能力最好、鲁棒性最强的超平面[19]。

在n维样本空间中,任意超平面可通过如下线性方程描述:

其中ω=为法向量,用来定义超平面的在n维空间的方向,b为偏置项,用来定义超平面在空间中的位置,通过法向量ω和偏置项b就可以确定超平面。n维空间中,点x=到超平面的距离为:

其中

如果某一超平面能将样本数据集中的数据正确分类,则对于∈D,满足以下条件:

所有在上间隔边界上方的样本属于正类,在下间隔边界下方的样本属于负类。两个间隔边界的距离为:

该距离被称为“间隔”或“边距”。

为了实现找到最合适的超平面,需要找到一组参数ω和b,使得间隔的距离达到最大,即:

为了最大化间隔,我们可以再将其转换重写成:

这就是支持向量机的基本型。

在实际应用问题中,样本往往更加复杂,能实现线性可分的样本非常少,会经常遇到不能够完全线性可分的样本,因此很难对所有的问题求解时进行二维空间的线性分割规划,这种情况下只能选择使用高阶函数来分割,但是使用高阶函数会容易导致分割曲线的过度拟合,极有可能造成即使样本空间中存在噪声但是依然可以将样本空间完全正确分隔的情况。这样会对样本的分类产生更严重的误差,即使提高了训练集的分类准确率,但会降低测试集的分类准确率,这样的情况下需要采取允许支持向量机在一些偏离的样本上出错的方法来解决该问题,即允许某些不满足约束条件的偏离样本存在,这就是“软间隔”的概念。具体方法是在最大化间隔的基础上引入损失函数构造新的优化问题,此时的优化问题可以转化为:

其中C是一个常数且C≥0,其值表示对错误样本的惩罚程度大小[20],允许部分样本不遵循约束条件。

3.2 基于支持向量机的多分类方法

上述说到支持向量机是机器学习中常用且典型的二值分类算法,而实际应用场景中往往需要处理多分类的问题,而当处理多分类问题时,就需要通过多分类算法构造多分类器。对支持向量机算法进行重新构造可以实现多分类器,支持向量机多分类器的构造方法有直接法和间接法两种:

直接法:这种方法直接修改支持向量机的目标函数,将多分类问题中的多个参数整合到一个函数中,这种方法的难度大、计算量大而且算法复杂度非常高,实现起来很困难,尤其对于特征值较多的样本数据集完全不合适。

间接法:该方法主要是需要通过多个二分类器的集成整合来构造分类器,这种方法不仅操作简单、算法复杂度低,而且同样适用于特征值多的样本数据集。

由上述可知使用直接法构造多分类器的方法并不适合本次系统设计,无法整合搭建一个稳定、方便、快捷的识别功能模块,而间接法构造多分类器能满足本系统手写识别功能模块的各项要求,因此最终选择间接法来构造多分类器。间接法构造多分类器的方法可以分为一对一法和一对多法[21]:

一对一:在k类样本的数据集中,在任意两类样本间构造一个支持向量机分类器进行分类,最终需要设计k/2个支持向量机分类器。当对一个未知分类样本进行分类时,需要用所有的二分类器对其进行分类并评分,得分数最多的类别作为该样本的类别。该方法的缺点是当类别很多时需要构造很多的分类器,算法复杂度和时间代价比较大。

一对多:在k类样本的数据集中,在训练时依次把每个类别视为一类,而把其他所有类别视为其他类,这样就需要样本类别个数的SVM分类器。当对一个未知分类样本进行分类时,需要将样本分别用k个分类器进行分类测试,得到k个分类结果分值,最后取分值最大的类别作为该样本的类别。该方法的缺点是数据集不平衡,因为某类别数据可能只占数据集非常小的一部分。

对比上述两种构造多分类器的方法,可以发现一对一的方法更复杂、代价更高,而一对多的方法在算法复杂度和时间复杂度上有着明显的优势,而且一对多方法的缺点主要来源于数据集的不平衡,如果我们能保证数据集不同类别样本的均衡,即保证各类别数据的样本个数近似,那么就可以消除数据集不平衡带来的负面影响。本次系统识别功能模块需要识别大写字母ABCD、字母TF和数字0123456789,分别训练三个识别模型,因此为了消除数据集不平衡的缺点,需要在训练的过程中控制各数据集的数量相近。

3.3 基于支持向量机的字符识别

3.3.1 训练集的选择和处理

本系统手写字符识别功能模块需要识别字母和数字,为了保证识别的准确精度,针对不同题型用不同的识别模型。字母识别训练数据集选择The Chars74K dataset,其数据集中每种字母包含印刷体1016个数据图片以及手写体56个数据图片,印刷体图片的大小均为128*128,因为ABCDTF六种字母的手写体和印刷体较为相似,所以本数据集的印刷体数据也可以作为训练手写体识别模型的数据集,因此最终每种字母的训练数据集都是1072个数据样本。数字识别训练数据集选择MNIST数据集,其中每种数字的数据图片在6000张左右,且每张图片的大小都是20*20。

·

图3-1 The Chars74K和MNIST部分数据

为了保存数据集图片的特征并减少训练的复杂度,需要对数据集进行特征提取的操作,数字数据集的全部数据样本大小是统一的且图片中只包含数字信息,但是字母数据集中的数据样本图片大小不统一且除了字母信息还包含过多的空白无用像素区间,因此需要对其进行进一步的处理,将无用像素区间去除,只保留字符像素信息,便于后续的训练。算法实现步骤是首先纵向扫描去除全为255的像素行,再横向扫描去除全为255的像素列,得到一个图像区间,从该图像区间的长和宽中选择较长的边作为正方形切割模板的边长,以图像区间中心为正方形模板中心进行切割即可。切割效果如下图3-2所示。

图3-2 数据样本切割效果

为提取特征值,还需统一所有数据集图片的大小,将所有数据集图片进行归一化处理,将其转化为20*20大小的二值图像。接下来进行特征提取,遍历图像数组的每一行,从首行到末尾行将像素值依次排列,将全部像素点值整合成一个1*400大小的一维矩阵数组,该数组就是提取到的特征值。由于数据图像是二值图像,因此数组中的值只有255和0,大大减少了算法的时间消耗与运行效率,利用这样提取到的一维数组就可以进行分类训练得到训练模型[22]。在对手写答案字符进行预测分类时,仍然需要将手写答案字符进行切割并提取特征向量,将其转化为20*20大小的二值图像,再转化为1*400大小的一维矩阵数组,才能实现手写答案字符的识别,保证识别的准确率。

3.3.2 训练并保存模型

训练模型前需要对数据集进行切割,在全部数据集中随机选取80%作为训练集,其余的数据作为测试集,方法是调用sklearn工具库的train_test_split函数,其函数原型为:train_test_split。参数train_data和train_target分别表示特征数据集和标签数据;参数test_size表示测试集的大小,若为小数表示比例,若为整数表示数据个数;参数random_state表示随机种子,是一种划分标记,对同一个数据集,如果该值不变,则划分结果也相同;参数shuffle是一个bool值,true表示打乱数据顺序再进行分割,false表示不打乱顺序进行分割。

训练模型调用sklearn工具库的SVC函数[23],该函数包含很多的参数,在此不一一列举,只说明几个必要的参数,其他参数设为默认即可。参数C表示惩罚系数,其值表示对分类错误样本的惩罚程度,C越大,训练集样本的分类准确率也就越高,但是会降低分类器的泛化能力,从而降低测试集的分类准确率,参数C的默认值为1,通过对比不同的数值,本次分类取C值为5能达到最佳效果;参数kernel表示算法中采用的核函数类型,包括linear、rbf、poly等,本次参数选择默认的rbf;参数decision_function_shape可选择ovo或ovr,即一对一法和一对多法,由上节可知本次选择参数ovr。最终函数调用方法为:letterSVM = SVC。

最后通过joblib.dump函数将训练好的模型保存到相应的文件夹,以便后续对手写答案识别时调用,分为三组训练模型分别用于单选题多选题、判断题和计算题的识别。

图3-3 三种训练模型效果

图3-4 保存的训练模型文件

3.3.3 手写答案识别

将试卷图像预处理提取到的手写信息图像组导入手写识别模块,首先将图像进行灰度化和二值化处理,再去除无用的孤立点和噪声点,系统会根据标记的题目类型调用不同的分类模型进行识别。在识别前还需将手写信息图像进行分割和归一化处理:依次进行行切割和列切割去除图像无用的空白区间;将图片重置为20*20的图像,再转换为1*400的一维数组。

其中多选题和计算题往往需要在答题框手写多个字符,这就需要在一幅图像中识别多个手写字符,因此还需要在识别前将包含多个字符的图像切割成多个只包含一个字符的图像,切割方法是横向扫描,将全为空白的像素列去除即可得到多张只包含一个字符的图像。

接下来调用sklearn库中的predict即可实现手写答案的识别,识别效果如图3-5所示:

图3-5 手写信息识别效果

3.4 本章小结

本章介绍了手写答案字符识别的方法,首先阐述了支持向量机的基本原理,主要对其原理公式进行了推导,其次讨论了支持向量机实现多分类的具体方法,完成基础理论的研究后,进而完成代码部分的实现方法,主要调用sklearn库的相关支持向量机分类函数,通过调参实现最优的分类方法,达到了较高的分类准确率,至此基本完成了本次系统设计的全部功能,最后在本章展示了系统批改的完整效果,包括批改后的试卷图像以及所有考生的成绩单统计情况。

系统结构设计

4.1 系统整体设计

在系统进行整体结构设计过程中,首先按照毕设任务书中系统设计的功能要求进行研究分析,明确设计目标和功能要求,并对该系统的总体功能需求和最终性能效果指标进行规划与设计。其次,根据系统设计功能要求将系统划分成不同的功能模块,针对不同的功能模块选择合适的算法,并对各功能模块进行测试观察功能运行效果、进行相关改进等。最后,将各功能模块进行整合,形成一个完整的试卷自动批改系统,制作答题试卷并对其进行测试,观察批改效果是否达到毕业设计任务要求。该系统的整体设计流程如图2-1所示。

系统整体功能测试与改进系统各功能模块集成整合软件设计与测试验证软件工具选择及环境搭建计算机平台方案设计试卷批改系统功能分析

图4-1 系统整体设计流程图

4.2 软硬件选择

本系统设计所需硬件平台采用计算机平台,因为计算机平台的运行速较度快并且普及度高、使用范围广,内存资源空间较大并且可实现内存的扩展,相比其他硬件平台在图像处理方面有着明显的硬件支撑优势,而且计算机具有各式各样的输入输出接口,可以和图像获取设备相连接,便于获取试卷卷面图像,方便进一步的试卷卷面图像处理和自动阅卷和批改。更重要的是计算机平台的软件支持工具方面有着很多使用方便、功能强大的工具库,如本次系统设计所需要的OpenCV库等,这些工具库的存在使得计算机平台更有利于缩短系统开发周期、便于系统的设计以及系统各功能模块的集成整合,大大提高了系统的开发效率。因此本次系统设计选择计算机平台作为该系统的硬件平台支持。

软件方面,本次系统设计主要涉及图像处理、字符识别等相关技术,尤其以图像处理模块为系统基础,在翻阅相关资料结合大学期间所学知识,了解到OpenCV工具库能基本满足本次系统设计图像处理部分的相关功能,包括图像灰度化、图像去噪声、图像二值化、透视变换、答题框裁剪提取等功能,而且OpenCV工具库具有速度快、实现简单、操作方便、可靠性高、算法优化度高等特点,是公认的非常强大的图像处理工具库,因此选择使用OpenCV库函数作为试卷卷面图像处理的基本算法。手写答案字符识别模块采用支持向量机方法训练字符识别模型,而所需的SVM分类算法采用sklearn机器学习工具库相关函数,因为其使用便捷、训练效果较好,能满足本系统设计所需手写字符识别的基本要求。

OpenCV是一个跨平台计算机视觉和机器学习软件函数开源库,可以运行在Linux、Windows、Android和Mac OS操作系统上,它轻量级而且高效,由一系列C函数和少量C++类构成,同时提供了C++、Python、Java、MATLAB等语言的接口,该库包含了图像处理和机器视觉方面的很多通用算法,致力于真实世界的实时应用[24],通过优化的C代码的编写对其执行速度带来了可观的提升,相比其他主流视觉函数库具有很明显的性能优势。

sklearn是基于python语言的机器学习开源工具库,创建在NumPy、SciPy、Pandas和Matplotlib等数据科学库之上,它包含六大任务模块:分类、回归、聚类、降维、模型选择和预处理。sklearn自带大量的数据集以及大量的模型函数,能满足大多数使用者的基本需求,是目前做机器学习项目当之无愧的第一工具。

本次系统设计选择Python语言,因为Python语言有着大量的第三方库,使用起来简单快捷,而且兼容上述所需的OpenCV和sklearn工具库。

4.3 试卷批改处理流程

本系统主要用于试卷的自动阅卷和批改,该系统最重要的功能模块就是图像处理与字符识别模块,本系统能否达到良好的阅卷批改效果,取决于试卷卷面图像处理效果与手写答案字符识别的准确率,而手写字符识别的准确率高低又很大程度上取决于答题框区域图像处理的效果好坏,因此对本系统而言,图像处理是最基本、最重要的算法和功能模块。该系统试卷批改处理流程如图2-2所示。

批改试卷以及输出结果对比正确答案并统计分数手写答案字符识别扫描并上传试卷卷面图像试卷卷面图像处理手写答题区域裁剪提取

图4-2 试卷批改流程图

试卷批改流程大致分为卷面图像预处理和手写答案识别两大模块。卷面图像预处理模块部分需要将上传到计算机的卷面图像进行灰度化、二值化,进而进行轮廓检测,方便做透视变换,最后识别答题区域,得到所有的手写答案图像组。手写答案识别模块部分需要根据事先训练好的手写字符识别模型对手写答案图像组进行识别预测,再将预测结果与正确答案进行对比即可根据事先规定各题型分值统计出试卷得分,对于错误的答案,系统也会在对应位置进行批改,将正确答案打印并输出批改后的试卷卷面图像[25]。

4.4 试卷批改效果

将所有识别的答案保存在一个列表中,再将该列表与之前手动输入的正确答案列表进行对比,根据各题目的题型与分数即可统计出得分情况,为实现试卷批改的直观性,在答案正确的答题框旁打对钩,在答案错误的答题框旁注释正确答案,最后将试卷得分标在试卷图像的右上角[26],批改效果如图4-6所示:

图4-3 单张试卷批改效果

最后系统会继续对指定文件夹下的全部试卷图像进行阅卷和批改,且会根据每张试卷的考号对比考生信息表将考生信息与试卷分数整合在一起,最终输出一张包含考生信息和考生试卷分数的Excel表格,方便阅卷人直观的查看考生得分情况与统计排名[27]。

图4-4 试卷批改结果

4.5 本章小结

本章介绍了本系统的整机结构设计,首先阐述系统的整体设计流程包括哪些步骤,初步制定设计规划与方案;其次决定本次系统设计的软硬件选择,最终确定选择在计算机平台上利用拓展性极强的python语言,结合OpenCV工具库和sklearn工具库进行代码模块部分的编程,这样可以极大地缩短编程周期,减轻系统搭建的负担;之后设计试卷批改处理的流程步骤,将批改流程划分为6个功能模块,方便后续功能模块的编程实现;最后展示了本次毕业设计完成的试卷批改系统效果。

总结与展望

5.1 总结

本文主要研究基于机器视觉的试卷批改系统的详细设计方法,考虑到计算机技术以及人工智能技术在教育方面的实际应用,以及针对目前阶段应试教育中考试试卷阅卷和批改的多种方法存在的种种弊端,进行了试卷批改系统项目的研究与设计。由于传统阅卷批改方式的成本高、操作繁琐等种种弊端,本系统设计存在着巨大的优势和潜力价值,本系统相关项目的研究会发展迅速,将来会成为考试阅卷批改的主流。

本试卷批改系统的实现基于计算机Windows平台的jupyter notebook,结合了OpenCV工具库和sklearn工具库,用python语言编写程序。通过多次测试已经基本实现了试卷预卷批改的全部功能,同时实现了方便快捷的人机交互,判卷批改结果也更加直观化。

本试卷批改系统的主要理论基础为图像处理和字符识别:

图像处理部分主要是对试卷图像进行预处理操作,包括试卷图像的灰度化、二值化、去噪声、轮廓检测、透视变换以及答题信息区域的提取,在本文详细研究了各图像处理方式的基础理论,并详细介绍了OpenCV库中各处理方式对应函数的函数原型、参数表示以及具体实现方式;

字符识别部分主要用到了支持向量机的方法实现字符多分类,其中还需要对数据样本集进行处理,方便训练模型并且达到较高的分类准确率,需要用到sklearn的各种函数,在本文详细研究了支持向量机的基础理论,以及训练模型、保存模型和调用模型等步骤。

5.2 展望

本次系统设计基本完成了试卷批改系统所需的各种功能,但对于本系统所涉及的各类技术理论只是处于初步研究阶段,只研究了其基础理论和基础算法,并未深入了解理论和算法如何进行进一步优化。

在图像处理方面,本系统对试卷答题模板的要求较高,需要在答题框中书写答案,无法适配所有的试卷答题模板,而且在图像去噪和透视变换模块仍然存在处理效果不明显甚至达不到要求得情况,仍需要进一步的优化处理。

在字符识别方面,本系统进过训练得到的分类模型已经能达到98%以上的准确率,但仍存在特殊手写字符识别不准确导致判卷错误的情况,需要寻找新的数据集扩展训练样本数据集的数量进一步提升识别准确率;本系统对手写字符也有一定的要求,手写笔体过细、超出答题框区域相邻字符距离过近等问题都会影响手写字符的识别,进而影响试卷的阅卷和批改;本系统能识别的字符数量也较少,能识别6种字母和10种数字,为实现优良的试卷批改系统,仍需要对更多的字符进行训练分类。

在人机交互方面,本系统只实现了代码方面的基本内容,并未设计更方便操作的UI界面,只能通过在代码中进行修改和运行程序实现本系统的所有功能,所以实用性和操作性还并未实现优化和便捷化,仍需要对其进行进一步的设计、修改和完善。

结束语

四年大学生活一闪而过,回首在大学的生活时光,有时会因为学习压力过大而伤心埋怨,有时也会因为通过不懈努力完成一科作业、一门考试、一项课设而心满意足、心花怒放,想起这些过往心中倍感充实,完成这篇毕设论文时依然感慨良多,这就是我在大学四年最后的工作任务了。

首先要感谢我的毕设指导老师肖晓明老师,感谢肖老师在忙绿的教学工作中抽出时间检查我的毕设进度、为我答疑解惑、督促我完成毕设。同时也要感谢所有教过我的老师们,你们严格谨慎的工作作风和温柔和善的待人方式会永远激励着我成为更好的自己,你们教给我的专业知识也会帮助我在以后的学习工作生活中不断进取、不断向上。

这次毕业设计是大学时光的终点,但只是我人生中的一个逗号,我将面临一个新的开始与新的生活,我会把在本次毕业设计中面对困难时多思考、多动手、多集思广益的学习态度牢记于心,落实到未来的工作和学习生活中,在今后的工作和学习生活中,不断学习,不断思考,深入实践,不断提升自我、历练自我,继续创造更多的价值。

参考文献

中共中央办公厅,国务院办公厅.关于减轻中小学教师负担进一步营造教育教学良好环境的若干意见[J].西部素质教育,2020,6:183.

田振东.基于机器视觉的作业批改系统研究及其嵌入式实现[D].山东:山东科技大,2018.

朱然.基于机器视觉的电子作业批改系统的研究与设计[D].南京师范大学,2018.

程建邦.基于机器视觉的试卷自动批改系统设计[D].山东科技大学, 2020.

Universal screening with automated essay scoring: evaluating classification accuracy in grades 3 and 4[J].Joshua Wilson.Journal of School Psychology.2018

杜孟航.人工智能在智能批改中的应用分析[J].科技传播, 2019.

郝辉,哈力木拉提·买买提,乔萨础拉,苏佩佩.字符识别研究现状和发展趋势计量分析[J].现代电子技术.2018.

Efficient and effective OCR engine training[J].Christian Clausner,Apostolos Antonacopoulos,Stefan Pletschacher.International Journal on document Analysis and Recognition

贾云得编著.机器视觉[M]. 科学出版社,2000.

胥磊.机器视觉技术的发展现状与展望[J].设备管理与维修,2016.

冈萨雷斯.数字图像处理[M].阮秋琦,等译.北京:电子工业出版社.2017:88-90.

Optical Character Recognition [J].Atul Pandey,Vivek Sharma,Shruti Paanchbhai,Neha Hedaoo,S.D.Zade.International Journal of Engineering and Manageme.2017

KennethR.Castleman著. 数字图像处理[M]. 电子工业出版社, 2002.

毛星云.OpenCV3编程入门[M]. 电子工业出版社,2015.2.

A Review on Image Processing Applications in Medical Field[J].Shaik Naseera,G.K. Rajini,B.Venkateswarlu,M Jasmin Pemeena Priyadarisini.Research Journal of Pharmacy and Technology.2017

邓动伟.图像边缘检测算法的改进及其应用研究[D].湖南师范大学,2016.

Hybrid model for Chinese character recognition based on Tesseract-OCR[J].Bo Wang,Yi Wei Ma,Hong Tao Hu.International Journal of Internet Protocol Technology.2020

邓乃扬,田英杰.支持向量机:理论算法与拓展[M].北京:科学出版社.2009:52-53.

A decision support system based on support vector machines for diagnosis of the heart valve diseases[J].Computers in Biology and Medicine.2005

杨晓伟,郝志峰.支持向量机的算法设计与分析[M].北京:科学出版社.2013::71-73.

崔健巍.手写字符识别的关键技术研究[J].科技信息.2011.

刘方园,王水花,张煜东.支持向量机模型与应用综述[J].计算机系统应用,2018,27:1-9.

刘瑞祯,于仕琪.OpenCV教程基础篇[M].北京:北京航空航天大学出版社.2007:34.

岳永哲,李然.图像处理技术在阅卷系统中的应用[J].电脑知识与技术,2007,3: 521,524.

肖雪莲.主观题自动批改技术研究[J].中国科技信息,2008:73-75.

关世奎.基于计算机视觉的智能辅助阅卷系统设计与开发[J].北京工业大学,2021.

 
友情链接
鄂ICP备19019357号-22