張焱鑫
(四川文理學(xué)院 四川省達(dá)州市 635000)
隨著數(shù)字化信息時(shí)代的不斷發(fā)展,信息化建設(shè)步伐加快,自動(dòng)化、數(shù)字化的辦公形式顯得更加便利、高效,這也對(duì)日常數(shù)據(jù)、文檔等在形態(tài)、存儲(chǔ)模式、管理方法方面提出了新要求[1]。在日常辦公中數(shù)字化的電子文檔具有存儲(chǔ)容易、分發(fā)便捷、易于搜索等特點(diǎn),深受歡迎。常見(jiàn)的電子文檔有兩種:一種是由電腦編輯而生成的電子化文檔,另一種是基于紙質(zhì)文檔進(jìn)行處理后轉(zhuǎn)換形成的數(shù)字化文檔。而目前在數(shù)字化管理過(guò)程中,后者的存檔管理稍顯不易。比如在文檔掃描時(shí)系統(tǒng)采用傻瓜自動(dòng)命名,對(duì)文件未做任何描述,需要進(jìn)行重命名,當(dāng)批量掃描不同文檔時(shí),則需要人工進(jìn)行逐一查看及重命名,這極大的增加了數(shù)字化存檔的難度和門(mén)檻。本文針對(duì)文檔掃描圖像在存檔命名時(shí)無(wú)法有效命名的情況進(jìn)行優(yōu)化,提出了一種基于OCR技術(shù)的智能命名系統(tǒng)??蓪?shí)現(xiàn)自動(dòng)化、連續(xù)化的批量文檔智能重命名。
智能重命名系統(tǒng)主要由前段UI 交互界面和后端功能處理兩大部分組成。如圖1所示。UI 交互界面負(fù)責(zé)交互按鈕及數(shù)據(jù)顯示等功能接口,包含了選擇文件路徑、文件列表、圖像顯示、重命名規(guī)則設(shè)置、模式選擇、OCR 識(shí)別及識(shí)別結(jié)果顯示。后端功能處理部分主要是響應(yīng)各UI 交互功能接口。從選擇的文件路徑中讀取目錄下的圖像文件,并返回文件列表,同時(shí)顯示選中的文件圖像。通過(guò)選中不同的重命名模式,實(shí)現(xiàn)不同場(chǎng)景下的快速重命名。如果列表中文件命名標(biāo)題命名相對(duì)統(tǒng)一且規(guī)則,則可以采用自動(dòng)模式,通過(guò)提前設(shè)置識(shí)別規(guī)則,便可進(jìn)行快速自動(dòng)化的批量重命名。如果列表中文件標(biāo)題無(wú)固定統(tǒng)一的規(guī)則,或文件版式不一致,存在橫版豎版圖像混合等情況,則可以采用手動(dòng)模式。手動(dòng)模式下,可以設(shè)置識(shí)別規(guī)則、手動(dòng)選取識(shí)別區(qū)域,同時(shí)對(duì)于識(shí)別的結(jié)果可以進(jìn)行手動(dòng)校正或修改。
圖1:軟件工作流程及框架結(jié)構(gòu)圖
本文系統(tǒng)采用QtDesigner 進(jìn)行界面設(shè)計(jì),主要包括四個(gè)功能部分:文件列表顯示、圖像顯示、規(guī)則設(shè)置及模式選擇、區(qū)域選擇、按鈕交互功能等,如圖2所示。界面左半側(cè)是圖像顯示區(qū)域,用以顯示打開(kāi)的圖像文件;右半側(cè)頂部是當(dāng)前目錄文件,用于顯示當(dāng)前路徑下的所有JPG、PNG 格式的圖像文件名稱(chēng);其下是重命名規(guī)則區(qū)域,用于設(shè)置OCR 識(shí)別條件,對(duì)其圖像文件進(jìn)行文字識(shí)別后提取符合規(guī)則的題目標(biāo)題,并作為重命名名稱(chēng);重命名稱(chēng)是顯示文字識(shí)別后滿足規(guī)則的提取結(jié)果,可以在欄里進(jìn)行手動(dòng)補(bǔ)充或修改;底部是功能按鈕,靠右側(cè)是命名模式的選擇,分為自動(dòng)模式和手動(dòng)模式兩種;中部是打開(kāi)路徑,啟動(dòng)系統(tǒng)文件瀏覽器,用以瀏覽文件夾路徑;其次是圖像文件瀏覽按鈕,可以切換前后不同的文件,當(dāng)確定了文件路徑后方可以切換,文件瀏覽到第一個(gè)文件時(shí),“上一個(gè)”按鈕將會(huì)失去使能作用,同理,瀏覽到最后一個(gè)文件時(shí),“下一個(gè)”按鈕也會(huì)失去使能作用;“識(shí)別”按鈕是在設(shè)置好各選項(xiàng)后,按下該按鈕進(jìn)行響應(yīng)OCR 識(shí)別功能函數(shù);最后是“確定”按鈕,在自動(dòng)模式下是用于系統(tǒng)完成連續(xù)識(shí)別后的結(jié)束確認(rèn),在手動(dòng)模式下則是對(duì)“重命名稱(chēng)”欄中識(shí)別結(jié)果的確認(rèn),并進(jìn)行重命名。
圖2:區(qū)域拾取及識(shí)別效果
通過(guò)點(diǎn)擊“打開(kāi)路徑”按鈕即可實(shí)現(xiàn)系統(tǒng)文件瀏覽器的調(diào)用,本文采用QtWidgets 中QFileDialog.getExistingDirectory 函數(shù)實(shí)現(xiàn)文件夾路徑獲取,對(duì)該路徑下的圖像文件進(jìn)行遍歷,并獲取文件名稱(chēng)和文件類(lèi)型。同時(shí),構(gòu)造一個(gè)字符串?dāng)?shù)組用于存儲(chǔ)路徑下的文件名,并將其結(jié)果顯示在“當(dāng)前目錄文件”的文本框中。
獲取得到當(dāng)前選擇路徑下的文件后,可通過(guò)“上一個(gè)”和“下一個(gè)”按鈕進(jìn)行圖像文件的順序?yàn)g覽。通過(guò)初始化設(shè)置變量ID=0,瀏覽文件過(guò)程中每按一次“上一個(gè)”或“下一個(gè)”即對(duì)其進(jìn)行加減1,然后同該文件夾下的文件數(shù)量FilesNum 進(jìn)行比較;
當(dāng)0=ID 時(shí),說(shuō)明當(dāng)前文件只有后面有相鄰文件,將“上一個(gè)”按鈕使能設(shè)為False;
當(dāng)0<ID<FilesNum-1 時(shí),說(shuō)明當(dāng)前文件前后均有相鄰文件,兩個(gè)按鈕使能均為T(mén)rue;
當(dāng)ID=FilesNum-1時(shí),說(shuō)明當(dāng)前文件只有前面有相鄰文件,將“下一個(gè)”按鈕使能應(yīng)設(shè)置為False;
將ID 的數(shù)值作為索引,在已經(jīng)遍歷的文件名數(shù)組中尋找對(duì)應(yīng)的文件圖像,并對(duì)其進(jìn)行圖像顯示。
本文設(shè)置了自動(dòng)模式和手動(dòng)模式兩種工作方式。兩種模式對(duì)于橫版、豎版均有一定的識(shí)別能力。
自動(dòng)模式主要針對(duì)相對(duì)簡(jiǎn)單的使用場(chǎng)景,文件標(biāo)題均相對(duì)簡(jiǎn)單、規(guī)則性強(qiáng)、有較大相似性,例如“關(guān)于XXX 的通知”、“關(guān)于XXX 的審定”、“關(guān)于XXX 的意見(jiàn)”等。
手動(dòng)模式則是對(duì)自動(dòng)模式的一種補(bǔ)充,偏向針對(duì)與掃描文件的標(biāo)題無(wú)固定、統(tǒng)一規(guī)則的情況,以及常見(jiàn)表格文檔的掃描圖像,均可以通過(guò)鼠標(biāo)自選識(shí)別區(qū)域進(jìn)行精準(zhǔn)識(shí)別,如圖3所示。
圖3:測(cè)試數(shù)據(jù)一覽
手動(dòng)模式下可以手動(dòng)指定識(shí)別區(qū)域,實(shí)現(xiàn)文字的精準(zhǔn)定位和識(shí)別。在圖像顯示界面,通過(guò)鼠標(biāo)左鍵在按下與松開(kāi)的位置之間繪制矩形畫(huà)框,并對(duì)該標(biāo)記區(qū)域的圖像進(jìn)行OCR 識(shí)別,完成文字提取。如圖3所示,紅框區(qū)域即為手動(dòng)標(biāo)記的目標(biāo)文本區(qū)域,標(biāo)記區(qū)域后點(diǎn)擊識(shí)別按鈕即可獲取識(shí)別結(jié)果,并顯示在“重命名稱(chēng):”文本框中,若其結(jié)果有誤可以直接進(jìn)行手動(dòng)鍵入修改校正。圖示中表格圖像標(biāo)題應(yīng)為“發(fā)文登記表”,其識(shí)別結(jié)果為“發(fā)文夏記表”,便可通過(guò)手動(dòng)修改后,點(diǎn)擊確定即可完成正確的重命名。當(dāng)然出現(xiàn)這種情況的可能性很大程度上是由于圖像分辨率不夠高,加上某文字稍顯復(fù)雜或者及其相似引起的。
OCR 識(shí)別是本文軟件重要的基礎(chǔ)功能,主要借助Pythontesseract 模塊對(duì)掃描圖像中的印刷字體進(jìn)行識(shí)別,其支持的圖像格式包括 jpeg、png、GIF、bmp、tiff 等。該模塊的使用非常簡(jiǎn)單,調(diào)用內(nèi)置函數(shù)image_to_string()即可識(shí)別圖像中的文字。如下:
ORCtext= pytesseract.image_to_string(img,lang='chi_sim')
其中img 即為要識(shí)別的目標(biāo)圖像,該函數(shù)默認(rèn)是英文識(shí)別,對(duì)于簡(jiǎn)體中文的識(shí)別需要添加語(yǔ)言庫(kù)參數(shù)lang='chi_sim',即可返回識(shí)別的文本結(jié)果ORCtext。
通過(guò)判斷識(shí)別的文本結(jié)果中是否包含重命名規(guī)則中設(shè)置的關(guān)鍵詞,進(jìn)而完成目標(biāo)文本的提取。
本文從網(wǎng)頁(yè)中收集了15 張通知文件圖像作為測(cè)試數(shù)據(jù)(如圖3),并對(duì)數(shù)據(jù)集進(jìn)行了橫豎版混合處理。由于重命名的成功與否主要取決于是否識(shí)別準(zhǔn)確,因此自動(dòng)模式與手動(dòng)模式的識(shí)別效果區(qū)別不大,故在此只展示在自動(dòng)模式下的測(cè)試結(jié)果。其結(jié)果如表1所示,其中有2 份文件未成功重命名,有3 份文件重命名稱(chēng)中出現(xiàn)漏字和錯(cuò)字的情況,橫豎版圖像對(duì)文檔的重命名無(wú)任何影響。
表1:測(cè)試結(jié)果
重命名未成功主要原因是在文字識(shí)別的結(jié)果中無(wú)法有效檢測(cè)到設(shè)置的文本規(guī)則。原本標(biāo)題滿足規(guī)則,但識(shí)別不準(zhǔn)確使其不滿足規(guī)則,比如12.jpg 標(biāo)題為“關(guān)于廢止一批規(guī)范性文件的通知”,其OCR結(jié)果未識(shí)別到“關(guān)于……通知”的關(guān)鍵詞組,導(dǎo)致無(wú)法成功命名,13.jpg 也是同樣的原因。
OCR 識(shí)別不準(zhǔn)確也會(huì)導(dǎo)致重命名名稱(chēng)漏字和錯(cuò)字的情況,主要取決圖像的掃描質(zhì)量,比如圖像是否清晰、分辨率是否足夠高。其次,文字的復(fù)雜性、相似性也有一定的影響;本文重命名稱(chēng)漏字和錯(cuò)字3 份文件中,有2 份文件分辨率較低且相對(duì)不夠清晰,比如8.jpg 中(分辨率650*884)“高精尖缺人才”漏掉了“缺”字,“若干規(guī)定”錯(cuò)識(shí)別為“若十規(guī)定”;10.jpg(分辨率480*682)中“勘察”一詞識(shí)別漏掉了“勘”字,并將“實(shí)用性”誤識(shí)別為“實(shí)用伯”;另外1 份由于文字相似導(dǎo)致識(shí)別錯(cuò)誤,如15.jpg 中“黨總支”被誤識(shí)別為“兌總爻”,“細(xì)則”識(shí)別為“細(xì)剎”。
對(duì)于文件標(biāo)題的識(shí)別,由于標(biāo)題字體較大,因此圖像的分辨率大小對(duì)OCR的識(shí)別有一定影響,OCR 識(shí)別的準(zhǔn)確性直接決定重命名成功與否。在實(shí)際生活中,日常辦公通常采用專(zhuān)用掃描儀進(jìn)行文檔的掃描以獲取圖像,因此能夠保證圖像的分辨率足夠清晰,但需要保證掃描前的紙質(zhì)文檔打印清晰,盡量做到無(wú)漏墨、無(wú)虛影等不良情況。
本文基于OCR 識(shí)別技術(shù),針對(duì)辦公環(huán)境中的掃描文檔重命名環(huán)節(jié),設(shè)計(jì)了一款智能化、可批量化的重命名系統(tǒng),能夠輔助完成掃描文檔的快速有效重命名,進(jìn)而幫助辦公人員提高辦公效率。但識(shí)別的準(zhǔn)確率有進(jìn)一步提升空間,若采用深度學(xué)習(xí)訓(xùn)練的離線模型進(jìn)行文字識(shí)別或有不錯(cuò)效果。