【运行截图请往下看】编程语言:Android、iOS、C#、Asp/Asp.net、Java、Vb、Php、Jsp、C++等
【专业优势】18年功力源码技术大神,坐阵亲临指导,远程协助包100%成功运行!
开发软件:Pycharm2023 + Python3.11 + OpenCV
光学标记识别(简称OMR)是自动分析人工标记文档并解释其结果的过程。我们之前在20年差不多都是人工去识别判卷,那个时候一个班级的试卷需要老师花费差不多1个小时才可以判完。效率就比较低,随着这个计算机硬件和信息大爆炸时代的到来,人工智能也开始飞跃的发展。对于这个试卷的问题,我们再用人工智能去做的时候,1个小时可以判几十万或者更多的试卷。所以人工智能对人类的发展是有一个质的飞跃的。那么我们就来了解一下他是一个怎么样的过程。
项目目标:首先我们要在图片中,把试卷的区域利用透视变换给拿出来。也就是提取自己的ROI区域。然后答题卡填充的答案类似于实心的,没有填充的答案类似于是一个空心的。识别出来之后,我们要和输入的答案进行一个比较,如果对就记录下来,如果不对,那么就不记录,最后利用这个来判分。完成一个批分的功能。
1:检测图像中的检查。
2:应用透视转换以提取考试的自上而下的鸟瞰图。
3:从转换的考试的角度中提取气泡集(即可能的答案选择)。
4:将问题/气泡排序为行。
5:确定每行的标记(即“气泡”)答案。
6:在我们的答案键中查找正确答案,以确定用户的选择是否正确。
7:对考试中的所有问题重复上述步骤。
一、数据预处理:
这里是一些基础的形态学操作,首先我们将图像由RGB转为gray图像,灰度图像。然后我们对灰度图像进行一个高斯滤波操作,目的就是消除掉图片中的一些噪音点,方便后期处理。高斯滤波之后,我们又做了一次边缘检测,以75和200像素值作为阈值。对滤波后的操作进行一个边缘检测。然后我们对边缘检测后的图像进行轮廓检测,并且画出轮廓。文档的边缘是如何清晰定义的,检查的所有四个顶点都存在于图像中。获取文档的这个轮廓非常重要,因为我们将使用它作为标记,将透视转换应用于考试,从而获得文档的自上而下的鸟瞰图。这里要注意就是老版本的CV轮廓检测返回的是三个结果,而新的版本返回的是两个结果。所以我们只需要第一个结果,所以索引就是定位0,老版本就定为1.然后我们定义参数,只检测外轮廓,并且使用四个点检测轮廓的方法。我们检测出来外面轮廓之后,接下来想把整个试卷拿出来,做一个透视变换操作。拿到轮廓的坐标。
二、透视变换:
这里我们把轮廓按照面积做了一个排序,然后遍历排序后的轮廓。cv2.approxPolyDP主要功能是把一个连续光滑曲线折线化。如果轮廓检测出来是四个点组成的,那么我们就把他给拿出来。首先我们用order_points把四个点的坐标提取出来了。然后我们计算一下透视变换的w和h。选择出来透视变换之后的坐标结果。然后我们基于这两个结果求出一个中间矩阵M,然后使用一个当前矩阵*中间矩阵M就得到了透视变换之后的结果。对着四个点进行操作,如果相加那么肯定是左上的点是最小的,右下的点是最大的。那么我们把他提取出来。然后在做差,那么很明显就是右上是最大的,左下是最小的,这样我们就把四个点给提取出来了。然后返回回去。
三、阈值处理:
我们拿到了透视变换的结果之后,对透视结果进行操作,首先我们进行一次阈值处理。


照片名称:1答题卡样子

照片名称:2高斯模糊效果

照片名称:3边缘检测效果

照片名称:4透视变换

照片名称:5阈值处理

照片名称:6找到没一个画圈轮廓

照片名称:7利用mask判断结果

照片名称:8答题卡自动阅卷结果



下一个计算机源码设计:1479基于Flask二手车网交易数据可视化分析及爬虫设计

- 1456基于深度学习YOLOv5红外线行人车辆识别系统设计2024-08-07 01:02:33
- 1446基于python电商行业产品评价用户行为可视化大屏分析2024-07-28 02:13:50
- 1444基于Hive大数据租房分析可视化大屏展示设计2024-07-26 02:49:03
- 1442基于Spark的运动员大数据分析系统设计2024-07-22 18:10:52
- 1440基于Spark天气大数据分析可视化大屏及LSTM天气预测2024-07-21 19:12:33
- 1438基于大数据Hadoop外卖用户行为可视化大屏分析2024-07-20 18:12:07
- 1436基于Spark零售产业市场商品生产销售可视化大屏大数据分析2024-07-18 23:47:08
- 1434基于Spark大数据平台二手房信息爬虫分析预测系统带大屏展示2024-03-30 23:25:47

