祁 穎,趙 輝,張永鵬,王一力,宋亞京
(1. 北京市地鐵運(yùn)營有限公司 通信信號(hào)分公司,北京 100082;2. 北京市地鐵運(yùn)營有限公司 地鐵運(yùn)營技術(shù)研發(fā)中心,北京 100044;3. 交控科技股份有限公司 交控研究院,北京 100070)
列車檢測作為列車自動(dòng)駕駛的核心技術(shù),可以有效地降低列車追尾等事故造成的人身危險(xiǎn)和財(cái)產(chǎn)損失。隨著我國地鐵首條無人駕駛的自主化全自動(dòng)運(yùn)行系統(tǒng)(Fully Automatic Operation,F(xiàn)AO)開通[1-3],對列車檢測精準(zhǔn)性要求提高?,F(xiàn)有的自動(dòng)駕駛列車完全依賴于通信系統(tǒng),不具備前向列車識(shí)別能力,只能通過信號(hào)系統(tǒng)獲取前向列車的距離。然而,當(dāng)信號(hào)系統(tǒng)出現(xiàn)故障時(shí),列車間距就無法精準(zhǔn)地獲取,容易引發(fā)列車碰撞等交通事故,因而需要增強(qiáng)列車對周邊運(yùn)行環(huán)境的自主識(shí)別能力,有效地進(jìn)行列車識(shí)別[4-6]。研究基于圖像的列車檢測方法,采用卷積神經(jīng)網(wǎng)絡(luò)對車載圖像中前向列車進(jìn)行識(shí)別,以判斷列車前向的一定范圍內(nèi)是否存在有列車。當(dāng)列車信號(hào)系統(tǒng)故障時(shí),采用信號(hào)系統(tǒng)的備用方式,通過基于卷積神經(jīng)網(wǎng)絡(luò)的列車檢測方法識(shí)別出前方列車,從而實(shí)現(xiàn)前向列車安全防護(hù),提升列車的行車安全水平,保護(hù)乘客的出行安全。
基于卷積神經(jīng)網(wǎng)絡(luò)的列車檢測算法主要包括特征提取、列車定位及列車分類3 部分,各部分概述如下。①特征提取。采用一種改進(jìn)的卷積神經(jīng)網(wǎng)絡(luò),對輸入圖像進(jìn)行特征提取,卷積生成的特征包含物體的位置信息,并且提高了處理速度。此網(wǎng)絡(luò)由多個(gè)卷積層與池化層組建,可以從圖像中提取更有效的特征,用于候選區(qū)域檢測與分類。②列車定位。采用候選區(qū)域網(wǎng)絡(luò)從特征圖里滑動(dòng)搜索,判斷出可能為列車的區(qū)域位置,將位置信息映射到輸入圖像中,粗略定位列車區(qū)域的位置,并將其作為候選區(qū)域。③列車分類。采用快速區(qū)域卷積神經(jīng)網(wǎng)絡(luò)對每個(gè)候選區(qū)域進(jìn)行分類,并計(jì)算其所屬類別的置信度,精確定位列車,實(shí)現(xiàn)列車檢測。基于卷積神經(jīng)網(wǎng)絡(luò)的列車檢測算法框架示意圖如圖1 所示。
為實(shí)現(xiàn)對圖像中列車的識(shí)別,從特征提取結(jié)構(gòu)及特征圖級(jí)聯(lián)2 個(gè)部分對列車區(qū)域進(jìn)行特征提取。
1.2.1 特征提取結(jié)構(gòu)
特征提取結(jié)構(gòu)主要用于在單個(gè)網(wǎng)絡(luò)層中提取圖像特征,主要包括有C.ReLU激活函數(shù)和Inception[7]結(jié)構(gòu)。C.ReLU激活函數(shù)應(yīng)用在低層的網(wǎng)絡(luò)中,先將上一層網(wǎng)絡(luò)的通道數(shù)減少一半,然后將下一層網(wǎng)絡(luò)神經(jīng)元激活前的輸出和其相反數(shù)進(jìn)行級(jí)聯(lián)使輸出變成雙倍,計(jì)算速度提升一倍[8]。Inception 結(jié)構(gòu)應(yīng)用在高層的網(wǎng)絡(luò)中,通過控制卷積核尺寸來提升對小目標(biāo)檢測的性能。
1.2.2 特征圖級(jí)聯(lián)
特征圖級(jí)聯(lián)主要用于將多層特征進(jìn)行融合,結(jié)合高層特征的語義信息和低層特征的細(xì)節(jié)紋理信息,將不同網(wǎng)絡(luò)層提取的特征進(jìn)行融合,從而實(shí)現(xiàn)在最終的網(wǎng)絡(luò)輸出中既包含有高層特征語義信息,也包含有低層細(xì)節(jié)紋理信息。特征圖級(jí)聯(lián)網(wǎng)絡(luò)結(jié)構(gòu)如表1 所示。卷積3_4 層使用最大值池化,卷積層5_4 使用雙線性插值算法進(jìn)行上采樣,再將兩者與卷積層4_4 結(jié)合,經(jīng)過1×1 的卷積后生成512 通道的多尺度輸出特征作為候選區(qū)域網(wǎng)絡(luò)的輸入。這種方法有利于提高目標(biāo)檢測的正確率和定位精度。
圖1 基于卷積神經(jīng)網(wǎng)絡(luò)的列車檢測算法框架示意圖Fig.1 Framework of train detection algorithm based on convolutional neural network
為實(shí)現(xiàn)列車在圖像中的坐標(biāo)位置輸出,需要對列車在圖像中的位置進(jìn)行精準(zhǔn)檢測,研究應(yīng)用候選區(qū)域網(wǎng)絡(luò),并通過設(shè)計(jì)候選區(qū)域網(wǎng)絡(luò)損失函數(shù)實(shí)現(xiàn)列車的精準(zhǔn)定位。
1.3.1 候選區(qū)域網(wǎng)絡(luò)
候選區(qū)域網(wǎng)絡(luò)主要在特征圖上滑動(dòng)窗口,獲得特征向量,并將其輸出給2 個(gè)同級(jí)的全連接的層:包圍盒回歸層和包圍盒分類層,實(shí)現(xiàn)分類和回歸。分類分出目標(biāo)和非目標(biāo);回歸給出包圍盒的位置。對每一個(gè)滑動(dòng)窗口采用多尺度的候選框機(jī)制,得到多種尺度和多種長寬比的k個(gè)候選框?;貧w層有4k個(gè)輸出,即k個(gè)候選框的坐標(biāo)編碼。分類層通過對每k個(gè)候選框使用softmax函數(shù)進(jìn)行目標(biāo)與非目標(biāo)的概率估計(jì)輸出2k個(gè)得分。
softmax函數(shù)將多個(gè)標(biāo)量映射為一個(gè)概率分布。對于k個(gè)候選框x1,x2,…,xk,softmax函數(shù)定義為
表1 特征圖級(jí)聯(lián)網(wǎng)絡(luò)結(jié)構(gòu)表Tab.1 Table of the feature map Cascade network
通過候選區(qū)域網(wǎng)絡(luò),得到一系列被框選的、帶有目標(biāo)得分的候選區(qū)域,此區(qū)域即為列車候選區(qū)域。
1.3.2 候選區(qū)域網(wǎng)絡(luò)的損失函數(shù)
給每個(gè)候選框分配一個(gè)二進(jìn)制的標(biāo)簽,也可稱為正標(biāo)簽和負(fù)標(biāo)簽。為2 類候選框分配正標(biāo)簽:與某個(gè)真實(shí)區(qū)域包圍盒有最大IoU值(2 個(gè)區(qū)域的交集面積與并集面積之比);與任意真實(shí)區(qū)域包圍盒的IoU值大于0.7。為所有與真實(shí)區(qū)域IoU值低于0.3 的候選框分配負(fù)標(biāo)簽。候選區(qū)域網(wǎng)絡(luò)的損失函數(shù)定義為
式中:C(pi,ti)為候選區(qū)域網(wǎng)絡(luò)的總體損失;Ncls為小批量數(shù)據(jù)的個(gè)數(shù),取256;Nreg為歸一化回歸損失的參數(shù),取2 400;λ為平衡分類損失和回歸損失的權(quán)重,取10;i為一次批量迭代中選取的候選框索引;pi為候選框是目標(biāo)的概率;為候選框?qū)?yīng)的真實(shí)區(qū)域標(biāo)簽;ti為預(yù)測的包圍盒的4 個(gè)參數(shù)化坐標(biāo)向量;為相對應(yīng)的真實(shí)區(qū)域包圍盒的坐標(biāo)向量;為2 個(gè)類別的對數(shù)損失;為回歸損失;為預(yù)測的列車框坐標(biāo)與真實(shí)的列車框坐標(biāo)的差值。
為了判斷每個(gè)候選區(qū)域是否為真實(shí)的列車,需要通過列車分類進(jìn)行進(jìn)一步驗(yàn)證。研究采用快速卷積神經(jīng)網(wǎng)絡(luò)列車分類算法實(shí)現(xiàn)列車分類,具體包括列車分類算法及損失函數(shù)設(shè)計(jì)。
1.4.1 列車分類算法
采用一種與候選區(qū)域網(wǎng)絡(luò)共享特征提取網(wǎng)絡(luò)的快速區(qū)域卷積神經(jīng)網(wǎng)絡(luò)算法進(jìn)行列車分類。訓(xùn)練時(shí),將標(biāo)注的數(shù)據(jù)集輸入特征提取網(wǎng)絡(luò),生成卷積特征圖。將候選區(qū)域映射到特征圖中,獲取特征信息,并對該信息進(jìn)行池化運(yùn)算,得到一個(gè)大小為7×7 的特征池化圖,全連接獲取一個(gè)4 096 維的特征向量,該向量即候選區(qū)域的最終特征。將此特征向量分別輸入到分類與回歸中,利用非極大值抑制法判斷出候選區(qū)域的目標(biāo)類別與位置。利用判斷值與實(shí)際標(biāo)注值之間的差別得到損失函數(shù),利用反向傳播算法與隨機(jī)梯度下降法對網(wǎng)絡(luò)參數(shù)結(jié)構(gòu)進(jìn)行優(yōu)化,得到輸出網(wǎng)絡(luò)。測試時(shí),將待測圖像輸入到網(wǎng)絡(luò),輸出列車的分類和定位結(jié)果。
1.4.2 損失函數(shù)設(shè)計(jì)
快速區(qū)域卷積神經(jīng)網(wǎng)絡(luò)可以對候選區(qū)域輸出k+ 1 類目標(biāo)(包含背景)的概率及回歸后的包圍盒坐標(biāo)。對每一個(gè)候選區(qū)域定義損失函數(shù)為
式中:L(p,u,t u,t*)為列車分類的損失函數(shù),p為預(yù)測的目標(biāo)類別,u為真實(shí)的目標(biāo)類別,t u為預(yù)測的包圍框坐標(biāo),t*為候選區(qū)域?qū)?yīng)的真實(shí)目標(biāo)包圍盒的參數(shù)坐標(biāo)向量;Lcls(p,u)為候選區(qū)域?qū)?yīng)的真實(shí)目標(biāo)類別u的對數(shù)損失,Lcls(p,u) = -logpu;Lloc(t u,t*)為包圍盒坐標(biāo)的回歸損失,Lloc(t u,t*)為所有的目標(biāo)坐標(biāo)差值,
以北京地鐵10 號(hào)線列車為例,在對列車特征提取、列車定位、列車分類進(jìn)行分析的基礎(chǔ)上,驗(yàn)證基于卷積神經(jīng)網(wǎng)絡(luò)列車檢測算法在不同場景下對前向列車的檢測性能。
為證明所提出的特征提取算法的有效性,在特征提取網(wǎng)絡(luò)中分別通過增加特征圖級(jí)聯(lián)和刪除特征圖級(jí)聯(lián)來進(jìn)行模型訓(xùn)練,從而對比特征圖級(jí)聯(lián)對列車特征提取的影響。
通過對比試驗(yàn)發(fā)現(xiàn),增加特征圖級(jí)聯(lián)后模型的收斂時(shí)間較沒有增加特征圖級(jí)聯(lián)前縮短2/3,有效地證明了特征圖級(jí)聯(lián)可提升模型訓(xùn)練速度。此外,通過對比增加特征圖級(jí)聯(lián)前后的效果發(fā)現(xiàn),增加特征圖級(jí)聯(lián)后,模型的精度提升2 個(gè)百分點(diǎn),有效地證明了特征圖級(jí)聯(lián)網(wǎng)絡(luò)對列車提取的精度影響。
為證明所應(yīng)用的候選區(qū)域網(wǎng)絡(luò)對列車定位的影響,在列車定位中通過在候選區(qū)域網(wǎng)絡(luò)中設(shè)置不同的候選框進(jìn)行模型訓(xùn)練,從而對比候選區(qū)域網(wǎng)絡(luò)中候選框的大小設(shè)置對列車定位的影響,同時(shí)確定最優(yōu)的候選框設(shè)置個(gè)數(shù)。候選區(qū)域網(wǎng)絡(luò)示意圖如圖2所示,對輸入的圖像首先生成k個(gè)候選框,并通過滑動(dòng)窗口在特征圖中生成對應(yīng)的特征向量,從而分別輸出給分類層和回歸層。在實(shí)驗(yàn)中,通過設(shè)置不同尺度和不同大小的候選框進(jìn)行對比試驗(yàn),設(shè)置候選框的個(gè)數(shù)分別為3 個(gè)、6 個(gè)、9 個(gè)及12 個(gè),即基礎(chǔ)候選框的個(gè)數(shù)為3 個(gè),基于3 個(gè)基礎(chǔ)候選框,后續(xù)在不同尺度特征圖上進(jìn)行候選框擴(kuò)增,從而生成6 個(gè)、9 個(gè)及12 個(gè)候選框。
通過對比試驗(yàn)結(jié)果發(fā)現(xiàn),候選框的個(gè)數(shù)越多,列車的定位效果越好,但候選框個(gè)數(shù)增加到一定個(gè)數(shù)后,即候選框的個(gè)數(shù)增加到9 個(gè)后,列車定位效果基本趨于飽和。也說明當(dāng)候選框的個(gè)數(shù)達(dá)到9個(gè)后,基本覆蓋了列車可能的姿態(tài)信息,即在候選區(qū)域網(wǎng)絡(luò)中選用9 個(gè)候選框即可達(dá)到最優(yōu)效果。
圖2 候選區(qū)域網(wǎng)絡(luò)示意圖Fig.2 Network of region proposal networks
為證明所應(yīng)用的快速區(qū)域卷積神經(jīng)網(wǎng)絡(luò)對列車分類的影響,在列車分類網(wǎng)絡(luò)中通過選取不同的分類網(wǎng)絡(luò)進(jìn)行模型訓(xùn)練并進(jìn)行列車分類測試,從而驗(yàn)證提出的列車檢測算法中快速區(qū)域卷積神經(jīng)網(wǎng)絡(luò)對列車分類效果的影響。
在對比測試中,通過增加快速區(qū)域卷積神經(jīng)網(wǎng)絡(luò)和將快速區(qū)域卷積神經(jīng)網(wǎng)絡(luò)替換為常見的分類網(wǎng)絡(luò)即全卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行模型對比,通過實(shí)驗(yàn)結(jié)果可發(fā)現(xiàn),快速區(qū)域卷積神經(jīng)網(wǎng)絡(luò)對列車分類效果較好,可有效地區(qū)分出背景與列車。
在列車擋風(fēng)玻璃處安裝工業(yè)相機(jī),相機(jī)的分辨率為1280×720 pt,相機(jī)采集幀率為10 Hz,基于此相機(jī)采集真實(shí)列車運(yùn)行視頻,并對采集的視頻數(shù)據(jù)提取出圖像中有列車的場景圖片。對采集的真實(shí)場景圖片按照行駛環(huán)境進(jìn)行進(jìn)一步分類,主要分為正常光線場景圖像、逆光場景圖像、弱光線場景圖像3 類場景,每一類場景均采集1 000 張包含有列車的數(shù)據(jù)圖像。測試過程中,將標(biāo)注好的圖像輸入至測試環(huán)境所應(yīng)用的Nvidia TITAN X 顯卡中,通過隨機(jī)生成的權(quán)重參數(shù)獲得輸入圖像對應(yīng)的檢測結(jié)果。在此基礎(chǔ)上,通過標(biāo)注的結(jié)果與輸入的結(jié)果進(jìn)行對比,并通過損失函數(shù)及反向傳播算法對模型參數(shù)進(jìn)行更新,從而完成一次模型訓(xùn)練。通過不斷的訓(xùn)練與更新,從而得到最終的優(yōu)化模型。
獲取優(yōu)化后的模型后,將正常光線場景圖像、逆光場景圖像、弱光線場景圖像(每一類場景提供包含有列車的1 000 張數(shù)據(jù)圖像)輸入至訓(xùn)練好的模型中進(jìn)行列車檢測。在檢測過程中,先通過Inception 結(jié)構(gòu)進(jìn)行特征提取,再通過特征圖級(jí)聯(lián)結(jié)構(gòu)對不同網(wǎng)絡(luò)層提取的特征進(jìn)行融合,即將Inception 結(jié)構(gòu)輸出的信息進(jìn)行池化、上采樣及多尺度融合,從而獲取包含融合信息的特征圖,在此基礎(chǔ)上進(jìn)行列車定位,即確定列車在圖像中的具體位置。通過候選區(qū)域網(wǎng)絡(luò)對生成的融合特征圖進(jìn)行滑動(dòng),獲取每個(gè)滑動(dòng)窗口的特征向量,對獲取的每個(gè)特征向量,進(jìn)一步地輸出至包圍盒回歸層及包圍盒分類層,從而確定每個(gè)特征圖的精準(zhǔn)邊界,以獲取最終的前向列車檢測結(jié)果。
此外,在進(jìn)行前向列車檢測過程中,不需要開展反向傳播運(yùn)算,即前向檢測時(shí)只關(guān)心實(shí)時(shí)檢測結(jié)果而不需要進(jìn)行模型參數(shù)優(yōu)化,從而保證了列車前向檢測算法的實(shí)時(shí)性。此外,在測試過程中,每一類圖像中檢測列車會(huì)輸出一個(gè)檢測的置信度,為保證列車檢測結(jié)果的有效性,選取0.5 置信度作為是否存在列車的判斷閾值,將大于0.5 的部分認(rèn)為前向存在列車,小于0.5 的部分認(rèn)為前向不存在列車。
根據(jù)列車檢測結(jié)果對基于卷積神經(jīng)網(wǎng)絡(luò)列車檢測算法的應(yīng)用效果進(jìn)行分析。由于損失函數(shù)可用于衡量列車檢測網(wǎng)絡(luò)模型的預(yù)測能力,分別對列車定位及列車分類進(jìn)行損失函數(shù)設(shè)計(jì),分析基于真實(shí)列車數(shù)據(jù)進(jìn)行模型訓(xùn)練時(shí)損失函數(shù)情況,統(tǒng)計(jì)列車檢測模型迭代訓(xùn)練過程中損失值的變化情況。模型訓(xùn)練過程中損失值曲線如圖3 所示。
由圖3 可以發(fā)現(xiàn)模型訓(xùn)練損失值下降速度較快,且訓(xùn)練后期的平均損失較低,可知列車候選區(qū)域網(wǎng)絡(luò)及分類網(wǎng)絡(luò)能夠快速收斂,進(jìn)而學(xué)習(xí)到圖像中的特征。基于此測試環(huán)境,采用基于卷積神經(jīng)網(wǎng)絡(luò)的列車檢測算法對真實(shí)環(huán)境下的運(yùn)行列車數(shù)據(jù)圖像進(jìn)行應(yīng)用效果測試。前向列車識(shí)別應(yīng)用效果測試如表2 所示。
圖3 模型訓(xùn)練過程中損失值曲線Fig.3 Loss curve of model training
表2 前向列車識(shí)別應(yīng)用效果測試表 張Tab.2 Table of testing results for forward train detection
通過表2 可知,基于卷積神經(jīng)網(wǎng)絡(luò)的列車檢測方法在正常光線場景、逆光場景及弱光線場景均能較好地檢測出列車,因而對光強(qiáng)度有一定的適應(yīng)性。此外,對不同朝向的列車均可以較好地實(shí)現(xiàn)列車檢測。實(shí)驗(yàn)結(jié)果證明基于卷積神經(jīng)網(wǎng)絡(luò)的列車檢測方法對環(huán)境光強(qiáng)和列車朝向的變化不敏感,適應(yīng)范圍廣,魯棒性高。此外,基于卷積神經(jīng)網(wǎng)絡(luò)的列車檢測算法可部署于嵌入式GPU 平臺(tái),可實(shí)現(xiàn)實(shí)時(shí)地進(jìn)行前向列車檢測,因而可以用于列車前向主動(dòng)防撞系統(tǒng)及列車駕駛前向預(yù)警系統(tǒng)。
現(xiàn)階段列車自動(dòng)駕駛系統(tǒng)不具備列車檢測功能,當(dāng)列車運(yùn)行線路環(huán)境中存在有列車時(shí),容易引發(fā)列車事故?;诟倪M(jìn)的卷積神經(jīng)網(wǎng)絡(luò)的列車檢測算法通過設(shè)計(jì)卷積網(wǎng)絡(luò)架構(gòu),在不同光照環(huán)境下及對不同朝向的列車圖片測試結(jié)果表明,對正常光線場景圖像、逆光場景圖像及弱光線場景圖像均有較好的檢測效果,可應(yīng)用于自動(dòng)駕駛列車及現(xiàn)有的非自動(dòng)駕駛列車系統(tǒng)中,實(shí)現(xiàn)對運(yùn)行過程中列車的自動(dòng)識(shí)別、防撞預(yù)警及列車制動(dòng),從而提升自動(dòng)駕駛列車安全性。