吳 進(jìn)
(西安郵電學(xué)院 電子信息工程系,陜西 西安 710121)
目前,圖像和視頻數(shù)據(jù)已經(jīng)廣泛應(yīng)用于教育、娛樂以及多媒體領(lǐng)域。隨著視頻技術(shù)的發(fā)展,越來越多的影視節(jié)目被制作成VCD和DVD,從影視字幕中獲取相應(yīng)的文本,可為影視節(jié)目的內(nèi)容檢索提供一種重要的手段。在對視頻流進(jìn)行標(biāo)注和索引的研究領(lǐng)域中,基于內(nèi)容的視頻檢索技術(shù)是通過提取顏色、紋理、形狀和運(yùn)動等視覺特征來表征視頻所蘊(yùn)含的語義,達(dá)到檢索目的。目前已有視頻場景分割、字幕提取等多個方向,相對于其他方向而言,字幕提取是這一領(lǐng)域中研究較多,發(fā)展也比較成熟的一個方向。視頻流所包含的字幕表達(dá)了豐富語義,可以在原始視頻流的分析理解過程中發(fā)揮重要的作用。無組織的視頻檢索所采用的特征基本上是低級視覺的特征,而且往往要人工加入關(guān)鍵詞和描述信息,以便于組織信息,這就增加了工作量,同時也引入了人為的主觀因素,不利于檢索。因此,通過對字幕信息的提取、識別和分析,再結(jié)合已有的檢索技術(shù),就有可能在一定程度上達(dá)到概念級的基于內(nèi)容的檢索。本文所研究的算法是對圖像中的字符進(jìn)行初步提取,為后續(xù)的工作如確認(rèn)、識別等作準(zhǔn)備工作。最終為達(dá)到實(shí)現(xiàn)視頻內(nèi)容檢索這一目的服務(wù)。
德國Mannheim大學(xué)提出了基于分裂/合并算法實(shí)驗(yàn),對視頻幀中的文字進(jìn)行分割[1]。該實(shí)驗(yàn)首先將原始視頻幀灰度化,然后采用分裂/合并算法對灰度圖像進(jìn)行分割處理。該算法主要是針對西歐語言,若用該方法對復(fù)雜背景之上的漢字進(jìn)行分割實(shí)驗(yàn),分割效果并不理想。
美國Massachusetts大學(xué)采用紋理分割算法對復(fù)雜背景之上的文字分割進(jìn)行了研究。該方法的主要原理是利用文字與背景的不同紋理表現(xiàn)將文字區(qū)域從背景中分離出來。然而,紋理分割的復(fù)雜度和計(jì)算量都比較大,文字區(qū)域劃定部分也設(shè)計(jì)得相當(dāng)復(fù)雜,因此在檢測和提取的效率上可能會存在問題[2]。
針對上述兩種算法存在的問題,提出了區(qū)域檢測算法對其進(jìn)行改進(jìn),從而避免了漢字筆畫丟失的現(xiàn)象,而且算法的復(fù)雜度和計(jì)算量都不大,因而大大提高了程序的運(yùn)行速度。該算法的主要依據(jù)是基于閾值的二值化算法,然后去除大塊非文字背景區(qū)域和小塊噪聲,最后確定出文字塊。在對圖像進(jìn)行二值化時,采用灰度最大值自適應(yīng),從而適應(yīng)了不同圖像的特性,其流程如圖1所示。

在一般情況下,對文字圖像預(yù)處理首先是二值化,由于二值化過程會丟失許多視頻文字與文字模板的相似性信息,這種判斷對低質(zhì)量的視頻圖像來說,其閾值不穩(wěn)定,而對環(huán)境和場景的變化卻極為敏感。因此,首先將24位彩色視頻圖像進(jìn)行色空間的轉(zhuǎn)換,其目的是保留足夠的信息,以便進(jìn)一步預(yù)處理和識別。
RGB色彩系統(tǒng)[3]是最常用的顏色系統(tǒng),另外一些常見的色彩系統(tǒng)還有CMY色彩系統(tǒng)、YIQ色彩系統(tǒng)、YUV色彩系統(tǒng)、YCbCr色彩系統(tǒng)等。YIQ色彩系統(tǒng)屬于NTSC系統(tǒng),這里的Y不是指黃色,而是指色彩的明視度(Luminance),即亮度(Brightness)。其實(shí)Y就是圖像的亮度值,而I和Q則是指色調(diào)(Chrominance),即描述圖像色彩及飽和度的屬性。RGB與YIQ之間的對應(yīng)關(guān)系如下

本文中對圖像進(jìn)行轉(zhuǎn)換采用的是式(1)表示的方法,采用這種方法提取亮度信息主要是因?yàn)镽GB色空間中色度和亮度是不可分的,而本文檢測字幕的幾個算法都是基于亮度信息進(jìn)行的,所以首先灰度化或進(jìn)行色空間轉(zhuǎn)換僅提取亮度信息就可以將亮度和色度分離,從而可以僅對亮度分量進(jìn)行相應(yīng)的算法研究。筆者所選用的YIQ將色度和亮度進(jìn)行了分離,Y單指亮度,以后的處理都是針對它進(jìn)行的。
將圖像由RGB空間轉(zhuǎn)換到Y(jié)IQ空間,利用式(1),有

轉(zhuǎn)換時先定義3個變量(R,G,B),分別代表原圖像的RGB值,程序段為:

上述程序段中:RGBQUAD是位圖格式中的調(diào)色板結(jié)構(gòu)體;rgbRed,rgbGreen,rgbBlue是圖像的紅色、綠色和藍(lán)色分量;prgb是指向原圖像數(shù)據(jù)的指針。
然后再定義一個指針變量pgray,按照式(3)處理后,結(jié)果送入pgray。在計(jì)算灰度值時,要取255和式(3)計(jì)算所得值的較小值,因?yàn)檫x取參數(shù)時進(jìn)行了近似,可能會有大于最大值255的數(shù)據(jù)出現(xiàn)。這些都是編程時需注意的細(xì)節(jié)問題[4]。
由MV圖像的特性可知,背景與字幕一般會有較大的亮度差別,對整幅圖進(jìn)行二值化處理可以濾掉部分背景。
在基于閾值的灰度圖像分割算法中,確定閾值T是關(guān)鍵。最常用的模型為:假設(shè)圖像由具有單峰灰度分布的目標(biāo)和背景組成,且目標(biāo)和背景像素在灰度值上有較大差異。對這類圖像,其灰度直方圖基本可看作是由分別對應(yīng)目標(biāo)和背景的兩個單峰直方圖混合而成,可把雙峰間的谷點(diǎn)作為閾值T,對圖像作以下二值化處理:
1)對圖像的灰度進(jìn)行統(tǒng)計(jì),找出灰度的最大值GrayMax。
2)將圖像二值化。此時已經(jīng)得到了灰度的最大值,將閾值T定為GrayMax與一個固定數(shù)值thre的差值。將thre作為參數(shù)值由外部傳入函數(shù)。thre是針對進(jìn)行區(qū)域檢測的圖像的特點(diǎn)經(jīng)過多次試驗(yàn)確定的[5]。
大部分圖像的背景中可能都包含一些亮度與字幕相差不多的區(qū)域,二值化不能將它完全去除,因此需檢測大塊非文字區(qū)域并將其去掉。因?yàn)閳D像中的字幕一般都能確定大小,對大量MTV中的字幕進(jìn)行分析后得到:每個字的寬度大約是圖像整個寬度的1/16。在二值化時假定將字幕置為白色,去掉的背景置為黑色。對此作如下處理:
1)定義一個標(biāo)志量Flag;
2)開始按行遍歷圖像的每個像素,如果為白色,標(biāo)志量加1;
3)一旦顏色變?yōu)楹谏⒓礄z測前面白色區(qū)域的寬度,如果大于確定的閾值,則認(rèn)為它不是字符,將其置為黑色,即濾掉;
4)指針再指回原來的位置,繼續(xù)檢測后面的像素;
5)小于閾值則不做任何改動,指針繼續(xù)后移檢測。
按以上步驟處理結(jié)束后,圖像每行中水平方向上大于一個字符的區(qū)域都被去掉,剩余噪聲和字符,進(jìn)行以下的去噪聲工作。
上一個算法除去了大塊非文字區(qū)域,但背景中還有一些小塊噪聲影響著處理結(jié)果。因此有必要再實(shí)現(xiàn)一個去噪聲算法。由于漢字筆劃的不連通性,一些點(diǎn)、劃也是非常小塊的區(qū)域,如“小”、“漢”等。如果按照上面的思想,肯定會丟失一些筆劃。字幕一般都集中在行里,所以字幕所處的區(qū)域每行都會有一定數(shù)量的白色像素。而噪聲的分布是隨機(jī)的,特別是在已經(jīng)進(jìn)行了區(qū)域劃定之后,所剩余噪聲的范圍更小。本文采用另一種思想:對每一行中白色像素的總數(shù)進(jìn)行統(tǒng)計(jì),如果小于某個確定閾值,就認(rèn)為這些是噪聲影響形成的,將其去除;反之保留[6]。步驟如下:
1)定義一個標(biāo)志量Flag1;
2)開始按行遍歷圖像的每個像素,如果為白色,標(biāo)志量加1;
3)檢測完一行之后,檢測標(biāo)志量的值,如果大于給定閾值,則認(rèn)為是字符存在的行,不做改動,繼續(xù)檢測;
4)如果小于閾值,則認(rèn)為這一行中的白色像素是噪聲,指針遞減,將其全部置為黑色;
5)指針復(fù)位,繼續(xù)檢測。
上述處理可以將大部分隨機(jī)小噪聲濾除。
最后顯示處理結(jié)果,通過調(diào)用函數(shù)SetDIBitsToDevice即可實(shí)現(xiàn)。
為了更好地驗(yàn)證區(qū)域檢測的結(jié)果,將中間處理的過程一一顯示出來,見圖2~圖5。


由圖3可以看出,二值化后還留有部分非文字的區(qū)域,有較大塊的,也有小塊的。進(jìn)行區(qū)域劃定后(見圖4),水平方向上較長的部分被劃去,但是小于一個字符跨度的被保留下來了。此時這些保留下來的小塊連同原來的小塊都可被視為噪聲,進(jìn)行去噪聲后只有文字被保留下來(見圖5)。統(tǒng)計(jì)表明,大部分MTV圖像字幕亮度比大部分背景要高,用這種方法取得了良好的效果。

圖4 區(qū)域劃定后的圖像

圖5 最終處理結(jié)果
區(qū)域檢測對字幕行外的噪聲濾除得非常徹底,字幕保留得也比較完整。但是對字幕造成了輕微劃傷,和字幕同行的噪聲也無法去除。這是進(jìn)行區(qū)域檢測不可避免的問題。進(jìn)行字符檢測的最終目的是將其識別出來,從這個角度上講,區(qū)域檢測法是有效的。
[1]何斌,馬天予,王運(yùn)堅(jiān),等.Visual C++數(shù)字圖像處理[M].北京:人民郵電出版社,2009.
[2]張偉男,唐倫,陳前斌.基于3G傳輸?shù)囊曨l監(jiān)控系統(tǒng)的后臺設(shè)計(jì)[J].電視技術(shù),2008,32(11):85-88.
[3]萬罡,周洞汝,崔永毅,等.數(shù)字視頻中文字分割算法的研究[J].計(jì)算機(jī)工程與應(yīng)用,2010(2):103-105.
[4]周長發(fā).精通Visual C++圖像編程[M].北京:電子工業(yè)出版社,2008.
[5]況超,楊波,石廣建.多媒體圖像后處理系統(tǒng)設(shè)計(jì)[J].電視技術(shù),2009,33(2):72-75.
[6]李芳,吳斌,張紅英.基于快速8-連通域標(biāo)記的視頻字幕提取新算法[J].電視技術(shù),2009,33(2):69-71.