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



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

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

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

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

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

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