趙義武,張曉東,李慧瑩
(1.長春理工大學空間光電技術研究所,長春 130022;2.長春理工大學計算機科學技術學院,長春130022;3.上海海事大學信息工程學院,上海 201306)
隨著互聯網服務的快速發展,視頻傳播已相當便利,每分鐘都有數百小時的視頻內容被上傳到視頻服務網站。目前視頻檢索主要使用標簽標題匹配關鍵字等方式[1],檢索方式相對單一,視頻標題對視頻內容的反映也不夠細致,為此,根據視頻字幕內容進行檢索可以作為補充方法之一。當前視頻傳播全球化已經成為趨勢,人們可以方便地觀看到不同國家用戶上傳的優秀視頻,但因此也可能會遇到文字不通的情形,所以實現對視頻字幕的自動翻譯可大幅提升觀看體驗。
視頻字幕分為軟字幕和硬字幕,軟字幕即外掛字幕,是與視頻內容分開的單獨文件,該類型的字幕無需從視頻中提取,可直接對其文本做內容分析。在視頻制作過程中,為了有更好的兼容性,往往將視頻字幕內嵌在視頻中,再去傳播,用戶看到的字幕多數時候也都為該類型字幕,稱為硬字幕。硬字幕如同水印一樣與視頻畫面相結合,無法簡單分離,不能直接對其做內容分析。硬字幕需要經過字幕提取與識別,轉換成文本形式的字幕之后,才可實現檢索和翻譯等后續功能。本文討論的視頻字幕均為硬字幕,對其提取過程中的字幕定位和字幕追蹤方法做詳細地研究。
視頻字幕往往只占據了視頻畫面的一小部分,畫面的大部分都是與字幕無關的視頻背景,本文不對背景中可能包含的場景文本[2]做分析,所以該背景區域可被視為干擾區域。字幕定位[3]即是準確找出包含字幕的區域,并將字幕之外的干擾區域全部標記刪除。
本文提出基于圖像的邊緣特征[4],統計邊緣圖像跳變次數的字幕定位方法。
(1)由于視頻字幕在畫面中停留時間往往在1秒以上,每秒視頻又包含24幀或更多幀,所以無需對視頻每一幀都做處理,每4幀選取1幀做處理不會遺漏任何一條字幕,后續所有步驟均不再包含被剔除的視頻幀,可大幅減少運算量。
(2)將篩選得到的視頻幀做灰度化處理,得到的灰度圖像由于存在復雜的背景,無法避免產生大量的噪聲,為防止噪聲對字幕定位產生干擾,需要再對灰度圖像進行去噪處理,以提高對圖像邊緣的檢測效果。在此階段,對灰度圖像添加強度為0.01的椒鹽噪聲,再使用大小為3×3的方形窗口對圖像進行中值濾波。采用中值濾波不僅能夠覆蓋大部分的噪聲區域以消除干擾的噪聲點,也可以較好地保護圖像邊緣信息[5]的特征。
(3)利用Sobel邊緣檢測算子對灰度圖像進行邊緣特征提取,得到邊緣二值圖像。
(4)對篩選過的每一幀的邊緣二值圖像中的每一行(列)進行掃描,統計各行(列)的跳變次數(像素值由0變為1或者由1變為0均計一次跳變),得到邊緣圖的行區域(列區域)的跳變次數分布。
(5)將每一幀同行(列)的跳變次數做加和運算,得到關于整段視頻的行區域(列區域)的跳變次數分布。后續步驟全部使用所得到的整段視頻的行區域(列區域)的跳變次數分布。
(6)找出整段視頻跳變次數最大所在行和最大所在列的交點,將該交點作為字幕區域的中心點。
(7)從中心點向上掃描,若連續5行的行跳變次數均小于最大行跳變次數的0.5倍,則停止掃描,并記該行為字幕區域的上邊界。同理從中心點向下掃描,找到字幕區域的下邊界。
(8)從中心點向左掃描,若連續5列的列跳變次數均小于最大列跳變次數的0.2倍,則停止掃描,并記該列為字幕區域的左邊界。同理從中心點向右掃描,找到字幕區域的右邊界。至此,得到字幕區域的上下左右四個邊界,完成字幕定位步驟。
該算法得到的字幕區域是應用于整段視頻的字幕區域,是一個固定的窗口,適用于字幕出現區域相對穩定的視頻。在視頻時長越長,字幕條數越多的情況下,由于包含了更多的字幕邊緣信息,該字幕定位方法得到的效果會越好。
圖1所示為未經過字幕定位的灰度圖像。

圖1 未經過字幕定位
圖2所示為選取的三條經過字幕定位的圖像。

圖2 經過字幕定位
每一條相同的字幕會出現在若干幀畫面當中,對每一幀經過字幕定位之后的畫面都做文本識別處理不僅會浪費大量運算時間,而且無法避免同一條字幕出現不同種的識別結果。按照字幕出現狀態,視頻的每一幀可以分為無字幕和有字幕兩種[6],如果有字幕出現,則需要進一步判斷該畫面和上一幀畫面是否包含的是同一條字幕。字幕追蹤主要完成對每一幀畫面的歸類,判斷該視頻幀屬于哪一種字幕狀態,便于后續對包含相同字幕的畫面只做一次文本識別。
本文提出利用相鄰若干幀邊緣圖像,對比重疊度的字幕追蹤方法。
取經過邊緣提取和字幕定位之后的每一幀圖像,該圖像是只包含字幕區域的二值圖像。由于視頻末尾1秒鐘通常情況下不會有新字幕出現,所以放棄對末尾4幀的字幕追蹤,只對從第1幀開始,到倒數第5幀結束的所有視頻幀做字幕追蹤。
(1)將所有視頻幀賦初始編號值為0,用0表示該幀無字幕出現。使用i記錄當前操作的幀的序號,使用j來記錄當前已經出現的字幕條數,使用temp來記錄該次運算中出現的字幕是否為新字幕,設i,j,temp的初始值均為0。
(2)取第i幀和其后4幀的圖像,由于所取圖像全部是二值圖像,所以可以做矩陣加和運算,得到新矩陣,該新矩陣中的每個元素值最大為5,最小為0。
(3)如果該5幀包含相同字幕,其邊緣圖像會有大量完全重疊交織的地方,在新矩陣中體現為等于5的元素值數量占比會較大。如果該5幀中包含不同字幕,或者不包含字幕,那么該5幀的邊緣圖像完全重疊部分較少,在新矩陣中體現為等于3和等于4的元素值數量占比會較大。用x記新矩陣中等于5的元素值的數量,用y記新矩陣中等于3和等于4的元素值的數量之和。
(4)比較x和y,若x大于y,則認為該5幀中均包含相同的字幕,轉到步驟(5),若x不大于y,則認為該5幀中并非均包含相同字幕,轉到步驟(6)。
(5)若當前temp等于0,則j加1,若當前temp等于1,則j不變。將第i幀和其后4幀的編號值均改寫為 j,令temp的值等于 1,轉到步驟(7)。
(6)不改變任何視頻幀的編號值,只令temp的值等于 0,轉到步驟(7)。
(7)令i加1,如果i等于倒數第4幀的序號值,則字幕追蹤全部完成,否則轉到步驟(2)。
完成字幕追蹤后,每一幀都被賦予了一個編號值,該編號值代表了字幕狀態,編號值等于0表示該幀無字幕,編號值相同的幀代表字幕也相同,編號值的數值代表該條字幕是整段視頻的第幾條字幕。
該算法要求一條字幕至少出現在20幀的畫面中,且對字幕文本區域較大且邊緣輪廓較明顯的視頻幀圖像具有較好的字幕追蹤效果。如果一條字幕出現在少于20幀的畫面中,由于其存在時間過短,則有可能該條字幕為特殊符號或語氣詞,該算法則會忽略該條字幕。
字幕提取的前期處理步驟包含字幕定位與字幕追蹤,在字幕追蹤完成之后,所有視頻幀均已經標記出字幕所在區域,并且已經按照相同字幕分為一類的規則進行了分類,之后只需在每一類中選取一幀圖像做字幕識別[7],即可完成所有的字幕文本轉化。
選取10段時長在40秒左右的電影視頻,對其做字幕定位與字幕追蹤實驗,主要記錄字幕定位階段是否能將字幕區域完整標識,以及字幕追蹤階段能否準確將每一幀圖像進行歸類。實驗結果如表1所示。
表1中“字幕追蹤誤認字幕”表示字幕追蹤過程誤將無字幕的視頻幀判斷為存在字幕。

02號和06號視頻均由于最后一條字幕出現時間少于1秒,導致字幕追蹤沒有成功識別出該條字幕。
07號視頻由于邊緣信息明顯且背景相對固定,導致字幕追蹤誤將無字幕的視頻幀判斷為了存在字幕,如圖3所示。

表1 實驗數據

圖3 誤識為包含字幕的追蹤結果
05號視頻由于整段視頻字幕左側的邊緣信息較少,導致一些最左側的漢字沒有被完全劃分進來,出現了字幕定位不準的情況,如圖4所示。

圖4 不完整的字幕定位區域
基于邊緣特征的字幕定位,由于字幕是橫向排列的原因,對于字幕上下邊界的定位非常準確,相比之下對于左右邊界的定位可能會稍微出現偏差。字幕追蹤對視頻中間出現的字幕基本可以做到精確分類,但是對最后一秒出現的新字幕的檢測還有待完善。