征地档案数字识别研究与应用
1 永州市自然资源与规划勘测事务中心 湖南 永州425000
摘要:针对征地档案数据整理建库工作中界址点坐标电子数据缺失现象,当前主要通过人工识别档案资料并且将坐标数据抄录进入数据库的方式,但是存在工作效率低下、审核成本高等问题。为提高征地档案数据整理建库工作效率,本文基于Tesseract训练机制,在此基础上开发数字识别程序实现永州市经济技术开发区征地红线图中界址点坐标的识别。实践结果表明该方法能够有效辅助征地档案数据整理建库工作,业务生产效率显著提升。
关键词:征地档案;界址点坐标;数字识别;Tesseract-OCR
Method and Application of Digital Recognition Toolsfor Land Expropriation Archives Based on Tesseract-OCR
Long zhiguan1
1,2 YongzhouNatural Resources and Planning Survey Service Center, Yongzhou
425000,China
Abstract:In view of the absence of electronic data in land expropriation archives data
collation and database construction, it
is mainly through manual identification of archival data and transcription of
coordinate data into the database. there are some problems such as low
efficiency and high audit cost.In
order to simplify the work flow of land expropriation archives data and
database construction, This
paper develops a data recognition program for identifing the coordinates of
boundary points in land expropriation red line map based on Tesseract-OCR
engine. Theexperimental results show that the method can effectively assist the collectionand construction of land expropriation archives data and improve the productionefficiency of the business.
Key words:Digital Recognition;Land Expropriation Archives;Boundary
Point Coordinates;Tesseract-OCR
界址点是征地范围界线的节点,它是标定征地范围界线的重要标志[1]。在征地档案数据整理建库工作中发现诸多征地红线图缺失配套的电子坐标数据,按照传统人工方法,手动将界址点坐标抄录进入Excel文件或文本文档,然后通过AutoCAD或者南方CASS读取坐标数据生成dwg文件,再导入ArcGIS中添加属性数据,最终以shp文件格式存入服务器进行存档。但是实际工作量较大,其中需要进行抄录的界址点坐标数据数以万计,手动抄录数据人力成本巨大,随着项目量增加会徒增诸多问题包括数据遗漏、耗时费力、工作效率低下等[2-5]。为解决上述问题,本文基于Google开源OCR引擎Tesseract,针对征地图纸实际情况,对于图纸褶皱、等高线压盖、无关注记干扰等关键问题进行研究。基于Tesseract自带的训练学习机制得到征地数据专门字符库,加入自带的识别参考字符库,以此提高数据识别率。
1 数字识别研究
纸质档案数字识别研究依托永州市经济技术开发区征地档案数据整理建库项目开展。由于参与项目的三方测绘单位较多且相互协调困难,数据整合过程中发现大量电子坐标数据缺失,但征地档案建库需要挂接征地红线图,超过70%的档案只有界址点纸质数据而没有电子数据。参照同类项目往期实施方案,需要依靠工作人员人工识别且抄录数据进入数据库,过程费时耗力,并且抄录过程中存在效率低下、审核困难等情况。
Tesseract由HP公司开发,目前为Google维护项目,已经成为Google开源社区项目,是一个开源OCR(Optical Character Recognition,光学字符识别)引擎,可以基于引擎开发用于识别多种格式的图像文件并将其转换成文本[6-10]。尽管目前OCR技术相对成熟,但是其与征地图纸相关测绘业务的结合不多,因为测绘业务存在数据精度要求极高、历史存档文件扫描效果差等情况。因此需要单独对征地档案内界址点数据的特征进行研究,通过对Tesseract训练字符库来扩大识别范围,提高工具的识别精度,弥补因历史存档文件破损导致的扫描件坐标数据缺失问题。
研究思路
本文技术流程分为四个模块:数据预处理、Tesseract字符库训练、程序识别及质量控制。数据预处理包括对图纸数据部分进行数字化(扫描或拍照),图像裁剪、增强等操作;Tesseract字符库训练包括制作训练样本、生成Box文件和tri文件、数据(字符)校正、定义字符库及traineddata文件;程序识别通过调用Tesseract-OCR完成坐标识别;质量控制包括识别结果格式转换、数据去噪、建立质检规则库并且人工核对、精度分析等。图1为本文技术流程框架。
代码实现
由于整个技术流程中有涉及图像处理、Tesseract训练、数字识别、格式转换等多个过程,代码量较大,因此在此附上关键环节代码:利用Python调用Tesseract-OCR引擎(经过字符库训练改进),对图纸数据进行识别:
import pytesseract
from PIL import Image
pytesseract.pytesseract.tesseract_cmd='C://Program Files(x86)/Tesseract-OCR/tesseract.exe'
text=pytesseract.image_to_string(Image.open('C://Users/Administrator/Desktop/2011-0003-001.png'))
Num_Table=text
print(text)
#将识别出来的数据写入text并且打印在anaconda输出框
file=open('C://Users/Administrator/Desktop/2011-0003-001.txt','w',encoding='utf-8')
# open文件的过程定义编码为“utf-8”,没有定义编码则会识别无效
for n in Num_Table:
file.write(n)
# fileObject.write('\n')把每个数字换行写入txt文件中
file.close()
2 实验结果分析
2.1 数据预处理
利用高拍仪对图纸数据进行扫描拍照。如图2所示,该图为扫描件原始图片,通过图像处理工具对图片进行裁剪、二值化、亮度提升及图像锐化等操作,如图3所示,该图为数据处理后图片,通过对比可看出原始图片中的干扰因素基本去除。
由于数据识别过程中同一项目的扫描件图片过多,容易导致没有唯一标识来区分识别得到的坐标数据,因此需要对将通过数据预处理之后的图片建立档案序号,如“2012-0003号2012年永州市第八批次建设用地报批项目”中的征地红线坐标表图片标记为“2012-0003-001.jpg”至“2012-0003-017.jpg”,共计17张,识别结果输出序号为“2012-0003-001.txt”至“2012-0003-017.txt”。
2.2 界址点数据识别
Tesseract本身拥有丰富的字符库,但是对于特定测绘图纸环境下的的字符识别率难以保证,鉴于Google开放给用户自定义字符库的训练方法,以此来提高OCR引擎的识别效率。因此训练得到适用于征地档案纸质环境下的数字字符库尤为重要,这也是本文的工作重点[11]。
2.2.1 Tesseract训练字符库
1 训练初始化
在对字符库进行训练之前需要搭建字符库训练环境,本文采用Java 8.0 + jTessBoxEditor + FastStone Capture的训练框架,实验硬件环境为Intel-Core i7-6770m+NVIDIA Geforce GTX960+16G
RAM,以Java SE DK8.0版本作为基础运行环境,jTessBoxEditor作为训练工具,FastStone Capture作为字符样本采集工具。
2 训练样本采集
字符库训练的首要环节是采集字符样本。通过FastStone Capture按照50×80的矩阵窗口进行样本采集,以8种字体为基准建立各类字体下的训练数据集。样本合并图片如图4所示:
3 生成Box 文件
通过jTessBoxEditor将上述字符样本数据生成Box文件。合成指令为:“tesseract.exe num.font.exp0.tif num.font.exp0
batch.nochop makebox”[12]。生成的Box文件为num.font.exp0.box,Box文件为Tesseract识别出的文字和坐标。
4 数据校正
通过jTessBoxEditor的Box Editor工具,导入生成的tif文件,工具自动标记数据并且写入在Box Coordinates中。由于tif文件中存在噪点,导致下图中11个字符,被标记出14个字符,并且11个字符里面错误识别4个,通过手动更改进行数据校正。数据字符校正操作如图5所示:
5 字体特征定义
在训练样本所在目录下创建font_properties文件,定义样本的字体特征为“黑体0 0 0 0 0”表示训练样本数据为黑体印刷,但不具备斜体、粗体及固定等特征[13]。针对特殊识别环境,图纸数据进行加粗的情况,则需要根据实际情况来定义字体特征,不然会影响识别率。
注:font_properties文件标注格式为<fontname>,<斜体>,<加粗>,<固定>,<衬线>和<哥特体>。其中每个属性的值域为[0,1]的离散值。
6 合成语言文件
根据下述指令生成批处理文件并通过批处理操,作合成语言文件num.traineddata。指令如图6所示:
将合成的语言文件num.traineddata导入Tesseract自带的字符库traindata文件夹中。在后续调用Tesseract-OCR工具的时候,引擎将会自动将语言文件作为字符识别参考库。
2.2.2 调用Tesseract-OCR
字符库训练完成之后,在Anaconda中利用Python调用Tesseract-OCR,在调用之前需要引入pytesseract库和PIL库用于辅助识别[14-15]。调用过程也可以在cmd命令行中直接进行。
2.2.3 数据识别
这里以永州市经济技术开发区征地档案资料中的“2011-0003-凤凰园标准厂房(一期)项目”至“2015-0006-南甸路(零陵南路-猎豹路)项目”共计18本纸质档案资料中57个界址点坐标表(共计2283个坐标点数据)为识别对象,下图为部分数据情况:
因为拍摄环境及纸张完好程度不同,因此图纸数据的预处理也得参照实际情况,本文预先人工将所有的图纸数据分为几类:易识别类、适中类、难识别类以及数据缺失类,后续分析不同OCR在识别复杂环境下的坐标数据的表现。通过数据预处理之后,以上图片处理结果如下:
将上述数据导入识别工具中,依托训练好的字符库对其进行识别,下面针对易识别类图纸进行单次识别结果如下:
通过实验结果统计可以看出,对于易识别类图纸数据,本文识别方法数字识别率以及单次识别可用率均在92%以上。但是对于图纸褶皱严重导致数据缺失的图纸,在识别率上则表现一般,识别过程仍然存在不少问题:小数点识别效果不佳、存在乱码情况、部分数字因为字符结构相似存在混淆识别情况、数据有效数字超过正常范围等。后续对识别结果进行规则库约束以及人工核对,从而完成质量控制。
2.2.4 识别率对比分析
本文将18本纸质档案资料中57个界址点坐标表(共计2283个坐标点数据)进行识别,通过采样194个坐标数据的识别结果来进行本文数字识别工具与百度OCR工具的识别效率对比。
下表为本文基于Tesseract-OCR改进的数字识别方法(以下简称“本文方法”)与百度商用OCR工具关于征地图纸数据的识别精度对比情况。因为图片环境的不同,所以在不同识别难度的图纸数据识别上,各个OCR工具所表现的识别精度有所差异。在图纸质量优良、易于识别的图片上,本文方法识别精度比百度OCR略高,并且精度很高,配合少许人工核对,即可将成果流转至后续建库环节。但是针对难识别、数据缺失等情况的图纸数据,不管是本文方法还是百度OCR识别结果均出现不同程度的大范围失真,这是因为图纸数据年久维护较差固有存在的问题,针对这部分图纸则需要通过人工为主、工具为辅的工作方式。
上表为基于本文方法下的识别效率指标表,数字识别率计算对象为数字单位;单次识别可用率计算为仅通过一次识别即可将识别结果用于后续建库环节;拒识率为识别失效情况,该部分可能因为引擎自身算法原因,未能覆盖全部图片范围导致少部分数据未能识别到位;规则处理后可用率为100%(考虑到数据准确度要求为100%);图片返工处理率为通过单次识别后必须返工的图片在全部图片中占比;耗时计算为每识别20组坐标收集一次(图片分割为20组/张)。鉴于返工处理以及人工核对时间收集难度大,故耗时方面仅采集Anaconda内代码运行时间,以此反映识别性能。
2.3 规则库与质量控制
采用正则表达式技术,即用事先定义好的一些特定字符、及这些特定字符的组合组成一个“规则字符串”,并用其对目标字符串进行内容过滤。在数据整理过程中发现,界址点坐标数据具有相对固定的格式。
1 数据范围规范
坐标数据基于WGS-84坐标系测量得出,因此坐标数据里面前几位为固定值“292”、“375”、“55/56”,因此输出数据在经过规则库匹配数据范围的时候,前几位数字与之匹配不上,则视为无效数据。
永州市实测数据范围里X坐标为10位有效数字,小数点后三位有效数字;Y坐标为9位有效数字,小数点后三位有效数字。
2 格式转换
将识别出来的数据进行批量格式转换,业务可以直接使用。
3 人工核对
鉴于业主单位对征地坐标数据精准性的要求,因此在数据识别结果输出之后,需要通过人工质检成果来控制数据精确性,确保建库数据零错误。质检过程中发现数据有误,则通过人工修改记录并且做好标记,以方便为后续改进识别工具提供信息。
3 结束语
随着国土资源信息化的不断推进,国土部门对数据形式的需求也从纸质档案逐渐往数字化转变。在征地档案数据整理建库工作中存在大量的征地红线图数据需要从纸质形式转变为可编辑的数字形式。本文针对工作需要,在开源工具Tesseract基础上训练得到适用于本项目的数字字符库,提高了数字识别精度,在图纸质量优良的前提下,本工具的高识别率可以极大程度辅助坐标获取工作。本研究仍然存在待解决问题,包括过多研究训练过程对识别率提升意义不大,识别结果证明图像质量极大程度影响最终识别正确率,因此后续将从图片获取和图片增强角度来提升图片质量入手继续研究。
参考文献
[if !supportLists][1] [endif]彭立波.勘测设计单位档案信息化管理实践与探索[J].黑龙江水利科技,2012,40(12):227-229.
[if !supportLists][2] [endif]郑清洁. 焦作市国土资源档案数字化设计与实现[D].河南理工大学,2012.
[if !supportLists][3] [endif]李磊,李正品,李曦凌.宗地界址点自动化提取算法研究[J].测绘地理信息,2018,43(02):90-92+96.
[if !supportLists][4] [endif]孙羽菲. 低质量文本图像OCR技术的研究[D].中国科学院计算技术研究所,2005.
[if !supportLists][5] [endif]颜建强,高新波.一种基于Google的OCR结果校对新方法[J].计算机学报,2014,37(06):1261-1267.
[if !supportLists][6] [endif]Lee Sunjin,Lee Hyojin,Kim Ki-Tae.Optimization of experimental conditions and measurement of oxygen consumptionrate (OCR) in zebrafish embryos exposed to organophosphate flame retardants(OPFRs).[J]. Ecotoxicology and environmental safety,2019,182.
[if !supportLists][7] [endif]Haisong Ding,Kai Chen,Qiang Huo. CompressingCNN-DBLSTM models for OCR with teacher-
student learning and Tuckerdecomposition[J].
Pattern Recognition,2019,96.
[if !supportLists][8] [endif]Yan Wenqiang,Xu Guanghua,ChenLongting.SteadyState Motion Visual Evoked Potential Enhancement Method Based on Time-FrequencyImage Fusion.[J].Computational intelligence and neuroscience,2019.
[if !supportLists][9] [endif]程育恒. 基于Tesseract开源OCR引擎的证件识别系统的设计与实现[D].东华大学,2014.
[if !supportLists][10] [endif]张淙悦,尹梓名,孙大运,戴维.基于Tesseract的医学化验单内容识别技术[J].北京生物医学工程,2019,38(03):283-289.
[if !supportLists][11] [endif]唐涛,马泽.基于OCR的空间坐标自动提取——以广东省清远市清新区不动产存量数据整合为例[J].江西科学,2018,36(06):1024-1028+1038.
[if !supportLists][12] [endif]中英文混排名片识别系统研究[D]. 金鑫.南京航空航天大学 2012.
[if !supportLists][13] [endif]基于神经网络的手写体数字识别关键技术研究[D]. 白天毅.西安工业大学2014.
[if !supportLists][14] [endif]杨恒杰,闫铮,邬宗玲,方定邦,段放.基于循环神经网络的图像特定文本抽取方法[J/OL].激光与光电子学进展:1-9[2019-08-16]