蘇佩佩,哈力木拉提買(mǎi)買(mǎi)提,艾爾肯賽甫丁,王劍
(新疆大學(xué) 信息科學(xué)與工程學(xué)院;多語(yǔ)種信息技術(shù)重點(diǎn)實(shí)驗(yàn)室,新疆烏魯木齊 830046)
維吾爾文字符識(shí)別在預(yù)處理后,首先要進(jìn)行字符切分,把單個(gè)的字母切分出來(lái),再對(duì)單個(gè)的字母進(jìn)行特征提取,這樣需要考慮字符的切分準(zhǔn)確率,同時(shí)要考慮切分過(guò)程中出現(xiàn)的粘連和錯(cuò)切的情況,這些都是很繁瑣的工作.為避免這些問(wèn)題,本文選擇了放棄字符切分的部分,對(duì)整個(gè)單詞直接進(jìn)行特征提取.
文字字符識(shí)別一般要求特征維度小,并且盡量保證不同字符的特征差別大.特征維度小能減少很多繁瑣的工作,同時(shí)提高識(shí)別的準(zhǔn)確率和速度.但是現(xiàn)實(shí)中字符識(shí)別往往是維度小、特征差別小且識(shí)別準(zhǔn)確率低.為了提高識(shí)別率,傳統(tǒng)方法選擇高維度,但是這樣降低了識(shí)別速度,加大了計(jì)算量.所以目前急需一種實(shí)現(xiàn)小維度高識(shí)別率的方法.
本文研究對(duì)維吾爾文整個(gè)單詞識(shí)別的方法,即減少了字符識(shí)別這一過(guò)程,同時(shí)也省去字符切分和單個(gè)字符識(shí)別后再整合成單詞識(shí)別的工作.這個(gè)過(guò)程大大減少了特征提取和識(shí)別的計(jì)算量,同時(shí)要求也更高.它要求所提取的特征能很好的識(shí)別整個(gè)單詞,通過(guò)單詞特征的唯一性來(lái)達(dá)到識(shí)別的目的.這里我們采取的是輪廓特征作為主要特征,每個(gè)單詞都有其對(duì)應(yīng)的基線[3]域,并且單詞都是由幾個(gè)連體段構(gòu)成,連體段又由幾個(gè)字符組成.根據(jù)基線域,我們把輪廓特征分成三部分,基線上的輪廓特征、基線中的輪廓特征和基線下的輪廓特征.基線上的輪廓特征和基線下的輪廓特征描述的是單詞輪廓的外輪廓,即點(diǎn)輪廓.基線中的輪廓特征描述的是內(nèi)輪廓,也就是孔輪廓,此方法能很好的解決低維度、識(shí)別效果差的缺陷.
維吾爾文單詞由一些連體段組成,而連體段則由單個(gè)的字符組成,所以要對(duì)單詞進(jìn)行特征提取,首先要對(duì)連體段進(jìn)行提取,本文講述了連體段的劃分、輪廓特征提取,以及需要涉及到的一些圖像處理技術(shù).
圖1 連體段的矩形圖
從圖中看出,一個(gè)單詞由幾個(gè)連體段組成,并且每個(gè)連體段之間有一定的間距,每個(gè)單詞之間也有一定間距,可以根據(jù)間距的大小來(lái)區(qū)分單詞和連體段.通過(guò)水平投影和垂直投影得到連體段的四個(gè)坐標(biāo)點(diǎn),畫(huà)出其對(duì)應(yīng)的矩形就可以得到如圖所示的矩形,將連體段劃分出來(lái).
水平投影就是把圖像投影到X軸上所組成的的圖像,我們對(duì)要進(jìn)行投影的圖像,根據(jù)先行后列的方式掃描,如果發(fā)現(xiàn)該點(diǎn)為黑點(diǎn),則把該點(diǎn)投影到該行的最左邊,依次累加.而原來(lái)的像素點(diǎn)就不存在了,或者變成白點(diǎn)像素,直至掃描完所有的圖像,則水平投影就完成了,它最終的圖像是二值化圖像.在對(duì)圖像進(jìn)行水平投影之前,先要對(duì)文檔圖形進(jìn)行文本行的提取.
對(duì)整幅圖像進(jìn)行水平投影后,發(fā)現(xiàn)每個(gè)文本行的水平投影圖都是有間距的.我們可以根據(jù)這些間距來(lái)判斷文本行的高度值,確定它的起始點(diǎn)和高度值.由于文本行的寬度和整幅圖像的寬度是一致的,這樣就得到了本文行的四個(gè)坐標(biāo)點(diǎn),然后我們對(duì)圖像進(jìn)行感興趣區(qū)域的劃分,就能把文本行提取出來(lái),如圖2所示.
圖2 一個(gè)帶基線的文本行
從圖中可以看出,對(duì)于每個(gè)文本行來(lái)說(shuō),可以求出其基線,然后求出傾斜角,為圖像的預(yù)處理做鋪墊.每個(gè)文本行都有自己的水平投影圖和垂直投影圖,通過(guò)對(duì)文本行的投影得到對(duì)應(yīng)的連體段和單詞.同樣,對(duì)文本行進(jìn)行垂直投影,也發(fā)現(xiàn)每個(gè)單詞、每個(gè)連體段都有間距,根據(jù)間距得到連體段的水平寬度、水平起始點(diǎn)和寬度,然后結(jié)合文本行的高度,對(duì)連體段進(jìn)行掃描,進(jìn)行水平投影,就可以得到連體段的高度起始點(diǎn)和高度值,根據(jù)這四個(gè)坐標(biāo)點(diǎn)就能得到連體段的區(qū)域.對(duì)文本行進(jìn)行水平投影如圖3所示.
從圖中可以看出,文本行的水平投影圖上下之間有一定的間距,根據(jù)這個(gè)間距可以劃分開(kāi)文本行,唯一不足的地方就是,對(duì)其水平投影是需要對(duì)其圖像進(jìn)行掃描,掃描針對(duì)每個(gè)像素點(diǎn),不可避免的加大了計(jì)算量.
圖3 文本行水平投影圖
垂直投影就是把圖像投影到Y(jié)軸上所組成的的圖像.我們對(duì)要進(jìn)行投影的圖像,根據(jù)先列后行的方式掃描,如果發(fā)現(xiàn)該點(diǎn)為黑點(diǎn),則把該點(diǎn)投影到該列的最下邊,依次累加.原來(lái)的像素點(diǎn)就不存在了,或者變成白點(diǎn)像素,直至掃描完所有的圖像,則垂直投影就完成了,它最終的圖像也是二值化圖像.同樣的,在對(duì)圖像進(jìn)行垂直投影之前,先要對(duì)文檔圖形進(jìn)行本文行的提取,文本行圖像進(jìn)行垂直投影后,發(fā)現(xiàn)本文行的垂直投影圖都是有間距的,我們可以根據(jù)這些間距來(lái)判斷文本行連體段的水平值、起始點(diǎn)和寬度值,如圖4所示.
圖4 本行的垂直投影圖
從圖中可以看出,文本行中的連體段在垂直投影后會(huì)有一定的間距.可以根據(jù)這個(gè)間距得到連體段水平位置的起點(diǎn)和終點(diǎn),對(duì)文本行進(jìn)行垂直投影,發(fā)現(xiàn)間距有大有小,其中間距大的是單詞間的間距,間距小的是連體段間的間距.有一個(gè)臨界值,大于等于這個(gè)臨界值就是單詞間的距離,小于的自然就是連體段間的距離.我們?cè)趯?duì)單詞進(jìn)行特征提取之前,也要根據(jù)這些特點(diǎn)進(jìn)行單詞間的劃分.
對(duì)于單詞的劃分,也是用水平投影和垂直投影分別得到單詞的高度起始點(diǎn)、高度值、水平起始點(diǎn)和寬度值,然后根據(jù)這四個(gè)值來(lái)進(jìn)行單詞的劃分.事實(shí)上連體段之間的間距小于單詞之間的間距,在掃描本文行的時(shí)候判斷字符之間的間距是否大于這個(gè)單詞之間的最小值,如果大于則是單詞的區(qū)分,如果小于就是連體段的區(qū)分.在單詞的統(tǒng)計(jì)中要記錄下它有多少個(gè)連體段組成,把每個(gè)連體段的特征要區(qū)分開(kāi),那么幾個(gè)連體段也就成了單詞的特征,把所有特征組合成一個(gè)特征向量,這個(gè)向量就是這個(gè)單詞的主特征向量.如圖5所示,顯示了單詞劃分的圖示,利用矩陣記錄單詞的四個(gè)坐標(biāo)點(diǎn),以此來(lái)定位單詞的位置,同時(shí)記錄所有單詞編號(hào),把具有相同特征的單詞編號(hào)放到一起,便于實(shí)驗(yàn)結(jié)果統(tǒng)計(jì).
圖5 部分單詞劃分圖
這些特征相同的編號(hào)表示的單詞可能是同一個(gè)單詞,也可能是不同的單詞.這里也會(huì)出現(xiàn)在連體段劃分過(guò)程中出現(xiàn)的劃分區(qū)間過(guò)大、劃分空白、劃分重復(fù)等情況.如圖6所示,展示了單詞錯(cuò)分的示意圖.
圖6 部分單詞錯(cuò)分圖
輪廓[1]就是一系列的點(diǎn),這些點(diǎn)代表圖像的邊界點(diǎn),形成了一條曲線.根據(jù)不同的方法這些曲線的形成也會(huì)不一樣,但都是存儲(chǔ)圖像的輪廓信息.輪廓有外輪廓和內(nèi)輪廓之分,外輪廓就是外面邊界的曲線,內(nèi)輪廓就是圖像里面邊界的曲線,俗稱孔,有孔的地方就會(huì)有內(nèi)輪廓.在識(shí)別過(guò)程中,要先把感興趣的區(qū)域目標(biāo)提出來(lái),然后通過(guò)顏色紋理提取目標(biāo)的前景圖,在根據(jù)前景圖進(jìn)一步把目標(biāo)輪廓提出來(lái),這就是目標(biāo)輪廓的提取.對(duì)于連體段來(lái)說(shuō)圖像區(qū)域存在孔,就是內(nèi)邊界,形成的輪廓就是內(nèi)輪廓,如圖7所示.而外面的點(diǎn)或者其它形狀圖像都只有外輪廓.區(qū)域的邊界提取和外輪廓的跟蹤是為提取圖像的邊界特征做鋪墊.
圖7 單詞的輪廓示意圖
輪廓跟蹤是對(duì)某一像素點(diǎn)根據(jù)某一跟蹤原則確定下個(gè)像素點(diǎn)的過(guò)程.二值圖像的輪廓跟蹤大致步驟如下:
1)定義數(shù)組director[]用于存儲(chǔ)相鄰像素間的方位,數(shù)組可以取值:右,右上,上,左上,左,左下,下,右下;定義邊界點(diǎn)存儲(chǔ)數(shù)組edge[].
2)先行后列順序掃描字符圖像塊,找到第一個(gè)值為0的點(diǎn),它是最右上方的邊界點(diǎn),記為a.
3)以a為起始點(diǎn),檢查a的director[k]方向的下一個(gè)像素點(diǎn)的值,k=0,1,2,3,4,5,6,7.檢查8個(gè)方向的像素值,如果有一個(gè)為255,則它是邊界點(diǎn),如果有多個(gè)255,則有多個(gè)邊界點(diǎn),并將該點(diǎn)存入邊界數(shù)組edge[k]內(nèi),同時(shí)記錄序號(hào)k按director[k]數(shù)組值的方向第一個(gè)從0到255的順序,則director[k]方向的像素點(diǎn)將作為下一個(gè)搜尋的點(diǎn).
4)如果搜索到點(diǎn)返回到a點(diǎn),則結(jié)束該過(guò)程.
鑒于維吾爾文的字符有很多的特征,例如輪廓、Freeman鏈碼[9]、Hu矩、面積、周長(zhǎng)等等,相應(yīng)的就有特征向量用于存儲(chǔ)這些特征.也有主特征和輔助特征,重點(diǎn)在于主特征的分析上,不同的特征對(duì)于不同的字符有不同的效果.有時(shí)候?yàn)榱俗R(shí)別出字符的唯一性,不得不啟用很多的特征,但是這樣增加了計(jì)算量,也影響了速度.為此對(duì)于整個(gè)單詞的識(shí)別我們要盡量少選一些特征,對(duì)連體段的特征進(jìn)行分析整理,找出便于識(shí)別的最佳的特征組合.不同的特征之間的組合特征會(huì)有很多的差異,找出合適的組合就能有意想不到的效果,但是這個(gè)工作需要很多的嘗試和測(cè)試.本文采用了連體段的輪廓作為主要的特征,再輔以其它的特征,對(duì)單詞進(jìn)行識(shí)別.
特征一般分為物理、結(jié)構(gòu)、數(shù)學(xué)三種,也可以分為局部特征、全局特征和結(jié)構(gòu)特征.不同特征適合不同的地方.對(duì)于連體段特征一般要求:具有較高的區(qū)分能力、高穩(wěn)定性、高效率、高速度、計(jì)算量少等等.同時(shí)特征向量盡可能少,特征越多,計(jì)算量越復(fù)雜,往往在實(shí)際的應(yīng)用差強(qiáng)人意,為此應(yīng)該結(jié)合實(shí)際需求和程序可行性,找出高效的特征.
前面介紹連體段的劃分,同時(shí)通過(guò)基線的直線擬合,求出該連體段的基線域,再找出該連體段的輪廓.基線中的孔記為內(nèi)輪廓,基線域上的點(diǎn)或者其它形式的部分稱為基線上的外輪廓,基線域下的點(diǎn)或者其它形式的部分稱為基線下的外輪廓.對(duì)于每個(gè)連體段來(lái)說(shuō),都有自己的內(nèi)輪廓和基線域上外輪廓以及基線域下外輪廓.對(duì)連體段中輪廓進(jìn)行分析,包括基線域上的外輪廓個(gè)數(shù)、基線域中的內(nèi)輪廓個(gè)數(shù)以及基線域下的外輪廓個(gè)數(shù).本文利用字符串Sa1a2a3來(lái)保存連體段的輪廓特征,前面S表示一個(gè)連體段,后面的三個(gè)數(shù)字a1a2a3分別為:a1代表基線域上外輪廓數(shù),a2代表內(nèi)輪廓數(shù),a3代表基線域下外輪廓數(shù).圖8所示連體段的輪廓特征為S235,基線域上外輪廓數(shù)a1為2,內(nèi)輪廓數(shù)a2為3,基線域下外輪廓數(shù)a3為5.
圖8 連體段的輪廓特征為S235
連體段的特征已經(jīng)統(tǒng)計(jì)出來(lái).單詞的特征包含了每個(gè)組成它的連體段的特征、連體段的順序及連體段的個(gè)數(shù).如果有相同特征的不同單詞,需要繼續(xù)添加輔助特征加以區(qū)分,這屬于二次識(shí)別的范疇.對(duì)于輔助特征,沒(méi)有具體的范疇,對(duì)于短特征向量的不同單詞來(lái)說(shuō),面積、長(zhǎng)度、波峰等等都有可能區(qū)分開(kāi)來(lái),對(duì)于長(zhǎng)特征向量不同單詞來(lái)說(shuō),面積、長(zhǎng)度等就起不到作用,所以輔助特征我們要根據(jù)具體的情況具體分析.圖9展現(xiàn)了該單詞的連體段和單詞的切分圖.
圖9 單詞和連體段對(duì)比圖
它的主輪廓特征可以表示為S213S000S110S101.利用字符串來(lái)表示,一個(gè)變量就能表示很多輪廓特征,減少了特征向量的維度,同時(shí)也提高了識(shí)別的精度.該單詞由四個(gè)連體段組成(維吾爾文讀取的時(shí)候是從右到左,這和英文單詞的讀取方式剛好相反),四個(gè)連體段就應(yīng)該用四個(gè)S字符串表示,每一個(gè)S代表一個(gè)連體段.從圖中可以看出單詞第一個(gè)連體段S213有兩個(gè)基線上的外輪廓、一個(gè)基線中的內(nèi)輪廓和三個(gè)基線下的外輪廓;第二個(gè)連體段S000有零個(gè)基線上的外輪廓、零個(gè)基線中的內(nèi)輪廓和零個(gè)基線下的外輪廓;第三個(gè)連體段S110有一個(gè)基線上的外輪廓、一個(gè)基線中的內(nèi)輪廓和零個(gè)基線下的外輪廓;第四個(gè)連體段S101有一個(gè)基線上的外輪廓、零個(gè)基線中的內(nèi)輪廓和一個(gè)基線下的外輪廓,由此就組成了單詞的主輪廓特征字符串S213S000S110S101.根據(jù)這個(gè)字符串特征向量要是不能唯一識(shí)別單詞,就需要另外的額外輔助特征加以識(shí)別.這里展示部分單詞特征如圖10,前面的數(shù)字代表單詞的序號(hào),根據(jù)序號(hào)就直接可以定位單詞,大大節(jié)省了空間和時(shí)間.
該圖展示了一篇文章部分單詞的輪廓特征.對(duì)其所有特征字符串進(jìn)行排序就可以得到相同特征的單詞是否是同一個(gè)單詞,可以確定單詞的唯一性,也就確定了識(shí)別該單詞的準(zhǔn)確率.
圖10 部分單詞輪廓特征統(tǒng)計(jì)
在統(tǒng)計(jì)完主輪廓特征后,開(kāi)始識(shí)別,對(duì)其所有字符串進(jìn)行排序,把字符串相同的放在一起,同時(shí)通過(guò)查詢序號(hào)判斷是否為同一單詞,如果是同一單詞,說(shuō)明該特征能唯一識(shí)別該單詞(當(dāng)然需要多篇文章的證實(shí),僅僅憑一兩篇文章是沒(méi)有說(shuō)服力的);如果不是同一個(gè)單詞的話,需要借助另外的輔助特征來(lái)進(jìn)行二次識(shí)別.如圖11所示,展示了同一特征對(duì)應(yīng)相同的單詞和同一特征對(duì)應(yīng)不同的單詞的情況.在一篇文章中141S210S000S000S000、151S210S000S000S000、171S210S000S000S000三個(gè)單詞特征相同,單詞也是同一個(gè)單詞,識(shí)別就是成功的;80S100、107S100兩個(gè)單詞特征相同,但是單詞不是同一個(gè)單詞,識(shí)別失敗,需要借助輔助特征進(jìn)行二次識(shí)別,如圖11所示.
圖11 相同特征對(duì)應(yīng)的單詞對(duì)比
一篇文章由單詞和特殊字符組成,這里不考慮特殊字符,在識(shí)別的過(guò)程中先把它們排除掉,然后對(duì)文章進(jìn)行統(tǒng)計(jì).一般同一特征對(duì)應(yīng)不管是同一單詞還是不同單詞,它們的比例在20%-30%之間,在這些單詞中再選出同一特征對(duì)應(yīng)的不同單詞,這些單詞的識(shí)別僅僅靠主輪廓的識(shí)別是不夠的,要重新選取輔助特征進(jìn)行二次識(shí)別,直到都能唯一的對(duì)應(yīng).同時(shí)在全篇文章中找出提取輪廓特征錯(cuò)誤的單詞,通過(guò)手工的進(jìn)行更正.這樣的單詞特別少,產(chǎn)生的原因很多,沒(méi)必要重新提取,重新提取也會(huì)影響其它單詞的特征提取.對(duì)于這少部分盡量簡(jiǎn)單處理,不要影響大局.
對(duì)于識(shí)別不唯一的需要借助新的輔助特征的單詞,進(jìn)行二次識(shí)別,然后把這些特征向量和對(duì)應(yīng)的單詞放入匹配庫(kù)中.每識(shí)別一篇文章,在得出唯一的特征向量以后,就把不同特征的單詞和特征向量再次放入匹配庫(kù)中.如果在匹配庫(kù)中遇到相同特征的對(duì)應(yīng)不同的單詞,和在文章一樣,繼續(xù)借助輔助特征識(shí)別這些單詞,直至唯一對(duì)應(yīng)單詞.隨著匹配庫(kù)的不斷擴(kuò)大,以后單詞識(shí)別會(huì)越來(lái)越快,準(zhǔn)確率也會(huì)越來(lái)越高.
表1 十幅文檔圖像單詞識(shí)別率
我們對(duì)二十篇文章做了基本的統(tǒng)計(jì),得出了大部分日常生活中用到的單詞的特征向量,在表1中列出了十篇文章的統(tǒng)計(jì)情況,每篇文章的識(shí)別率、錯(cuò)誤率基本差不多,沒(méi)有太大的差別.由此我們得出一個(gè)平均的單詞識(shí)別率.以后想提高單詞識(shí)別率,可以在此基礎(chǔ)上進(jìn)行改善.這個(gè)過(guò)程需要一個(gè)很大的硬盤(pán)存儲(chǔ)空間.對(duì)于本系統(tǒng)來(lái)說(shuō),最大的難點(diǎn)就是如何有效的找出輔助特征,因?yàn)椴煌趩蝹€(gè)字符有很多特征,通過(guò)歸一化以后,很多特征都可以區(qū)分開(kāi)字符,單詞沒(méi)辦法歸一化,并且針對(duì)整個(gè)單詞的特征少之又少,所以輔助特征的選取是個(gè)難點(diǎn).同時(shí)匹配庫(kù)的管理也是一個(gè)難點(diǎn),因?yàn)樵谧R(shí)別一篇文章后,需要和整個(gè)匹配庫(kù)進(jìn)行對(duì)比,這在效率上就大打折扣,并且在遇到同一特征對(duì)應(yīng)不同的單詞時(shí),也需要輔助特征的選取,隨著匹配庫(kù)的擴(kuò)大,速度的處理會(huì)越來(lái)越慢,但是識(shí)別率會(huì)越來(lái)越高.
本文提出了一種以連體段為基本單位的單詞整體特征提取的方法,采取了低維度的輪廓特征作為主特征,對(duì)連體段的輪廓特征用字符串形式進(jìn)行存儲(chǔ),整合之后成為單詞的輪廓特征,用以在識(shí)別過(guò)程中作為主要的識(shí)別特征,對(duì)于不能進(jìn)行識(shí)別的單詞借助輔助特征進(jìn)行二次識(shí)別.經(jīng)過(guò)實(shí)驗(yàn)測(cè)試,本系統(tǒng)識(shí)別率約為90%.本研究為以后維吾爾文單詞識(shí)別研究特供了一個(gè)新的思路,可以在此基礎(chǔ)上進(jìn)行改善,進(jìn)一步提高提取特征的唯一性和單詞的識(shí)別率.
新疆大學(xué)學(xué)報(bào)(自然科學(xué)版)(中英文)2015年4期