MATLAB实现OCR自动阅卷,识别答题卡进行成绩统计

本文涉及的产品
个人证照识别,个人证照识别 200次/月
OCR统一识别,每月200次
自定义KV模板,自定义KV模板 500次/账号
简介: 利用MATLAB进行答题卡识别编程设计,最主要的是实现了将答题卡中被填涂的答案提取出来,然后与标准的答案进行比对。通过相关的算法,算出考生填涂正确的题数,并统计计算后的得分。

利用MATLAB进行答题卡识别编程设计,最主要的是实现了将答题卡中被填涂的答案提取出来,然后与标准的答案进行比对。通过相关的算法,算出考生填涂正确的题数,并统计计算后的得分。


每种答题卡都有很明显的助识别标记,像下图中的这种,最右边的一竖溜小横杠是帮助定位选项的,还有准考证号下方的横线、最下边的横线是用来矫正图像的。


ff4133214daf4a989150794cd41a14ce.png


首先进行初步的滤波,突出学生填图的部分和帮助识别的符号,其他的东西不重要。所以这里要做的事情就是增强对比度和去掉一些拍照(扫描)时产生的噪音,可以使用局部直方图均衡化和形态学去噪的方法,对于局部直方图均衡化可以使用MATLAB中imadjust函数来完成,其原理就是将某一阈值内低灰度的显示范围扩大,阈值外的部分归于255。


矫正图像,是识别前的必须准备,因为要使用hough变换来检测图像中的直线,hough变换只能研究二维函数,所以要把图像二值化,然后找到右边的一竖溜小横杠所在的位置,根据直线的偏转角度来使图像旋转完成矫正。转换为二值图像时的阈值选择要留意,人为不好确定的情况下,最好使用graythresh来确定,或者是其他更可行的方法。


再用一次hough变换将答题卡信息和填图区域分开(就是检测准考证号与选项中间的那条横线),使用regionprops函数将不同的连通域进行定位后,便可编写相应程序识别出选项和考生信息。


由图像处理部分标记出答案后,需要与标准的答案进行对比。这时需要建立一个二维的数组来储存标准答案。在程序中建立了一个数组,只有一行却有多个列,来记录每一道单项选择题的标准答案。


记录好考生填涂的答案和标准答案后,这时通过一个for循环一一对比,如果相同的就让计数器加一如果不同计数器就不加。循环结束后就可以统计出考生选对的答案,然后将统计好的数字乘上每道题的分数就可以计算出考生单选题的得分。


答题卡图像受拍摄影响较大,如拍摄时光照不均匀,对后续处理影响较大,此外拍摄时背景宜选纯白色,提高目标区域定位准确性。


点击打开图像并阅卷按钮,选择对应图片进行阅卷,如下图所示:


28599fb6e31f45488d9172ab9d3d142b.png


12a8b65631bc4e0d8431cfaf8817c15d.png


得到学号与成绩信息,标准答案保存在StanderAnswers.xls文件中,如下图所示:


a6e6c308ac5c4d608c44bb3b148807a4.png


项目资源下载请参见:MATLAB实现OCR自动阅卷,自动识别答题卡进行成绩统计

https://download.csdn.net/download/m0_38106923/87732717


相关文章
|
2月前
|
监控 算法 数据安全/隐私保护
基于视觉工具箱和背景差法的行人检测,行走轨迹跟踪,人员行走习惯统计matlab仿真
该算法基于Matlab 2022a,利用视觉工具箱和背景差法实现行人检测与轨迹跟踪,通过构建背景模型(如GMM),对比当前帧与模型差异,识别运动物体并统计行走习惯,包括轨迹、速度及停留时间等特征。演示三维图中幅度越大代表更常走的路线。完整代码含中文注释及操作视频。
|
4月前
|
人工智能 文字识别 开发工具
印刷文字识别使用问题之是否支持识别并返回文字在图片中的位置信息
印刷文字识别产品,通常称为OCR(Optical Character Recognition)技术,是一种将图像中的印刷或手写文字转换为机器编码文本的过程。这项技术广泛应用于多个行业和场景中,显著提升文档处理、信息提取和数据录入的效率。以下是印刷文字识别产品的一些典型使用合集。
|
4月前
|
人工智能 JSON 文字识别
印刷文字识别使用问题之如何数电发票进行识别
印刷文字识别产品,通常称为OCR(Optical Character Recognition)技术,是一种将图像中的印刷或手写文字转换为机器编码文本的过程。这项技术广泛应用于多个行业和场景中,显著提升文档处理、信息提取和数据录入的效率。以下是印刷文字识别产品的一些典型使用合集。
|
4月前
|
文字识别 数据安全/隐私保护 iOS开发
印刷文字识别使用问题之如何识别礼品册上的卡号、密码信息
印刷文字识别产品,通常称为OCR(Optical Character Recognition)技术,是一种将图像中的印刷或手写文字转换为机器编码文本的过程。这项技术广泛应用于多个行业和场景中,显著提升文档处理、信息提取和数据录入的效率。以下是印刷文字识别产品的一些典型使用合集。
|
4月前
|
文字识别 开发工具
印刷文字识别使用问题之是否支持识别手写体
印刷文字识别产品,通常称为OCR(Optical Character Recognition)技术,是一种将图像中的印刷或手写文字转换为机器编码文本的过程。这项技术广泛应用于多个行业和场景中,显著提升文档处理、信息提取和数据录入的效率。以下是印刷文字识别产品的一些典型使用合集。
印刷文字识别使用问题之是否支持识别手写体
|
4月前
|
文字识别 API 数据处理
印刷文字识别使用问题之对于带钢印的VIN图片如何提高识别准确率
印刷文字识别产品,通常称为OCR(Optical Character Recognition)技术,是一种将图像中的印刷或手写文字转换为机器编码文本的过程。这项技术广泛应用于多个行业和场景中,显著提升文档处理、信息提取和数据录入的效率。以下是印刷文字识别产品的一些典型使用合集。
|
4月前
|
人工智能 文字识别
印刷文字识别使用问题之是否支持将识别结果以键值对(key-value)的形式返回
印刷文字识别产品,通常称为OCR(Optical Character Recognition)技术,是一种将图像中的印刷或手写文字转换为机器编码文本的过程。这项技术广泛应用于多个行业和场景中,显著提升文档处理、信息提取和数据录入的效率。以下是印刷文字识别产品的一些典型使用合集。
|
4月前
|
文字识别 前端开发 Java
印刷文字识别使用问题之如何使用Python SDK来上传图片并获取识别结果
印刷文字识别产品,通常称为OCR(Optical Character Recognition)技术,是一种将图像中的印刷或手写文字转换为机器编码文本的过程。这项技术广泛应用于多个行业和场景中,显著提升文档处理、信息提取和数据录入的效率。以下是印刷文字识别产品的一些典型使用合集。
|
4月前
|
文字识别 Java API
印刷文字识别使用问题之发票凭证识别功能是否可以对接ERP系统
印刷文字识别产品,通常称为OCR(Optical Character Recognition)技术,是一种将图像中的印刷或手写文字转换为机器编码文本的过程。这项技术广泛应用于多个行业和场景中,显著提升文档处理、信息提取和数据录入的效率。以下是印刷文字识别产品的一些典型使用合集。
|
4月前
|
存储 人工智能 文字识别
印刷文字识别使用问题之离线识别车牌识别效果如何
印刷文字识别产品,通常称为OCR(Optical Character Recognition)技术,是一种将图像中的印刷或手写文字转换为机器编码文本的过程。这项技术广泛应用于多个行业和场景中,显著提升文档处理、信息提取和数据录入的效率。以下是印刷文字识别产品的一些典型使用合集。