劉益成,于 龍,高仕斌,龐鴻宇
(西南交通大學 電氣工程學院,四川 成都 610031)
接觸網(wǎng)安全巡檢關系到高速鐵路系統(tǒng)安全和國家經(jīng)濟發(fā)展,保證接觸網(wǎng)系統(tǒng)的安全對于高速鐵路可靠運行具有十分重要的意義。然而接觸網(wǎng)設備露天設置、工作環(huán)境惡劣且沒有備用[1],要杜絕安全隱患無疑是一個極大的挑戰(zhàn)。為了保障高鐵受電弓-接觸網(wǎng)系統(tǒng)的運行安全,高速鐵路部門廣泛采用了6C系統(tǒng)(高速鐵路供電安全檢測監(jiān)測系統(tǒng))。其中2C系統(tǒng)[2](接觸網(wǎng)安全巡檢裝置)采用便攜設備對接觸網(wǎng)的狀態(tài)及外部環(huán)境進行視頻采集,通過圖像處理技術分析視頻,以確定接觸懸掛部件狀態(tài)[3],然后優(yōu)先檢測易出現(xiàn)故障的接觸網(wǎng)場景中的接觸網(wǎng)部件。因此針對巡檢視頻中接觸網(wǎng)所處場景的準確分類成為一個必要的任務。
目前的視頻圖像分類方法主要是逐幀分類,對單幀圖像采用圖像分割或特征提取算法得到特征表達向量,之后將視頻的所有幀特征進行聚合輸入到分類器中。文獻[4]針對人體運動識別,根據(jù)3D可控濾波器估算時空定向能量生成具有高運動顯著性的大量3D區(qū)域,使用HOE(時空定向能量直方圖)、HOG(梯度直方圖)表示視頻幀的特征,再通過SVM(支持向量機)對人體運動進行分類。Wang等[5]利用光流場獲得視頻序列的軌跡,沿著視頻軌跡提取HOG、HOF(光流直方圖)、MBH(光流梯度直方圖)等多種特征,然后將特征編碼后送入分類器進行視頻分類,然而這些特征都是由人工設計的傳統(tǒng)特征,較難捕捉高級語義信息。Karpathy等[6]首先訓練CNN(卷積神經(jīng)網(wǎng)絡),然后從不同分辨率的視頻中提取不同尺度的特征,從而構建了一個多分辨率的架構進行視頻片段分類,但這個方法只適用于幀數(shù)固定的片段。Karen等[7]針對捕捉視頻人體動作與靜態(tài)背景的關系,在3D卷積神經(jīng)網(wǎng)絡中引入時間關系,但這種方法需要在網(wǎng)絡訓練之前對視頻進行分段,難以處理時間序列較長的視頻。在文本識別與自然處理領域,CRNN(Convolutiona Recurrent Neural Network)[8]將從CNN部分輸出的特征圖中提取的特征向量作為RNN(循環(huán)神經(jīng)網(wǎng)絡)部分的單元輸入,每一個特征向量在特征圖上按空間位置從左到右生成,這種方法可以利用RNN解決空間序列問題,但并不適用于視頻場景分類這類時間序列問題。在機器翻譯領域,對序列信息有著高效挖掘能力的注意力(Attention)機制被廣泛應用于語音識別、文本分析中[9-12],但未被應用于視頻場景分類領域。
針對鐵路領域的場景分割,王洋等[13]采用卷積神經(jīng)網(wǎng)絡,基于單一圖像幀對軌道區(qū)域、天空、接觸網(wǎng)等多個區(qū)域進行分類;徐凡等[14]根據(jù)有砟、無砟場景的不同特征,由邊緣檢測繪出方向統(tǒng)計直方圖來區(qū)分圖像幀中的有砟、無砟場景;李家才等[15]針對鐵路視頻場景入侵目標的分類,根據(jù)相對背景差分法區(qū)分出視頻中的運動目標與背景,提取目標特征進行跟蹤,并實現(xiàn)對入侵運動目標的分類。然而這些方法均缺乏對圖像時序特征的考慮,無法解決針對鐵路場景下的對整個視頻圖像序列的分類任務。
為解決鐵路視頻場景的分類問題,本文根據(jù)鐵路巡檢視頻的場景特點與場景幀之間的變化規(guī)律,采用深度學習技術,對巡檢視頻中4種不斷交替變化場景的分類方法展開研究,提出針對性的圖片預處理方式,在不損失關鍵信息的前提下縮小視頻幀大小,采用預訓練的Inception-v3網(wǎng)絡[16]提取視頻幀的圖像特征,并結合注意力機制的雙向GRU網(wǎng)絡分類方法,通過引進幀與周圍幀之間的相互聯(lián)系及重要程度,以提高模型對幀的分類準確率,從而提高模型場景分類的準確率與召回率,為工作人員快速準確監(jiān)測接觸網(wǎng)零部件故障提供進一步的便利。
基于注意力機制的視頻場景分類模型架構見圖1。
圖1 視頻場景分類的模型架構
給定一個視頻序列,首先按時間順序從視頻段中依次選取m個視頻幀,根據(jù)視頻幀的特點進行圖片預處理,不僅能突出原幀的關鍵信息,還能減小幀的大小從而減小后續(xù)模型的計算量。隨后依次將處理后的m個視頻幀輸入到預訓練的Inception-v3網(wǎng)絡中,以提取視頻序列中每幀圖像的特征信息。再依次將卷積神經(jīng)網(wǎng)絡輸出的視頻幀的特征信息輸入到雙向循環(huán)神經(jīng)網(wǎng)絡,加入注意力機制使模型關注到幀與相鄰幀在時序與內容上的聯(lián)系,從而找到與類別相關的有效特征,減少不相關區(qū)域對模型分類的影響。最后根據(jù)該幀屬于每個類別的概率來決定該幀真正的類別歸屬。
預訓練的卷積神經(jīng)網(wǎng)絡是將卷積神經(jīng)網(wǎng)絡在海量數(shù)據(jù)集上進行不斷訓練、調整網(wǎng)絡參數(shù)而得到的。由于海量數(shù)據(jù)涵蓋了日常所能見到的各種圖片分類,因此在此基礎上訓練出來的模型可以用于提取圖像特征。Inception-v3網(wǎng)絡是谷歌公司提出的經(jīng)典卷積神經(jīng)網(wǎng)絡,其預訓練模型是圖像提取特征的常用模型之一。
本文設計的Inception-v3網(wǎng)絡模型的結構見圖2。底層網(wǎng)絡由傳統(tǒng)的卷積神經(jīng)網(wǎng)絡組成,包含6個卷積層和2個池化層,在最后一個卷積層后接入堆疊的Inception塊。該模型去除了原有預訓練Inception-v3網(wǎng)絡的一個全連接層以及一個softmax輸出層,使其成為特征提取器。視頻中的幀經(jīng)過該特征提取器,最終得到一個2 048維向量,該向量即為Inception-v3網(wǎng)絡提取到的幀特征。
圖2 Inception-v3網(wǎng)絡模型的特征提取
在圖2所示的Inception-v3網(wǎng)絡模型中,特殊的地方在于Inception塊,這是一種網(wǎng)中網(wǎng)結構,即多個Inception塊堆疊形成一個整體結構。Inception-v3網(wǎng)絡模型包含3種不同類型的Inception塊,分別為Inception1[16]、Inception2[17]和Inception3[17],網(wǎng)絡結構見圖3。
圖3 Inception-v3網(wǎng)絡結構
1.2.1 雙向GRU編碼網(wǎng)絡
首先采用傳統(tǒng)RNN模型的變種——GRU(傳統(tǒng)門限循環(huán)單元)網(wǎng)絡,按序列順序處理由Inception網(wǎng)絡輸出的視頻幀的特征向量。GRU網(wǎng)絡由Cho等[18]于2014年提出,它能夠有效地處理長序列,識別遠距離的序列信息。提取視頻序列信息之后采用注意力機制可以提升視頻幀分類的效果。GRU單元結構見圖4。
圖4 GRU單元結構
GRU單元包含了重置門與更新門。重置門決定記憶的重組,即將上一時刻的記憶與新輸入的重新組合形成新的記憶;更新門決定帶入上一時刻記憶的比例。重置門值越小代表忽略上一時刻記憶的越多;更新門值越大代表上一時刻記憶占比越多[19]。這兩個門控向量控制GRU的輸出信息。GRU單元的結構與向前傳播式為
rt=σ(Wr×[ht-1,xt])
( 1 )
zt=σ(Wz×[ht-1,xt])
( 2 )
( 3 )
( 4 )
GRU編碼網(wǎng)絡是為了將圖片特征序列壓縮成一個固定維度的向量。在單向GRU編碼網(wǎng)絡中每個輸入的隱含狀態(tài)只壓縮了其前面輸入的信息。而對于許多序列建模任務而言,過去的信息固然很重要,但是未來信息的參與更可以使模型的準確率得到進一步提升。因此采用雙向GRU網(wǎng)絡可以實現(xiàn)同時整合過去與未來的信息。雙向GRU神經(jīng)網(wǎng)絡單元結構見圖5。
圖5 雙向GRU單元結構
1.2.2 注意力機制
注意力機制最開始啟發(fā)于人類觀察圖像的特點。人觀察圖像時,注意力不會放在每一個像素點上,而是放在圖像中某一重要部分。由此Googlemind團隊在應用循環(huán)神經(jīng)網(wǎng)絡時加入了注意力機制來學習一幅圖像中的重要部分。注意力機制第一次在自然語言處理中的應用,是在機器翻譯時使用注意力機制來將翻譯和對齊同時進行[20]。實驗證明,注意力機制的加入的確使得循環(huán)神經(jīng)網(wǎng)絡的效果得到大幅提升[21]。
在一段連續(xù)的視頻中,不同場景不斷地交替變換。當判斷其中的一幀屬于哪個場景時,除了此時幀本身所含的信息外,還需要周圍幀的信息。處于不同位置所含信息不同的周圍幀對本幀所產(chǎn)生的影響是不同的,距離近的周圍幀對此時幀影響大,距離遠但是內容很重要的幀對此時幀的影響同樣大。雙向GRU網(wǎng)絡編碼得到的此時幀的隱含狀態(tài)已包含了周圍幀在位置上對此時幀的影響(離此時幀越近的幀信息影響越大)。此時在幀所包含信息上引入注意力機制,基于周圍幀所包含的信息賦予周圍幀不同權重來表達周圍幀所含信息對于此時幀預測的重要程度,必定能提升分類器的性能。因此本文提出在雙向GRU神經(jīng)網(wǎng)絡上應用基于幀級別的注意力機制來提升幀分類效果。注意力機制網(wǎng)絡結構示意見圖6。
圖6 注意力機制網(wǎng)絡結構示意
定義視頻第i幀的類別概率向量為yi,則其中第i幀的類別j概率yij為
(5)
ti=Ws·zi+bs
(6)
zi=f(zi-1,yi-1,ci)
(7)
式中:n為共有類別;zi為i時刻的隱層狀態(tài);ti為第i幀未經(jīng)歸一化的輸出結果;f為GRU單元等效函數(shù);yi-1為i-1時刻圖片的預測結果向量;ci為i時刻包含幀與周圍幀信息的上下文向量;Ws為權重矩陣;bs為偏移向量。式(5)所示即為圖6中所示的softmax函數(shù)。
在接觸網(wǎng)安全巡檢視頻中,對不同時刻的幀而言,與它有關的周圍幀信息是不同的,因此在模型中它是動態(tài)變化的。每個幀的上下文向量ci依賴于雙向GRU網(wǎng)絡得到的隱層狀態(tài)集合(h1,…,hT),其中每個ht∈(h1,…,hT)壓縮了輸入端每個幀信息并且包含了它周圍的幀信息。對ci可以通過各個隱層狀態(tài)的加權平均得到:
( 8 )
( 9 )
( 10 )
在鐵路視頻分類的研究工作中,沒有可直接使用的圖像數(shù)據(jù)庫。本文數(shù)據(jù)集采集自6C系統(tǒng)總體技術規(guī)范中的2C系統(tǒng)所拍攝的成渝客專下行線路視頻。該視頻包含了各種情形的影像,從中截取圖像的分辨率為2 560×2 160。根據(jù)視頻的幀率,可以得到每小時有近4萬幅的圖像。在保證包含全部鐵路場景的基礎上,對視頻的內容進行了圖像采集。經(jīng)過篩選后,成功對成渝客專線路數(shù)據(jù)集的74 000幀圖片約8萬幅的圖像數(shù)據(jù)進行了逐一標注,建立了訓練和測試所需的樣本庫。然后將它們分成4類,分別為單腕臂、錨段關節(jié)、隧道和硬橫跨,見圖7。
圖7 鐵路場景視頻幀示例
在以上常見的4種場景中,硬橫跨場景包含的幀數(shù)最少,且同類別中幀之間差別小。為了避免訓練時類別樣本數(shù)量不均衡造成分類器性能下降,本文將其他場景的訓練集數(shù)量與硬橫跨場景訓練集數(shù)量保持接近。挑選出訓練集的場景幀后,將剩余的場景幀作為測試集。數(shù)據(jù)集場景類別及對應幀數(shù)量見表1。
表1 數(shù)據(jù)集場景類別及對應幀數(shù)量
注意力機制模型的基本參數(shù)設置見表2。
表2 模型設置參數(shù)
由上文可知,每幀圖像的尺寸為2 560×2 160,即每張圖像的像素點為5 529 600個。根據(jù)對于2C系統(tǒng)所拍攝視頻的先驗知識,在整個2C視頻中,所有類別片段中的圖片下半部分都共同擁有場景,且下半部分對判斷該圖片屬于哪一個類別片段并沒有幫助。為了便于后續(xù)提取圖像特征的有用信息,且減小后續(xù)模型的計算量,本文舍棄了圖片的下半部分。且在圖片的上半部分,只需要用到包含關鍵信息的部分,就足以判斷出圖片所處的片段種類,如此可以進一步縮小輸入模型的圖片的像素。視頻幀圖像示例見圖8,其中紅色區(qū)域為關鍵信息部分。
圖8 代表場景視頻幀關鍵信息的部分
在整條線路上,代表每一幀關鍵信息的部位可能位于左上1/4側,也可能位于右上1/4側,提取每張圖片關鍵部位的處理流程見圖9。
圖9 視頻幀圖像預處理流程
根據(jù)圖9計算流程得到的預處理后的輸出結果見圖10。
本文模型實際上是對視頻進行場景分類,因此可以將其視作分類問題。與傳統(tǒng)的圖片分類問題不同的是,場景分類關注的是一個片段是否被分類正確。因此這里的評價單位是一個片段而非單幀圖片,在得到幀分類結果后還需要進行進一步處理。本文定義類別同為i的連續(xù)幀稱為i類的一個片段,Qi為模型類別i的片段集合,對于預測為i類的一個片段gi,其預測正確的規(guī)則為
?p∈Qi,使得p∩gi≠?
(11)
對于模型而言,采用準確率P、召回率R和F值來作為評價指標,計算式為
(12)
(13)
(14)
P值為預測正確的片段數(shù)除以整個測試集中預測為正確的樣本總數(shù);R值為預測正確的片段數(shù)除以真實為正確樣本的數(shù)目。由于P和R是相互矛盾的一對變量,故常采用F值綜合考慮P和R,以反映模型對分類的總體情況。
本文提出的方法是在使用預訓練的Inception-v3模型提取幀特征后,利用結合注意力機制的雙向GRU網(wǎng)絡對幀進行分類,模型訓練過程中的損失曲線見圖11。
圖11 模型訓練過程的損失曲線
由圖11可見,損失曲線可在迭代50次后趨于平穩(wěn);驗證集上的損失比訓練集上的損失稍高但是沒有出現(xiàn)過擬合現(xiàn)象,證明網(wǎng)絡訓練過程有效。根據(jù)對單幀的分類預測結果,可以畫出模型的ROC(Receiver Operating Characteristic)曲線,見圖12。
圖12 單幀分類結果的ROC曲線
由圖12可以看出,本文模型的AUC值(ROC曲線下方的面積)為0.93,并且模型能在假陽率很低的同時取得十分高的真陽率,代表模型在該單幀分類問題上整體性能良好。視頻幀根據(jù)每個類別的預測概率確定最終的分類后,再按照式(11)確定片段的預測結果。其結果顯示本文模型在2C視頻場景分類問題上準確率為95.2%,召回率為97.5%。
為了比較本文提出模型的有效性,將本文的方法與單獨使用CNN(即不考慮幀之間的聯(lián)系,基于單幀進行圖像分類)和不含注意力機制的雙向GRU網(wǎng)絡方法做了對比實驗,實驗結果見表3。
表3 實驗結果對比
由表3可見:3個模型的召回率都能達到95%以上,其中循環(huán)神經(jīng)網(wǎng)絡表現(xiàn)要比卷積網(wǎng)絡稍強,這歸功于循環(huán)神經(jīng)網(wǎng)絡結合時序關系的原因;在準確率上,結合注意力機制的雙向GRU網(wǎng)絡表現(xiàn)要遠遠強于其他兩個模型,由此證明關注周圍幀所包含信息的重要程度可以提高片段分類的準確率。結合注意力機制后的模型會使得片段的預測結果更加具有連貫性,使其預測的片段數(shù)量更少,這個特性更有助于貼近實際的應用。同時由于連貫性更強,在長短片段交替時會導致一些短片段的幀在第一步預測時會被判定為前方長片段的分類,從而導致雙向GRU網(wǎng)絡在結合注意力機制后的召回率會稍低。
本文提出將加入注意力機制的雙向GRU神經(jīng)網(wǎng)絡模型用于接觸網(wǎng)2C系統(tǒng)視頻的場景分類。該模型采用預訓練好的Inception-v3模型提取幀的特征作為輸入,對輸入的幀信息采用雙向GRU網(wǎng)絡進行編碼建模,同時加入幀級別的注意力機制,利用周圍幀的有效信息來提升分類器的精度。通過與Inception-v3網(wǎng)絡及未結合注意力機制的雙向GRU網(wǎng)絡進行對比實驗,驗證了結合注意力機制的2C視頻場景分類模型效果要優(yōu)于普通的神經(jīng)網(wǎng)絡模型,具有較好的適用性和魯棒性。