許子立,姚劍敏,郭太良
(福州大學 平板顯示技術(shù)國家地方聯(lián)合工程實驗室,福建 福州 350002)
?
基于遞進卷積神經(jīng)網(wǎng)絡的臺標識別及其并行化
許子立,姚劍敏,郭太良
(福州大學 平板顯示技術(shù)國家地方聯(lián)合工程實驗室,福建 福州 350002)
摘要:針對臺標的視覺特征,提出一種基于遞進卷積神經(jīng)網(wǎng)絡的臺標識別算法。該網(wǎng)絡不僅有對圖像特征進行隱性提取的卷積層和采樣層,還包括識別常規(guī)臺標的泛化模塊和識別偏差臺標的特異模塊。針對串行卷積神經(jīng)網(wǎng)絡訓練耗時長的缺點,提出基于Spark的并行遞進卷積神經(jīng)網(wǎng)絡算法,采用數(shù)據(jù)共享及批處理方式對算法模型進行并行化處理。實驗證明,遞進卷積神經(jīng)網(wǎng)絡算法對臺標進行識別能達到98 %的正確率,多節(jié)點并行化卷積神經(jīng)網(wǎng)絡相比于單節(jié)點模型能有效縮短80%以上訓練所需的時間。
關(guān)鍵詞:臺標識別;卷積神經(jīng)網(wǎng)絡;遞進;并行;Spark
1臺標識別
電視臺臺標作為一個電視臺的標識,其中包含了許多重要的信息,臺標是一個電視臺聲明版權(quán)的方式,通過對臺標的識別,能夠?qū)崿F(xiàn)視頻的分析、理解以保證播出的電視信號不會受到非法的干擾[1-2]。此外,也能借助對于臺標的識別進而統(tǒng)計電視臺的收視率,或?qū)τ脩舻氖找曅袨檫M行分析,對電視臺播放節(jié)目具有指導意義。
目前我國電視臺現(xiàn)行臺標按照透明度可劃分為不透明臺標和半透明臺標,按照臺標的位置、顏色是否隨時間變化可劃分為固定臺標和動態(tài)臺標,圖1所示為幾個常見的臺標。
圖1 常見臺標示例
對于臺標識別的研究,國內(nèi)已經(jīng)有過一些相關(guān)的文獻,傳統(tǒng)的算法需先對臺標進行分割處理,臺標分割的過程多基于視頻流幀間做差[3],這種方法不能應用于實時檢測的場景中。一些識別算法無法對臺標的位移、傾斜、顏色改變等做出正確的識別,這使其無法應用于對動態(tài)臺標的識別中。
本文針對以上算法所存在的弊端,提出一種改進的卷積神經(jīng)網(wǎng)絡算法對臺標進行識別。首先闡述卷積神經(jīng)網(wǎng)絡算法用于臺標識別的優(yōu)勢,并通過對卷積神經(jīng)網(wǎng)絡算法的改進,進一步提升臺標識別的正確率。針對訓練卷積神經(jīng)網(wǎng)絡模型耗時長的弊端,提出運用Spark并行計算框架對網(wǎng)絡進行并行化處理,以加快網(wǎng)絡模型的訓練速度。最后通過大量的實驗對上述算法的有效性進行驗證,得出相關(guān)結(jié)論。
2神經(jīng)網(wǎng)絡在臺標識別中的應用
本文選取神經(jīng)網(wǎng)絡作為臺標識別的基礎算法。不同于一般的圖像識別匹配算法(如模板匹配法等),其將圖像的訓練和識別過程相分離[4],通過訓練好的模型對待測的圖標進行識別,能夠有效降低識別過程的計算量,因此具有較快的識別速度。此外,神經(jīng)網(wǎng)絡模型具有學習能力,通過對大量樣本數(shù)據(jù)的訓練,具有較好的自適應能力,可以有效應對各種復雜條件下的臺標進行識別。
卷積神經(jīng)網(wǎng)絡作為神經(jīng)網(wǎng)絡的一個分支,與普通神經(jīng)網(wǎng)絡結(jié)構(gòu)相比,很大的不同點在于其權(quán)值共享網(wǎng)絡結(jié)構(gòu),能有效降低網(wǎng)絡模型復雜度。權(quán)值共享網(wǎng)絡結(jié)構(gòu)在對臺標進行識別時具有特殊的優(yōu)勢,能將臺標圖像直接輸入到網(wǎng)絡中,避免了傳統(tǒng)的識別算法的顯式特征提取和數(shù)據(jù)重建的過程。由于同一特征映射面上的神經(jīng)元權(quán)值相同,使得網(wǎng)絡模型可以并行化學習。卷積神經(jīng)網(wǎng)絡這種結(jié)構(gòu)使其具有識別速度快,識別正確率高,對諸如縮放、傾斜、平移等形式的變形具有高度不變性。
卷積神經(jīng)網(wǎng)絡對圖像的特征提取是通過卷積和采樣過程來實現(xiàn)的,卷積層的作用是對臺標特征的提取,在臺標圖像中可能代表一段線段,一個角點等。采樣層的作用為混淆特征的具體位置,這種混淆具體位置的方法能有效應對扭曲及變形。一個卷積神經(jīng)網(wǎng)絡通過卷積層提取低級的特征,再通過采樣層組合成更抽象的特征,形成圖像的特征描述,最終通過激活函數(shù)對臺標進行識別與分類。圖2為LeNet-5結(jié)構(gòu)的卷積神經(jīng)網(wǎng)絡結(jié)構(gòu)示意圖。
圖2 LeNet-5 結(jié)構(gòu)卷積神經(jīng)網(wǎng)絡(截圖)
本文提出的遞進卷積神經(jīng)網(wǎng)絡模型是在卷積神經(jīng)網(wǎng)絡模型的基礎上,受boosting思想的啟發(fā),先對臺標數(shù)據(jù)集進行篩選,分為常規(guī)樣本和偏差樣本,分別用這兩類樣本訓練各自模型網(wǎng)絡,使這兩個模型分別具有泛化性和特異性,泛化性模型能有效識別較為清晰,具有普遍性的臺標數(shù)據(jù)集,特異性模型能提升對數(shù)據(jù)集中圖像質(zhì)量不佳的臺標的識別率。這使得改進的模型相比于一般的卷積神經(jīng)網(wǎng)絡能夠更有針對性地識別各種情況下的臺標數(shù)據(jù)集,提升算法的魯棒性。又因為在模型訓練過程中移除了部分偏差數(shù)據(jù)集,加快模型的收斂速度,縮短了訓練所需的時間。
3遞進卷積神經(jīng)網(wǎng)絡的臺標識別算法實現(xiàn)
3.1卷積神經(jīng)網(wǎng)絡的搭建
卷積神經(jīng)網(wǎng)絡算法包括參數(shù)的初始化,前向傳播輸出激活值和誤差,通過反向傳播將誤差由后至前傳播到各層,通過BP算法更新權(quán)重矩陣。前向傳播和后向傳播不斷迭代以縮小輸出誤差。
3.1.1神經(jīng)網(wǎng)絡的初始化和參數(shù)設定
采取隨機初始化卷積層和輸出層的卷積核,并將偏置全部置為0。樣本的訓練次數(shù)由兩個條件決定,當所訓練的樣本全部分對類別或訓練次數(shù)超過20次時停止。學習速率定為0.01,衰減系數(shù)為0.9。本文訓練樣本選用自建的臺標圖庫,大小為152×52像素,并將RGB圖像通過式(1)轉(zhuǎn)換為灰度圖像。
Y=0.299×R+0.587×G+0.114×B
(1)
3.1.2前向傳輸計算
前向傳輸計算如圖3所示。
圖3 前向傳輸示意圖
輸入層:將預處理過的臺標灰度圖(152×52像素)輸入到神經(jīng)網(wǎng)絡輸入層中。
卷積層、采樣層:C1層通過6個5×5的卷積核對輸入圖像進行卷積處理,生成14張148×48的特征圖。S2層對C1層每次用一個2×2的像素區(qū)域進行采樣,生成6張74×24的特征圖,C3層將S2的特征圖按表1所示,用1個輸入層為150(5×5×6)個節(jié)點、輸出層為16個節(jié)點的網(wǎng)絡進行卷積,生成16張70×20的特征圖。S4層重復S2層的步驟,生成16張35×10的特征圖,最后S4層與輸出層全連接,通過sigmoid激活函數(shù),輸出分類結(jié)果。
表1 LeNet5的連接表
注:表中N行M列的“1”表示C2層的第N個單元與C3層的第M個單元存在連接,“0”代表兩者間無連接。
3.1.3反向傳輸調(diào)整權(quán)重
采用BP算法進行反向誤差傳遞[5],依次從(輸出層-S4-C3-S2-C1)反向更新模型權(quán)值和卷積核。
3.2基于遞進分類思想的卷積神經(jīng)網(wǎng)絡臺標識別算法
對卷積神經(jīng)網(wǎng)絡進行訓練時,經(jīng)常會遇到因為訓練集樣本質(zhì)量的原因?qū)е律窠?jīng)網(wǎng)絡收斂速度慢、難以收斂的情況。這對于臺標的識別尤其明顯,臺標樣本的質(zhì)量受到多重因素的影響,臺標過于透明、背景顏色與臺標顏色過于接近、干擾信號等都會對臺標的訓練過程產(chǎn)生不利的影響。針對這種情況,本文提出一種遞進卷積神經(jīng)網(wǎng)絡臺標識別算法。
遞進卷積神經(jīng)網(wǎng)絡模型是由兩個單獨的卷積神經(jīng)網(wǎng)絡模型通過級聯(lián)組合而成,首先對第一級網(wǎng)絡模型進行訓練,記錄樣本通過模型輸出時分類的對錯,設定一個閾值α,每一輪的訓練結(jié)束時統(tǒng)計樣本連續(xù)分錯的次數(shù),當連續(xù)分錯的次數(shù)大于閾值α時,將其歸類為偏差樣本,將其從訓練的總體樣本中剔除出來。用余下的數(shù)據(jù)繼續(xù)訓練該卷積神經(jīng)網(wǎng)絡模型,重復以上步驟直到第一級網(wǎng)絡模型的訓練達到要求,然后再創(chuàng)建一個二級卷積神經(jīng)網(wǎng)絡,其網(wǎng)絡模型的結(jié)構(gòu)與第一級的網(wǎng)絡結(jié)構(gòu)相同,不同的是訓練該卷積神經(jīng)網(wǎng)絡模型的數(shù)據(jù)是之前訓練過程中所剔除出來的偏差樣本。訓練過程如圖4a所示。
當需要對臺標進行識別時,讓樣本先通過一級網(wǎng)絡模型,輸出層通過激活函數(shù)得到對應每個類別的輸出值,此時并不直接以最大的輸出值對應的分類作為該樣本的最終分類,而是通過設定一個閾值β,當輸出類別對應輸出值大于β時,輸出一級網(wǎng)絡模型的分類結(jié)果,當輸出類別對應的輸出值小于β時,將該臺標數(shù)據(jù)通過二級網(wǎng)絡模型,再設定一個閾值β′,當從二級網(wǎng)絡模型輸出的值大于β′時,輸出二級網(wǎng)絡模型的分類結(jié)果,否則判定該樣本為問題樣本,不予分類。識別過程如圖4b所示。
圖4 卷積神經(jīng)網(wǎng)絡訓練及預測模塊
遞進卷積神經(jīng)網(wǎng)絡模型所包含的兩個網(wǎng)絡模塊中的一級模型為基于總體大部分常規(guī)樣本訓練而成,此模型對一般的臺標數(shù)據(jù)更具有普遍性,能夠有效識別樣本中比較清晰的臺標數(shù)據(jù),二級模型為基于偏差樣本數(shù)據(jù)訓練而成,此模型能更有效地針對一些特殊情況(背景顏色與臺標過于接近、信號干擾、半透明臺標等)時的臺標樣本,對這類臺標的識別具有特異性。
此外,為了獲得更好的分類效果,在表1的基礎上,通過改變C3層和S2層的連接方式,擴展卷積神經(jīng)網(wǎng)絡結(jié)構(gòu),以達到更好的分類效果,本文所使用的C3和S2層的連接方式如表2所示。
4基于Spark的并行遞進卷積神經(jīng)網(wǎng)絡
隨著信息化社會的快速發(fā)展,越來越多的數(shù)據(jù)需要被處理,而傳統(tǒng)的串行處理模式已經(jīng)不能滿足人們的需求。以卷積神經(jīng)網(wǎng)絡為例,用串行方法訓練一個大規(guī)模數(shù)據(jù)集時,往往需要幾天甚至幾星期的時間[6]。并行化卷積神經(jīng)網(wǎng)絡勢在必行。本文提出一種基于Spark的并行遞進卷積神經(jīng)網(wǎng)絡模型,利用其基于內(nèi)存的迭代計算方式,有效避免了不必要的磁盤I/O開銷,加速了迭代的速度。
Spark誕生于伯克利大學AMPLab實驗室。其最重要的特性是創(chuàng)新性的提出了RDD(Resilient Distributed Datasets)的概念,Spark的計算操作全部基于對RDD的轉(zhuǎn)換操作和行動操作上,其對RDD的轉(zhuǎn)化操作采用的是懶策略,轉(zhuǎn)換操作并不會觸發(fā)任務的執(zhí)行,只有當RDD執(zhí)行行動操作時才會將RDD持久化起來,這一特性可以避免不必要的磁盤I/O消耗。
基于Spark的并行化遞進卷積神經(jīng)網(wǎng)絡臺標識別算法采用主從架構(gòu),其與串行算法最大的不同之處在于其權(quán)重矩陣和偏置的更新方式上。在BP算法中,如果每輸入一個訓練樣本,都進行回傳誤差并調(diào)整權(quán)值進行網(wǎng)絡的更新,則稱為單樣本訓練。當所有訓練樣本全部通過輸入后再計算網(wǎng)絡的總誤差,然后根據(jù)總誤差計算各層的誤差并調(diào)整權(quán)值進行網(wǎng)絡的更新,這種累計誤差的批處理方式稱為批訓練[6]。并行模式由于特別適合處理輸出的結(jié)果與輸入順序不相關(guān)的迭代任務,而批訓練模式正是將數(shù)據(jù)按批分割,每一批的訓練并不需要用到其他批的數(shù)據(jù),故并行卷積神經(jīng)網(wǎng)絡采用的是批訓練模式。圖5所示為權(quán)重更新示意圖。
構(gòu)建基于Spark的遞進卷積神經(jīng)網(wǎng)絡時,首先將初始化過的權(quán)重矩陣及偏置轉(zhuǎn)換為廣播變量(Broadcast)廣播至各從節(jié)點,廣播變量的作用相當于全局共享變量。調(diào)度系統(tǒng)將作業(yè)拆分成不同階段的具有依賴關(guān)系的多批任務,并制定任務之間的邏輯關(guān)系,主節(jié)點根據(jù)從節(jié)點的資源使用情況進行任務調(diào)度[7]。各從節(jié)點接收任務后開始執(zhí)行任務,首先執(zhí)行前向傳輸,批量計算樣本總體誤差,并將批量誤差反饋給主節(jié)點,由主節(jié)點再開一個進程,規(guī)約從節(jié)點傳來的誤差,執(zhí)行反向傳播,對各層的權(quán)重矩陣和偏置進行更新,并將其重新廣播至各從節(jié)點上,以此完成一輪的迭代工作。重復以上步驟,直到遞進卷積神經(jīng)網(wǎng)絡模型訓練完成。程序流程圖如圖6所示。
表2 改進的C3和S2層的連接方式
圖5 基于Spark的并行遞進卷積神經(jīng)網(wǎng)絡權(quán)重更新示意圖
圖6 基于Spark的并行遞進卷積神經(jīng)網(wǎng)絡程序流程圖
5設計與結(jié)果分析
5.1實驗數(shù)據(jù)庫構(gòu)建
本文所使用的臺標來源于自建的臺標數(shù)據(jù)庫,數(shù)據(jù)庫中有10個電視臺的臺標,每個電視臺分別有1 000張樣本數(shù)據(jù),將樣本按照9∶1的比例劃分為訓練集和與測試集,并將臺標轉(zhuǎn)換為灰度圖像,如圖7所示為文本用于訓練的部分臺標樣本集。
圖7 自建臺標數(shù)據(jù)庫圖像
5.2現(xiàn)有研究條件和基礎
硬件環(huán)境:9個Dell R720服務器(4核,32 Gbyte內(nèi)存),包括1個主節(jié)點和8個從節(jié)點。
軟件環(huán)境:spark 1.4.1并行計算框架,MATLAB 2014Ra,HDFS分布式文件系統(tǒng)。
5.3實驗結(jié)果
5.3.1臺標檢測正確率
將10個電視臺的9 000張訓練集數(shù)據(jù)分別輸入普通卷積神經(jīng)網(wǎng)絡和遞進卷積神經(jīng)網(wǎng)絡中,訓練次數(shù)定為20次,遞進卷積神經(jīng)網(wǎng)絡中的閾值設置如下:α設為5,β設為0.9,β′設為0.75。當網(wǎng)絡達到訓練次數(shù)或者將訓練的臺標全部分對類別時停止訓練,將測試臺標集依次輸入訓練好的兩個模型中進行測試,采用的評價指標為準確率和召回率兩種,如表3所示。
準確率的公式定義為
Ppre=TP/(TP+FP)
(2)
召回率的公式定義為
Prec=TP/(TP+FN)
(3)
表3 評價指標
準確率給出的是預測為正例的樣本中真正為正例的比例,召回率給出的是預測為正例的真實正例占所有真實正例的比例。
實驗結(jié)果如表4、表5所示。
表4 普通卷積神經(jīng)網(wǎng)絡測試準確率
表5 遞進卷積神經(jīng)網(wǎng)絡測試準確率
實驗表明,使用普通的卷積神經(jīng)網(wǎng)絡對臺標進行識別時準確率和召回率總體能達到98.1%,其對不透明臺標的識別率較好,達到98.8%,但對于半透明臺標的識別率較低,僅為97%,平均每幀圖像的識別速度為80.7 ms。采用級聯(lián)模式的遞進卷積神經(jīng)網(wǎng)絡識別率由98.1%提升為99.2%,其中不透明臺標的識別率由98.8%提升到99.5%,半透明臺標的識別率由97%提升為98.75%。由于增加了級聯(lián)模塊,平均每幀圖片的識別時間由80.7 ms延至149.7 ms。
5.3.2神經(jīng)網(wǎng)絡并行化
本次測試分別使用單個從節(jié)點、2個從節(jié)點、4個從節(jié)點和8個從節(jié)點的Spark集群訓練遞進卷積神經(jīng)網(wǎng)絡,測試模型訓練所需要的時間。樣本數(shù)據(jù)為自建的臺標數(shù)據(jù)庫,共有9 000個臺標樣本,訓練終止條件為訓練超過指定次數(shù)或訓練的數(shù)據(jù)全部分對類別時停止。試驗結(jié)果如表6和圖8所示。
表6 多節(jié)點并行卷積神經(jīng)網(wǎng)絡訓練用時
圖8 多節(jié)點并行化遞進卷積神經(jīng)網(wǎng)絡訓練用時及加速比
由實驗結(jié)果可以看出,并行化卷積神經(jīng)網(wǎng)絡可以有效縮減訓練模型所需要的時間,且集群中從節(jié)點越多時加速效果越明顯,兩者基本成正比關(guān)系。
6結(jié)束語
本文將改進的卷積神經(jīng)網(wǎng)絡模型運用于臺標的識別中,通過對大量樣本的訓練,識別率達到99.2%,與普通卷及神經(jīng)網(wǎng)絡相比,對于半透明臺標的識別率提升尤其明顯。模型訓練完成后平均每張圖片的識別時間平均為150 ms右,識別率和識別速度較傳統(tǒng)臺標識別的算法有顯著提升。面對訓練卷積神經(jīng)網(wǎng)絡模型所需時間較長的缺點,創(chuàng)新性的運用Spark并行計算框架將卷積神經(jīng)網(wǎng)絡并行化處理,取得了較高的加速比。其優(yōu)異的識別率和相對較小的訓練時間成本使其能夠真正運用于大數(shù)據(jù)時代海量的圖像識別領(lǐng)域中。
參考文獻:
[1]張重德.電視信號自動監(jiān)測與報警系統(tǒng)[D].合肥:合肥工業(yè)大學,2008.
[2]張重德,張崇巍.電視信號臺標檢測原理與實現(xiàn)[J].合肥工業(yè)大學學報,2009(12):1816-1819.
[3]周獻中,史迎春,王韜.基于HSV顏色空間加權(quán)Hu不變矩的臺標識別[J].南京理工大學學報(自然科學版),2005(3):363-367.
[4]張博洋,曾向榮,劉振中. 基于神經(jīng)網(wǎng)絡的靜態(tài)臺標識別系統(tǒng)設計與實現(xiàn)[J].計算機仿真 2009,26(1):2012-215.
[5]LECUN Y,BOTTOU L,ORR G B.Efficient backprop,neural networks:tricks of the trade[M].Berlin Heidelberg:Springer,1998.
[6]劉進鋒.一種簡潔高效的加速卷積神經(jīng)網(wǎng)絡的方法[J].計算機技術(shù),2014(33):240-244.
[7]高彥杰.Spark大數(shù)據(jù)處理:技術(shù)、應用與性能優(yōu)化[M].北京:機械工業(yè)出版社, 2014.
責任編輯:時雯
Channel logo recognition based on progressive convolutional neural networks and its spark implementation
XU Zili,YAO Jianmin,GUO Tailiang
(National&LocalUnitedEngineeringLaboratoryofFlatPanelDisplayTechnology,F(xiàn)uzhouUniversity,F(xiàn)uzhou350002,China)
Abstract:Referring to the character of channel logo, a channel logo recognition based on progressive convolutional neural networks is proposed. The network is not only have convolution layer and sampling layer to implicit extract image features but also includes the generalization module and subject-specific modules. Because of problems of time-consuming is too large for training serial convolution neural network, a parallel progressive convolutional neural networks algorithm based on Spark is proposed, which uses data sharing and batch mode. Experiments show that the performance of the channel logo recognition has been well improved,the method achieves 98% correct recognition rate, multi-node parallelism convolution neural network can shorten more than 80% training time.
Key words:channel logo recognition; convolutional neural network; progressive; parallel; Spark
中圖分類號:TP751
文獻標識碼:A
DOI:10.16280/j.videoe.2016.05.015
基金項目:國家“863”重大科技專項(2013AA030601);福建省科技重大專項(2014HZ0003-1)
收稿日期:2015-09-21
文獻引用格式:許子立,姚劍敏,郭太良.基于遞進卷積神經(jīng)網(wǎng)絡的臺標識別及其并行化[J].電視技術(shù),2016,40(5):67-73.
XU Z L,YAO J M,GUO T L.Channel logo recognition based on progressive convolutional neural networks and its spark implementation[J].Video engineering,2016,40(5):67-73.