温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
基于
LeNet
试卷
手写
分数
分割
识别
方法
王洪申
基金项目:国家自然科学基金(61962035)收稿日期:20210419修回日期:20210425第 40 卷第 2 期计算机仿真2023 年 2 月文章编号:10069348(2023)02045907基于 LeNet5 的试卷手写分数无分割识别方法王洪申,李昌德(兰州理工大学机电工程学院,甘肃 兰州 730050)摘要:研究了 LeNet5 网络识别试卷计分栏手写分数的无分割识别算法。先将高拍仪获取的试卷计分栏图像运用 OI 区域选择和连通域处理等图像处理算法将其中手写的各分数截取出来,形成单独的图像,然后将图像归一化,并将格式转化为csv 文件,后把这些 csv 数据输入训练好的 LeNet5 网络实现识别。在训练 LeNet5 网络时,不断修改该网络的 batch、learning rate、epoch 和权重数量等参数,提高识别效果。对于无分割字符识别,卷积神经网络需进行 100 分类(即 099,不考虑 100 分的试卷),将全连接层神经元数量设置为 100。为了提高试卷识别分数效果,将试卷计分栏各题号的理论总分也输入卷积神经网络,并将该数据作为误分类的一个筛选,提高了分类准确性。采用以上系列方法,对 500 份学生试卷的手写分数识别,正确率达 93.20%。将以上方法应用于试卷分数统计系统,可以大幅度提高试卷分数的统计速度并降低教师的劳动强度。关键词:无分割的手写数字识别;卷积神经网络;计算机辅助阅卷中图分类号:TP183;TP391.1文献标识码:BAn Undivided ecognition Method for Handwritten Scoreof Test Paper Based on LeNet5WANG Hongshen,LI Changde(College of Mechanical and Electrical Engineering,Lanzhou University of Technology,Lanzhou Gansu 730050,China)ABSTACT:This paper studies the recognition algorithm of handwritten scores of test paper columns based onLeNet5 network Firstly,we used OI region selection and connected domain processing algorithm to capture thescore of the test paper column image obtained by the altimeter,and form a separate image Then we normalized theimage and transform the format into a CSV file,and then input these CSV data into the trained LeNet5 network to re-alize recognition When training the LeNet5 network,the parameters such as batch,learning rate,epoch and weightnumber of the network were constantly modified to improve the recognition effect For undivided character recognition,a convolutional neural network needed to classify 100(ie 099,regardless of the test paper with 100 scores)andset the number of neurons in the whole connection layer to 100 In order to improve the effect of test paper recognitionscore,this paper also input the theoretical total score of each question number in the score column of the test paper in-to a convolution neural network and used the data as a screening of misclassification,which improved the accuracy ofclassification Using the above series of methods,the recognition accuracy of handwritten scores of 500 studentstestpapers is 93.20%The application of the above methods to the test paper score statistics system can greatly improvethe speed of test paper score statistics and reduce the labor intensity of teachersKEYWODS:Undivided handwritten numeral recognition;Convolutional neural network;Computer aided marking9541引言手写字符的计算机自动识别具有良好的应用价值,如邮件自动分拣1 和银行票据自动识别2 等。从上个世纪 60、70 年代开始,外国学者就已经对字符识别展开了研究3,从模板匹配到机器学习,从打印字符到手写字符,字符识别领域理论方法不断进步,识别场景愈发复杂4。手写数字识别是字符识别中重要的内容之一,其识别有其自身的特点:首先 10 个阿拉伯数字在实际手写过程中千变万化,有些阿拉伯数字形态还很相似,在世界各国不同地方书写笔迹也有许多差异。其次,数字之间缺少上下文语意环境,无法根据已经识别的数字识别下一个数字,输入的可用信息较少,多位数的识别也有一定的困难,随着位数的增加识别困难也逐步升高。随着计算机硬件性能不断提高,深度学习理论不断发展,卷积神经网络应用在字符识别领域取得较大成功,主要有两大算法:基于分割的识别和基于无分割的识别5。基于分割的识别主要有准确分割和过分割的方法6。前者最大问题是对于粘连的数字无法准确分割。过分割的基本思想是多次分割,找到最佳分割点,这种方法计算量大,算法不够稳定。LeNet5 是一种用于手写体字符识别的非常高效的卷积神经网络,商业上最典型的应用就是识别支票上的手写数字。从上个世纪 90 年代开始,美国大多数银行都使用这种技术识别支票上的手写数字7。本文以试卷计分栏手写分数的计算机自动识别为应用背景,采用无分割方法,将一位数或两位数的手写数字作为一个整体输入 LeNet5 神经网络识别试卷计分栏手写分数。通过对该神经网络的训练和参数调整,获得较好的手写分数识别效果,为计算机辅助阅卷和试卷分析系统提供核心算法。试卷计分栏手写分数识别方法的主要步骤:对试卷计分栏中的手写分数图像提取和预处理;利用数据集训练 LeNet5 网络;运用训练好的神经网络,辅助问题的先验信息,对手写数字进行识别。本文算法流程图如图 1 所示。提取手写分数图像这一步骤称为图像预处理,主要方法有图像 OI 检测与选择、色彩空间转换、二值化、轮廓检测与筛选、形态学处理等。利用数据集训练 LeNet5 网络,主要的工作是以csv 格式创建包括来自网络的图像数据集和自采集图片的数据集,训练和改进该神经网络,并完成对其的测试。将试卷计分栏各题的理论总分输入训练好的 LeNet5 网络,这些先验信息使 LeNet5 网络识别手写分数的正确率得到了提高。图 1 表示本文算法设计思路的一个流程图。图 1算法整体框架图 2高拍仪采集到的图片2图像提取和预处理对于在普通环境下采集到的图片来说,图像预处理是手写字符完整提取的重要前提。完整的字符输入神经网络将会提高字符识别准确率。本文处理对象为试卷上的手写体数字,为试卷上每道题的得分和总分数,包括一位数和两位数(暂不考虑 100 分的情况)。试卷的计分栏图像通过高拍仪(可以实现固定时间自动拍摄,并可保证试卷与拍摄相机的距离固定)获得,如图 2 所示。对所获得的图像预处理主要步骤包括:OI 区域选择、手写数字轮廓检测、轮廓排序和手写数字图片获取。0642.1OI 区域的选择首先,需要对采集到的图片进行去噪。由于实际中试卷卷面的污点和采集图像时光照等因素的影响,图片的噪声类似于椒盐噪声,所以使用中值滤波器去噪8。其次,将采集的图片进行直方图均衡化,使图片中红色更加鲜艳以便后续区域提取。最后,利用红色信息将手写分数提取出来。OI(region of interest)是指图像中感兴趣的区域,在 OpenCV 中设置图像 OI 区域,实现只对 OI 区域的操作。使用inange()函数,设置红色在 HSV 色彩空间的范围值,实现对红色区域(在这种情况下,该区域就称为 OI 区域)的提取。试卷计分栏的手写分数是红色,它和周围的颜色差异较大。利用红色信息能够产生基本完整且只包含手写分数的图片。下图 3 显示了选择出来的 OI 区域。图 3OI 区域2.2手写数字轮廓检测OI 区域选择完成后,就需要把每一个题号下的分数分割出来。有两种常用方法:垂直投影法和连通域法9。垂直投影法在分割规则字符时,效果较好,如车牌识别10。但手写字符通常不整齐,甚至两个数字字符交错和粘连情况也时有出现。本文主要考虑两位数字粘连的情况。采用垂直投影法,会导致分割不完整或分割错误。连通域的方法是将每个不相连的图像区域标记成一个单独的块,然后对块进行提取,完成手写字符分割。在计分栏中,两个题号距离较远,其下方的手写分数通常是分别写入,不会出现粘连的情况,这就保证了经过连通域计算必然能够将不同的题号下的手写分数提取出来。对于两位数的手写分数,通过对图像膨胀处理,将其作为一个整体提取出来。本文采用的一种连通域算法是轮廓提取算法,在 OpenCV 中通过函数 findContours()实现轮廓检测,在这里只需要检测手写数字字符的外轮廓,因为在后续过程中,利用外轮廓的外接矩形截取出包含手写字符的图片。图 4 是为检测轮廓而进行膨胀的图片。图 4膨胀处理后的图片2.3轮廓排序利用 python 接口的 OpenCV 库中 findContours()函数检测字符轮廓,识别出来的轮廓都存储在一个列表中。但列表中的轮廓排列顺序是混乱的,它和试卷题号不能对应,这导致后续步骤识别出来的结果无法对应到相应的题目。因此,需要对检测出来的轮廓按原来顺序从左到右排序。由于这些图片上的分数在 X 轴方向差异特别大,因此考虑使用字符轮廓质心坐标对轮廓进行排序。通过使用函数 moments()求出每个轮廓的质心坐标,根据质心 X 坐标从小到大进行排序。在轮廓排序前,其实也需要对轮廓进行筛选,在实际书写中,笔画断开是常有的情况,这时断裂的笔画会被检测成一个轮廓,这样的轮廓是不需要的,而且会对轮廓排序产生严重干扰,因此必须对轮廓进行筛选。通过对检测出来的轮廓面积大小设定一个阈值,从而将所需轮廓筛选出来。图 5是待排序轮廓质心 x 坐标值。图 5轮廓质心 x 坐标值1642.4手写数字图片获取正确的轮廓已经检测并且筛选出来了,需要根据轮廓外接矩形坐标将包含手写数字的图片截取出来。OpenCV 提供了函数 boundingect(),该函数能够获取轮廓外接矩形左上角的坐标值以及该外接矩形的宽和高。根据这些信息,包含完整手写数字的图片就被截取出来了。至