宋坤駿 中國(guó)鐵路上海局集團(tuán)有限公司科研所
鐵路軌道上定位裝置的主要作用是:使得接觸線保持在受電弓滑板的接觸范圍內(nèi),確保受電弓磨耗均勻,并將接觸線所產(chǎn)生的水平力傳遞給腕臂。定位器安裝完成后,定位系統(tǒng)、接觸網(wǎng)懸掛系統(tǒng)達(dá)到力學(xué)平衡,接觸線處于平直狀態(tài),定位器所受的水平力和垂直力靜力平衡[1],此時(shí)定位器相對(duì)于鋼軌平面的傾角即為定位器安裝坡度。
如果定位器坡度過大,則接觸線張力過大,會(huì)使得受電弓同接觸網(wǎng)的接觸力發(fā)生突變,甚至造成離線。如果定位器坡度過小,則定位管與定位器之間距離較近,定位器可能與受電弓滑板相撞[2]。因而定位器坡度的合理范圍是正切值在1/10~1/5之間[3]。定位器是各種應(yīng)力和沖擊集中的部位,因此是供電部門日常維護(hù)的重點(diǎn)。
目前人工檢測(cè)定位器坡度需要用到激光測(cè)量?jī)x,容易出現(xiàn)失誤且工作量大,維護(hù)成本高。車載動(dòng)態(tài)檢測(cè)定位器坡度需要用到觸針式檢測(cè)儀,然而該儀器并不能給出定位器坡度的較精確數(shù)值[2]。因此開發(fā)一種低成本且高精度的定位器坡度測(cè)量方法顯得很有必要。本文采用的解決方案是采用機(jī)器視覺的方法測(cè)量定位器坡度值。
本文在對(duì)圖像進(jìn)行定位器檢測(cè)和坡度計(jì)算前先對(duì)圖像進(jìn)行一些預(yù)處理。所涉及的預(yù)處理描述如下:
首先,定位器應(yīng)當(dāng)出現(xiàn)在圖像上方但不是頂部,且很少有出現(xiàn)在圖像下半部分的。為此在圖像上方裁剪highcut行像素并舍去,在圖像中取第highcut行像素到第lowratio×h行像素為止。其中h為圖片的高度,highcut取為20,lowratio取為0.45。霍夫峰值數(shù)取為10。
裁剪后的圖像隨后進(jìn)行自適應(yīng)Canny變換,所謂自適應(yīng)是指Canny變換的閾值是自適應(yīng)確定的。Canny算法有兩個(gè)參數(shù),稱為敏感度向量,有高低兩個(gè)閾值。閾值的選擇同圖像中梯度幅值的最大值有關(guān),Matlab可以自動(dòng)計(jì)算這兩個(gè)閾值。獲取這兩個(gè)閾值以后,低閾值th(1)乘以一個(gè)倍數(shù)lowb,例如4,高閾值th(2)乘以另一個(gè)倍數(shù)highb,例如6,就得到本文采用的閾值,這種閾值選取方式可以令得到的黑白輪廓圖中只保留基本的粗線條輪廓而舍棄其他細(xì)枝末節(jié)的輪廓。最終的敏感度向量按照公式(1)計(jì)算:

計(jì)算中用到兩個(gè)閾值的原因如下:高閾值比較嚴(yán)格,求得的邊緣很少,認(rèn)為高閾值的邊緣都是有效的。低閾值寬松,求得邊緣很多(一般包括了高閾值求到的邊緣)。通常希望Canny算子求得的邊緣是連續(xù)的(最好是封閉的),但高閾值求的邊緣一般是斷斷續(xù)續(xù)的。斷開的地方如果低閾值求得的邊緣存在,就用低閾值的邊緣替代,以達(dá)到讓邊緣聯(lián)通的目的。除此之外其它情況下低閾值的邊緣是用不到的。
隨后在Canny變換得到的黑白圖中去除所有面積小于等于55的8連通域,這一步是為了防止背景中一些小的物體的干擾。
本文采用的定位器坡度檢測(cè)算法主要是Hough變換。Hough變換的優(yōu)點(diǎn)在于,對(duì)于圖像中噪聲不敏感,直線的間斷或延長(zhǎng)對(duì)直線檢測(cè)結(jié)果沒有太大影響。Hough變換的原理是:
通過平面上的一定點(diǎn)的直線族對(duì)應(yīng)參數(shù)平面的一條曲線(如果直線參數(shù)是斜率k和截距b那么原平面上通過定點(diǎn)的直線族對(duì)應(yīng)參數(shù)平面上一條直線。)于是原平面上一條直線上的兩點(diǎn)對(duì)應(yīng)的直線族對(duì)應(yīng)的參數(shù)平面上的兩條曲線會(huì)交于參數(shù)平面上一點(diǎn),該點(diǎn)給出的就是通過原平面上兩點(diǎn)的直線的參數(shù)。
這樣一來,只要統(tǒng)計(jì)參數(shù)平面上各個(gè)點(diǎn)通過的曲線數(shù)目就可以判斷該點(diǎn)是否對(duì)應(yīng)原圖中一條直線了。通過參數(shù)平面上一點(diǎn)的曲線數(shù)越多,說明該參數(shù)點(diǎn)越可能代表原空間中一條直線,可以設(shè)定一個(gè)閾值,認(rèn)為凡是通過曲線數(shù)目大于該閾值的參數(shù)點(diǎn)都對(duì)應(yīng)于原平面上一條直線。這樣通過統(tǒng)計(jì)參數(shù)平面上參數(shù)符合條件的參數(shù)點(diǎn)就可以確定原平面上的各條直線以及直線的數(shù)目。
本文中Hough變換角度掃描范圍是-900到900,角度掃描步長(zhǎng)是0.050,極徑的分辨率是0.5個(gè)像素,houghpeaks最多探測(cè)10個(gè)hough變換的峰值,也就是最多檢測(cè)10條直線。
需要克服的困難在于Hough變換找出的直線有很多條,然而真正代表定位器的直線段只有一條,因此需要附加一些篩選條件將不符合要求的直線段剔除。這里作者引入了如下這些篩選條件:
第一個(gè)有助于減少候選直線段的篩選條件如下:首先對(duì)應(yīng)參數(shù)落入同一個(gè)霍夫直線參數(shù)分割小區(qū)間內(nèi)的兩條直線段之間間隙小于30個(gè)像素的被認(rèn)為是在同一條直線上,這樣的兩條線段當(dāng)成一條線段計(jì)數(shù),其次對(duì)合并后的線段長(zhǎng)度進(jìn)行篩選,認(rèn)為只有長(zhǎng)度在100像素到250像素之間的線段才是定位器,否則不是。
其次考慮候選線段的傾斜角度和指向,定位器的特征是應(yīng)該向著內(nèi)側(cè)傾斜的,由此派生的篩選條件是:定位桿的兩個(gè)端點(diǎn)P1和P2,如果縱坐標(biāo)y1<y2,那么必定滿足橫坐標(biāo)x1比x2更加靠近圖片中線,也就是|x1-w/2|<|x2-w/2|,其中w為圖片寬度。
第三個(gè)篩選條件利用了定位器所在直線段的顏色特征。先在每條候選線段兩個(gè)端點(diǎn)上下各膨脹1個(gè)像素,從所得的四個(gè)頂點(diǎn)利用matlab的roiploy函數(shù)生成包含原線段的四邊形ROI,只有這個(gè)ROI中偏淺色像素?cái)?shù)目大于一定數(shù)時(shí)才認(rèn)為是定位器。
此外基于定位器坡度的合理范圍還有一個(gè)角度篩選條件,與圖片豎直中線夾角在670到89.50或者-89.50到-670之間的認(rèn)為是定位器,其余角度則不符合要求。
經(jīng)過以上對(duì)于線段的篩選后如果還有多于5根的候選直線段,那么考慮所有這些直線段靠近內(nèi)側(cè)的端點(diǎn)同圖片豎直中線的水平距離,即該點(diǎn)橫坐標(biāo)x同圖片豎直中線橫坐標(biāo)的差值的絕對(duì)值|x-w/2|,這個(gè)距離越小,說明越可能是定位器,將此距離最小的5根直線段作為保留的5根候選直線段。
最后,為了最終確定定位器所在的直線段,在上述5根候選直線段中選出y坐標(biāo)最大值最大的一根直線段,即5根直線段中位于最下方的直線段。它就是最終代表定位器的直線段。從霍夫變換的極坐標(biāo)極角參數(shù)不難直接算出該直線段的斜率,根據(jù)斜率的正負(fù)可以規(guī)定定位器水平傾角即坡度的數(shù)值。由于鋼軌有超高,車體相對(duì)鋼軌水平面有傾角,因此從圖像處理計(jì)算出來同水平面傾角不能認(rèn)為是定位器坡度,還需要加上一個(gè)坡度補(bǔ)償值,這個(gè)補(bǔ)償值是通過車體同鋼軌之間的傾角計(jì)算出來的。
表1所示為定位器坡度計(jì)算表格,表格中第一列為公里標(biāo),負(fù)數(shù)代表上行,正數(shù)代表下行,桿號(hào)中的S代表上行中“上”的首字母拼音。定位器坡度值為正數(shù)代表反定位,反之代表正定位。

表1 定位器坡度計(jì)算值結(jié)果表格
如圖1和圖2所示是兩幅成功檢測(cè)到定位器坡度所在直線的示例圖片,圖2中去除了圖片下半部分無(wú)用的黑色背景,僅僅保留了圖片上半部分中包含定位器的部分。圖中紅色標(biāo)出的為定位器所在直線段,該紅色直線的水平傾角的正切值取反正切即為定位器坡度(有正負(fù)號(hào))。該角度值加上由于鋼軌超高導(dǎo)致的補(bǔ)償值以后就能得到真實(shí)的定位器坡度數(shù)值。同時(shí)在圖片文件名中打印出定位器坡度值,有助于直觀顯示需要的最終坡度結(jié)果值。為了示例完整起見,兩幅圖中顯示的定位器坡度一個(gè)是正定位,一個(gè)是反定位。一個(gè)定位器在圖中遠(yuǎn)處,另一個(gè)定位器在圖中近處,顯示出算法對(duì)于各種情況均能夠成功應(yīng)對(duì),具有較高的魯棒性和容錯(cuò)性。

圖1 遠(yuǎn)處反定位定位器坡度計(jì)算結(jié)果圖

圖2 近處正定位定位器坡度計(jì)算結(jié)果圖
該算法的實(shí)時(shí)性較好,在一般的服務(wù)器上可以做到圖片處理速度為0.1 s每張,對(duì)于在近處的定位器,不論正定位還是反定位均能夠做到大于96%的定位器識(shí)別準(zhǔn)確率。遠(yuǎn)處定位器的識(shí)別較不準(zhǔn)確,主要是因?yàn)槎ㄎ黄髟谶h(yuǎn)處的圖片包含了很多干擾,導(dǎo)致容易將背景雜物誤判為定位器。

圖3 定位器坡度計(jì)算GUI軟件界面截圖

圖4 定位器坡度計(jì)算GUI軟件界面左上角放大圖
圖3所示為針對(duì)衢州市常山縣160 km綜合檢測(cè)車項(xiàng)目制作的定位器坡度計(jì)算GUI軟件界面截圖。圖4,圖5和圖6分別為該用戶界面的左上角、左下角和右上角放大圖。從這些圖中可見,界面左側(cè)為上述算法的參數(shù)選擇框和手動(dòng)輸入框,參數(shù)選擇下拉框中提供了一組經(jīng)過調(diào)試得出的較為合理的參數(shù)取值,而手動(dòng)輸入框中的值如果不為空將會(huì)覆蓋下拉框中選擇的數(shù)值。此外參數(shù)欄右側(cè)的里程,桿號(hào),定位器坡度測(cè)量值和定位器坡度修正值會(huì)隨著算法遍歷圖片根目錄下一張張圖片而實(shí)時(shí)更新。每次遍歷到的圖片計(jì)算出的結(jié)果圖會(huì)顯現(xiàn)在右側(cè)的方框中,上一張圖與下一張圖間隔的時(shí)間約為(0.5~1)s。在起始里程和終止里程中輸入遍歷過程的起始和終止公里標(biāo)能夠?qū)崿F(xiàn)算法僅僅遍歷這兩個(gè)公里標(biāo)區(qū)間內(nèi)的定位器圖片。點(diǎn)擊開始選擇文件按鈕會(huì)指示用戶依次選擇圖片存放的一級(jí)根目錄和結(jié)果報(bào)表CSV文件存放的目錄。點(diǎn)擊停止運(yùn)行按鈕會(huì)使得程序終止運(yùn)行。由此構(gòu)成了一個(gè)功能完善用戶體驗(yàn)良好的GUI軟件。

圖5 定位器坡度計(jì)算GUI軟件界面左下角放大圖

圖6 定位器坡度計(jì)算GUI軟件界面右上角放大圖