【毕业设计】深度学习试卷批改系统 – opencv python 机器视觉

文章目录

  • 0 简介
  • 1 项目背景
  • 2 项目目的
  • 3 系统设计
    • 3.1 目标对象
    • 3.2 系统架构
    • 3.3 软件设计方案
  • 4 图像预处理
    • 4.1 灰度二值化
    • 4.2 形态学处理
    • 4.3 算式提取
    • 4.4 倾斜校正
    • 4.5 字符分割
  • 5 字符识别
    • 5.1 支持向量机原理
    • 5.2 基于SVM的字符识别
    • 5.3 SVM算法实现
  • 6 算法测试
  • 7 系统实现
  • 8 最后

0 简介

Hi,大家好,这里是丹成学长的毕设系列文章!

对毕设有任何疑问都可以问学长哦!

为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天要分享的新项目是

基于机器视觉的试卷系统 – opencv python 视觉识别

学长这里给一个题目综合评分(每项满分5分)

  • 难度系数:4分
  • 工作量:4分
  • 创新点:3分

选题指导, 项目分享:

https://gitee.com/yaa-dc/BJH/blob/master/gg/cc/README.md

1 项目背景

机器视觉的发展对存在的作业批改问题, 提供了有效的解决方案。 通过基于机器视觉的作业批改系统可以对老师的教学工作进行辅助,改变传统的批改作业方式, 帮助老师减轻教学压力和工作负担, 老师可以快速完成批改过程,及时反馈给学生。 家长同样需要从繁重的重复性检查作业工作中解脱出来, 将更多的精力放在关注学生的学习情况和发现学习问题上。 学生可以通过自我批改作业中发现问题、加深理解, 培养自主学习意识, 提高分析问题和解决问题的能力。 因此, 自动批改作业系统在教育领域的应用表现出了无可比拟的教育价值和发展前景。

2 项目目的

学长设计了一个系统系统,可以协助老师和家长完成繁重和重复的作业批改和检查工作, 提高工作效率。

3 系统设计

3.1 目标对象

学长这里以数学作业试卷识别为目标。

首先按照系统功能需求进行分析, 确定要完成的设计任务和目标, 并对系统的功能和性能分析做出设计要求。 其次根据系统的功能划分, 选取基于 PC 平台的软件设计方案完成软件编程, 对系统实现的功能进行验证, 测试其功能和性能是否符合设计要求。 选取视觉系统的嵌入式开发平台, 进行硬件模块设计和开发环境及软件平台的搭建, 将系统软硬件集成在一起进行调试进行, 对系统存在的问题做出改进和优化。

最后通过系统测试, 分别对系统的功能和性能进行测试验证, 是否满足设计的要求。 最终构建一款多平台应用, 基于机器视觉的自动作业批改视觉系统。

3.3 软件设计方案

该系统基于机器视觉的图像处理和字符识别技术, 整个系统的核心是软件设计部分。 能否对作业有效和快速的批改, 很大程度上取决于软件设计部分图像处理的效果和字符识别的准确率。 软件设计主要完成系统相关的功能操作,设计流程可分为图 中的模块组成。

4.1 灰度二值化

灰度二值化是将图像先进行灰度处理, 再进行二值化处理。 经过灰度二值化处理的图像降低了像素的运算量, 同时突出图像中算式的特征。 灰度化是将采取到的彩色图像进行灰度值转换, 灰度化后的图像去除了彩色信息, 只保留了算式字符与背景之间的亮度信息, 图像中每个像素点都是介于 0 至 255 灰度值中的一种。

形态学处理是通过一定形态的结构元素, 对图像产生基于形状的操作 。它可以在保持图像基本形状的基础上简化数据, 去除多余结构。 形态学运算主要包括开运算和闭运算, 这两个操作包含了膨胀和腐蚀。

关键代码

4.3 算式提取

算式提取的主要任务是从纸张中找到其中一组算式的字符区域, 并将算式从所在的区域中提取出来。 经过算式提取操作, 可以针对每一组算式进行批改,同时也便于下一步的字符分割, 算式提取准确性对作业批改效果有直接的影响。二值化处理后的算式图像中算式的灰度值为 255, 背景的灰度值为 0。

采取基于投影的方法, 进行水平和垂直方向的投影对算式进行提取 , 由于字符图像和背景图像对比度较大, 背景几乎不存在噪音干扰, 因此投影分割可以取得较好的效果。

对图像进行列扫描, 得到垂直方向投影图, 投影后字符间隔的白色像素点的个数为 0, 在字符区域处形成波峰。 此时根据多个连续的波峰图像, 记录开始和结束的位置, 就可求得算式的左右边界, 进行分割得到仅包含一组算式区域的图像。

4.4 倾斜校正

在图像获取的过程中, 由于摄像头拍摄角度和作业图像有时会产生一个倾斜角度, 此时图像会发生垂直倾斜, 如果不对算式图像进行倾斜校正处理, 可能会无法正确识别出字符。 因此算式提取后要对算式图像进行倾斜校正, 采用基于 Hough 变换的方法, 其原理为图像中的直线和曲线经过变换映射到参数空间上的一个点, 通过累加的峰值检验图像中的直线和曲线。 Hough 变换的实质是将图像中一定形状元素的点进行聚类, 通过解析式将参数空间对应的点联系起来。

5 字符识别

支持向量机是一种新的解决分类问题的机器学习方法, 基于统计学习理论,采用结构风险最小原则。 其原理是在训练样本集通过少量支持向量, 自动构造分类函数建立一个最大间隔分类平面, 以此解决分类问题。 支持向量机不需要构建 络结构设计, 通过非线性变换解决高维空间中样本识别问题。 支持向量机越来越多的应用到了字符识别中, 表现出较好的字符识别效果。

5.1 支持向量机原理

支持向量机(Support Vector Machine, SVM), 是 Vapnik [35] 研究小组在统计学习理论基础上, 于 1995 年针对分类问题提出的最佳分类准则。 SVM 是一种基于统计学习理论的模式识别方法, 主要应用于解决分类和回归问题。 传统的统计学理论基于样本无穷大的统计性质, SVM 专门针对有限样本, 算法转化成一个二次型寻优问题, 得到的是全局最优解。 它具有解的唯一性, 经过非线性变化转化到高维特征空间, 其算法与样本的复杂度无关, 不依赖输入空间的维数,得到的最优解优于传统的学习方法 。 因此迅速的发展起来, 在手写字符识别领域取得了巨大的成功。

对于最优间隔平面分类问题, 根据样本分布的情况分为线性可分与非线性可分进行讨论。 在线性可分的情况下, 其目标就是寻找最优间隔超平面, 将样本准确的分开。 根据少量支持向量确定平面, 保证样本数据与超平面距离最大,如图所示。

最优分类面示意图

每个分类器只能将一个字符与其他字符分开, 对于手写字符而言, 其中一类字符样本的特征向量作为正集(标签对应的值为+1), 其余 9 个样本的特征向量做负集(标签对应的值为-1)。 按照这种形式依次划分, 将训练集依次进行训练, 可得到 10 个二分类器, 测试阶段将未知样本输入到这 10 个分类器进行分类判断, 决策结果取相应结果的最大值。 若输出的值为+1, 则对应相应类的字符。

格特征是字符识别中常用的特征提取方法之一, 体现了字符形状的整体分布。 其中粗 格特征提取的方法是将字符图像等分成多个 格区域, 进行特征提取。 首先将归一化的字符样本图像, 其中大小为 128128, 等分成 1616 个 格, 如下图所示。 统计每个 格中黑色像素点占整个 格图像的有效像素比例, 最后将特征值按照 格排列转换为向量形式。

【毕业设计】深度学习试卷批改系统 - opencv python 机器视觉

5.3 SVM算法实现

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年10月15日
下一篇 2022年10月15日

相关推荐