基于OCR文字识别技术应用软件的设计与实现
2021-10-18邱治涵王嘉豪李文炜王东灿
邱治涵 王嘉豪 李文炜 王东灿
摘要:信息化教育方式的多样化应用是教育教学创新的重要体现,而文字识别技术在电子信息教学方面起着不可忽视的作用。针对传统的纸质试卷保存方式存在的易丢失、易损坏等弊端问题,设计实现了基于Tesseract-OCR引擎的将纸质型试题转化电子型试题的智能文字识别移动智能终端软件。本软件在拥有支持对常见题型的智能转换功能外,还提供试题网络共享、在线试题批阅等功能。
关键词:灰度处理; 双峰法; Tesseract-OCR; 试题生成;文字识别
中图分类号:TP391 文献标识码:A
文章编号:1009-3044(2021)26-0047-03
开放科学(资源服务)标识码(OSID):
1 引言
随着文字识别技术的迅速发展,其相关领域的应用在人们日常生活中得到了极大的认可。将纸质型的试题通过拍照转化成电子型试题的应用方式,可以有效地解决用户在长时间学习的过程中将试卷损坏或遗落,造成后期对应试题的复习、总结练习不便的问题。同时随着智能移动设备的普及,电子信息化成为主要的教育发展趋势本文综合国内各考试试卷的试题题型,设计与实现了基于Tesseract-OCR引擎的线下试卷拍照转化为线上试卷的移动智能端软件。
2 Tesseract概述
在当前主流文字识别技术中,Tesseract作为主要被使用的开源引擎之一,是20世纪80年代中期由惠普实验室开发、谷歌公司维护的开源OCR(Optical Character Recognition , 光学字符识别)引擎[1]。在这些年Tesseract引擎更新了3.0的版本之后,其与Microsoft Office Document Imaging(MODI)相比,开始支持长短时记忆神经网络(LSTM),可以通过不断的数据集进行训练训练,将文字识别的准确率不断提高,现已经支持对一百多门语言的文字进行识别处理。
3 软件总体设计
3.1 功能需求
本软件主要实现的功能是用户通过拍照上传试题图片的方式,在本地生成对应文字识别后的电子型试题,同时包括对试题内容的修改、共享功能等实现,主要功能模块如下。
1) 注册模块:新用户在软件的账户注册页面,填写相关用户信息,向系统进行提交并反馈对应注册号状态。
2) 登录模块:用户在软件登录页面填写账户名和密码,向系统提交请求后,自动进行身份校验,如果账户名与密码匹配成功则进入软件首页,否则提示登录失败的原因和重新填写信息的语句。
3) 图片上传模块:用户在移动端首页点击相机形状的按钮,通过拍照的方式将纸质试题的内容上传,在上传过程中用户可以调用图片剪切功能,对需要上传的图片大小进行调整,然后向系统发出请求。
4) 试题共享模块:用户在“个人试题中心”可以选择试题将其添加入共享区;已添加至共享区的试卷可被其他用户查看与使用。如果用户在本地共享后的试题发生了修改,共享区对应的试题内容也发生改变。
5) 试题内容修改功能:用户在试卷上传完成后,可以在试卷对应的修改功能区对其进行修改。
6) 试题文字识别模板:该模板作为此软件的核心模板,它需要根据用户上传的图片进行文字的提取,并按照图片对应的题型转化成电子试题。为保证试题文字识别的准确率,系统将会优先从已有的试题库中进行文字匹配,将其反馈给用户,用户可以拒绝选择试题库识别的试题,选择当前拍照所转化的电子试题。图1为试题生成软件的功能模板。
3.2 非功能需求
1) 实时性:用户对试题修改完成后,共享区中对应分享的试卷同步修改,保证其他用户在使用时的实时性与准确性。
2) 可靠性:针对具体模块的数据库,指定备份与恢复机制。建立多级系统日志功能,将对应产生的事件或错误信息进行记录。保证用户上传试卷的完整性与软件的使用可靠度。
3) 独立性:每个用户正在使用的试卷都独立的保存在本地,无网络请求,保证了用户使用的稳定性的需求,同时减轻了服务器被频繁访问带来的压力。
3.3 用户需求
用户在登录成功后将出现一个气泡导航栏,其包括三个部分,首页部分主要使用的功能是拍照上传并生成对应的试题,第二个部分为所有用户共享部分,可以拉取个人所需要的试题至本地保存,最后一部分为个人试题部分,包含有个人上传的信息和生成、拉取的电子试题。
3.4 试题生成流程设计
用户在使用试题拍照功能模块的时候,将首先对其的身份进行校验,判断其是否成功登录,如果未登录将会跳转至登录页面。校验成功后调用相机的拍照功能,同时可以对所拍的图片进行大小截取。然后将图片向系统进行提交后,开始文字识别,生成对应的电子试题,用户可以选择除软件智能转化的试题外,还可以选择从试题数据库中匹配的相关试题。图2为试题生成流程图。
4 文字识别
服务器对用户上传的图片进行文字识别试题生成的过程:
1) 服务器在接收到用户的发出的照片请求后,首先对图片进行灰度转化,将彩色的图像进行灰度处理,对每個像素点进行颜色的RGB值(0~255之间)的转换,同时对转化后的RGB值的三个分量进行YUV颜色模型求解,再全部储存在对应的矩阵中,继而建立灰度图,其中YUV颜色模型为:Y=0.3R+0.58G+0.11B[2]。图3为上传的测试试题原图片。
2) 完成灰度图的转化后,将转化后的灰度图进行二值化处理:对灰度图对应的矩阵中的值进行处理,将像素值小于K值的点设为0转化为黑色,将像素点大于等于K值的点设为255转化为白色,其中阙值K采用双峰法进行计算[3],并根据数组中数值大小进行间距分割。图4为二值化处理并间隔计算后的结果图。