??? 前一段時間單位和清華文通公司合作開發(fā)掃描識別方面的項目,由此能夠獲知一些掃描方面的知識,以及能夠從清華文通的保存文件格式中窺斑見豹,了解到一些他們是如何進行掃描識別的過程。
??? 清華文通的保存文件是以mod結(jié)尾的文本格式的文件,其中的內(nèi)容大致上分為如下幾個部分:
??? 1、[Description]
??? 2、[imageDealt]
??? 3、[LocationInfo]
??? 4、[Region]
??? 5、[Region1]
??? 6、[Region1.Cell1]
??? 7、[Region1.Cell1.SubCell1]
??? 如上就是清華文通mod文件保存的大致內(nèi)容格式。
??? Description是對整張模板的基本情況說明的部分其中包含子項有:Vertion、Type、Name、SourceImage、RegionNumber、CellNumber、SubCellNumber、LineNumber、SaveCellPosition、DatabaseName、XResolution、YRsolution、SavePNT。
??? 這之中最重要的是Name、SourceImage、CellNumber、SubCellNumber、XResolution、YRsolution這些子項,它們分別標(biāo)識了模板名字、模板分析時使用的圖像名字、區(qū)域中需要識別的單元個數(shù),Cell就是識別單元的代號、識別單元中有多少個子單元、掃描的分辨率。
??? imageDealt是用于圖像處理的參數(shù)說明,這里的參數(shù)我們一般不需要進行太多的干涉,使用默認值0即可。
??? LocationInfo項目中時關(guān)于定位信息的設(shè)置,這里要說說在掃描之中的參照線的問題,我們是用一張普通的A4紙在掃描儀上掃描,它的邊是黑色的這個大家有過掃描經(jīng)驗的人應(yīng)該都知道吧,那么我們怎么能夠?qū)埳系淖诌M行相對位置的確定呢?掃描后紙邊的黑邊是有很大一個區(qū)域的如果用它來做定位參照,那么其帶來的誤差將會很大,可能會導(dǎo)致其后的識別的位置錯誤。所以,我們在需要掃描的紙上人為的作出一個四邊形區(qū)域,將所有需要識別的文字包括在其中,那么這4條清晰的直線將是我們之后掃描識別的參照線。LocationInfo就是用于設(shè)置這4條定位線的信息項。
??? Region的一般設(shè)置是1,標(biāo)明這張紙上有多少個需要識別的區(qū)域。
??? Region1是對Region中標(biāo)識為1的區(qū)域進行說明,其中的子項有TotalCell、TableName、Position、TotalFrameLines、TotalCellGroups。這里因為命名規(guī)則我們可以望詞見意。
??? Region1.Cell1是對Region1中第一個需要識別的單元格進行的說明,其中含有CellAttrib、recognize、CharNum、CellType、CellLines、CellPosition、BorderAllWhite、IsBlocked、Contents、FontType、FontSign、TotalSubCells、FontSubType、FieldName、FieldSign、FieldType、FieldSize這些子屬性的設(shè)置,這里面以CellPosition、FontType、FontSign、TotalSubCells、FieldName、FieldSign、FieldType為重要屬性。
??? CellPosition不言而喻是表示這個識別區(qū)域在圖像上的坐標(biāo)位置,它的標(biāo)識標(biāo)準(zhǔn)是(XLeftTop,YLeftTop,XRightButtom,YRitghtButtom)用這么一個對角線就可以表示出這個區(qū)域了。
??? FontType、FontSign是用于標(biāo)識識別字體類型的信息,0印刷簡體、1印刷繁體、2印刷英文、3日文、4手寫漢字、6手寫數(shù)字、7CheckBox。而FieldType是該識別單元的類型:1—文本,2—整型,3—長整型,4—單精度,5—雙精度,6—日期,7—備注,10—chechbox多選
??? 如果本單元是由多個子單元組成的話,那么我們還需要進行更進一步的細化描述,這就是之上的Region1.Cell1.SubCell1項。其中的內(nèi)容描述項不多,有Contents、FontType、FontSign、CellPosition、BorderAllWhite這些項目要填寫。我們可以根據(jù)上面的說明來填寫這些子選項。
??? 對一頁紙上面的內(nèi)容信息進行迭代設(shè)置,就可以把他們?nèi)繕?biāo)識出來,進而使用清華文通的識別軟件識別了。其核心思想是,對紙張掃描后的圖片進行分而治之的思想,由大化小。這和現(xiàn)在Google的MapReduce,Nutch中使用的Hadoop的思想是一致的。看來計算機中的算法到了一定程度上也有了哲學(xué)的東西在其中啊,畢竟計算機是用于解決人類世界的問題的,所以哲學(xué)也在計算機算法之上啊。



本文依據(jù)《創(chuàng)作共用約定》之“署名-禁止派生-非商業(yè)用途”方式發(fā)布,即你可以免費拷貝、分發(fā)、呈現(xiàn)和表演當(dāng)前作品,但是必須基于以下條款:

  • 署名:你必須明確標(biāo)明作者的名字。

  • 非商業(yè)用途:你不可將當(dāng)前作品用于商業(yè)目的。

  • 禁止派生:你不可更改、轉(zhuǎn)變或者基于此作品重新構(gòu)造為新作品。

對于任何二次使用或分發(fā),你必須讓其他人明確當(dāng)前作品的授權(quán)條款。

在得到作者的明確允許下,這里的某些條款可以放棄。