趙嘉毅,祝 恩,印萬鵬
國防科技大學 計算機學院,長沙 410070
接觸網(wǎng)是向電力機車供電的特殊形式的輸電線路,通過有彈性的懸掛結(jié)構(gòu)沿鐵路線上空架設(shè)。接觸網(wǎng)懸掛質(zhì)量的優(yōu)劣,將直接影響行車安全和運輸經(jīng)濟效益。由于接觸網(wǎng)為露天設(shè)備,在強風作用下會發(fā)生偏移,影響電力機車的輸電質(zhì)量,對行車安全產(chǎn)生非常重要的影響。2017年3月,僅成都鐵路局重慶供電段的接觸網(wǎng)就發(fā)生嚴重危及鐵路安全運行事件5起。鐵路檢修部門希望通過對接觸網(wǎng)的檢測,及時發(fā)現(xiàn)接觸網(wǎng)的異常。目前接觸式的接觸網(wǎng)檢測方法,在機車高速運行中對測量傳感設(shè)備的磨損很大。非接觸式的測量可以有效避免設(shè)備磨損,降低運營維修成本。利用線陣攝像機采樣頻率高的特點,將其應用于接觸網(wǎng)的檢測,從而實現(xiàn)接觸網(wǎng)的非接觸檢測方法。
線陣攝像機的幾何模型不同于面陣攝像機,其原理是一個針孔鏡頭和一個遠心鏡頭的組合,這種組合導致線陣攝像機幾何模型比面陣攝像機的幾何模型更為復雜[1]。為了得到線陣攝像機內(nèi)部幾何模型,一般會將線陣圖像傳感器看作面陣圖像傳感器的某一行。由于線陣攝像機獨特的成像特點,一般通過與目標的相對運動來實現(xiàn)圖像采集,從而可以建立與面陣攝像機一樣的成像平面坐標系。
近年來,機器學習方法被廣泛應用到各個領(lǐng)域中(統(tǒng)計分析[2-3]、模式識別[4-5]等)。本文受到機器學習方法的啟發(fā),提出了基于支持向量回歸機(support vector regression,SVR)的測量方法,將攝像機的標定過程視為一個“黑盒”,通過SVR對樣本進行訓練,得到模型后應用于鐵路線接觸網(wǎng)導高和拉出值的檢測。
利用攝像機確定物體空間位置信息的過程一般分為圖像獲取、攝像機標定、特征提取、立體匹配、三維重建等5個部分[6]。根據(jù)攝像機的成像原理,從世界坐標系到像素坐標系的轉(zhuǎn)換需要一個精確的模型,而確定這個模型的過程常常稱為攝像機的標定。攝像機的標定一般選取容易識別、幾何或紋理特征明顯的物體作為標定物[7]。面陣攝像機標定法中根據(jù)標定物的不同,分為3D標定物標定法[8]、2D標定物標定法[9]和1D標定物標定法[10]等,在工業(yè)和學術(shù)上得到了廣泛的應用。
攝像機的標定過程如圖1所示。
Fig.1 Camera calibration process圖1 攝像機標定過程
對于通常使用的面陣攝像機,在標定過程中所需要確定的模型中包含許多參數(shù),簡單地可以分為內(nèi)部參數(shù)和外部參數(shù)。內(nèi)部參數(shù)是從攝像機坐標系到像素坐標系的轉(zhuǎn)換,而外部參數(shù)是從世界坐標系到攝像機坐標系的轉(zhuǎn)換。
攝像機的內(nèi)部參數(shù)即表示攝像機本身的特定性質(zhì),對于針孔鏡頭而言,內(nèi)部參數(shù)包括(f,k,dx,dy,u0,v0)6個,其中f表示焦距,k表示徑向畸變量級,dx和dy表示兩個方向上的縮放因子,(u0,v0)表示圖像的中心。攝像機的外部參數(shù)表示攝像機和物體的空間位置關(guān)系,即攝像機坐標系和世界坐標系之間的相對位置關(guān)系,通常包括3個旋轉(zhuǎn)參數(shù)和3個平移參數(shù),即 (α,β,γ,tx,ty,tz)。一般地,根據(jù)小孔成像原理和相似三角形原理,在不考慮畸變時,像素坐標系和世界坐標系的關(guān)系如式(1)。
其中,s為尺度因子,對標定結(jié)果沒有影響。式(1)可以簡單地寫為:
一般的攝像機標定過程,就是利用足夠多的、已知世界坐標系的空間點,建立與其圖像投影之間的關(guān)系,從而確定攝像機內(nèi)參A與外參[R T]的過程。通?;儏?shù)指理想圖像坐標系和實際圖像坐標系的偏差。
線陣攝像機由于其成像的特殊性,更多地應用于工業(yè)生產(chǎn)中。其標定方法常常根據(jù)實際應用場景來設(shè)計。目前有用三維標定物對線陣攝像機進行標定的方法[11],但標定物的制作和維護成本較高。一般線陣攝像機的標定常采用運動法,即通過一定的運動形式,按一定的掃描頻率對物體進行拍攝,將線陣攝像機得到的圖像序列以一定方式排列,得到類似于面陣攝像機的拍攝結(jié)果,再通過一般面陣攝像機的成像模型計算攝像機參數(shù),完成標定過程。按照運動的不同,可以將運動標定法分為平移標定法和轉(zhuǎn)動標定法。
平移標定法中,目前最常見的運動是攝像機線性運動,即攝像機相對于目標物體作勻速直線運動[1]。由于攝像機在運動中要實現(xiàn)復雜的成像過程,因此不能將其視為質(zhì)點,同時規(guī)定平移運動期間攝像機相對于運動方向不發(fā)生轉(zhuǎn)動。此時,運動可表示為向量V=(vx,vy,vz)T,物體保持靜止。在確定某一點P=(xC,yC,zC)T的投影時,需解線性方程組λ(x,y,f)T=(xC,yC,zC)T-t(vx,vy,vz)T來求解時間,進而再求得物體的像素坐標。這種求解方法下,外部參數(shù)同樣有6個,即 (α,β,γ,tx,ty,tz),內(nèi)部參數(shù)由于加上了相機的平移運動,因此由9個參數(shù)表示(f,k,dx,dy,u0,v0,vx,vy,vz)。這種方法標定精度高,且由于這種運動形式較為簡單常見,常用于工業(yè)生產(chǎn)線上對于產(chǎn)品質(zhì)量的檢測,但標定中所需要計算的參數(shù)較多,需要有專業(yè)的背景知識作為基礎(chǔ),同時標定所需的空間點也較多,標定過程較為繁瑣。
轉(zhuǎn)動標定法中,劉仁峰等人[12]提出了一種基于二次曲線的線陣攝像機標定技術(shù)。這種方法的標定模板是包含有3個或更多二次曲線的平面,相對于攝像機的位置可以自由移動。常用的二次曲線為4個大小相同的圓。標定過程只需要攝像機在兩個以上的不同角度對圖像進行拍攝。每次拍攝時,線陣相機以一定的已知角速度ω旋轉(zhuǎn),連續(xù)對標定模板進行拍攝得到多幀圖像,將每個角度拍攝的圖像序列排列成面陣圖像,從面陣圖像中提取二次曲線作為標定基元,以此簡化基元對應問題。該方法利用了橢圓擬合,并且由于靶標包含非同心二次曲線,因此這種標定方法的精度較高,魯棒性較好。但標定方法需要相機以固定已知的角速度沿成像平面的垂直方向轉(zhuǎn)動,由于運動的特殊性,實際的應用場景較少。
目前已有的攝像機標定方法,大多數(shù)是通過幾何關(guān)系,例如相似三角形、空間坐標平移旋轉(zhuǎn)關(guān)系等,對鏡頭的成像原理進行建模,計算出相應的攝像機內(nèi)部參數(shù)和外部參數(shù)。標定過程需要掌握一定的專業(yè)知識,并且測量時誤差隨著距離的增加呈線性增長[13]。對于線陣攝像機,往往通過運動使其近似于一個面陣攝像機,再利用類似于面陣攝像機的標定方法進行標定。攝像機的標定過程其實是建立從世界坐標系到攝像機坐標系,再到像素坐標系的一個對應關(guān)系。在測量過程中,通過攝像機拍攝得到的圖像坐標信息,還原得到物體的空間位置信息。
如果擁有足夠多的空間點與其像素坐標的對應關(guān)系,可以直接得到世界坐標系與像素坐標系之間的對應關(guān)系。吳培等人提出的交匯式測量方法[14]通過幾何角度查表的方式,建立世界坐標系與像素坐標系的關(guān)系。通過支持向量回歸機對樣本進行訓練,得到一個模型。這個模型相對于使用者來說是一個“黑盒”,模型的參數(shù)由若干“支持向量”組成。在測量時同樣可以利用這個模型從像素坐標中得到物體的空間位置信息。在實驗部分會對兩種“黑盒”標定方法進行對比。
支持向量機(support vector machine,SVM)是針對經(jīng)典的二分類問題提出的,目標是尋求一個最優(yōu)的超平面,使兩類樣本點分得最開。而支持向量回歸機(SVR)是支持向量在函數(shù)回歸領(lǐng)域的應用,其樣本點只有一類,所尋求的最優(yōu)超平面使得所有樣本點距離超平面的總偏差最小。標準支持向量機采用ε-不靈敏度函數(shù),如式(3),即假設(shè)所有訓練數(shù)據(jù)在精度下用線性函數(shù)擬合,如圖2所示。
Fig.2 Schematic diagram of support vector regression圖2 支持向量回歸機原理示意圖
此時樣本點都在兩條邊界線之間,在邊界上的點被稱為支持向量。通常訓練樣本數(shù)據(jù)在低維空間中是非線性可分的,因此為了使數(shù)據(jù)擬合效果更好,引入核函數(shù),將其映射到高維空間中使其線性可分。常用的核函數(shù)包括徑向基函數(shù)、多項式函數(shù)、sigmoid函數(shù)等。
對面陣攝像機進行標定時,往往需要從若干個視角對標定物體進行拍攝,每個標定物包含一些易識別的特征點,例如Harris角點[15]等。而線陣相機由于成像時只有一維像素,因此不能采用特征點進行標定。經(jīng)常采用的標定物包括含有二次曲線的平面模板或者邊緣特征明顯的條狀標定物。
采用的標定物是黑色條狀物。同時,考慮到使用支持向量回歸機進行訓練,需要的樣本數(shù)量相比幾何法更多。因此在同一模板平面上采用了21條等寬的黑色條紋,即一個視角每臺攝像機能拍攝得到21條標定物的圖像,拍攝結(jié)果為黑白圖像,如圖3所示。由于系統(tǒng)中使用了4臺線陣攝像機對接觸網(wǎng)進行檢測,圖3從上到下分為4部分,每一部分表示一臺相機的拍攝結(jié)果。為了便于觀察,將每臺相機的拍攝結(jié)果重復了100幀。同時為了更方便地確定中心位置,采用鄰近的雙條標定物作為標記(在圖3中用紅色方框標出)。每條標定物左側(cè)邊緣的位置信息已知(中間鄰近的兩條黑色標定物視作一條),每臺攝像機拍攝的圖像中,除去21條標定物的影像外其余的黑白部分為背景。對所拍攝得到的圖像進行標記處理,獲得每條標定物左側(cè)邊緣在圖像中的像素位置信息,例如圖3中最左邊標定物在4臺攝像機拍攝的圖像中的像素坐標分別為(1 552,1 144,1 370,1 348),其拉出值為-500 mm(負號表示左側(cè)方向),導高值為2 470 mm。
Fig.3 Image of calibration object in linear array camera圖3 標定物在線陣攝像機中所成的圖像
總共采集了13個視角的圖像信息,每個視角均有4臺攝像機,且攝像機的相對位置不發(fā)生變化,獲得的圖像均與圖3類似。其中一個視角中一條標定物的圖像由于鏡頭視角的原因與背景混淆,因此將其舍去。最終,得到272組標定物空間位置點與4臺攝像機中相應像素位置的對應關(guān)系,每組數(shù)據(jù)中包含4個像素坐標信息、一個導高值和一個拉出值信息。
通過多臺攝像機拍攝的圖像信息還原重建得到物體的空間位置是三維立體視覺中的一個重要內(nèi)容。根據(jù)立體視覺原理,只有兩個或以上的視角才能獲取物體的三維空間位置信息。
接觸網(wǎng)的測量可分為“檢測-預測”兩個步驟,首先從線陣攝像機拍攝的圖像中檢測得到接觸線在每一時刻的像素信息,然后將4臺攝像機中的像素信息作為輸入,利用SVR訓練得到的模型預測得到相應的導高和拉出值。為了實現(xiàn)對接觸網(wǎng)的檢測,采用了4臺線陣攝像機,采用的型號是Basler RAL 4096-24gm陣列相機,攝像機通過剛性結(jié)構(gòu)固定,并保持4臺攝像機在同一平面內(nèi),從左至右將攝像機編為1~4號。理想的設(shè)計安裝如圖4所示。由于左右兩側(cè)關(guān)于中線成軸對稱,圖中展示的是左半側(cè)的安裝示意圖,未帶單位的數(shù)字都以毫米作為單位。
Fig.4 Schematic diagram of experimental system on left side圖4 實驗系統(tǒng)左半側(cè)安裝示意圖
攝像機安裝完畢后,保持其相對位置不動。檢測接觸網(wǎng)的過程中,某一時刻4臺線陣攝像機同時對一根接觸線進行拍攝。由于線陣攝像機得到的圖像只有一行,難以對接觸線進行檢測和跟蹤,將一段時間內(nèi)的圖像進行拼接,形成完整的接觸線軌跡圖像,方便使用跟蹤算法在圖像中找到每一時刻接觸線的像素坐標,如圖5所示。
Fig.5 Picture taken by one camera during a period of time圖5 某一時間段內(nèi)一臺攝像機的拍攝結(jié)果
圖5展示的是在某一時間段內(nèi),最左側(cè)1號攝像機拍攝得到的結(jié)果,共1 900幀。圖中亮度最高的折線即為接觸線的影像。通過對圖像進行中值濾波,卷積操作并利用帶閾值限定的跟蹤算法,得到每一時刻接觸線在4臺攝像機所拍攝圖像中的像素坐標。此前通過對數(shù)據(jù)集中的樣本進行訓練,得到攝像機標定模型。此標定模型由一些“支持向量”組成,建立起物理空間點和攝像機像素點之間的聯(lián)系。將得到的4個像素坐標作為輸入,經(jīng)過訓練得到SVR模型后就能得到目前接觸網(wǎng)的空間位置信息。
相比于一般的攝像機標定方法,提出利用SVR進行標定的方法直接從像素坐標對應到世界坐標,攝像機的參數(shù)對于使用者是“黑盒”。有學者提出的交匯測量系統(tǒng)線陣相機標定方法[14]也同樣將攝像機的內(nèi)外參數(shù)視為“黑盒”。該方法利用多臺攝像機,將像素坐標與攝像機光軸之間的夾角建立對應關(guān)系,再利用同一標定物的在不同攝像機中的像素坐標與各臺攝像機光軸所呈的夾角,通過幾何關(guān)系計算得到空間位置信息。在測量問題時比較了兩種“黑盒”標定方法的測量結(jié)果,并對結(jié)果進行了分析。
訓練集由272組數(shù)據(jù)構(gòu)成,每組數(shù)據(jù)包含1個四維輸入和1個二維輸出。分別表示同一條標定物在4臺攝像機中得到的像素坐標值以及標定物的平面坐標值。
由于每個支持向量回歸機的輸出只能是一維的,因此設(shè)計了兩個支持向量回歸機,分別用于預測導高和拉出值。輸入均為4個像素值,將其歸一化到區(qū)間[0,1]。以安裝支架的底部中點為原點,接觸網(wǎng)的拉出值呈左右對稱,將左側(cè)的視為負值,右側(cè)視為正值,正負只表示方向,導高值均為正。因此在第一個支持向量回歸機中,將拉出值歸一化到區(qū)間[-1,1],在第二個支持向量回歸機中,將導高值歸一化到區(qū)間[0,1],分別訓練得到兩個支持向量機。
支持向量回歸機選用的是OpenCV中的ε類支持向量回歸機,使用懲罰因子C,要求訓練集的特征向量和擬合出的超平面距離小于p,同時采用了高斯核函數(shù)作為內(nèi)核。在選擇參數(shù)時,特征向量和擬合出超平面的距離p將直接影響到模型的復雜程度。所有的訓練數(shù)據(jù)足夠精確,不包含噪聲,因此不考慮過擬合的問題,而將p的值盡可能取得足夠小,實驗中p的取值為0.000 1。同時對可能潛在的噪聲設(shè)定了很大的懲罰因子,目的是使所擬合的超平面盡可能得準確,實驗中懲罰因子C取值一般取103。
為了使SVR的回歸預測效果更好,在實驗中使用8折交叉驗證,對3個參數(shù)C、p、g進行選擇。實驗中通過遍歷3個參數(shù)的各種取值,也證實了對于C和p兩個參數(shù)選擇的想法是正確的。
采用誤差絕對值的平均值作為衡量參數(shù)好壞的標準,平均值越小即表明測量的精度越高。參數(shù)的選擇如表1所示。
Table 1 Optimal values obtained by cross validation表1 交叉驗證得到的最優(yōu)參數(shù)值
確定合適的參數(shù)后,通過訓練得到的SVR模型,對測試集進行測試,同時實現(xiàn)了一種簡單的交匯式測量方法,通過建立像素與入射光線角度之間的對應關(guān)系,再通過幾何法對問題進行求解。兩種方法分別計算接觸網(wǎng)的拉出值和導高,計算平均誤差,結(jié)果如表2所示。
Table 2 Mean of measurement error表2 測量誤差平均值 mm
從標定的時間上看,交匯式測量方法需要計算反三角函數(shù),并且要求的標定精度越高,所需的樣本數(shù)越多,其所需的時間越多,而SVR方法的標定精度與樣本數(shù)沒有直接的關(guān)系。兩種方法在計算接觸線位置前完成標定過程,標定時間均小于0.1 s,且對計算過程沒有直接影響,從計算接觸線位置的時間上看,利用交匯式測量方法,每10萬次的計算時間為0.4 ms;SVR預測方法的計算時間為0.6 ms。兩種方法均能滿足工程系統(tǒng)的實時性要求,結(jié)果對工程并無明顯影響。
從誤差平均值的角度上看,相比于交匯式測量方法,SVR方法的測量精度較好,在表3中隨機給出了測試集的部分結(jié)果。展現(xiàn)了兩種“黑盒”標定方法的測量精度。
Table 3 Part result of test set表3 測試集部分結(jié)果 mm
工程中對于接觸線測量的精度要求為±12.5 mm,通過交叉驗證得到最優(yōu)參數(shù),從測試集的結(jié)果上分析,本文所提出線陣攝像機標定的SVR方法能夠滿足工程上對于測量精度的要求,并且精度優(yōu)于使用交匯式測量方法。相比于利用夾角信息計算空間位置的交匯式測量方法,利用支持向量回歸機的標定方法進行測量時,對導線高度和拉出值的檢測誤差呈隨機分布,而使用幾何方法(包括交匯式測量)進行標定時,誤差隨著被測量物體與標定物距離的增加呈線性增長。同時,SVR標定方法由于標定過程簡單可靠,SVR中的超參數(shù)只需訓練一次,如果設(shè)備安裝產(chǎn)生偏差需要進行多次標定時,無需再進行參數(shù)選擇,因此更適合于有顛簸和晃動的火車上進行標定。
本文將機器學習中的支持向量回歸方法用于線陣攝像機的標定與測量,提出了一種“黑盒”標定方法,建立了攝像機像素坐標與實際空間點位置信息的直接映射關(guān)系,充分發(fā)揮了支持向量回歸機在小樣本、非線性問題處理上的優(yōu)勢,通過SVR訓練標定模型,大大簡化了攝像機標定過程,避免了參數(shù)的煩瑣計算。同時,利用回歸的方法能夠一次性融合兩臺以上的攝像機信息,將測量誤差控制在一定的精度以內(nèi),且誤差不會隨著測量距離的增加而變大。
利用文中的方法,在對鐵路接觸網(wǎng)的檢測中實現(xiàn)了應用,其標定速度快,不需要先驗知識,測量精度滿足要求。希望能減小訓練樣本,并在精度上有更好的性能。此外,下一步的工作還包括將利用支持向量回歸機的標定法從線陣攝像機推廣到面陣攝像機。