《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 其他 > 業(yè)界動(dòng)態(tài) > 改進(jìn)水印圖片里文字識(shí)別效果的新方法

改進(jìn)水印圖片里文字識(shí)別效果的新方法

2009-07-22
作者:駱劍鋒1,諶 頏2

  摘 要: 現(xiàn)今,OCR文字識(shí)別技術(shù)已經(jīng)飛快發(fā)展,如一般的車(chē)牌識(shí)別、掃描文本識(shí)別等技術(shù)的識(shí)別率已達(dá)到非常高的水平,但這些識(shí)別技術(shù)在帶水印圖片的文字識(shí)別這一方面表現(xiàn)一般。其原因主要在識(shí)別前后的處理還不夠。主要講述了文字識(shí)別的新預(yù)處理的方法和后期處理的實(shí)現(xiàn)。
??? 關(guān)鍵詞: USM銳化;最大類(lèi)間方差;閾值;平均灰度值;二值化閾值;拼寫(xiě)與語(yǔ)法檢查

?

  所謂帶水印的圖片,其實(shí)就是在文字的上面加上一層半透明的圖像,如圖1所示。這層圖像不會(huì)影響讀者對(duì)文字的閱讀,但如果計(jì)算機(jī)要提取圖片里面的內(nèi)容就會(huì)非常的困難。

?


  為了能準(zhǔn)確且方便地從帶水印的圖片中提取內(nèi)容,本文對(duì)圖片的預(yù)處理分成三步:第一步是進(jìn)行灰度處理,第二步是用自動(dòng)獲取閾值的USM銳化,最后是對(duì)圖片進(jìn)行二值化處理。
  在眾多文字識(shí)別技術(shù)中,暫時(shí)還沒(méi)有一種識(shí)別方法能保證識(shí)別出來(lái)的內(nèi)容是準(zhǔn)確的,因此,在進(jìn)行識(shí)別后的檢查和糾正就顯得很重要。為了在識(shí)別錯(cuò)誤后能盡量地糾正,需要對(duì)識(shí)別結(jié)果進(jìn)行拼寫(xiě)和語(yǔ)法檢查及糾正。所以在本文的后部分還介紹一種簡(jiǎn)單的識(shí)別結(jié)果糾正程序。
1 文字識(shí)別的預(yù)處理
1.1 灰度處理
  灰度處理主要是對(duì)圖片中每一像素的RGB值進(jìn)行映射,映射到0至255的灰度值。所以得出來(lái)的圖片就像黑白照片一樣。這樣做就可以降低后面步驟的運(yùn)算量,并且使得圖片更加易于辨認(rèn)。效果圖如圖2所示。

1.2 USM銳化
  由于水印是半透明地蓋在文字資料上,使得水印下的文字的邊緣變得模糊且難以辨認(rèn),因此要對(duì)圖片銳化,這樣會(huì)突顯圖片中的文字,有利于實(shí)現(xiàn)圖片中的文字與水印分離。
?  在這里不用一般的銳化方法,因?yàn)橐话愕匿J化方法只是對(duì)邊緣進(jìn)行增強(qiáng),而USM銳化則不一樣。USM銳化前和USM銳化后的圖分別為圖3和圖4。

?  從圖3和圖4的對(duì)比中,可以清楚地看到,USM銳化不單可以把文字一邊的邊緣增強(qiáng),同時(shí)它還把文字邊緣的另外一邊明顯地減弱。通過(guò)這種方法,文字就會(huì)被突顯出來(lái),而文字附近的圖像就會(huì)被減弱,從而減少半透明水印的面積。并且文字的邊緣還會(huì)出現(xiàn)白邊(其實(shí)是由于邊緣減弱造成的部份),這就為下一步二值化埋下了伏筆。
  USM銳化算法中的閾值是需要設(shè)定的,閾值過(guò)大,銳化就不能產(chǎn)生出效果;設(shè)定的閾值過(guò)小,那么就會(huì)同時(shí)把文字與水印的邊緣都增強(qiáng),什么都分不清楚了。由于閾值的設(shè)定至關(guān)重要,閾值是通過(guò)最大類(lèi)間方差法定下來(lái)的,方法如下:
  對(duì)于圖像I(x,y),前景(即目標(biāo))和背景的分割閾值記作T,屬于前景的像素點(diǎn)數(shù)占整幅圖像的比例記為w0,其平均灰度u0;背景像素點(diǎn)數(shù)占整幅圖像的比例為w1,其平均灰度為u1。圖像的總平均灰度記為u,類(lèi)間方差記為g。
  假設(shè)圖像的大小為M×N,圖像中像素的灰度值小于閾值T的像素個(gè)數(shù)記作N0,像素灰度大于閾值T的像素個(gè)數(shù)記作N1,則有:

  然后,在程序中使T值遍歷0到255,每次都算出方差值g,最后能使g最大的T值就是需要的閾值。但T值無(wú)需遍歷那么多次,因?yàn)槲淖忠话愣冀咏谏?,所以可以遍歷從1到90?;叶葓D片USM銳化后的效果如圖5所示。


1.3 二值化處理
??? 通過(guò)二值化處理就可以得到主要的文字的圖片了。而這一步最重要的地方是二值化處理時(shí)要選取的閾值,閾值決定了能否把圖片中的水印圖除掉。通過(guò)以下方法算出閾值:
??? (1)橫向掃描全圖,把兩邊為淺色、中間為深色的所有點(diǎn)(如圖6中F被橫框選中處)的灰度值累加(設(shè)總值為sum1),同時(shí)也累記點(diǎn)數(shù)(設(shè)總數(shù)為p1)。
??? (2)縱向掃描全圖,把上下兩邊為淺色、中間為深色的所有點(diǎn)(如圖6中F被縱框選中處)的灰度值累加(設(shè)總值為sum2),同時(shí)也累記點(diǎn)數(shù)(設(shè)總數(shù)為p2)。


??? (3)得出的二值化的閾值就為:(sum1+sum2)/(p1+p2)。
??? 簡(jiǎn)單來(lái)說(shuō),就是把被白邊圍上的黑點(diǎn)的灰度值進(jìn)行累加,它的和與黑點(diǎn)的數(shù)量相除,就得到了這些黑點(diǎn)的平均灰度值。這也正是在第二步用USM銳化的原因。用該閾值對(duì)圖片進(jìn)行二值化后的效果如圖7所示。

2 文字識(shí)別的后期處理
  經(jīng)過(guò)預(yù)處理后,就可以用很多現(xiàn)有的OCR文字識(shí)別算法把圖7中的文字提取出來(lái),這里就不再進(jìn)行闡述了。
??? 不難發(fā)現(xiàn),無(wú)論預(yù)處理做得有多好,識(shí)別算法技術(shù)有多高,都難免有出錯(cuò)的時(shí)候,因此要對(duì)識(shí)別的結(jié)果進(jìn)行拼寫(xiě)和語(yǔ)法的檢查和糾正,這里直接給出實(shí)現(xiàn)該功能的程序。眾所周知,微軟office中的word里有拼寫(xiě)和語(yǔ)法的檢查糾正功能,并且比較完善。
??? 使用VB.NET實(shí)現(xiàn)拼寫(xiě)和語(yǔ)法檢查糾正功能的過(guò)程如下:
??? (1)確定已安裝office 2003。VB中已建立windows窗體,窗體中有TextBox,它是存放OCR識(shí)別的結(jié)果,還有Button,Button中的事件就是拼寫(xiě)與語(yǔ)法檢查與糾正代碼。
??? (2)在VB中引用Word組件:在解決方案瀏覽器中的“引用”上右鍵->添加引用->標(biāo)簽頁(yè)中選“COM”->選中“Microsoft Word 9.0 Object Library”,單擊“確定”即可。
??? (3)在代碼的最前端添加三個(gè)語(yǔ)句:Imports Microsoft.Office.Core,Imports Microsoft.Office.Interop.Word和Imports System. Runtime. Interop Services,然后在Button的單擊事件中加如下代碼即可。
??? Dim objWord,objTempDoc As Object
    ′創(chuàng)建Word對(duì)象和臨時(shí)文檔
?? Dim iData As IDataObject
    ′聲明IDataObject存放從剪貼板返回的內(nèi)容
??? objWord=New Word.Application
??? objTempDoc=objWord.Documents.Add
    ′實(shí)例化Word對(duì)象
??? Clipboard.SetDataObject(TextBox1.Text)
    ′復(fù)制文本框中的識(shí)別結(jié)果到剪貼板
??? With objTempDoc
??? .Content.Paste()?   ′把剪貼板中的內(nèi)容粘貼到臨時(shí)文檔
??? .Activate()
??? .CheckSpelling()   ′拼寫(xiě)檢查
??? .CheckGrammar()?   ′語(yǔ)法檢查
??? .Content.Copy()
??? iData=Clipboard.GetDataObject()
??? TextBox1.Text=CType(iData.GetData(DataFormats.Text), String) ′利用剪貼板把修改后的內(nèi)容返回給文本框
??? .Close()
??? End With
??? objWord.Quit()
??? 本文中所講述的最大類(lèi)間方差定USM銳化閾值法、基于USM銳化后求黑點(diǎn)平均灰度值的圖像二值化處理法和對(duì)識(shí)別結(jié)果進(jìn)行檢查糾正,經(jīng)過(guò)多次實(shí)驗(yàn),針對(duì)帶水印圖片的文字識(shí)別率可高達(dá)98.64%。而前面兩種處理圖像的方法及它們的巧妙結(jié)合正是本文的亮點(diǎn),并且是原創(chuàng)的。但本算法的運(yùn)行速度并不理想,在以后的研究中希望有新的突破。


參考文獻(xiàn)
[1] 楊柳,牛秦洲.啤酒瓶凸性模號(hào)圖像預(yù)處理算法[J].電腦知識(shí)與技術(shù),2007(11):1089-1091.
[2] 王勇智.數(shù)字圖象的二值化處理技術(shù)探究[J].湖南理工學(xué)院學(xué)報(bào)(自然科學(xué)版),2005(1).
[3] 呂學(xué)強(qiáng),遲呈英.英文光學(xué)字符識(shí)別的后處理[J].鞍山鋼鐵學(xué)院學(xué)報(bào),2002(25):192-196.

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。