APP下载

基于Java的文字识别系统的研究

2021-06-28喻炜

电子测试 2021年6期
关键词:调用面板文字

喻炜

(湖北科技学院计算机科学与技术学院,湖北咸宁,437100)

0 引言

在这些互联网的产品中,逐渐在往人工智能或自动化方面发展,其中自动识别系统无疑是最为丰富的产品类型之一。1989年到今天,文字识别已经经历了漫长的岁月,各大单位长期的打磨研究,由清华大学、中国科学院、北京信息工程学院等多家院校各自开发除了适用于各个场景的文字识别系统。如清华大学的工程系开发出了清华TH-OCR产品,尚书OCR产品由汉王集团开发,他们走在了技术发展的最前端,并占领了大部分的市场份额,也代表了当今文字识别系统的最先进的技术。在未来OCR技术的普及一定会极大改善人们的常规行为和生活,给数字化信息时代带来更实质性的跨越。

1 文字识别系统设计与开发的必要性

数字信息存储在未来一定还会发生更多变化,当今的重要载体主要还是会有书面的文档去对信息存储作出一个稳定性和安全性的要求,所以这两种载体都是当今信息存储的重要部分。为了能让数字信息和书面文档共同推进社会的发展,所以OCR技术要把两者共存,从更新的技术里让两种存储形式都能展示出自己的亮点,所以解决书面文档和数字信息相辅相成的问题就具有更多的实际意义和应用前景,本文基于Java平台的文字识别系统的研究可能出现更多的难度但也能带来研究价值。

2 文字识别系统应用现状

我国在OCR领域里的研究相对国外比较晚,由于60年代时我国不仅受限于国际经济技术,在文字方面的种类识别也非常的困难。在国外信息科研家的多年研究探索下,20世纪时已经开始普及OCR技术的应用,因为不受限于经济和文字方面的影响,但是在我国发展初期阶段还没有这种认识,并且我国的汉字就英文或数字而言种类实在太多,不仅结构复杂而且光常用的汉字就有3000多种,所以在我国发展初期阶段对于识别文字、字符的研究相对滞后许多。在我国社会主义的引导下各种数字化科技飞速发展,所以21世纪时OCR技术在国内已经有了发展前景,传统的文字提取和处理都给OCR技术的广阔发展带来了帮助。随着国内外信息的交互,这种领域的技术已经比较成熟实用,基于PC计算机的重复和频繁的交互,人们的逐渐投入了OCR,这种机会给文字识别领域带来了另一波推广高潮,使更多的人参加到文字识别的深度学习研究里,在当今技术已经产生卷积神经网络、循环神经网络、深度置信网络等各种深度算法结构,使还在实验室阶段的OCR技术带来了质的飞跃。

3 文字识别系统需求分析

3.1 系统总体设计目标

本系统首先通过一个面板容器类把所有功能容纳在一起,主要使用Eclipse中的图形化用户界面的工具包,这是一个轻量级的容器可以使我们与用户的交互界面更加简单、快捷,所以我们所有的模块都在这个主面板中,然后用子窗体给父窗体传值,完成各个构造方法与其他方法。我们的模块功能在主面板中被划分为:选择图片文字识别、清空、复制、截图识别、清除、重识。[16]设计好系统的模块之后,我们将设置各按钮字体和大小以及位置,除了按钮模块的划分外,还有用户回显的模块,例如图片预览标签以及状态提示标签、文本域的输出、文本域的滚动条、各方位分面板等,当这些模块全部划分设计出来之后即可将各组件依次加入相应方位面板,然后设置当前系统风格,写好主方法之后依次调用其他方法,传入可选参数调用接口等,系统概要执行流程图参见图1。

图1 概要执行流程图

3.2 系统开发架构

首先我使用Java作为本系统开发语言,我觉得Java 在近十多年来经久不衰的编程语言中一直占着最大的比重是有他的原因的,不仅有着一次编译,处处都可运行的跨平台优点,而且我觉得我也可以使用Java将业务逻辑实现为最完善的。首先项目整体需要使用Eclipse开发工具,根据现在互联网项目发展的技术可行性看出来大部分项目都会采用Eclipse开发工具,再利用百度应用程序接口集成一些优秀的API接口保证后台的高可用和系统安全,再通过添加libraries完成图形化界面的部署,配置后达到一定程度的高可用和易维护,充分说明本系统在技术方面可行。

4 文字识别系统的实现

4.1 上传文件功能设计

从第三章需求分析模块的介绍可以看到,我们设计的所有模块都需要设计到一个图形化的界面工具包,所以我首先要实现在eclipse中引入这个强大的Swing的编程插件。设计完图形界面的主窗体之后再来建立各个模块之间的距离以及大小,上传文件功能主要功能是判断用户上传的文件是否为空和是否是图片才能进行文字识别,首先此方法实例化文件对象,如果文件不存在,则新建文件,通过File文件类型实例化文件对象,在创建文件的方法中可以用 if (!file.exists())判断文件是否存在,通过try和catch来捕捉上传时遇到的异常。然后使用J Button此方法返回一个“读取文件”按钮,通过File Reader来读取文件内容,上面第二章介绍到文件上传时是上传到内存,所以上传时要用Buffered Reader给文件开辟一个缓存空间。同样用此方法返回一个“写入文件”按钮,在上面的方法中使用File Writer里的get text将文本框内容全部写入文件,在控制台输出提示“文件写入成功”。

4.2 图片重识功能设计

刚才提到过图片重识并不需要重新再次上传图片文件,所以能够减少用户多余的操作,本系统编写的代码中也不需要再次编写识别文字的功能,只需要在panel的主面板中调用重识对象进行方法的重载,省去filter文件的过滤,直接将图片传入可选参数调用接口,再次解析JSON数据格式,其中需要注意的是在本方法执行时要依次调用其他模块的文字识别功能,否则将出现Exception类型的异常。

4.3 截图识别功能设计

当需要识别的文字在电脑中无法进行保存时需要使用截图识别功能,所以此截图功能不需要上传文件可以同步截图时进行上传。首先要继承J Window的总类才能使用截图功能,把构造方法中的get Default Toolkit方法进行调用,设置Size方法,从而获取屏幕尺寸,所以当我们调用此方法时,电脑屏幕将产生一个遮罩层,这个遮罩层就是根据set bounds来获取屏幕的整个尺寸和分辨率,从而让遮罩层覆盖到整个电脑屏幕进行截图。

4.4 内容展示模块设计

内容展示功能即把图片识别后的文字进行窗体回显,所以首先解决的问题是如何进行文字识别与提取。本系统的识别预处理到实际存储有五个流程,主要步骤分为:把待识别的图形中的文字区域进行裁剪功能,利用最小方差的技术测量文字内容的水平位置,将平均高度划分出文字行,根据每一行划分出来的空间特征逐个提取文字或者字符对象得出点阵坐标方位,创建一个字符串把每个文本内容全部存入,通过接口的字库实现提取和对比,最后从而达到文字识别的效果。

5 结束语

本人结合当前办公、会议等场景实际工作情况,介绍了在现代信息化技术的发展中文字识别系统的设计与开发的必要性,从而说明了本文所研究的目的与意义,选择了JAVA作为最适合的开发工具,本人所开发出的系统体现了在如今众多文字识别平台的特殊性和创新,通过具体的功能需求分析保证了本系统开发架构的完整性,并且在社会、经济等多层方面都是可行的。对系统文件上传和文字识别的主要功能进行了测试,能够满足本系统的研究需求,综合来说,系统整体界面简洁且功能齐全。

猜你喜欢

调用面板文字
面板灯设计开发与应用
文字的前世今生
热爱与坚持
当我在文字中投宿
核电项目物项调用管理的应用研究
MasterCAM在面板类零件造型及加工中的应用
LabWindows/CVI下基于ActiveX技术的Excel调用
Photoshop CC图库面板的正确打开方法
基于系统调用的恶意软件检测技术研究
高世代TFT-LCD面板生产线的产能评估