王浩然,楊華昌,馮 軍,張弘志,趙小軍,馬金鑫,韓 波
(1.中國鐵道科學(xué)研究院集團(tuán)有限公司 北京華鐵信息技術(shù)有限公司,北京 100081;2.中國鐵道科學(xué)研究院集團(tuán)有限公司 通信信號研究所,北京 100081)
STP 系統(tǒng)是保證鐵路調(diào)車作業(yè)安全的關(guān)鍵設(shè)備,其設(shè)備的穩(wěn)定、可靠與鐵路運(yùn)輸安全有直接關(guān)系[1]。系統(tǒng)對站場內(nèi)復(fù)雜的聯(lián)鎖控制模式和調(diào)車作業(yè)方法進(jìn)行研究,通過應(yīng)答定位器位置、調(diào)車速度和位移等工況信息,結(jié)合軌道電路和進(jìn)路等聯(lián)鎖信息變化,完成對車列前、后端位置的準(zhǔn)確跟蹤;并將車列位置相關(guān)信息發(fā)送給列車運(yùn)行監(jiān)控裝置(LKJ)生成安全限速,從而實(shí)現(xiàn)調(diào)車作業(yè)的安全防護(hù)[2]。其中車列的位置跟蹤是整個(gè)STP 系統(tǒng)進(jìn)行安全防護(hù)的核心[3]。
調(diào)車在站場內(nèi)作業(yè)形式多樣,包含車列摘車、掛車、轉(zhuǎn)線、折返、一度停車等。而站場內(nèi)聯(lián)鎖進(jìn)路的形態(tài)、特性各異,囊括由交叉渡線、復(fù)式交分道岔、死區(qū)段、股道、編組線、專用線、盡頭線等設(shè)備組成的復(fù)雜長、短調(diào)車進(jìn)路(簡稱長進(jìn)路、短進(jìn)路)。為了保證STP 系統(tǒng)車列位置跟蹤功能在各種進(jìn)路走行情況下的準(zhǔn)確性,必須要對系統(tǒng)進(jìn)行大量測試[4]。當(dāng)前,針對STP 的測試問題,文獻(xiàn)[5]提出基于UML 模型的測試案例設(shè)計(jì)方法,并對測試序列優(yōu)化問題進(jìn)行模型求解;文獻(xiàn)[6]通過軟、硬件設(shè)計(jì),實(shí)現(xiàn)對LKJ系統(tǒng)的模擬,提高了STP 自動化測試水平。上述研究大多集中在STP系統(tǒng)測試涉及的相關(guān)子系統(tǒng)的仿真、優(yōu)化,缺少從整體角度對測試過程進(jìn)行研究,人工干預(yù)過多,結(jié)果不能自動判斷,測試效率有待進(jìn)一步提高。
本文為了解決STP 系統(tǒng)車列位置跟蹤功能的測試問題,提出搭建STP 車列位置跟蹤功能自動化測試平臺的方案,采用計(jì)算機(jī)技術(shù)對系統(tǒng)涉及的調(diào)車作業(yè)相關(guān)設(shè)備功能進(jìn)行模擬、對車列在站場內(nèi)的各種作業(yè)方法進(jìn)行仿真,并通過研究復(fù)雜站場測試序列自動生成、調(diào)車運(yùn)行仿真和基于深度神經(jīng)網(wǎng)絡(luò)的圖像識別技術(shù),實(shí)現(xiàn)了從測試腳本生成、執(zhí)行到結(jié)果自動判斷的一體化解決方案。
由于STP 系統(tǒng)作業(yè)涉及電務(wù)、機(jī)務(wù)、車站等多個(gè)部門,其測試平臺需要完成對各部門相關(guān)設(shè)備功能的模擬[7]。為了方便各個(gè)系統(tǒng)接口的管理和功能結(jié)構(gòu)劃分,設(shè)計(jì)測試控制層、仿真設(shè)備層和被測設(shè)備層3 層管理結(jié)構(gòu),其框架示意圖如圖1所示。通過接口通訊網(wǎng)實(shí)現(xiàn)各個(gè)層級間的信息交互,通訊方式包括網(wǎng)絡(luò)、串口和CAN總線。
圖1 測試平臺設(shè)計(jì)框架示意圖
1)測試控制層
由測試驅(qū)動器、過程監(jiān)測器和站場數(shù)據(jù)服務(wù)器構(gòu)成。其中測試驅(qū)動器通過加載被測站場數(shù)據(jù),初始化站場和仿真車列,自動生成站場測試序列腳本,并通過對測試腳本的解析依次發(fā)送相應(yīng)控制命令給仿真設(shè)備層執(zhí)行測試過程。過程監(jiān)測器則通過圖像識別系統(tǒng)實(shí)時(shí)獲取DMI 上面顯示的STP 系統(tǒng)輸出的車列位置信息,然后將這些信息與仿真車列走行模擬的車列預(yù)期位置進(jìn)行比較,判斷位置跟蹤功能是否正常,生成結(jié)果并輸出。
2)仿真設(shè)備層
以STP 系統(tǒng)中站場數(shù)據(jù)為基礎(chǔ),與測試控制層進(jìn)行交互完成調(diào)車運(yùn)行過程中相關(guān)設(shè)備的運(yùn)行模擬,生成各種站場顯示、人機(jī)交互和設(shè)備報(bào)文等信息。其中仿真車列走行模擬作為此層設(shè)備的核心,它以站場內(nèi)各個(gè)軌道電路節(jié)點(diǎn)設(shè)備的上下行鏈路關(guān)系和長度為基礎(chǔ),根據(jù)初始化的車列位置、車長,并結(jié)合速度、運(yùn)行方向等機(jī)車工況信息,完成走行過程中車列前、后端位置的實(shí)時(shí)計(jì)算,輸出的信息作為自動化測試平臺的車列預(yù)期位置用于結(jié)果判斷。聯(lián)鎖模擬則需要完成測試進(jìn)路的自動開放和關(guān)閉,配合仿真車列的走行完成聯(lián)鎖信息的同步顯示和更新。對于應(yīng)答定位器模擬,當(dāng)仿真車列走行到站場安裝應(yīng)答定位器的位置時(shí),發(fā)送對應(yīng)報(bào)文給STP 系統(tǒng)的車載設(shè)備進(jìn)行位置定位。調(diào)車信令模擬則根據(jù)仿真車列位置,結(jié)合調(diào)車作業(yè)實(shí)際情況,在合適時(shí)機(jī)模擬各種調(diào)車信令發(fā)給LKJ。司機(jī)操作模擬則根據(jù)仿真車列發(fā)過來的速度、運(yùn)行方向信息,通過信號模擬儀自動產(chǎn)生指定頻率的速度脈沖和電壓信號發(fā)送給LKJ 實(shí)現(xiàn)機(jī)車走行的速度和方向控制。并通過數(shù)據(jù)總線技術(shù),在特定時(shí)機(jī)模擬發(fā)送DMI 按鍵信息實(shí)現(xiàn)車列走行中涉及司機(jī)的人機(jī)交互操作,如LKJ 的“警惕”“解鎖”和“確認(rèn)”等。
3)被測設(shè)備層
由STP 地面設(shè)備、STP 車載設(shè)備、LKJ 及其DMI構(gòu)成。STP 系統(tǒng)是通過LKJ 實(shí)現(xiàn)限速控制的。DMI 作為STP 系統(tǒng)信息輸出的最終界面,是測試人員和使用人員最關(guān)注的控制輸出終端。本平臺的核心是STP 系統(tǒng)輸出的車列位置信息,即DMI 上顯示的車列前方信號機(jī)名稱、距離、限速、速度等,這些信息由圖像識別系統(tǒng)進(jìn)行采集后用于測試過程監(jiān)測。
測試平臺工作流程如圖2所示。按照順序分為如下幾個(gè)步驟。
圖2 測試平臺工作流程圖
1)測試初始化
基于被測站場完成聯(lián)鎖站場和仿真車列的初始化,并針對測試目的自動生成進(jìn)路測試序列腳本。選取大型聯(lián)鎖站場,信號機(jī)和軌道電路的數(shù)量盡量多,包含各種復(fù)雜進(jìn)路形態(tài)。測試驅(qū)動器將站場進(jìn)路數(shù)據(jù)與調(diào)車作業(yè)相結(jié)合生成能夠覆蓋各種進(jìn)路走行形態(tài)的測試序列,仿真車列通過執(zhí)行這個(gè)測試序列來驗(yàn)證STP 車列位置跟蹤功能在站場內(nèi)各種復(fù)雜場景下的準(zhǔn)確性。所以需要研究優(yōu)化算法以自動生成數(shù)量眾多的進(jìn)路測試序列腳本。
2)測試序列執(zhí)行
測試中依次調(diào)用測試序列腳本。驅(qū)動仿真車列自動走行,并根據(jù)過程情況同步完成聯(lián)鎖、調(diào)車信令、應(yīng)答定位器信息更新,同時(shí)測試平臺監(jiān)測DMI 上產(chǎn)生的即時(shí)消息完成相應(yīng)的司機(jī)操作交互。仿真車列走行的關(guān)鍵就是要根據(jù)車列在站場的實(shí)際位置生成相應(yīng)的限速控制曲線,并采用一定的速度控制策略,使調(diào)車在正常走行情況下盡量提高執(zhí)行效率,防止出現(xiàn)走行中觸發(fā)常用或緊急制動影響測試效果。同時(shí)也可對LKJ 系統(tǒng)的STP 模式曲線進(jìn)行測試,驗(yàn)證其準(zhǔn)確性。
3)測試過程監(jiān)控
通過對DMI 屏幕進(jìn)行圖像識別實(shí)時(shí)采集STP系統(tǒng)輸出的車列位置信息,并將這些信息與仿真車列走行模塊里的車列預(yù)期位置進(jìn)行比較,對不一致的信息進(jìn)行提示和報(bào)警,實(shí)現(xiàn)對測試過程的監(jiān)控。其中選用合適的圖像處理算法完成位置信息自動識別對結(jié)果有重要影響。
4)測試結(jié)果輸出
整個(gè)測試過程采用MySQL 數(shù)據(jù)庫進(jìn)行記錄,方便進(jìn)行測試過程的回放和查驗(yàn)。
2.1.1 數(shù)學(xué)建模
基于STP 站場數(shù)據(jù)結(jié)構(gòu)特點(diǎn),將站場數(shù)據(jù)中的短進(jìn)路抽象為有向圖的頂點(diǎn),以短進(jìn)路間的連通關(guān)系作為弧,構(gòu)建有權(quán)的、具有多重弧的站場進(jìn)路有向圖G。如果弧頭短進(jìn)路的起始和弧尾短進(jìn)路的阻擋為同一個(gè)信號機(jī)時(shí),則將弧頭短進(jìn)路的長度作為此有向弧的權(quán)值,如果不一致則為不連通狀態(tài)。對于數(shù)據(jù)中進(jìn)路方向的變化則通過在盡頭線、站界和股道等司機(jī)換向區(qū)域增加特殊的換向頂點(diǎn)來完成。以短進(jìn)路為頂點(diǎn)構(gòu)建進(jìn)路有向圖G示意圖如圖3所示。圖中:D1,D2,…,D9 為調(diào)車信號機(jī);X5 和S5 均為股道兩端信號機(jī);VD1 為STP 系統(tǒng)中的盡頭線虛擬信號機(jī);頂點(diǎn)X5→S5 和頂點(diǎn)VD1→D1 為在股道和盡頭線上完成換向功能的2 個(gè)頂點(diǎn);其余的頂點(diǎn)對應(yīng)數(shù)據(jù)中的短進(jìn)路,如D1→D3表示從起始信號機(jī)D1 到阻擋信號機(jī)D3 的短進(jìn)路;t1,t2,…,t15為有向圖上的弧編號。
圖3 以短進(jìn)路為頂點(diǎn)構(gòu)建進(jìn)路有向圖G示意圖
測試序列生成的目標(biāo)為在最短的時(shí)間完成對所有短進(jìn)路的遍歷。其中走行距離、換向次數(shù)和重復(fù)走行比率是3 個(gè)主要性能指標(biāo),直接影響最終的測試總耗時(shí)。走行距離和換向次數(shù)可以從有向圖各路徑上的頂點(diǎn)屬性獲得;重復(fù)走行比率可以描述為路徑上頂點(diǎn)數(shù)n與有向圖上所有頂點(diǎn)總數(shù)Kall的比值。對于1 個(gè)完整站場進(jìn)路測試序列P={x1,x2,…,xn},基于最少測試耗時(shí)的優(yōu)化目標(biāo)分解為最小走行距離F1、最少換向次數(shù)F2及最少重復(fù)走行比率F3的3目標(biāo)優(yōu)化模型,即
式中:Lp,xm為序列P中的頂點(diǎn)xm(m=1,2,…,n)對應(yīng)短進(jìn)路的長度;Cp,xm為序列P中的頂點(diǎn)xm是否為換向頂點(diǎn)(取值為0或1)。
2.1.2 多目標(biāo)蟻群算法
基于建立的模型,測試序列生成可作為一個(gè)旅行商問題(Traveling Salesman Problem,TSP),采用多目標(biāo)蟻群算法進(jìn)行求解[8]。
1)多目標(biāo)啟發(fā)函數(shù)
蟻群算法中啟發(fā)函數(shù)可以理解為優(yōu)化目標(biāo)對螞蟻路徑選擇的影響[9]??紤]傳統(tǒng)算法基于距離的啟發(fā)函數(shù)設(shè)計(jì)進(jìn)行改進(jìn),基于圖3有向圖模型的特點(diǎn),增加換向次數(shù)和重復(fù)走行比率作為復(fù)合啟發(fā)函數(shù),滿足本模型多目標(biāo)優(yōu)化搜索需求。采用聚合方法在傳統(tǒng)距離因子的基礎(chǔ)上增加換向因子和重復(fù)因子,構(gòu)建多目標(biāo)啟發(fā)函數(shù),即
式中:ηij,d為距離因子(一般為節(jié)點(diǎn)i到節(jié)點(diǎn)j的權(quán)值倒數(shù));ηij,c為換向因子(換向次數(shù)的倒數(shù));ηij,r為重復(fù)因子(重復(fù)走行比率的倒數(shù));ω1,ω2,ω3為各個(gè)因子的權(quán)重。
通過權(quán)重向量ω,即ω=(ω1ω2ω3),影響啟發(fā)函數(shù)進(jìn)而控制信息素的重要程度,從而均衡3個(gè)優(yōu)化目標(biāo)獲得更好的優(yōu)化效果。
2)蟻群優(yōu)化相關(guān)算法
根據(jù)上面的啟發(fā)函數(shù),得到t時(shí)刻螞蟻從頂點(diǎn)i向頂點(diǎn)j轉(zhuǎn)移概率計(jì)算式為
式中:ηij(t)為t時(shí)刻的多目標(biāo)啟發(fā)函數(shù),詳見式(4);τij(t)為t時(shí)刻路徑Si→j(節(jié)點(diǎn)i到節(jié)點(diǎn)j的路徑)上的信息素值;y為螞蟻下一步能夠選擇的節(jié)點(diǎn);Aallow為螞蟻下一步能夠選擇的節(jié)點(diǎn)集合;α和β分別表示τij(t)和ηij(t)的影響權(quán)值。
根據(jù)計(jì)算出的概率,采用輪盤賭方式,從眾多可選擇節(jié)點(diǎn)中選擇一個(gè)作為下一節(jié)點(diǎn),并將其置為當(dāng)前節(jié)點(diǎn)。
信息素更新采用蟻周模型(Ant-Cycle),按照式(6)更新每條路徑上面的信息素。
其中,
式中:τij(t+Δt)為更新后的時(shí)刻即t+Δt時(shí)刻路徑Si→j上的信息素值;ρ為信息素?fù)]發(fā)因子(0<ρ<1);Δτij,k為螞蟻k在經(jīng)過路徑Si→j時(shí)信息素的變化值;kmax為螞蟻個(gè)數(shù);Q為信息素總量;Ek為螞蟻k的總走行路徑長度。
通過啟發(fā)函數(shù)、轉(zhuǎn)移概率和信息素更新相關(guān)算法,即可通過多目標(biāo)蟻群算法對最短時(shí)間的進(jìn)路測試序列進(jìn)行優(yōu)化求解,獲得的優(yōu)化解即生成的短進(jìn)路節(jié)點(diǎn)序列。用其中的換向節(jié)點(diǎn)進(jìn)行分割,換向節(jié)點(diǎn)之間的序列可組織為長進(jìn)路,這些長進(jìn)路經(jīng)過簡單處理即可得到進(jìn)路測試序列腳本。
2.2.1 調(diào)車走行限速控制曲線
站場內(nèi)能夠影響STP 調(diào)車走行速度的限速點(diǎn)很多,主要有前方開放進(jìn)路(系統(tǒng)只關(guān)注前方進(jìn)路上最多4個(gè)信號機(jī)的狀態(tài))中的多個(gè)限速道岔(一些駝峰場8號道岔側(cè)向25 km·h-1限速以及數(shù)量眾多的9 號道岔側(cè)向30 km·h-1限速等)、特殊地點(diǎn)的限速區(qū)段(特殊作業(yè)專用線、段管線、站線限速)、盡頭線、存車線、存車位置連掛點(diǎn)限速、藍(lán)燈、虛擬站界、一度停車點(diǎn)和調(diào)車信令等。這些限速點(diǎn)由于設(shè)備類型、線路參數(shù)設(shè)定或站系規(guī)定不同均會產(chǎn)生不同的限速[10]。
調(diào)車走行中,其限速控制曲線需要對這些限速點(diǎn)分別進(jìn)行計(jì)算。計(jì)算方法為:以車列前方為起點(diǎn),前方進(jìn)路中的限速點(diǎn)為終點(diǎn),減去一定的安全距離作為目標(biāo)距離,將各個(gè)限速點(diǎn)的限速作為目標(biāo)速度,根據(jù)車列信息和調(diào)車類型計(jì)算對應(yīng)速度的制動力和阻力,反向推算調(diào)車的制動曲線,以計(jì)算所得的最低限速和相應(yīng)的限速曲線作為仿真調(diào)車的限速控制曲線[11]。
對于一個(gè)限速點(diǎn),調(diào)車走行限速可以抽象為距離、限速點(diǎn)限速值和其他影響因素的函數(shù),即
式中:v為單一限速點(diǎn)走行限速;vlimit為限速點(diǎn)限速;dlimit為距離限速點(diǎn)距離;δ為其他影響因素(包括輛數(shù)、風(fēng)管、機(jī)車制動力等相關(guān)參數(shù))。
獲得單一限速點(diǎn)的走行限速后,調(diào)車當(dāng)前位置限速即為所有限速點(diǎn)計(jì)算的走行限速中的最小值,即
式中:vmax為調(diào)車當(dāng)前位置走行限速;va為限速點(diǎn)a(a=1,2,…,b)計(jì)算的調(diào)車走行限速。
以調(diào)車推進(jìn)進(jìn)入8 道的停車過程為例,模擬其限速曲線變化情況。作業(yè)中前方進(jìn)路包含2 個(gè)8 號道岔側(cè)向通過(25 km·h-1限速)、1 個(gè)藍(lán)燈信號機(jī)及調(diào)車信令,共計(jì)4個(gè)限速點(diǎn)。根據(jù)走行過程中4個(gè)限速點(diǎn)和車列間的距離變化生成4條限速曲線,如圖4所示。圖中:4 條限速曲線中取最低值作為當(dāng)前調(diào)車走行限速;a-b-c-d-e-f-h-i-j-k-l-m-no-p-q為調(diào)車走行限速的變化曲線。
圖4 STP調(diào)車各限速點(diǎn)的限速曲線變化示意圖
從圖4可以看出:d-e限速上抬是由于1#限速道岔出清,導(dǎo)致限速曲線從1#限速道岔切換到2#限速道岔;h-i是由于2#限速道岔出清,導(dǎo)致限速曲線從2#限速道岔切換到藍(lán)燈出現(xiàn)限速上抬。由于走行中調(diào)車與限速點(diǎn)距離實(shí)時(shí)變化,限速不停刷新。測試平臺以500 ms為1個(gè)周期,實(shí)時(shí)計(jì)算各個(gè)限速點(diǎn)的調(diào)車當(dāng)前限速并同步調(diào)整機(jī)車運(yùn)行速度。
2.2.2 調(diào)車速度控制策略
調(diào)車的運(yùn)行是一個(gè)復(fù)雜過程,會受到各種環(huán)境、設(shè)備的因素影響[12]。為了簡化受力分析和計(jì)算,測試平臺將仿真調(diào)車看作1個(gè)單質(zhì)點(diǎn)模型,其走行速度簡單抽象為當(dāng)前位置限速和前1個(gè)周期速度的函數(shù),即
式中:vnow為調(diào)車當(dāng)前走行速度;vmax為當(dāng)前位置的調(diào)車走行限速;vpre為前1個(gè)周期的調(diào)車走行速度。
并設(shè)定如下條件:
(1)考慮測試平臺各個(gè)設(shè)備間的交互延遲時(shí)間,vnow應(yīng)該小于vmax-4。走行速度過高,容易導(dǎo)致當(dāng)限速曲線下降時(shí),速度來不及調(diào)整,觸發(fā)LKJ系統(tǒng)制動,影響測試過程。
(2)調(diào)車升速時(shí),需滿足vnow-vpre≤1,即每秒提速不超過0.28 m。
通過在測試平臺的DMI 屏幕正前方增加攝像頭完成對顯示界面的圖像采集,并對采集到的圖像進(jìn)行預(yù)處理得到待識別區(qū)域,最后由深度神經(jīng)網(wǎng)絡(luò)進(jìn)行圖像識別。下面以信號機(jī)名稱識別為例描述整個(gè)處理過程。
2.3.1 圖像預(yù)處理
平臺位于實(shí)驗(yàn)室室內(nèi)環(huán)境,涉及圖像處理的相關(guān)設(shè)備位置嚴(yán)格固定,合理規(guī)劃燈光、日光等光源的相對位置,盡量減少多光源對圖片成像質(zhì)量的負(fù)面影響。圖像預(yù)處理的目標(biāo)是提取DMI 屏幕顯示主界面(1 個(gè)長寬比為4∶3 的矩形框),先通過中值濾波、高斯濾波過濾圖片上的椒鹽噪聲和脈沖噪聲,然后采用形態(tài)學(xué)的閉運(yùn)算對圖片進(jìn)行膨脹和腐蝕來彌合細(xì)小的間斷和孔隙,再用最大類間方差(OTSU)法進(jìn)行自適應(yīng)全局閾值完成二值化處理,最后通過輪廓查找算法結(jié)合目標(biāo)特征完成主界面的提取。根據(jù)信號機(jī)區(qū)域相對主界面的位置進(jìn)行分割得到信號機(jī)顯示圖片,此圖片即可用于后續(xù)神經(jīng)網(wǎng)絡(luò)訓(xùn)練和識別。
2.3.2 深度神經(jīng)網(wǎng)絡(luò)
相對傳統(tǒng)方法必須要對字符進(jìn)行獨(dú)立分割才能識別的弊端,深度神經(jīng)網(wǎng)絡(luò)通過各種卷積計(jì)算對圖片特征進(jìn)行提取,并可結(jié)合前后文信息進(jìn)一步提高特征獲取能力,大大提高了圖像識別能力[13]。其中卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)擅長圖像深層次特征提取。長短期記憶網(wǎng)絡(luò)(Long Short-Term Memory,LSTM)作為一種循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Networks,RNN)通過對歷史記憶信息的學(xué)習(xí),提高了處理序列數(shù)據(jù)預(yù)測的能力,且更易于處理變長的數(shù)據(jù)序列[14]。本文針對信號機(jī)名稱不定長的特點(diǎn),選用由CNN+LSTM構(gòu)成的神經(jīng)網(wǎng)絡(luò)[15]。其詳細(xì)參數(shù)見表1。
表1 深度神經(jīng)網(wǎng)絡(luò)詳細(xì)參數(shù)
處理過程為:首先通過VGG16 網(wǎng)絡(luò)對輸入的歸一化圖像進(jìn)行特征提取,利用多種卷積層、激活層和最大池化層的感受野(Receptive Field)對圖片特征進(jìn)行提取,生成圖片特征序列;然后由LSTM 網(wǎng)絡(luò)對特征序列的每個(gè)特征向量進(jìn)行訓(xùn)練,利用2個(gè)雙向LSTM 結(jié)構(gòu)對特征向量的前向信息和后向信息進(jìn)行學(xué)習(xí)進(jìn)一步提取文字的序列特征,并輸出原始序列概率分布;最后通過連接時(shí)序分類(Connectionist Temporal Classification,CTC)算法將序列概率分布轉(zhuǎn)換為實(shí)際的標(biāo)簽序列進(jìn)行輸出。
從卷積層的感受野特征到最終標(biāo)簽輸出的映射過程示意圖如圖5所示。
圖5 映射過程示意圖
其中,CTC 是由文獻(xiàn)[16]提出的用于將循環(huán)層輸出的幀特征序列與標(biāo)簽進(jìn)行對齊的計(jì)算方法。算法通過在標(biāo)簽所在字母集A中增加1個(gè)空白標(biāo)簽“blank”作為占位符得到A’,即A’=A∪{blank}。其Softmax輸出層在預(yù)測時(shí)將直接輸出對應(yīng)字母集A’中的概率。利用增加的空白標(biāo)簽實(shí)現(xiàn)識別過程中的去重復(fù)和字符分割操作,完成與標(biāo)簽的對齊。
整個(gè)神經(jīng)網(wǎng)絡(luò)訓(xùn)練的損失函數(shù)Ο為最小化輸出標(biāo)簽序列概率的負(fù)對數(shù)似然函數(shù),即
其中,
式中:X為訓(xùn)練圖像;Z為真實(shí)的標(biāo)簽序列;W為訓(xùn)練集;pi(Z│X)為針對輸入X訓(xùn)練模型輸出Z的條件概率。
2.3.3 訓(xùn)練效果
在實(shí)驗(yàn)室搭建測試環(huán)境,利用STP 給LKJ 模擬發(fā)送各種信號機(jī)名稱并通過DMI 進(jìn)行顯示,然后進(jìn)行圖像采集,共獲得10 000 張圖片作為數(shù)據(jù)集。數(shù)據(jù)集的標(biāo)簽按照字母長度分為2,3,4,5及6個(gè)共5種,從中抽取8 000張作為訓(xùn)練集,2 000張作為測試集,訓(xùn)練時(shí)隨機(jī)選取訓(xùn)練集的10%作為驗(yàn)證集。標(biāo)簽的字母集分為20 種,囊括常見的信號機(jī)名稱字母和數(shù)字。
神經(jīng)網(wǎng)絡(luò)訓(xùn)練環(huán)境為Ubuntu 操作系統(tǒng),采用Python編程語言及PyTorch深度學(xué)習(xí)網(wǎng)絡(luò)架構(gòu)。為了提高訓(xùn)練效果,模型采用數(shù)據(jù)增強(qiáng)方法提高模型學(xué)習(xí)能力,并選擇RMSprop,Adam 和Adadelta 這3種優(yōu)化器進(jìn)行訓(xùn)練效果比較。
訓(xùn)練時(shí),設(shè)置默認(rèn)學(xué)習(xí)率為1×10-5。Adadelta優(yōu)化器學(xué)習(xí)率為1.0,衰減因子為0.9。采用32 個(gè)樣本作為1個(gè)處理單元,最大迭代次數(shù)設(shè)為140次。最終,多種優(yōu)化模型下的訓(xùn)練精度和驗(yàn)證精度隨迭代次數(shù)的變化曲線如圖6所示。
圖6 多種優(yōu)化模型的訓(xùn)練和驗(yàn)證精度變化曲線
從圖6可以看出:不使用數(shù)據(jù)增強(qiáng)功能,當(dāng)?shù)螖?shù)超過40 次后,由于輸入數(shù)據(jù)相似度較高導(dǎo)致訓(xùn)練精度(紅色實(shí)線)快速提高達(dá)到100%,但驗(yàn)證精度(紅色虛線)最高只達(dá)到了97.3%,而且偶爾出現(xiàn)精度嚴(yán)重下降導(dǎo)致曲線出現(xiàn)明顯下降尖峰;而使用數(shù)據(jù)增強(qiáng)功能后,所有模型的訓(xùn)練曲線雖有波動但是驗(yàn)證曲線卻逐漸趨于穩(wěn)定,訓(xùn)練后期無明顯波動;3種優(yōu)化器的訓(xùn)練效果對比,Adadelta優(yōu)化器的效果最好;數(shù)據(jù)增強(qiáng)功能有效地減少了模型過擬合,提高了模型的泛化能力。
對于3 種優(yōu)化器,其訓(xùn)練效果相關(guān)數(shù)據(jù)對比見表2。
表2 3種優(yōu)化器的訓(xùn)練效果
由表2可知:3 種優(yōu)化器收斂速度和驗(yàn)證精度最優(yōu)值均滿足Adadelta>Adam>RMSprop,與圖6中的訓(xùn)練效果對比結(jié)果一致。
因此,基于時(shí)間和精度考慮,測試平臺最終選用帶數(shù)據(jù)增強(qiáng)的Adadelta優(yōu)化器進(jìn)行網(wǎng)絡(luò)訓(xùn)練。
實(shí)際使用中,對一些經(jīng)常刷新的標(biāo)簽圖片,會遇到顯示拖尾或不全的情況,此時(shí)需要在這類圖片識別中增加置信度判斷條件以對結(jié)果進(jìn)一步過濾。
為了驗(yàn)證測試平臺的有效性,以蘭州北站上行到達(dá)場的STP 系統(tǒng)為基礎(chǔ),搭建自動化測試平臺。站場數(shù)據(jù)包含蘭州北站上行到達(dá)場、上行駝峰場和交換場3 個(gè)場,共162 個(gè)調(diào)車信號機(jī)、28 個(gè)列車信號機(jī)和41 個(gè)應(yīng)答定位器。上行短進(jìn)路總數(shù)為194條,下行短進(jìn)路總數(shù)為210 條,采用多目標(biāo)蟻群優(yōu)化算法自動生成836條測試進(jìn)路序列。
將自動生成的836 條測試進(jìn)路序列注入自動化測試系統(tǒng)進(jìn)行測試。最終測試結(jié)束時(shí)總耗時(shí)為63 h。
選取其中的一段時(shí)長4 min 的連掛作業(yè),查看作業(yè)過程中的調(diào)車信令-人機(jī)交互-限速-速度隨時(shí)間變化情況,如圖7所示。
圖7 調(diào)車信令-人機(jī)交互-限速-速度變化曲線(股道連掛)
選取測試過程中一段時(shí)長7 h 的機(jī)車走行限速曲線和速度曲線變化圖,一共測試87 條長進(jìn)路,如圖8所示。
圖8 限速和速度隨時(shí)間變化曲線
對這7 h 的測試記錄數(shù)據(jù)進(jìn)行統(tǒng)計(jì),并對測試平臺進(jìn)行評估,結(jié)果如下。
(a)LKJ人機(jī)交互按鍵操作分析:自動化測試系統(tǒng)一共代替測試人員進(jìn)行“警惕”“解鎖”按鍵和“換向”等人工操作518次,每小時(shí)平均74次操作。
(b)速度調(diào)節(jié)操作分析:在測試過程中,設(shè)定如果連續(xù)3 s 速度未變化的恒速區(qū),作為測試休息時(shí)間,其他的變速區(qū)作為人工測試時(shí)需要測試人員進(jìn)行人工操作的時(shí)間。對這7 h 測試過程進(jìn)行統(tǒng)計(jì),一共產(chǎn)生8 269 條記錄,其中變速區(qū)的記錄有2 271 條。測試人員需要進(jìn)行機(jī)車速度調(diào)節(jié)的勞動時(shí)長與總作業(yè)時(shí)長比率為27.5%(即2 271/8 269)。
(c)勞動時(shí)間效率分析:由于測試平臺實(shí)現(xiàn)了無人干預(yù)測試,可以做到每周168(24×7)h 不間斷的測試作業(yè),相對人工每周40(8×5)h 的工作時(shí)間,其勞動時(shí)間效率比為168∶40,接近4∶1。
STP 系統(tǒng)車列位置跟蹤功能自動化測試平臺采用計(jì)算機(jī)技術(shù),實(shí)現(xiàn)了STP 系統(tǒng)相關(guān)外部設(shè)備的綜合仿真。系統(tǒng)通過建立基于有向圖的調(diào)車走行進(jìn)路模型,采用多目標(biāo)蟻群算法自動生成測試序列,以此驅(qū)動測試開始;然后對調(diào)車站內(nèi)走行策略進(jìn)行研究,實(shí)現(xiàn)調(diào)車自動走行,驅(qū)動測試序列依次執(zhí)行;最后研究基于CNN+LSTM 深度神經(jīng)網(wǎng)絡(luò)的圖像識別技術(shù),結(jié)合數(shù)據(jù)增強(qiáng)技術(shù)對3種優(yōu)化器(Adadelta,Adam 和RMSprop)在訓(xùn)練時(shí)間和精度上的差異進(jìn)行對比后,選用綜合效果最優(yōu)的Adadelta 優(yōu)化器進(jìn)行網(wǎng)絡(luò)訓(xùn)練,進(jìn)而實(shí)現(xiàn)DMI上調(diào)車實(shí)時(shí)位置信息的自動圖像識別,完成測試的過程監(jiān)控?;谔m州北站現(xiàn)場數(shù)據(jù)進(jìn)行試驗(yàn)驗(yàn)證,對測試過程中自動化平臺代替人工測試進(jìn)行操作的情況進(jìn)行統(tǒng)計(jì)分析。
本文搭建的自動化測試平臺可替代人工測試,用于復(fù)雜站場的STP 車列位置跟蹤功能測試。自動化測試平臺相對于人工測試降低了勞動強(qiáng)度,且兩者測試勞動時(shí)間效率比接近4∶1。整個(gè)測試過程無人化執(zhí)行,測試結(jié)果智能判斷,為后續(xù)STP軟件的優(yōu)化升級提供了有力保障。