江西廣播電視臺(tái)播出部 羅曉松 南昌市 330006
中國移動(dòng)通信集團(tuán)江西有限公司網(wǎng)絡(luò)管理中心 張 翼 南昌市330031
電視劇豐富多彩,在日常的電視播出節(jié)目中,根據(jù)劇情、播出時(shí)長等將電視劇分為集數(shù)播出,然而海量的電視劇名也給電視劇的審核帶來一定困擾。電視劇播出中出現(xiàn)播出本集電視劇,下一劇應(yīng)該播出本劇的下一集,而出現(xiàn)播出本集、上一集或者跳躍播出的情況,以往的電視劇審核只能通過人工進(jìn)行審核,需要花費(fèi)大量的時(shí)間精力。
早期對(duì)視頻中文字的提取檢測(cè),可利用OCR技術(shù)展開工作[1]。隨著人工智能技術(shù)的發(fā)展,運(yùn)用人工智能神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),設(shè)計(jì)以深度學(xué)習(xí)技術(shù)為基礎(chǔ),對(duì)視頻智能審核的系統(tǒng),越來越多地被應(yīng)用于廣電行業(yè)[2-4]。如佟明[5]將深度學(xué)習(xí)的智能審核系統(tǒng)應(yīng)用在IPTV播控平臺(tái)中,高志恒[6]結(jié)合各個(gè)頻道的臺(tái)標(biāo)特點(diǎn),利用人工智能技術(shù),能夠精準(zhǔn)地識(shí)別電視臺(tái)臺(tái)標(biāo),并對(duì)臺(tái)標(biāo)進(jìn)行24小時(shí)實(shí)時(shí)檢測(cè)。本文提出了深度學(xué)習(xí)的電視劇劇名識(shí)別,能夠精準(zhǔn)地識(shí)別出電視劇名,并通過節(jié)目單劇名與電視劇視頻中的播出電視劇名進(jìn)行劇名匹配,以確保播出的電視劇符合劇情安排,提高電視劇審核的準(zhǔn)確性。
OCR(Optical Character Recognition)光學(xué)字符識(shí)別技術(shù),主要應(yīng)用是將電視節(jié)目中的字幕信息轉(zhuǎn)換為文本信息,其具體流程如下圖1所示,首先對(duì)圖像進(jìn)行預(yù)處理,再將版面劃分包含直線檢測(cè)以及傾斜檢測(cè),經(jīng)過字符定位切分、字符識(shí)別、版面恢復(fù)、后處理、校對(duì)等輸出識(shí)別結(jié)果。
圖1 OCR識(shí)別技術(shù)框圖
OCR識(shí)別技術(shù)的圖像預(yù)處理是將原始圖像去噪,將彩色圖像灰度化、二值化處理、圖像變化角度檢測(cè)、矯正處理等。電視劇中的劇名文字字體為楷書,不需要圖像變化角度檢測(cè)、矯正處理,經(jīng)過二值化的字體筆畫步出現(xiàn)空白,其基本的筆畫維持原有的特征。其內(nèi)容為第一集,第二集等短短的一行且僅有幾個(gè)文字字符,文字出現(xiàn)在某一特定的行。在子切分階段不存在英文文字、間隔符、符號(hào)、字間污點(diǎn)的干擾,直接把文本中的單字行切分為單字。字切分大致分為兩個(gè)過程,首先是求出文字左右界,其次是合并部件為完整的文本漢字。字切分算法采用最大寬度回溯切分。首先,根據(jù)漢字是方塊字的特點(diǎn),以平均行寬作為字寬w的參考值:w=其中N為整個(gè)文本塊的行數(shù)ia,ib分別為第i行的上、下界。設(shè)文字的最大寬度為wm回溯范圍為d,第j個(gè)字的起始位置為ja,結(jié)束位置為jb。
經(jīng)重復(fù)以下算法步驟,完成對(duì)電視劇名中字符的切割:
(1)在ja≤j≤ja+wm范圍內(nèi)計(jì)算第一個(gè)0(L為每行的高度)的點(diǎn),定義為jb,從而切出ja至jb之間的單個(gè)文字圖像。假如沒有這樣的點(diǎn),轉(zhuǎn)至第(5)步。
(2)若ja-jb<δ(δ為不足一個(gè)最小的字符寬),則為噪聲干擾,不計(jì),轉(zhuǎn)至第(3)步;否則轉(zhuǎn)至第(4)步。
(3)jb≤j≤ja+wm范圍內(nèi)計(jì)算第一個(gè)的點(diǎn),設(shè)為jb,從而切出至ja至jb之間的單個(gè)文字圖像;若不存在這樣的點(diǎn),則轉(zhuǎn)到第(5)步。
(4)用字典對(duì)上述切割出的圖像進(jìn)行匹配,若匹配成功,記下jb,轉(zhuǎn)第(6)步;否則轉(zhuǎn)第(3)步。
(5)在ja+wm-d≤j≤ja+wm范圍內(nèi)求出使得取值最小的點(diǎn),記為jb。
(6)從jb作垂線即為文字的分界線,即右邊界,第j字的寬度為ja至jb。
(7)從jb開始,計(jì)算設(shè)為j,a,且j,a>j,b,則j,a為第j+1個(gè)文字的左邊界。
在完成字符切割后,使用基于網(wǎng)格化的方式提取電視劇名特征。首先使用歸—化處理將字符的外部邊框轉(zhuǎn)換為32×16個(gè)像素,把圖像分成3×3=9個(gè)小格子,在每個(gè)格子中統(tǒng)計(jì)其黑像素的個(gè)數(shù),從而形成—個(gè)9維矢量;再將標(biāo)準(zhǔn)字符的13維特征量提取出來,保存在系統(tǒng)中。進(jìn)行字符識(shí)別時(shí),當(dāng)遇到—個(gè)新的字符的時(shí)候,提取它的13維特征向量,求出待識(shí)別字符的特征向量與系統(tǒng)中保存的標(biāo)準(zhǔn)字符的特征向量的差別,最小—值為識(shí)別結(jié)果。
卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks)是一類包含卷積運(yùn)算的深度前饋神經(jīng)網(wǎng)絡(luò),簡稱CNN。卷積神經(jīng)網(wǎng)絡(luò)通常由輸入層、卷積層、池化層、全連接層和輸出層組成。在卷積神經(jīng)網(wǎng)絡(luò)中,每個(gè)神經(jīng)元均包含寬度、深度和高度三維結(jié)構(gòu),一個(gè)卷積層可以包含多個(gè)不同的卷積核。使用數(shù)字對(duì)圖像的灰度特征進(jìn)行賦值,每個(gè)卷積核在輸入圖像上按照一定方式滑動(dòng),且每次只處理部分圖像信息,直到處理完全部的圖像,這樣卷積層就提取到了整個(gè)圖像的灰度特征信息,這些特征信息經(jīng)過處理后將代表輸入的圖像。
如圖3(a)是一個(gè)6×6的圖像灰度矩陣,構(gòu)造一個(gè)3×3的矩陣,該3×3的矩陣在卷積神經(jīng)網(wǎng)絡(luò)中通常稱之為卷積核。如對(duì)6×6矩陣做卷積運(yùn)算,以最右下角的-11計(jì)算為例,其計(jì)算過程如下式1所示:
圖3(a)最左側(cè)圖中的其他數(shù)字讓過濾器在圖像中按照同樣的計(jì)算方法逐步運(yùn)行至最右端,又移動(dòng)至最左端下一行重復(fù)上面的步驟,這樣對(duì)整個(gè)6×6的矩陣進(jìn)行卷積得到4×4的圖像。特別地,當(dāng)卷積核中的數(shù)字如圖2(a)一樣排列時(shí),則稱之為垂直過濾器,水平過濾器則如圖2(b)所示。在卷積神經(jīng)網(wǎng)絡(luò)中,把這些過濾器當(dāng)成我們要學(xué)習(xí)的參數(shù),卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練的任務(wù)就是去理解這些過濾器的參數(shù)。我們?cè)俜催^來就可以得到圖3(a)與(b)中的垂直與水平的值,如圖3所示,我們以圖3(b)第一行第二個(gè)數(shù)值-4為例,其計(jì)算方法如式2所示:
圖2(a)垂直過濾器 (b)水平過濾器
圖3 卷積示意圖
在上述部分中,我們使用一個(gè)3×3大小的過濾器對(duì)6×6的圖像進(jìn)行卷積,得到了4×4的圖像。假定輸出圖像大小為n×n,過濾器大小為f×f,輸出圖像大小則為(n-f+1)×(n-f+1)。卷積步長是指過濾器在圖像上進(jìn)行滑動(dòng)的距離,在前部分進(jìn)行卷積時(shí)的步長值均默認(rèn)為數(shù)值1,如果卷積步長的數(shù)值為2,那么在卷積運(yùn)算過程就會(huì)出現(xiàn)變動(dòng),如下圖4所示。輸入的圖像大小為7×7,過濾器大小為3×3,步長的大小為2,則計(jì)算出的輸出圖像大小如下式2-7所示。其結(jié)果可用3×3的矩陣表示。相比于圖4的最左邊的7×7的矩陣,它長與寬的值大小均減少了4個(gè)單位。我們將左圖的7×7圖像與過濾器依次進(jìn)行卷積,左圖第一個(gè)框與過濾器的值對(duì)應(yīng)為-3,后續(xù)框卷積的值依次為4、5;同理,第二排值依次為-1、-6、-2,第二排值依次為0、8、6。這樣就得到了圖4的右圖。
圖4 卷積步長示意圖
加入步長后的卷積圖像大小的通用計(jì)算公式可以通過用輸入圖像的邊長大小用n表示,過濾器邊長大小用f進(jìn)行表示,卷積步長用s進(jìn)行表示,而p表示填充的大小,那么輸出的圖像大小為:
卷積神經(jīng)網(wǎng)絡(luò)的池化層,最大池化的思想可以用下圖5進(jìn)行表示。最大池化計(jì)算的是最大值,它首先把6×6的圖像分割成4個(gè)不同的區(qū)域,每一種顏色均代表一個(gè)區(qū)域,再直接輸出每個(gè)區(qū)域內(nèi)最大的數(shù)字值,得到的結(jié)果如圖中的右上角所示。平均池化是將圖像中的每個(gè)區(qū)域進(jìn)行相加,再除以該區(qū)域內(nèi)的方格個(gè)數(shù),如下圖5的平均池化所示。平均池化與最大池化唯一的不同是它計(jì)算的是圖像區(qū)域內(nèi)的平均值。
圖5 池化示意圖
最后是卷積神經(jīng)網(wǎng)絡(luò)的全連接層與輸出層。卷積神經(jīng)網(wǎng)絡(luò)的全連接層與傳統(tǒng)神經(jīng)網(wǎng)絡(luò)中隱藏層的作用一樣,用于連接上一層的全部神經(jīng)元,并將上一層的三維矩陣變成為向量的形式;輸出層則是將神經(jīng)元的輸出方式轉(zhuǎn)換成預(yù)測(cè)分類的概率,這個(gè)概率值通常用 最大化回歸模型計(jì)算。
本實(shí)驗(yàn)數(shù)據(jù)集來自電視臺(tái)日常播出的電視劇,包含大量的高清、標(biāo)清電視劇視頻。經(jīng)過大量的數(shù)據(jù)訓(xùn)練,得到基于深度學(xué)習(xí)的卷積網(wǎng)絡(luò)模型。該系統(tǒng)主要包括圖像采集、圖像處理、圖像顯示功能模塊,功能結(jié)構(gòu)圖如下圖6所示。圖6(a)為圖像采集模塊,包含兩臺(tái)上載錄像機(jī),上載操作界面。在平時(shí)的節(jié)目上載中,將需要上載的節(jié)目(P2卡、磁帶)插入上載錄像機(jī)中,在上載界面打開上載模塊提取與之對(duì)應(yīng)的節(jié)目,點(diǎn)擊上載即可完成視頻的采集,同時(shí)與之對(duì)應(yīng)的上載通道可顯示出節(jié)目視頻。圖6(b)為圖像處理模塊,由兩臺(tái)包含卷積深度學(xué)習(xí)的卷積神經(jīng)網(wǎng)絡(luò)系統(tǒng)的計(jì)算機(jī)組成。上載的視頻一路傳至視頻服務(wù)器,另一路通過近線傳至圖像處理板塊。圖6(c)為圖像顯示模塊,該模塊將電視劇名檢測(cè)結(jié)果顯示在系統(tǒng)的可視化界面上,可直觀看到系統(tǒng)檢測(cè)分類的結(jié)果,與節(jié)目單中的文件名進(jìn)行比較,可直觀看到電視劇名匹配的結(jié)果。如匹配結(jié)果不一致,系統(tǒng)則會(huì)報(bào)警并顯示出電視劇劇名不一致的具體信息。
圖6 劇名識(shí)別系統(tǒng)
本文提出基于深度學(xué)習(xí)的電視劇劇名識(shí)別,能夠通過卷積神經(jīng)網(wǎng)絡(luò)快速地完成電視劇名的檢測(cè),并將節(jié)目單劇名與電視劇視頻中的電視劇名進(jìn)行劇名匹配,可準(zhǔn)確快捷智能完成電視劇名審核,有效提高電視劇審核效率,同時(shí)確保播出的電視劇符合劇情安排,提高電視劇審核的準(zhǔn)確性。