基于OCR的图像文档智能重命名系统的设计与实现

2021-03-10 09:20张焱鑫
电子技术与软件工程 2021年20期
关键词:重命名图像文件手动

张焱鑫

(四川文理学院 四川省达州市 635000)

随着数字化信息时代的不断发展,信息化建设步伐加快,自动化、数字化的办公形式显得更加便利、高效,这也对日常数据、文档等在形态、存储模式、管理方法方面提出了新要求[1]。在日常办公中数字化的电子文档具有存储容易、分发便捷、易于搜索等特点,深受欢迎。常见的电子文档有两种:一种是由电脑编辑而生成的电子化文档,另一种是基于纸质文档进行处理后转换形成的数字化文档。而目前在数字化管理过程中,后者的存档管理稍显不易。比如在文档扫描时系统采用傻瓜自动命名,对文件未做任何描述,需要进行重命名,当批量扫描不同文档时,则需要人工进行逐一查看及重命名,这极大的增加了数字化存档的难度和门槛。本文针对文档扫描图像在存档命名时无法有效命名的情况进行优化,提出了一种基于OCR技术的智能命名系统。可实现自动化、连续化的批量文档智能重命名。

1 系统整体架构设计

智能重命名系统主要由前段UI 交互界面和后端功能处理两大部分组成。如图1所示。UI 交互界面负责交互按钮及数据显示等功能接口,包含了选择文件路径、文件列表、图像显示、重命名规则设置、模式选择、OCR 识别及识别结果显示。后端功能处理部分主要是响应各UI 交互功能接口。从选择的文件路径中读取目录下的图像文件,并返回文件列表,同时显示选中的文件图像。通过选中不同的重命名模式,实现不同场景下的快速重命名。如果列表中文件命名标题命名相对统一且规则,则可以采用自动模式,通过提前设置识别规则,便可进行快速自动化的批量重命名。如果列表中文件标题无固定统一的规则,或文件版式不一致,存在横版竖版图像混合等情况,则可以采用手动模式。手动模式下,可以设置识别规则、手动选取识别区域,同时对于识别的结果可以进行手动校正或修改。

图1:软件工作流程及框架结构图

2 系统功能的设计与实现

2.1 UI界面的设计介绍

本文系统采用QtDesigner 进行界面设计,主要包括四个功能部分:文件列表显示、图像显示、规则设置及模式选择、区域选择、按钮交互功能等,如图2所示。界面左半侧是图像显示区域,用以显示打开的图像文件;右半侧顶部是当前目录文件,用于显示当前路径下的所有JPG、PNG 格式的图像文件名称;其下是重命名规则区域,用于设置OCR 识别条件,对其图像文件进行文字识别后提取符合规则的题目标题,并作为重命名名称;重命名称是显示文字识别后满足规则的提取结果,可以在栏里进行手动补充或修改;底部是功能按钮,靠右侧是命名模式的选择,分为自动模式和手动模式两种;中部是打开路径,启动系统文件浏览器,用以浏览文件夹路径;其次是图像文件浏览按钮,可以切换前后不同的文件,当确定了文件路径后方可以切换,文件浏览到第一个文件时,“上一个”按钮将会失去使能作用,同理,浏览到最后一个文件时,“下一个”按钮也会失去使能作用;“识别”按钮是在设置好各选项后,按下该按钮进行响应OCR 识别功能函数;最后是“确定”按钮,在自动模式下是用于系统完成连续识别后的结束确认,在手动模式下则是对“重命名称”栏中识别结果的确认,并进行重命名。

图2:区域拾取及识别效果

2.2 文件目录读取及文件浏览

通过点击“打开路径”按钮即可实现系统文件浏览器的调用,本文采用QtWidgets 中QFileDialog.getExistingDirectory 函数实现文件夹路径获取,对该路径下的图像文件进行遍历,并获取文件名称和文件类型。同时,构造一个字符串数组用于存储路径下的文件名,并将其结果显示在“当前目录文件”的文本框中。

获取得到当前选择路径下的文件后,可通过“上一个”和“下一个”按钮进行图像文件的顺序浏览。通过初始化设置变量ID=0,浏览文件过程中每按一次“上一个”或“下一个”即对其进行加减1,然后同该文件夹下的文件数量FilesNum 进行比较;

当0=ID 时,说明当前文件只有后面有相邻文件,将“上一个”按钮使能设为False;

当0<ID<FilesNum-1 时,说明当前文件前后均有相邻文件,两个按钮使能均为True;

当ID=FilesNum-1时,说明当前文件只有前面有相邻文件,将“下一个”按钮使能应设置为False;

将ID 的数值作为索引,在已经遍历的文件名数组中寻找对应的文件图像,并对其进行图像显示。

2.3 工作模式的设计

本文设置了自动模式和手动模式两种工作方式。两种模式对于横版、竖版均有一定的识别能力。

自动模式主要针对相对简单的使用场景,文件标题均相对简单、规则性强、有较大相似性,例如“关于XXX 的通知”、“关于XXX 的审定”、“关于XXX 的意见”等。

手动模式则是对自动模式的一种补充,偏向针对与扫描文件的标题无固定、统一规则的情况,以及常见表格文档的扫描图像,均可以通过鼠标自选识别区域进行精准识别,如图3所示。

图3:测试数据一览

2.4 精准识别区域拾取及手动校正

手动模式下可以手动指定识别区域,实现文字的精准定位和识别。在图像显示界面,通过鼠标左键在按下与松开的位置之间绘制矩形画框,并对该标记区域的图像进行OCR 识别,完成文字提取。如图3所示,红框区域即为手动标记的目标文本区域,标记区域后点击识别按钮即可获取识别结果,并显示在“重命名称:”文本框中,若其结果有误可以直接进行手动键入修改校正。图示中表格图像标题应为“发文登记表”,其识别结果为“发文夏记表”,便可通过手动修改后,点击确定即可完成正确的重命名。当然出现这种情况的可能性很大程度上是由于图像分辨率不够高,加上某文字稍显复杂或者及其相似引起的。

2.5 OCR识别及规则识别

OCR 识别是本文软件重要的基础功能,主要借助Pythontesseract 模块对扫描图像中的印刷字体进行识别,其支持的图像格式包括 jpeg、png、GIF、bmp、tiff 等。该模块的使用非常简单,调用内置函数image_to_string()即可识别图像中的文字。如下:

ORCtext= pytesseract.image_to_string(img,lang='chi_sim')

其中img 即为要识别的目标图像,该函数默认是英文识别,对于简体中文的识别需要添加语言库参数lang='chi_sim',即可返回识别的文本结果ORCtext。

通过判断识别的文本结果中是否包含重命名规则中设置的关键词,进而完成目标文本的提取。

3 系统测试及结果分析

本文从网页中收集了15 张通知文件图像作为测试数据(如图3),并对数据集进行了横竖版混合处理。由于重命名的成功与否主要取决于是否识别准确,因此自动模式与手动模式的识别效果区别不大,故在此只展示在自动模式下的测试结果。其结果如表1所示,其中有2 份文件未成功重命名,有3 份文件重命名称中出现漏字和错字的情况,横竖版图像对文档的重命名无任何影响。

表1:测试结果

重命名未成功主要原因是在文字识别的结果中无法有效检测到设置的文本规则。原本标题满足规则,但识别不准确使其不满足规则,比如12.jpg 标题为“关于废止一批规范性文件的通知”,其OCR结果未识别到“关于……通知”的关键词组,导致无法成功命名,13.jpg 也是同样的原因。

OCR 识别不准确也会导致重命名名称漏字和错字的情况,主要取决图像的扫描质量,比如图像是否清晰、分辨率是否足够高。其次,文字的复杂性、相似性也有一定的影响;本文重命名称漏字和错字3 份文件中,有2 份文件分辨率较低且相对不够清晰,比如8.jpg 中(分辨率650*884)“高精尖缺人才”漏掉了“缺”字,“若干规定”错识别为“若十规定”;10.jpg(分辨率480*682)中“勘察”一词识别漏掉了“勘”字,并将“实用性”误识别为“实用伯”;另外1 份由于文字相似导致识别错误,如15.jpg 中“党总支”被误识别为“兑总爻”,“细则”识别为“细刹”。

对于文件标题的识别,由于标题字体较大,因此图像的分辨率大小对OCR的识别有一定影响,OCR 识别的准确性直接决定重命名成功与否。在实际生活中,日常办公通常采用专用扫描仪进行文档的扫描以获取图像,因此能够保证图像的分辨率足够清晰,但需要保证扫描前的纸质文档打印清晰,尽量做到无漏墨、无虚影等不良情况。

4 总结

本文基于OCR 识别技术,针对办公环境中的扫描文档重命名环节,设计了一款智能化、可批量化的重命名系统,能够辅助完成扫描文档的快速有效重命名,进而帮助办公人员提高办公效率。但识别的准确率有进一步提升空间,若采用深度学习训练的离线模型进行文字识别或有不错效果。

猜你喜欢
重命名图像文件手动
用好Excel,文件批量重命名其实很简单
批量更改网页文件名称
小巧手动起来
同目录下多文件的快速重命名法
风行S5001.6L手动尊享型
宝骏5601.8L手动豪华型
C4世嘉 1.6L手动豪华型
两步把PDF转为Word文档
《图像文件探寻之旅——图像文件概述》教学设计及反思
图像文件压缩算法浅析