趙義武,張曉東,李慧瑩
(1.長(zhǎng)春理工大學(xué)空間光電技術(shù)研究所,長(zhǎng)春 130022;2.長(zhǎng)春理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院,長(zhǎng)春130022;3.上海海事大學(xué)信息工程學(xué)院,上海 201306)
隨著互聯(lián)網(wǎng)服務(wù)的快速發(fā)展,視頻傳播已相當(dāng)便利,每分鐘都有數(shù)百小時(shí)的視頻內(nèi)容被上傳到視頻服務(wù)網(wǎng)站。目前視頻檢索主要使用標(biāo)簽標(biāo)題匹配關(guān)鍵字等方式[1],檢索方式相對(duì)單一,視頻標(biāo)題對(duì)視頻內(nèi)容的反映也不夠細(xì)致,為此,根據(jù)視頻字幕內(nèi)容進(jìn)行檢索可以作為補(bǔ)充方法之一。當(dāng)前視頻傳播全球化已經(jīng)成為趨勢(shì),人們可以方便地觀看到不同國(guó)家用戶(hù)上傳的優(yōu)秀視頻,但因此也可能會(huì)遇到文字不通的情形,所以實(shí)現(xiàn)對(duì)視頻字幕的自動(dòng)翻譯可大幅提升觀看體驗(yàn)。
視頻字幕分為軟字幕和硬字幕,軟字幕即外掛字幕,是與視頻內(nèi)容分開(kāi)的單獨(dú)文件,該類(lèi)型的字幕無(wú)需從視頻中提取,可直接對(duì)其文本做內(nèi)容分析。在視頻制作過(guò)程中,為了有更好的兼容性,往往將視頻字幕內(nèi)嵌在視頻中,再去傳播,用戶(hù)看到的字幕多數(shù)時(shí)候也都為該類(lèi)型字幕,稱(chēng)為硬字幕。硬字幕如同水印一樣與視頻畫(huà)面相結(jié)合,無(wú)法簡(jiǎn)單分離,不能直接對(duì)其做內(nèi)容分析。硬字幕需要經(jīng)過(guò)字幕提取與識(shí)別,轉(zhuǎn)換成文本形式的字幕之后,才可實(shí)現(xiàn)檢索和翻譯等后續(xù)功能。本文討論的視頻字幕均為硬字幕,對(duì)其提取過(guò)程中的字幕定位和字幕追蹤方法做詳細(xì)地研究。
視頻字幕往往只占據(jù)了視頻畫(huà)面的一小部分,畫(huà)面的大部分都是與字幕無(wú)關(guān)的視頻背景,本文不對(duì)背景中可能包含的場(chǎng)景文本[2]做分析,所以該背景區(qū)域可被視為干擾區(qū)域。字幕定位[3]即是準(zhǔn)確找出包含字幕的區(qū)域,并將字幕之外的干擾區(qū)域全部標(biāo)記刪除。
本文提出基于圖像的邊緣特征[4],統(tǒng)計(jì)邊緣圖像跳變次數(shù)的字幕定位方法。
(1)由于視頻字幕在畫(huà)面中停留時(shí)間往往在1秒以上,每秒視頻又包含24幀或更多幀,所以無(wú)需對(duì)視頻每一幀都做處理,每4幀選取1幀做處理不會(huì)遺漏任何一條字幕,后續(xù)所有步驟均不再包含被剔除的視頻幀,可大幅減少運(yùn)算量。
(2)將篩選得到的視頻幀做灰度化處理,得到的灰度圖像由于存在復(fù)雜的背景,無(wú)法避免產(chǎn)生大量的噪聲,為防止噪聲對(duì)字幕定位產(chǎn)生干擾,需要再對(duì)灰度圖像進(jìn)行去噪處理,以提高對(duì)圖像邊緣的檢測(cè)效果。在此階段,對(duì)灰度圖像添加強(qiáng)度為0.01的椒鹽噪聲,再使用大小為3×3的方形窗口對(duì)圖像進(jìn)行中值濾波。采用中值濾波不僅能夠覆蓋大部分的噪聲區(qū)域以消除干擾的噪聲點(diǎn),也可以較好地保護(hù)圖像邊緣信息[5]的特征。
(3)利用Sobel邊緣檢測(cè)算子對(duì)灰度圖像進(jìn)行邊緣特征提取,得到邊緣二值圖像。
(4)對(duì)篩選過(guò)的每一幀的邊緣二值圖像中的每一行(列)進(jìn)行掃描,統(tǒng)計(jì)各行(列)的跳變次數(shù)(像素值由0變?yōu)?或者由1變?yōu)?均計(jì)一次跳變),得到邊緣圖的行區(qū)域(列區(qū)域)的跳變次數(shù)分布。
(5)將每一幀同行(列)的跳變次數(shù)做加和運(yùn)算,得到關(guān)于整段視頻的行區(qū)域(列區(qū)域)的跳變次數(shù)分布。后續(xù)步驟全部使用所得到的整段視頻的行區(qū)域(列區(qū)域)的跳變次數(shù)分布。
(6)找出整段視頻跳變次數(shù)最大所在行和最大所在列的交點(diǎn),將該交點(diǎn)作為字幕區(qū)域的中心點(diǎn)。
(7)從中心點(diǎn)向上掃描,若連續(xù)5行的行跳變次數(shù)均小于最大行跳變次數(shù)的0.5倍,則停止掃描,并記該行為字幕區(qū)域的上邊界。同理從中心點(diǎn)向下掃描,找到字幕區(qū)域的下邊界。
(8)從中心點(diǎn)向左掃描,若連續(xù)5列的列跳變次數(shù)均小于最大列跳變次數(shù)的0.2倍,則停止掃描,并記該列為字幕區(qū)域的左邊界。同理從中心點(diǎn)向右掃描,找到字幕區(qū)域的右邊界。至此,得到字幕區(qū)域的上下左右四個(gè)邊界,完成字幕定位步驟。
該算法得到的字幕區(qū)域是應(yīng)用于整段視頻的字幕區(qū)域,是一個(gè)固定的窗口,適用于字幕出現(xiàn)區(qū)域相對(duì)穩(wěn)定的視頻。在視頻時(shí)長(zhǎng)越長(zhǎng),字幕條數(shù)越多的情況下,由于包含了更多的字幕邊緣信息,該字幕定位方法得到的效果會(huì)越好。
圖1所示為未經(jīng)過(guò)字幕定位的灰度圖像。
圖1 未經(jīng)過(guò)字幕定位
圖2所示為選取的三條經(jīng)過(guò)字幕定位的圖像。
圖2 經(jīng)過(guò)字幕定位
每一條相同的字幕會(huì)出現(xiàn)在若干幀畫(huà)面當(dāng)中,對(duì)每一幀經(jīng)過(guò)字幕定位之后的畫(huà)面都做文本識(shí)別處理不僅會(huì)浪費(fèi)大量運(yùn)算時(shí)間,而且無(wú)法避免同一條字幕出現(xiàn)不同種的識(shí)別結(jié)果。按照字幕出現(xiàn)狀態(tài),視頻的每一幀可以分為無(wú)字幕和有字幕兩種[6],如果有字幕出現(xiàn),則需要進(jìn)一步判斷該畫(huà)面和上一幀畫(huà)面是否包含的是同一條字幕。字幕追蹤主要完成對(duì)每一幀畫(huà)面的歸類(lèi),判斷該視頻幀屬于哪一種字幕狀態(tài),便于后續(xù)對(duì)包含相同字幕的畫(huà)面只做一次文本識(shí)別。
本文提出利用相鄰若干幀邊緣圖像,對(duì)比重疊度的字幕追蹤方法。
取經(jīng)過(guò)邊緣提取和字幕定位之后的每一幀圖像,該圖像是只包含字幕區(qū)域的二值圖像。由于視頻末尾1秒鐘通常情況下不會(huì)有新字幕出現(xiàn),所以放棄對(duì)末尾4幀的字幕追蹤,只對(duì)從第1幀開(kāi)始,到倒數(shù)第5幀結(jié)束的所有視頻幀做字幕追蹤。
(1)將所有視頻幀賦初始編號(hào)值為0,用0表示該幀無(wú)字幕出現(xiàn)。使用i記錄當(dāng)前操作的幀的序號(hào),使用j來(lái)記錄當(dāng)前已經(jīng)出現(xiàn)的字幕條數(shù),使用temp來(lái)記錄該次運(yùn)算中出現(xiàn)的字幕是否為新字幕,設(shè)i,j,temp的初始值均為0。
(2)取第i幀和其后4幀的圖像,由于所取圖像全部是二值圖像,所以可以做矩陣加和運(yùn)算,得到新矩陣,該新矩陣中的每個(gè)元素值最大為5,最小為0。
(3)如果該5幀包含相同字幕,其邊緣圖像會(huì)有大量完全重疊交織的地方,在新矩陣中體現(xiàn)為等于5的元素值數(shù)量占比會(huì)較大。如果該5幀中包含不同字幕,或者不包含字幕,那么該5幀的邊緣圖像完全重疊部分較少,在新矩陣中體現(xiàn)為等于3和等于4的元素值數(shù)量占比會(huì)較大。用x記新矩陣中等于5的元素值的數(shù)量,用y記新矩陣中等于3和等于4的元素值的數(shù)量之和。
(4)比較x和y,若x大于y,則認(rèn)為該5幀中均包含相同的字幕,轉(zhuǎn)到步驟(5),若x不大于y,則認(rèn)為該5幀中并非均包含相同字幕,轉(zhuǎn)到步驟(6)。
(5)若當(dāng)前temp等于0,則j加1,若當(dāng)前temp等于1,則j不變。將第i幀和其后4幀的編號(hào)值均改寫(xiě)為 j,令temp的值等于 1,轉(zhuǎn)到步驟(7)。
(6)不改變?nèi)魏我曨l幀的編號(hào)值,只令temp的值等于 0,轉(zhuǎn)到步驟(7)。
(7)令i加1,如果i等于倒數(shù)第4幀的序號(hào)值,則字幕追蹤全部完成,否則轉(zhuǎn)到步驟(2)。
完成字幕追蹤后,每一幀都被賦予了一個(gè)編號(hào)值,該編號(hào)值代表了字幕狀態(tài),編號(hào)值等于0表示該幀無(wú)字幕,編號(hào)值相同的幀代表字幕也相同,編號(hào)值的數(shù)值代表該條字幕是整段視頻的第幾條字幕。
該算法要求一條字幕至少出現(xiàn)在20幀的畫(huà)面中,且對(duì)字幕文本區(qū)域較大且邊緣輪廓較明顯的視頻幀圖像具有較好的字幕追蹤效果。如果一條字幕出現(xiàn)在少于20幀的畫(huà)面中,由于其存在時(shí)間過(guò)短,則有可能該條字幕為特殊符號(hào)或語(yǔ)氣詞,該算法則會(huì)忽略該條字幕。
字幕提取的前期處理步驟包含字幕定位與字幕追蹤,在字幕追蹤完成之后,所有視頻幀均已經(jīng)標(biāo)記出字幕所在區(qū)域,并且已經(jīng)按照相同字幕分為一類(lèi)的規(guī)則進(jìn)行了分類(lèi),之后只需在每一類(lèi)中選取一幀圖像做字幕識(shí)別[7],即可完成所有的字幕文本轉(zhuǎn)化。
選取10段時(shí)長(zhǎng)在40秒左右的電影視頻,對(duì)其做字幕定位與字幕追蹤實(shí)驗(yàn),主要記錄字幕定位階段是否能將字幕區(qū)域完整標(biāo)識(shí),以及字幕追蹤階段能否準(zhǔn)確將每一幀圖像進(jìn)行歸類(lèi)。實(shí)驗(yàn)結(jié)果如表1所示。
表1中“字幕追蹤誤認(rèn)字幕”表示字幕追蹤過(guò)程誤將無(wú)字幕的視頻幀判斷為存在字幕。
02號(hào)和06號(hào)視頻均由于最后一條字幕出現(xiàn)時(shí)間少于1秒,導(dǎo)致字幕追蹤沒(méi)有成功識(shí)別出該條字幕。
07號(hào)視頻由于邊緣信息明顯且背景相對(duì)固定,導(dǎo)致字幕追蹤誤將無(wú)字幕的視頻幀判斷為了存在字幕,如圖3所示。
表1 實(shí)驗(yàn)數(shù)據(jù)
圖3 誤識(shí)為包含字幕的追蹤結(jié)果
05號(hào)視頻由于整段視頻字幕左側(cè)的邊緣信息較少,導(dǎo)致一些最左側(cè)的漢字沒(méi)有被完全劃分進(jìn)來(lái),出現(xiàn)了字幕定位不準(zhǔn)的情況,如圖4所示。
圖4 不完整的字幕定位區(qū)域
基于邊緣特征的字幕定位,由于字幕是橫向排列的原因,對(duì)于字幕上下邊界的定位非常準(zhǔn)確,相比之下對(duì)于左右邊界的定位可能會(huì)稍微出現(xiàn)偏差。字幕追蹤對(duì)視頻中間出現(xiàn)的字幕基本可以做到精確分類(lèi),但是對(duì)最后一秒出現(xiàn)的新字幕的檢測(cè)還有待完善。