季麗琴
(蘇州健雄職業(yè)技術(shù)學(xué)院 電氣工程學(xué)院,江蘇 太倉 215411)
隨著計(jì)算機(jī)科學(xué)的飛速發(fā)展,海量的視頻出現(xiàn)在數(shù)字圖書館、電視廣播和互聯(lián)網(wǎng)上。在這些視頻中,大多數(shù)都嵌入了一些解說性的、含有豐富語義信息的文字,例如:說話者姓名、電視節(jié)目介紹、節(jié)目名稱、滾動文字新聞、實(shí)時(shí)比分、運(yùn)動員號碼、時(shí)間等信息[1-3]。如果能將這些文字自動提取出來,將對視頻的索引起到關(guān)鍵的作用,有利于用戶迅速準(zhǔn)確地從海量視頻中找到自己感興趣的內(nèi)容[4],在信息化的時(shí)代背景下,視頻字幕自動定位與提取的應(yīng)用價(jià)值越來越高。本系統(tǒng)的開發(fā)是基于Windows環(huán)境下的MFC平臺,利用Visual C++[5-7]面向?qū)ο蟮木幊陶Z言而完成的。實(shí)驗(yàn)結(jié)果表明,該系統(tǒng)具有文字提取較精準(zhǔn)、運(yùn)行穩(wěn)定等優(yōu)點(diǎn)。
該系統(tǒng)實(shí)現(xiàn)的基本目標(biāo)是基于Visual C++6.0開發(fā)環(huán)境,對一個(gè)含有字幕信息的24位真彩色的JPEG文件,通過文字提取算法的處理來實(shí)現(xiàn)視頻圖像中字幕的自動定位與提取。
在文字提取方面,國內(nèi)外學(xué)者都做了一定的研究,大致可以分為基于邊緣、基于紋理和基于連通區(qū)域三類方法。KEECHUL J等人[8]提出一種綜合運(yùn)用紋理和連通組元分析的方法來定位文字,組建基于多層感知器(MLP)的紋理分類器和基于連通分量(CC)的濾波器,整個(gè)算法復(fù)雜,且需要足夠的訓(xùn)練樣本。KIM K I等[9]人提出用支持向量機(jī)(SVM)的紋理分類器來檢測視頻中的文字,該方法的檢測結(jié)果雖然較好,但是計(jì)算量大。ADRIAN C R等人[10]提出基于顏色聚類的方法進(jìn)行文字定位,其主要針對手機(jī)上的視頻圖像有一定的局限性。本文在分析以上文字提取算法的基礎(chǔ)上,提出一個(gè)新的、有效的文字提取算法,即利用垂直、水平、對角3個(gè)方向的邊緣檢測算子檢測出3個(gè)方向的文字邊緣信息;在此基礎(chǔ)上,利用形態(tài)學(xué)對3個(gè)方向的邊緣圖像進(jìn)行處理,最終,將3個(gè)方向的圖像進(jìn)行與融合,消除大量的噪聲,從而定位并提取出字幕區(qū)域。實(shí)驗(yàn)驗(yàn)證,該算法能較好地提取出視頻中的字幕信息。
該系統(tǒng)采用MFC單文檔單視圖的結(jié)構(gòu)設(shè)計(jì),通過文件→打開的方式讀取圖像文件,并判斷文件是否滿足處理要求(24位真彩色的JPEG文件)。該系統(tǒng)的處理流程如圖1所示。該工程的工程名為“ViewDIB”,圖像文件打開與數(shù)據(jù)讀取在類CViewDIBDoc中的CViewDIBDoc::OnOpenDocument(LPCTSTR lpszPathName)函數(shù)中實(shí)現(xiàn),而圖像的顯示及對各種處理算法菜單命令的響應(yīng)在類CViewDIBView中實(shí)現(xiàn)。系統(tǒng)的主界面如圖2所示。
圖1 系統(tǒng)的處理流程圖
圖2 系統(tǒng)界面圖
圖3 3個(gè)方向的彩色邊緣檢測算子
在編寫程序時(shí),在視類CViewDIBView中建立3個(gè)消息響應(yīng)函數(shù)OnVertedge()、OnHorzedge()和OnVerthorzedge(),分別提取垂直、水平和對角方向的邊緣信息。以垂直方向?yàn)槔?,其函?shù)具體實(shí)現(xiàn)代碼如下:
完成代碼的編寫、編譯和鏈接后,即可在調(diào)試出的系統(tǒng)界面中的工具欄中點(diǎn)擊“VE”、“HE”、“DE”輕松獲取3個(gè)方向的邊緣圖像。圖4給出了3個(gè)方向的邊緣檢測結(jié)果。
圖4 3個(gè)方向的邊緣圖像
數(shù)學(xué)形態(tài)學(xué)的基本運(yùn)算有4個(gè):膨脹、腐蝕、開啟和閉合[11-12]。本文利用這4個(gè)運(yùn)算設(shè)計(jì)了一個(gè)針對3個(gè)方向邊緣圖像的形態(tài)學(xué)處理方案,每個(gè)方向的邊緣圖像都經(jīng)過下面的處理,具體實(shí)施如下:(1)利用一次閉合運(yùn)算,填補(bǔ)字幕區(qū)域內(nèi)的空洞;(2)利用一次開啟運(yùn)算,刪除字幕區(qū)域以外的噪聲;(3)利用6次水平方向的膨脹與3次水平方向的腐蝕擴(kuò)大和縮小字幕區(qū)域,此處采用水平方向的結(jié)構(gòu)元素B={1,1,1,1,1}。實(shí)驗(yàn)證明此結(jié)構(gòu)大小適中,且能有效地形成文字連通域,如圖5所示。
在編程時(shí),視類CViewDIBView中建立OnCloseOperate()、OnOpenOperate()、OnHDilation()、OnHErosion()4個(gè)消息響應(yīng)函數(shù),它們分別代表閉合、開啟、水平膨脹、水平腐蝕運(yùn)算。在系統(tǒng)界面中,只需在工具欄中點(diǎn)擊與上面4個(gè)函數(shù)對應(yīng)的圖標(biāo)“C”、“O”、“HD”、“HE”即可完成以上4個(gè)運(yùn)算。其中閉合運(yùn)算“C”的代碼實(shí)現(xiàn)如下:
圖5 三個(gè)方向的連通域圖
為了較精準(zhǔn)地判斷出字幕區(qū)域,在得到了垂直、水平、對角3個(gè)方向的文字連通域圖TV(x,y)、TH(x,y)、TD(x,y)后,本系統(tǒng)采用“與”融合的方法,將3個(gè)方向的文字連通域圖進(jìn)行相與運(yùn)算。
MFC編程實(shí)現(xiàn)時(shí),在系統(tǒng)界面中添加“AND”圖標(biāo),同時(shí)在視類CViewDIBView中建立起與之對應(yīng)的消息響應(yīng)函數(shù)OnTextVerify(),其程序代碼實(shí)現(xiàn)如下:
實(shí)驗(yàn)證明,采用與融合方法能去除很大部分的噪聲區(qū)域,能較準(zhǔn)確地定位出字幕區(qū)域TI(x,y)。但也發(fā)現(xiàn)在TI(x,y)中仍存在小部分的偽字幕區(qū)域,因此,本文運(yùn)用遞歸算法[13]統(tǒng)計(jì)出各候選文字區(qū)域的白色像素總數(shù)PixelNum,若PixelNum<areapixel(areapixel為圖像高度×圖像寬度/150),則偽字幕區(qū)域就被刪除。實(shí)驗(yàn)證明,此方法簡單且能有效地判斷出字幕區(qū)域,圖6給出了與融合的處理結(jié)果。
圖6 與融合的結(jié)果
在去除了偽字幕區(qū)域后,本文采用以下算法完成字幕區(qū)域的坐標(biāo)定位。
(1)判斷像素點(diǎn)(x,y)是否為白色,若不是,則算法結(jié)束;
(2)若像素點(diǎn)(x,y)是白色,則掃描(x,y)的4個(gè)鄰域,若4個(gè)鄰域內(nèi)無白色像素,則算法結(jié)束,并返回文字區(qū)域的左上角和右下角坐標(biāo)值;
(3)若(x,y)的4個(gè)鄰域仍存在白色像素點(diǎn),則調(diào)整文字區(qū)域的左上角和右下角坐標(biāo),并繼續(xù)判斷其他像素點(diǎn)及其鄰域是否為白色像素點(diǎn),最終返回一個(gè)確定的左上角和右下角坐標(biāo)值。
在編寫程序時(shí),在系統(tǒng)界面的工具欄中建立“L”和“EX”圖標(biāo),分別代表字幕區(qū)域的坐標(biāo)定位(Location)與提?。‥xtraction),同時(shí),在視類CViewDIBView中創(chuàng)建與兩個(gè)圖標(biāo)對應(yīng)的消息響應(yīng)函數(shù)OnTextLocate()和OnTextExtract()來完成字幕區(qū)域的坐標(biāo)定位與提取,其結(jié)果如圖7所示。
圖7 字幕區(qū)域的坐標(biāo)定位與提取
本系統(tǒng)基于字幕的邊緣特征信息,利用了垂直、水平、對角方向的邊緣檢測算子獲取字幕的邊緣信息,在此基礎(chǔ)上,結(jié)合數(shù)學(xué)形態(tài)學(xué)的處理,得到3個(gè)方向的字幕連通域圖,最后將這3個(gè)不同方向的連通域圖進(jìn)行邏輯與融合,定位并提取出最終的字幕區(qū)域。實(shí)驗(yàn)結(jié)果表明,基于Visual C++6.0環(huán)境下并結(jié)合文字提取算法實(shí)現(xiàn)的字幕自動提取系統(tǒng)具有字幕定位準(zhǔn)、運(yùn)行速度快且穩(wěn)定等特點(diǎn)。
提取出字幕信息后,本系統(tǒng)下一步的研究方向?yàn)椋海?)對字幕信息進(jìn)行二值化等處理,并將其送入OCR系統(tǒng)進(jìn)行識別;(2)基于Visual C++6.0開發(fā)環(huán)境,結(jié)合開源發(fā)行的跨平臺計(jì)算機(jī)視覺庫OpenCV,進(jìn)一步優(yōu)化和完善本系統(tǒng)。
[1]張洋.電視視頻字幕文字的提取方法研究[D].合肥:中國科學(xué)技術(shù)大學(xué),2009.
[2]陳義,李言俊,孫小煒.利用OCR識別技術(shù)實(shí)現(xiàn)視頻中文字的提取[J].計(jì)算機(jī)工程與應(yīng)用,2010,46(10):180-183.
[3]姜曉希,馮靖怡,馮結(jié)青.視頻內(nèi)容敏感的動態(tài)字幕[M].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào),2011,23(5):855-862.
[4]章毓晉.基于內(nèi)容的視覺信息檢索[M].北京:科學(xué)出版社,2003.
[5]王占全,徐惠.Visual C++數(shù)字圖像處理技術(shù)與工程案例[M].北京:人民郵電出版社,2009.
[6]張宏林.精通Visual C++數(shù)字圖像處理典型算法及實(shí)現(xiàn)(第2版)[M].北京:人民郵電出版社,2008.
[7]俞朝暉,龐也馳,于濤.Visual C++數(shù)字圖像處理與工程應(yīng)用實(shí)踐[M].北京:中國鐵道出版社,2012.
[8]KEECHUL J,HAN J H.Hybrid approach to efficient text extraction in complex color images[J].Pattern Recognition Letters,2004(25):679-699.
[9]KIM K I,JUNG K C,RARK S H,et al.Support vector machines for texture classification[C].IEEE Transactions on Image Processing,2002,24:1542-1550.
[10]ADRIAN C R,KIM J H,KIM S H.Efficient text extraction algorithm using color clustering for language translation in mobile phone[J].Signal and Information Processing,2012(3):228-237.
[11]李敏,蔣建春.基于腐蝕算法的圖像邊緣檢測的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用與軟件,2009,26(1):82-84.
[12]范立南,李金峰,張義鑫.基于Visual C++的廣義形態(tài)圖像邊緣檢測算法[J].計(jì)算機(jī)應(yīng)用與軟件,2006,23(7):8-10.
[13]徐慧.Visual C++數(shù)字圖像實(shí)用工程案例精選 (第1版)[M].北京:人民郵電出版社,2004.