目录
前言
课题背景和意义
实现技术思路
一、背景
二、系统分析
三、 系统设计
实现效果图样例
最后
前言
大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课题是研究生级别难度的,对本科同学来说是充满挑战。为帮助大家顺利通过和节省时间与精力投入到更重要的就业和考试中去,学长分享优质的选题经验和毕设项目与技术思路。
对毕设有任何疑问都可以问学长哦!
选题指导: https://blog.csdn.net/qq_37340229/article/details/128243277
大家好,这里是海浪学长毕设专题,本次分享的课题是
基于机器视觉的答题卡生成及批阅分析系统-opencv
课题背景和意义
计算机技术的快速发展一首推动着社会的进步,而近年来,网络、图像、多媒体等技术的应用更加快了人们工作生活向自动化,智能化发展的脚步。目前国内外考试各个环节也都充分利用了各种计算机相关技术,例如网上注册报名、网上答题、网上评阅等环节。这些新方式的提出和应用无疑在提高效率、方便大众的同时确保了报名、考试和阅卷的公正性。试卷评阅工作是整个考试中非常重要的环节,它的完成效率和质量不但影响整个考试工作的进程,更关系着众多优秀人才的选拔,因此有一个更加公平、公正、安全的阅卷方式是至关重要的。网上阅卷技术是在丰富的传统手工阅卷经验基础上结合计算机网络技术和图像处理技术,并以试题和答题纸分离的全新评阅方式进行的。客观题评阅部分通过计算机扫描自动阅卷,主观题评说部分由多个老师通过网络调出试卷扫描图像进行阅卷,最后由计算机完成成绩校验、汇总、统计和分析的工作。由此可以看出,网上阅卷系统无论在阅卷效率、质量还是公平性上都远超手工阅卷,必将成为目前及未来考试阅卷工作中的主要方式。
实现技术思路
一、背景
网上阅卷系统已经应用于中考、高考和国考等大规模考试,然而在复杂环境下的中小规模考试如月考和测试等,该系统并未得到广泛应用,基本上仍在进行手工阅卷 。本文以桂 林理工大学的答题卡样式为例,设计一种可以根据使用者要求生成答题卡兼阅卷并对考试情况进行分析的软件,最大限度降低成本和软件对设备的要求,如答题卡打印纸张采用普通A4纸即可,使用方式尽可能简单,以减轻教师的工作负担。
二、系统分析
答题卡生成与批阅分析系统可以依照使用者对答题卡信息、客观题题型和题数的设置生成相应的答题卡模板并导出word文档,提供答题卡批量识别功能,根据使用者预设的答案数据得出答题卡的填涂结果,并根据预设的知识点类型,统计每个知识点和每道题的得分率。
①新建答题卡模板
在新建答题卡模板的功能里,使用者可以自定义答题卡的基本信息,如题目数量、题目选项数量、题目分值、知识点数量等;根据使用者的设置,生成相应数量的文本框等控件让用户定义知识点、答案等,最后,以Word 文档形式生成相应信息、题量的答题卡模板,以供使用者打印
。
② 已存答题卡模板在已存答题卡的页面,显示使用者已创建的所有答题卡模板,可对答题卡模板进行“批量识别”“导出”“删除”等操作。
2)标准答题卡模板设计
答题卡标准模板如图 所示,图中黑色圆块作为整体定位锚点,最下边和最右边的黑色矩形作为学号区域和答题区的定位锚点,代表题目选项和学号选项位置的纵坐标和横坐标。将答题卡模板生成时需要插入内容的区域添加为书签。
3)答题卡识别的实现
答题卡识别,是把答题卡以照片形式导入,通过对图片的一系列处理如转换灰度图、降噪、模板匹配、透视变换、区域投影、膨胀腐蚀、阈值判定等,从而得出答题卡的识别结果,再与标准答案数据比较,进行结果分析 。
模板匹配
根据答题卡模板的设计规则,把答题卡分割成左上、左下、右上、右下四个相等大小的区域时,每个区域上必然有且只有一个黑色圆点,分别对4个区域进行模板匹配,就可以得出4个整体定位锚点的坐标。在此以左上角的区域为例进行介绍。 在完成了对图像的灰度化、高斯滤波降噪、二值化后,进行模板匹配,算法主要流程如图所示。
1 ) OpenCV 提供模板匹配函数 matchTemplate 匹配模板块
和输入图像,下图是左上区域原始图像,获得匹配结果图像,越亮的点匹配度越高,左上区域模板匹配结果如图所 示。
2 )归一化是把数据经过处理后限制在需要的一定范围内, 使得数据之间对比性明显 。OpenCV提供函数 normalize进行归一化处理,图7为对模板匹配结果做归一化处理。
(3)OpenCV
提供函数minMaxLoc在给定矩阵中获取最大和最小值(包括它们的位置) 。
透视变换
透视变换(Perspective Transformation)是将图片投影到一个 新的视平面(Viewing Plane),也称作投影映射(Projective Mapping)。透视变换的数学公式为:
区域投影计算
学号选项和答案选项的定位,是通过答题底部和最右侧的黑色矩形来确定坐标。 投影计算的思路是计算区域中每一行或每一列非零像素的数量,再通过判断阈值和区域连续确定每个黑色矩形的起始坐标 。 区域投影计算流程如图:
OpenCV 提供了 countNonZero 函数获取非零像素点数,需要进行识别的是黑色矩形(灰度值为0),所以先将图像使用大津法OTSU进行二值化,凸显黑色矩形区域。再将图像用反二进制阈值法 THRESH BINARY INV 进行二值化,达到置目标区域灰度值非零,效果如图所示:
比较阈值判断是否填涂
经过对图片的一系列处理以及锚点坐标的获取,可以找到选项所在的区域,并判断是否填涂。要从答题卡获得的有学号信息和作答信息,在进行判断之前先把透视变换后的图片二值化,然后对图像进行膨胀和腐蚀,可以更进一步降噪,凸显目标区域 。如图 所示:
实现效果图样例
表是测试答题卡预测结果数据,图 (a)是答题卡,图(b)是答题卡识别效果:
图 是答题卡识别分析结果图:
我是海浪学长,创作不易,欢迎点赞、关注、收藏、留言。
毕设帮助,疑难解答,欢迎打扰!
最后