我們教電腦識(shí)別視頻字幕
麻文華,博士畢業(yè)于中國(guó)科學(xué)院自動(dòng)化研究所模式識(shí)別與人工智能專業(yè)。主要從事圖像識(shí)別、目標(biāo)檢測(cè)跟蹤等理論和應(yīng)用研究,在領(lǐng)域內(nèi)重要學(xué)術(shù)會(huì)議、期刊上發(fā)表論文4篇,申請(qǐng)相關(guān)專利2項(xiàng)。工作期間曾從事OCR、自然場(chǎng)景OCR應(yīng)用研究,提出基于文字背景區(qū)域檢測(cè)和自適應(yīng)分級(jí)聚類的文字檢測(cè)方法,研究成果申請(qǐng)美國(guó)專利2項(xiàng),日本專利2項(xiàng),中國(guó)專利5項(xiàng)。目前主要從事證件識(shí)別、自然場(chǎng)景文本識(shí)別等研究工作。
研究背景
隨著便攜式拍攝設(shè)備的普及以及自媒體、網(wǎng)絡(luò)直播平臺(tái)的興起,數(shù)字視頻迎來(lái)了爆炸式的增長(zhǎng)。視頻的有效編目和檢索成為迫在眉睫的需求。然而,視頻來(lái)源多種多樣,很多并不具備規(guī)范化的描述信息(比如字幕文件)?;诩兇獾膱D像識(shí)別技術(shù)理解視頻內(nèi)容需要跨越 圖像到語(yǔ)義理解的鴻溝,目前的技術(shù)尚不完善。另一方面,視頻中的字幕往往攜帶了非常精準(zhǔn)關(guān)鍵的描述信息,從識(shí)別字幕的角度去理解視頻內(nèi)容成為了相對(duì)可行的途徑。
識(shí)別字幕文本通常需要兩個(gè)步驟:字幕定位、文本識(shí)別。
字幕定位,即找出字幕在視頻幀中所處的位置,通常字幕呈水平或豎直排列,定位的結(jié)果可以采用最小外接框來(lái)表示,如圖1所示。字幕文本識(shí)別,即通過提取字幕區(qū)域的圖像特征,識(shí)別其中的文字,最終輸出文本串。
圖1:視頻字幕識(shí)別的一般流程
技術(shù)路線
字幕定位
字幕定位需要區(qū)分字幕區(qū)域和背景區(qū)域,有效的區(qū)分特征包括以下幾點(diǎn):
- 字幕的顏色、字體較為規(guī)整,且與背景有較為明顯的顏色差異;
- 字幕區(qū)域的筆畫豐富,角點(diǎn)和邊緣特征比較明顯;
- 字幕中字符間距固定,排版多沿水平或豎直方向;
- 同一視頻中字幕出現(xiàn)的位置較為固定,且同一段字幕一般會(huì)停留若干秒的時(shí)間。
這其中,前三點(diǎn)是字幕外觀特征,第四點(diǎn)是時(shí)間冗余性的特征。利用這些特征,一種可行的字幕定位方案如下:
圖2:基于邊緣密度的字幕定位
首先,對(duì)于視頻幀灰度圖像進(jìn)行邊緣檢測(cè),得到邊緣圖。
然后,在邊緣圖上分別進(jìn)行水平和豎直方向的投影分析,通過投影直方圖的分布,大致確定字幕的候選區(qū)域。如果存在多個(gè)候選區(qū)域,則根據(jù)字幕區(qū)域的尺寸和寬高比范圍濾除不合理的檢測(cè)結(jié)果。最后,通過多幀檢測(cè)結(jié)果對(duì)比融合,進(jìn)一步去除不穩(wěn)定的檢測(cè)區(qū)域。這樣,基本可以得到可信的檢測(cè)結(jié)果。
在某些復(fù)雜場(chǎng)景下,上述方法檢測(cè)的區(qū)域可能會(huì)存在字幕邊界檢測(cè)不準(zhǔn)的情況,尤其是垂直與字幕方向的兩端邊界。這時(shí),可以進(jìn)一步借助連通域分析的方法,求出字幕所在行區(qū)域的連通域,通過連通域的顏色、排列規(guī)整性來(lái)微調(diào)檢測(cè)結(jié)果。
字幕文本識(shí)別
字幕文本識(shí)別通常采用的方法是首先根據(jù)行區(qū)域內(nèi)的灰度直方圖投影,切分單字區(qū)域,然后針對(duì)每個(gè)單字區(qū)域進(jìn)行灰度圖像歸一化、提取梯度特征、多模版匹配和MCE(最小分類誤差)分類。然而這種傳統(tǒng)的基于特征工程的分類識(shí)別方法難以應(yīng)對(duì)背景紋理復(fù)雜,以及視頻本身的噪聲和低分辨率等問題。
一種改進(jìn)的思路是采用基于深度學(xué)習(xí)的端到端的串識(shí)別方案:CRNN (Convolutional Recurrent Neural Network)。其方法流程如圖3所示:
圖3:CRNN實(shí)現(xiàn)end-to-end word recognition
首先,輸入高度固定、寬度不限的單詞圖像(無(wú)需單字區(qū)域信息),在訓(xùn)練過程中,將圖像統(tǒng)一歸一化到32*100;
然后,通過CNN層提取圖像特征,利用Map-to-Sequence形成特征向量,輸出為的feature map。這里,
和
與輸入圖像的尺寸成比例相關(guān)。論文中,feature map的尺寸為:
。這相當(dāng)于對(duì)圖像進(jìn)行了過切分,將其劃分為26個(gè)條狀區(qū)域,每個(gè)區(qū)域用512維的特征來(lái)表示。其中,26被認(rèn)為是英文單詞的長(zhǎng)度上限。值得一提的是,由于卷積性質(zhì),這里的條狀區(qū)域是“軟邊界”且存在交疊的,其寬度對(duì)應(yīng)最后一層卷積的感受野。
接著,通過RNN層提取條狀區(qū)域的上下文特征,得到類別概率分布。這里采用的是雙層雙向的LSTM,LSTM的單元個(gè)數(shù)與一致。RNN的輸出為
的概率矩陣,其中,
對(duì)應(yīng)于類別個(gè)數(shù),考慮26個(gè)英文字母+10個(gè)數(shù)字+1個(gè)負(fù)類(對(duì)應(yīng)于字母之間的模糊地帶),類別個(gè)數(shù)取37即可。
最后,通過CTC層將概率矩陣轉(zhuǎn)化為對(duì)應(yīng)某個(gè)字符串的概率輸出。CTC層本身沒有參數(shù),它利用一種前向后向算法求解最優(yōu)的label序列,使得理論上龐大的窮舉計(jì)算成為可能。
從上面的分析可以看出,CRNN的亮點(diǎn)主要在于:將切分和識(shí)別合并為一個(gè)模塊,避免了誤差累積;可以端到端訓(xùn)練。在我們前期的實(shí)踐中,發(fā)現(xiàn)其性能比傳統(tǒng)方法的確有明顯提升,主要表現(xiàn)為對(duì)于藝術(shù)字體、手寫字體等切分困難情況優(yōu)異的識(shí)別性能。但是,針對(duì)實(shí)際應(yīng)用場(chǎng)景的分析讓我們最終放棄了這個(gè)方案,原因有二:
時(shí)效:基于我們?cè)谟⑽膯卧~上面的實(shí)驗(yàn)對(duì)比,CRNN的耗時(shí)約為傳統(tǒng)方法的2~3倍,不能滿足視頻處理的實(shí)時(shí)性要求;
性能:CRNN擅長(zhǎng)處理難以切分的字符串,而字幕文本間距和字體均較為規(guī)整,很少出現(xiàn)字間粘連的情況,所以并不能體現(xiàn)CRNN的優(yōu)勢(shì)。
綜上考慮,我們最終采用筆畫響應(yīng)加投影統(tǒng)計(jì)方法進(jìn)行切分,而在單字識(shí)別環(huán)節(jié)采用CNN,提升復(fù)雜場(chǎng)景下的識(shí)別性能。下面簡(jiǎn)單介紹該流程:
切分環(huán)節(jié)包括三個(gè)步驟:
- 求取字幕區(qū)域圖像的筆畫響應(yīng)圖;
- 統(tǒng)計(jì)筆畫響應(yīng)圖水平方向的灰度投影直方圖;
- 根據(jù)字幕區(qū)域的高度預(yù)估單個(gè)字符的寬度,并以此為依據(jù),在投影直方圖上尋找一系列最優(yōu)切點(diǎn)。
圖4:字幕區(qū)域的切分
切分環(huán)節(jié)給出了單個(gè)字符區(qū)域,針對(duì)該區(qū)域,采用CNN模型提取特征來(lái)進(jìn)行單字識(shí)別。這里需要考慮兩點(diǎn):
模型選擇:經(jīng)過實(shí)驗(yàn),包含3~5層卷積-池化單元的簡(jiǎn)單CNN模型即可將傳統(tǒng)識(shí)別方法的性能提高10個(gè)百分點(diǎn)左右。當(dāng)然,層次更深的網(wǎng)絡(luò),如resnet,會(huì)進(jìn)一步提升性能。實(shí)用場(chǎng)景下,模型選擇需要根據(jù)需求在速度和性能之間進(jìn)行權(quán)衡。
數(shù)據(jù)來(lái)源:基于深度學(xué)習(xí)的方法,性能關(guān)鍵在于海量可靠的訓(xùn)練樣本集。在訓(xùn)練過程中,我們采用的樣本集在百萬(wàn)量級(jí),而這些樣本僅靠人工搜集和標(biāo)注顯然是不現(xiàn)實(shí)的。所以,在深度學(xué)習(xí)的多次應(yīng)用中,我們均采用了合成樣本訓(xùn)練,實(shí)際樣本驗(yàn)證的模式,并證明了其可行性。
以合成字幕文本為例:我們通過分析字幕文件的格式,將待生成的文本寫入字幕文件,通過播放視頻時(shí)自動(dòng)載入字幕,將文字疊加到視頻上面。這樣,可以同時(shí)完成數(shù)據(jù)的生成和標(biāo)注。我們還根據(jù)需要定制了不同字體,添加了陰影、模糊等附加效果。這樣,理論上我們就可以得到無(wú)限多的合成樣本了。
圖5:字幕文字樣本的合成
雖然識(shí)別模塊的性能強(qiáng)悍,但是對(duì)于形似字難免仍然存在識(shí)別錯(cuò)誤的情況。這時(shí)就要發(fā)揮語(yǔ)言模型的威力了。語(yǔ)言模型又稱為n-gram模型,通過統(tǒng)計(jì)詞庫(kù)中字的同現(xiàn)概率,可以確定哪個(gè)字序列出現(xiàn)的可能性更大。N-gram中的n代表統(tǒng)計(jì)的詞(字)序列的長(zhǎng)度,n越大,模型越復(fù)雜。在字幕識(shí)別系統(tǒng)中,我們用了最簡(jiǎn)單的2-gram模型,將最終的識(shí)別正確率又提升了2個(gè)百分點(diǎn)。
圖6:基于語(yǔ)言模型的結(jié)果校正
小結(jié)
我們采用上述系統(tǒng)在實(shí)際視頻樣本上進(jìn)行測(cè)試,單字識(shí)別準(zhǔn)確率達(dá)到99%,CPU上單字識(shí)別耗時(shí)2ms,基本達(dá)到實(shí)用需求。作為對(duì)于深度學(xué)習(xí)方法應(yīng)用在實(shí)際業(yè)務(wù)中的一次粗淺嘗試,我們有兩點(diǎn)心得:
關(guān)于方法選擇,要從問題出發(fā),具體分析難點(diǎn)在哪里,選擇最簡(jiǎn)單有效的方法,避免貪大求新,本末倒置;
關(guān)于數(shù)據(jù)合成,合成數(shù)據(jù)用于訓(xùn)練,實(shí)際數(shù)據(jù)用于微調(diào)和測(cè)試,可謂是訓(xùn)練深度學(xué)習(xí)網(wǎng)絡(luò)性價(jià)比最高的方式。當(dāng)然,不需要考慮時(shí)間人力消耗的土豪隨意。在操作過程中,一定要注意保持合成樣本和實(shí)際樣本盡量相似,可以采用多次驗(yàn)證調(diào)整,選擇最佳的合成方法。
原文鏈接:http://t.cn/R0w2Z6L
作者:麻文華
【本文是51CTO專欄作者“騰訊云技術(shù)社區(qū)”的原創(chuàng)稿件,轉(zhuǎn)載請(qǐng)通過51CTO聯(lián)系原作者獲取授權(quán)】