征地檔案數字識別研究與應用
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,針對征地圖紙實際情況,對于圖紙褶皺、等高線壓蓋、無關注記干擾等關鍵問題進行研究?;赥esseract自帶的訓練學習機制得到征地數據專門字符庫,加入自帶的識別參考字符庫,以此提高數據識別率。
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]