歐杰



摘要:制度及規范性文件是內部審計人員開展現場審計工作以及審計發現問題定性時的重要依據,經常需要反復檢索查閱,但由于政府機關的電子制度文件主要以紙質掃描圖片或電子公文系統生成的pdf文件等形式保存,無法進行全文檢索。為此,筆者運用Tesseract-OCR開源OCR引擎,將圖片和pdf文件中的文字內容識別并提取出來,為實現制度內容的全文檢索奠定了基礎。
關鍵詞: OCR技術;python;制度文件
中圖分類號:TP311? ? 文獻標識碼:A
文章編號:1009-3044(2021)09-0201-02
開放科學(資源服務)標識碼(OSID):
1 背景
制度及規范性文件是內部審計人員開展現場審計工作以及審計發現問題定性時的重要依據,常需要反復檢索查閱,但由于大量相關文件均為紙質掃描圖片或由電子公文系統生成的pdf文件,難以全文檢索快速定位,為提高審計發現的效率和精準度帶來極大不便。
為解決上述問題,筆者基于python和開源的OCR引擎Tesseract-OCR實現了將圖片、PDF格式的制度文件批量轉換為可編輯的doc文件的工具。
2文件可編輯轉換研究
制度文件可編輯轉換是在廣西人民銀行內審監督制度庫項目背景下的一項研究,由于廣西人民銀行系統內歷史及現行制度的電子保存格式主要以tif、jpg、png、pdf等難以讀取文字內容的文件格式為主,不利于對制度內容的全文檢索,給審計人員快速查閱制度帶來障礙。因此需要將相關制度內容進行全文錄入,但如果僅依靠人力錄入,則耗時費力。
Tesseract-OCR是由惠普公司開發的一個開源OCR引擎(Optical Character Recognition,光學字符識別),可識別多種格式的圖像文件并將其轉換成文本[1]。利用此項技術,為快速提取相關制度文件文字內容提供了可能。
2.1 圖像糾偏
對于通過掃描形成的制度及規范性文件,由于人工操作原因,圖像傾斜的情況在所難免。而傾斜的圖片使得文字識別正確效率大大降低,因此,在文字識別前需要對傾斜的圖像先進行校正。對于圖像糾偏,本文主要運用霍夫(Hough)變換算法來檢測圖像中的直線,再根據直線的斜率判斷圖片傾斜的角度來進行糾偏。糾偏前后效果對比如圖1、2所示:
2.2 文件可編輯轉換研究
(1)jpg、png等一般圖片文件轉換
對于jpg、png等一般圖片格式的文件,可以利用Tesseract-OCR直接進行圖片中文字識別,關鍵代碼如下:
[from PIL import Image
import pytesseract
img = Image.open(path)# path是圖片文件地址
text = pytesseract.image_to_string(img,lang='chi_sim')
#chi_sim為中文簡體字庫 ]
(2)tif格式文件轉換
tif文件多包含多張掃描圖片,需要分別對各張圖片進行識別后再進行合并,關鍵代碼如下:
[img = Image.open(path)
text = ''
for i in range(img.n_frames)#遍歷獲得tif文件內包含的每張圖像
img.seek(i)
text=text+pytesseract.image_to_string(img,lang='chi_sim') ]
(3)pdf格式文件轉換
pdf文件是一種格式化、面向頁面的文檔,包含文本、圖像及其他多媒體內容[2]。雖然可以通過pdfminer等第三方庫解析pdf文件來獲得其中的文本內容,但在實際使用中發現,對pdf文件中圖像所包含的文本內容無法通過解析獲得。因此,考慮使用PyMuPDF第三方庫,將pdf文件逐頁轉換成圖片,再對各個圖片進行文字識別。關鍵代碼如下:
[import fitz #fitz是PyMuPDF中的一個模塊
doc = fitz.open(path)
for pg in range(doc.pageCount):#逐頁遍歷pdf文件
page = doc[pg]
pp = page.getPixmap(alpha=False)
pp.writePNG('%s%s.png' %path+'/',pg))#按頁碼命名保存pdf文件中的各頁 ]
3批量制度文件轉換程序設計
3.1 流程設計
利用PyQt5進行人機操作界面設計,并采用PyInstaller進行封裝后,形成可移植程序(見圖3)。
用戶在選擇需要進行轉換的文件類型、路徑及結果保存路徑后,即可執行轉換程序,根據不同的文件類型分別進行處理,具體流程詳見圖4。
(1)對于jpg、png等一般類型的圖片,系統在進行圖像糾偏后,再進行圖片識別,最后將結果輸出為word文檔。
(2)對于pdf文件,系統會首先將pdf文件逐頁轉換為圖像,再對圖像進行糾偏,然后再對各個圖片進行圖像文字識別,最后將識別結果輸出為word文檔。
(3)對于tif文件,系統會首先讀取文件內的各個圖像分頁,再對各個圖像分頁進行糾偏,然后再對各個圖像分頁內的文字進行識別,最后將識別結果輸出為word文檔。
3.2 效果分析
以圖1為例進行識別,識別效果如圖5所示。
從識別結果可以看出,由于制度文件采用的均為印刷體文字,在對制度文件進行識別時,文字識別率較高。經過測試,文字識別率能達到95%以上,但是對于標點符號識別正確率較低,這和文件的掃描質量相關,而通過對Tesseract-OCR所使用的中文字庫進行訓練后,可進一步提高識別準確率。
4結論
通過運用OCR技術,對以jpg、tif、pdf等格式保存的制度文件進行文字內容識別提取,可以有效提高工作效率,減少不必要的工作量,為實現制度文件內容的全文檢索奠定了基礎。
參考文獻:
[1] 龍之冠.征地檔案數字識別研究與應用[J].國土資源導刊,2019,16(4):81-86.
【通聯編輯:聞翔軍】