Bootstrap

基于OpenCV的自动批卷系统的设计与实现

收藏和点赞,您的关注是我创作的动力

概要

  考试作为衡量个人学习情况的重要手段,长久以来纸质试卷作为主导作用,虽然近几年社会的发展导致在线考试开始普及,在线考试的弊端也非常明显,所以在未来中纸质考试是不会完全替代的。纸质试卷阅卷大致分为两种方式:一种是制作特定答题卡然后对其进行扫描,一种是人工处理方式。前者需要定制答题卡,并且需要特定的笔涂写,二后者采用人工方法进行统计分数与分析,不仅浪费时间、效率低、而且容易出错。传统阅卷方式已经无法满足学校的需求,特定答题卡扫描虽然阅卷速度很快,准确率高,但是其试题结构模式固定,纸张成本高,每次考试都需要负担大量成本。
    本文针对上述批卷的不足进行优化,基于流行的图像处理技术实现对试卷客观题的批阅和主观题分数进行图像分析,基于OpenCV的自动批卷系统,使用者可以随时随地登录到本系统中提交答题卡,对答题卡进行图像分析,识别出每个题目的选择情况,并比对试题答案计算分析每个题目的错误情况,统计试卷的平均分。系统支持拍照识别和扫描件识别,通过定位点对图片进行垂直投影和水平投影直接分割每个选择区域,绘制灰度直方图用于调整识别区域阈值,并通过一定的算法计算识别的题号。
    本文最后给出了系统的软硬件环境,完成整个系统的界面设计,介绍了其他功能模块与操作流程,并对最终成绩的分布和平均分做出分析。经多次测试,本系统阅卷速度可达到每分钟6份,满足应用要求。
关键词 OpenCV;自动批卷;答题卡;图像分析

一、研究背景与意义

    本文针对实际需求,利用手机或扫描仪等设备,基于现在比较流行的图像处理技术实现,采用基于OpenCV技术的自动批卷系统,对试卷的自动批阅和试卷分析功能部分的设计。用户可以登录系统上传待扫描的答题卡会对答题卡进行图像分析,识别出每个题目的选择情况,并比对试题答案计算分析每个题目的错误情况,包括选择题自动批阅、主观题自动计算分数,考试结果与学号对应存储,并对成绩的结果做出有效的分析,统计试卷成绩进行分析。本系统应用于教育领域,可以大大减轻教师批阅试卷的负担。
  图像识别分析是本系统中的核心功能,以识别功能作为中心搭建了自动批卷系统,系统支持拍照识别和扫描件识别,通过对图片进行灰度化,根据定位点进行垂直投影和水平投影直接分割每个选择区域,绘制灰度直方图用于调整识别区域阈值,并通过一定的算法计算识别的题号。

课题研究主要内容

   本文主要研究以图像分析和图像识别为核心搭建的试卷自动批卷系统,处理图像中选择区域填涂区域的识别和处理识别结果的问题,并给出具体的实现过程。系统提供试卷识别、试卷分析、用户管理、权限管理等功能模块。
详细内容如下:
  (1)用户可以登录网站,现有包括教师和管理员,每个用户赋予不同的角色,登录后后端菜单会根据账号的角色权限的不同进行相应展示。
  (2)添加班级与专业相互绑定,创建课程是可以绑定用户,用户创建试卷仅可以创建自己的课程试卷。
  (3)管理员可以操作用户、试卷、试题、专业、班级、图片处理中心、课程。教师可以操作试卷、学生。
  本文中答题卡填涂识别模块是对一张绘制的A4答题卡进行识别操作,答题卡的上方侧边和下方有标记块,用于定位答题卡各选项的坐标,识别步骤如下:
  (1)图像预处理包括模板匹配、透视变换、腐蚀膨胀、二值化、高斯模糊等,若为非扫描件会加一次模板匹配和伽马纠正以提高图像清晰度;
  (2)然后会根据侧边和底部裁剪并进行投影转换,获取投影图,根据投影图获取跳变坐标;
  (3)然后根据坐标点圈定选项的识别区域,获取识别区域中填涂点占比,为提高识别效率,添加了红颜色剔除待优化;
  (4)最后根据占比情况输出各选项填涂情况,若为客观题区域会于数据库中的答案进行比对,若为主观题区域会把分数统计下来,最后汇总出总分。

二、系统总体设计

3.1功能结构设计

   通过大量的平时考试得到答题卡的结构设计分为准考证区域、主观题区域、客观题区域这三个部分,根据自动批卷系统的需求分析,系统可分为一下几个模块:试卷图像获取及处理、试卷批阅模块和系统其他功能框架图,系统功能框架图包括权限管理、学生管理、用户管理、班级管理、图像处理中心、试题管理、试卷管理、专业管理,同时app提供上传答题卡图像的功能,待扫描完成后用户可以查看试卷的分数情况。

3.1.1试卷图像获取及处理

   自动批卷系统中获取图像的设备为扫描仪或者手机或者其他拍照设备。通用的拍照设备有利于用户获取图像设备的选取。
获取到图像后,只需要登录系统上传扫描图片,图片即可上传到图片处理中心,后续仅仅需要等待处理结果接口。
图片处理中心步骤如下:
  (1)连接OpenCV运行库,根据图片远程链接转变为字节流文件,把byte文件转换为mat类型,读取圆点文件路径转换成mat。
  (2)根据答题卡图片,模板匹配匹配圆点位置,并把4个圆点位置写入Point类型中。

  (3)把Point转换成Mat类型,根据四个点计算透视变换以进行倾斜纠正。
  (4)根据用户选择为扫描件还是非扫描件进行不同的处理,非扫描件需要再进行一次模板匹配透视变换,之后再进行伽马纠正以提高图片清晰度,伽马纠正后是灰度图更加清晰。
图像获取和处理流程图3.1如下所示:
在这里插入图片描述

图3.1 图像获取和处理流程图

3.1.3系统功能框架图

由前面几个小结的需求分析和功能分析,基于OpenCV的自动批卷系统功能结构图设计完成,其系统功能架构总图如下图3.3所示。
  在这里插入图片描述

图3.3 系统功能架构图

三、系统实现

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

四、总结

    在毕业设计的制作中无时无刻不存在着思维火花的碰撞,在这次的设计后我对于系统的开发架构采用最热门的前端语言Vue,后端采用SpringBoot作为核心框架,长达2个月的开发使得我有了自己独有的见解,在编写代码是我也开始注重代码的规范和文件规范,这大大缩减了我随着代码的时间,提高了我编写代码的效率,为以后的拓展功能奠定一定的基础,同时在论文的撰写方面不再累赘叙述,已经开始直达主题,文章的说明也开始言简意赅,这些都体现了只有在实践的道路才可能发现真理。毕业设计还有很多需要完善的地方,试卷的模板调整为自己构建让整个批卷系统更加灵活,还有识别算法的优化,以及批卷体系的完善。

五、目 录

第1章 绪论1
1.1研究背景和研究意义1
1.2试卷识别系统研究现状2
1.2.1试卷识别系统国外研究现状2
1.2.2试卷识别系统国内研究现状3
1.3本文研究内容与结构安排3
1.3.1本文研究内容3
1.3.2章节安排4
1.4本章小结4
第2章 系统分析5
2.1系统需求分析5
2.2可行性分析6
2.2.1技术的可行性6
2.2.2经济的可行性6
2.3系统相关技术介绍6
2.3.1后端技术栈6
2.3.2前端技术栈6
2.3.3开发工具7
2.4技术介绍7
2.4.1Spring后端框架7
2.4.2Vue前端框架7
2.4.3MySQL数据库8
2.4.4OpenCV简介8
2.4.5Jenkins自动化部署8
2.5本章小结8
第3章 系统总体设计9
3.1功能结构设计9
3.1.1试卷图像获取及处理9
3.1.2试卷批卷模块10
3.1.3系统功能框架图11
3.2数据库设计13
3.2.1数据库概念设计13
3.2.2数据库逻辑设计14
3.3本章小结18
第4章 系统设计相关的图像处理技术实现19
4.1模板匹配与图像倾斜矫正19
4.2图像去噪21
4.3图像投影图和图片切块22
4.4图像去红23
4.5图像二值化24
4.6识别选项处理24
4.7本章小结25
第5章 系统实现27
5.1后台功能设计27
5.1.1后台登录27
5.1.2首页29
5.1.3用户管理30
5.1.4权限管理31
5.1.5学生管理31
5.1.6试卷管理32
5.1.7数据字典36
5.1.8日志管理37
5.1.9个人中心38
5.2App功能设计40
5.2.1登录40
5.2.2上传扫描图片40
5.2.3个人中心41
5.3本章小结41
第6章 测试与部署42
6.1测试42
6.1.1功能性测试42
6.2部署43
6.2.1配置运行环境43
6.2.2部署项目46
6.3本章小结49
结 论50
致 谢51
参 考 文 献52
附录X 译文53
译文标题53
附录Y 外文原文54

;