視頻圖像中文本的檢測、定位與提取
在視頻中,文本信息(如新聞標(biāo)題、節(jié)目內(nèi)容、旁白、工作人員名單等)均包含了豐富的高層語義信息,可用于對相應(yīng)視頻流所表達(dá)的事件、情節(jié)以及情感等進(jìn)行高級(jí)語義標(biāo)注。如果這些文本能自動(dòng)地被檢測、分割、識(shí)別出來,則對視頻高層語義的自動(dòng)理解、索引和檢索是非常有價(jià)值的。視頻中的文本分為人工文本和場景文本。目前的研究主要集中于人工文本,而場景文本的研究才剛剛起步。正是由于文本的種類、形狀的多樣差異性,目前文本提取算法還沒有一個(gè)通用的評價(jià)準(zhǔn)則和標(biāo)準(zhǔn)數(shù)據(jù)庫。
文中針對水平和豎直排列的靜止及滾動(dòng)文本,提出利用小波多尺度局部模極大值邊緣檢測算法來檢測文本圖像邊緣,利用形態(tài)學(xué)處理生成候選文本區(qū)域,用由粗到精的多次水平、豎直投影來定位精確的文本位置。然后,對于文本子圖用局部Otsu方法和區(qū)域填充處理進(jìn)行文字二值化提取。
1 小波模極大值算法提取視頻圖像的文字邊緣
1.1 二維小波變換模極大值原理
設(shè)θ(x,y)是一個(gè)二維平滑函數(shù),引入尺度因
模M2jf(x,y)取極大值的點(diǎn)(x,y)對應(yīng)于f*θs(x,y)的突變點(diǎn)或尖銳陡峭變化的位置,從而對應(yīng)于圖像f(x,y)的邊緣。梯度grad(f*θs)(x,y)在點(diǎn)(x,y)處的方向表示在圖像平面(x,y)上f(x,y)的方向?qū)?shù)的絕對值取極大值的方向。即計(jì)算一個(gè)光滑函數(shù)的導(dǎo)數(shù)沿梯度方向的模極大值等價(jià)于計(jì)算其小波變換的模極大值。
1.2 文本圖像的邊緣提取
在圖像中,文本字符具有特殊的線條結(jié)構(gòu)和紋理特點(diǎn),其灰度(顏色)與背景相差較大,邊緣變化劇烈,呈現(xiàn)出明顯的橫向、豎向、斜向邊緣特征,中、高頻信息較強(qiáng)。在小波圖像中表現(xiàn)為相應(yīng)區(qū)域高頻細(xì)節(jié)子圖的系數(shù)較大;橫向線條、豎向線條和斜向線條分別在LH,HL以及HH子圖相應(yīng)位置表現(xiàn)為較大的小波系數(shù)。
根據(jù)上述原理,在實(shí)際計(jì)算時(shí),采用3次B樣條小波,對輸入灰度文中圖像進(jìn)行保持圖像大小不變的二維小波變換,得到W12jf(x,y)和W22jf(x,y)。改變j的值得到在不同尺度下圖像的小波變換,文中選取小波分解最大尺度為J=3,其中1≤J≤J。由式(2)、式(3)計(jì)算每一點(diǎn)的模值和幅角,找出模圖像在梯度方向上的極大值。設(shè)置閾值T>0,保留大于T的像素的模值。最后連接邊界點(diǎn),形成邊緣。
圖1(a)為使用小波模極大值算法提取的視頻圖像中的文字邊緣,圖1(b)、(c)、(d)分別為使用Canny算子、LOG算子和Sobel算子的結(jié)果。由圖1可知,文中方法比傳統(tǒng)邊緣檢測方法,能在檢測出文本邊緣的同時(shí)很好的抑制背景邊緣。
2 文本定位
由于有的圖像背景過于復(fù)雜,在上階段處理得到的邊緣圖中仍存在一定數(shù)量的背景邊緣噪聲,將其通過局部閾值處理來濾除;在采用形態(tài)學(xué)處理生成候選文本區(qū)域后,用基于局部區(qū)域直方圖和閾值的定位方法對水平和豎直文本進(jìn)行定位;為適應(yīng)不同尺度文本,采用兩層金字塔模型分別定位并合成結(jié)果。
2.1 背景噪聲濾除
受文獻(xiàn)的啟發(fā),用兩個(gè)同心窗對當(dāng)前待處理的二值邊緣圖像EMP進(jìn)行掃描。在實(shí)驗(yàn)中,選擇經(jīng)驗(yàn)值,外窗高為3h=30,內(nèi)窗高為h=10,以h為步長進(jìn)行掃描。根據(jù)外窗中的邊緣密度直方圖來決定對內(nèi)窗處理時(shí)的閾值。同心窗的結(jié)構(gòu)及外窗內(nèi)的邊緣水平投影,如圖2所示,Pi(i=1,…,3h)是第i行的邊緣像素?cái)?shù)目。內(nèi)窗內(nèi)的局部閾值Tkernel就可以按照下面的公式計(jì)算
其中,Smax是最高邊緣強(qiáng)度(O或255)。由式(4)可見,如果外窗內(nèi)的邊緣像素的數(shù)量非常少,密度小于某個(gè)閾值ξ,那么內(nèi)窗內(nèi)就很可能是背景噪聲,則將內(nèi)窗內(nèi)的閾值設(shè)置為Smax;否則,內(nèi)窗內(nèi)很可能是一個(gè)文本區(qū)域,將內(nèi)窗內(nèi)的閾值設(shè)置為Tmiddle,Tmiddle可以是0~255中任意一個(gè)數(shù)字。則在當(dāng)前掃描窗口,內(nèi)窗內(nèi)大于閾值的邊緣像素被標(biāo)記為文本;否則,將其值設(shè)置為0,即小于閾值的邊緣像素被覆蓋掉。
2.2 基于形態(tài)學(xué)的候選文本區(qū)域生成
形態(tài)學(xué)可將圖像信號(hào)與其幾何形狀聯(lián)系起來,用具有一定形態(tài)的結(jié)構(gòu)元素去量度和提取圖像中的對應(yīng)形狀以達(dá)到對圖像分析和識(shí)別的目的。所以文中采用形態(tài)學(xué)處理來形成候選文本區(qū)域。形態(tài)學(xué)最基本的概念是腐蝕和膨脹,以及由它們組合而成的各種形態(tài)操作算子。
設(shè)Ω為二維歐幾里德空間,圖像A是Ω的一個(gè)子集,結(jié)構(gòu)元素B也是Ω的一個(gè)子集,b∈Ω是歐氏空間的一個(gè)點(diǎn),定義4個(gè)基本運(yùn)算:
其中,膨脹具有擴(kuò)大目標(biāo)區(qū)域的作用,腐蝕具有收縮目標(biāo)區(qū)域的作用,開運(yùn)算可刪除目標(biāo)區(qū)域中的小分支,閉運(yùn)算可填補(bǔ)目標(biāo)區(qū)域中的空洞。
基于以上4個(gè)運(yùn)算,文中的形態(tài)處理流程為:選取3×3的矩型結(jié)構(gòu)元素進(jìn)行膨脹,然后用2×2的矩型結(jié)構(gòu)元素進(jìn)行腐蝕,再用長為7,角度為0°的線型結(jié)構(gòu)元素進(jìn)行閉運(yùn)算處理??紤]到豎直文本的情況,再用長為4,角度為90°的線型結(jié)構(gòu)元素進(jìn)行閉運(yùn)算處理。實(shí)驗(yàn)發(fā)現(xiàn),結(jié)構(gòu)元素的尺寸太大,會(huì)導(dǎo)致無效的膨脹重疊現(xiàn)象,增大計(jì)算量;而結(jié)構(gòu)元素尺寸過小將不能有效形成文本塊區(qū)域。所以結(jié)構(gòu)元素B的選擇對于候選文本區(qū)域形成與文本區(qū)域提取至關(guān)重要。實(shí)驗(yàn)證明,文中所采用的結(jié)構(gòu)元素很好地形成了候選文本區(qū)域。
2.3 基于兩層金字塔和局部區(qū)域直方圖的文本定位
對于生成候選文本區(qū)域的邊緣圖,在原圖和分辨率降低一半的圖像這兩個(gè)尺度的金字塔級(jí)別上分別采用由粗到精的多次水平、豎直投影,并合成結(jié)果,來確定文本塊的具體行列。對水平文本定位先水平投影后豎直投影,對豎直文本定位則交換投影順序。
定義一種局部區(qū)域的直方圖(Local Region histogram,即LRH)如下:
給定一幅圖像f(x,y),對于其中由若干連續(xù)的行或列(行數(shù)或列數(shù)為L)所構(gòu)成的任意子圖像,可分別按行或列生成局部區(qū)域直方圖LRH。LRH函數(shù)可定義為
其中,k為子圖像的像素行(列)號(hào),N表示一行(列)中的像素總數(shù),Nk則是經(jīng)過處理的邊緣圖中的高亮像素?cái)?shù),即是代表文本所在位置的那些白色像素?cái)?shù)。圖3給出了一幅處理后的邊緣圖像所生成的LRH圖。
由圖3可見,文本區(qū)域在LRH圖中形成具有一定寬度的高函數(shù)值連續(xù)區(qū)域。利用閾值法來檢測行/列邊界,由于閾值T取值過小會(huì)造成不能分割出單獨(dú)的行/列,過大則會(huì)遺漏行/列。為了能自動(dòng)適應(yīng)不同的圖像,將閾值T定義為T=c*Mean(LRH)。c為一個(gè)微調(diào)系數(shù),可根據(jù)不同的視頻源的統(tǒng)計(jì)特性進(jìn)行調(diào)整。針對文中選取的視頻片段,在進(jìn)行了大量實(shí)驗(yàn)對比后,選取了實(shí)驗(yàn)效果較好的經(jīng)驗(yàn)值,對于水平的LRH圖,選擇c為1.O;對于豎直的LRH圖,選擇c為0.5。
最后,對標(biāo)出的矩形框,根據(jù)文本的尺寸比例,制定簡單的約束條件來去除非文本區(qū)。
3 文本二值化提取
為適應(yīng)OCR軟件識(shí)別,需將文本子圖轉(zhuǎn)換成二值化圖像。在進(jìn)行二值化前,采用雙三次插值法將所有水平文本區(qū)域高度歸一化成60像素,而寬度則根據(jù)原區(qū)域的比例進(jìn)行相應(yīng)的放大或縮小(對于豎直排列的文字塊則放縮到60像素寬,高度隨比例放縮)。為了增強(qiáng)文本子圖中字符與背景的對比度,對插值后的圖像進(jìn)行灰度拉伸,自動(dòng)搜索直方圖上非0最小值a和最大值b,把[a,b]拉伸到[0,255]的整個(gè)區(qū)間。采用文獻(xiàn)中的方法對文字極性進(jìn)行判斷,并將其統(tǒng)一為“白底黑字”的形式。
Otsu算法是一種最大類間方差法,能夠自動(dòng)選取閾值,來分割圖像成兩部分。對于以上處理得到的圖像,二值化過程采用文獻(xiàn)中的基于滑動(dòng)窗口的局部自適應(yīng)Otsu方法和向內(nèi)填充的區(qū)域生長方法,并對區(qū)域生長方法的文本標(biāo)記做了改進(jìn)。根據(jù)文本字符的筆劃特點(diǎn),對文本點(diǎn)定義水平、豎直、右對角和左對角4個(gè)方向連通長度,對文本進(jìn)行標(biāo)記保護(hù)。將文本像素標(biāo)記點(diǎn)定義為
MIN_W,MAX_W和MAX_L定義了連通最長數(shù)目的范圍。經(jīng)過此步驟,再對背景進(jìn)行填充,并將連通區(qū)域面積過小的噪聲點(diǎn)去除。最后送入漢王OCR5.0增強(qiáng)版軟件進(jìn)行識(shí)別。圖4給出了二值化過程。
4 實(shí)驗(yàn)及分析
為了驗(yàn)證文中檢測定位算法的性能,人工挑選了150幀背景非常復(fù)雜的視頻圖像進(jìn)行了測試。其中有中文也有英文,有靜止也有線性滾動(dòng),有單行也有多行文本,字體多樣,尺寸有大有小。在實(shí)驗(yàn)之前已經(jīng)手工統(tǒng)計(jì)了這150幀圖像中所包含的文本塊總數(shù),實(shí)驗(yàn)結(jié)果,如表l所示。
其中,誤檢的原因主要是復(fù)雜背景下存在與文本相似性很高的區(qū)域,而漏檢的原因是由于該文本區(qū)域與周圍背景對比度太低,幾乎完全溶入到背景中或單獨(dú)出現(xiàn)的字符在一系列處理中不滿足文本塊的尺寸限定而被當(dāng)作背景噪聲濾除掉。采用軟件漢王OCR5.0增強(qiáng)版對二值化后的文本字符的最終識(shí)別率為88.7%。
5 結(jié)束語
提出采用小波多尺度局部模極大值邊緣檢測方法來對文本圖像進(jìn)行邊緣檢測。對于檢測到的文本邊緣圖,先用局部閾值處理來濾除背景噪聲,采用形態(tài)學(xué)處理生成候選文本區(qū)域。使用由粗到精的遞歸投影和基于局部區(qū)域直方圖的定位算法,利用兩層金字塔模型以檢測出大小不一的文本來降低漏檢率,并用相應(yīng)的準(zhǔn)則來消除虛假的文本區(qū)域。文本提取方面,采用雙三次插值來統(tǒng)一各文本的高度/寬度,用灰度拉伸的方法來增強(qiáng)文本圖像的分辨率。然后用改進(jìn)的Otsu方法和種子填充方法進(jìn)行二值化,去除連通面積過小的噪聲點(diǎn),最后送入OCR軟件進(jìn)行識(shí)別。實(shí)驗(yàn)結(jié)果證明本文算法對于提取視頻圖像文本的有效性。