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