王培俊, 呂東旭, 陳 鵬
(西南交通大學(xué)機(jī)械工程學(xué)院, 四川 成都 610031)
尖軌是道岔的重要部件,在列車變軌的過(guò)程中起引導(dǎo)作用.相對(duì)于基本軌,尖軌的結(jié)構(gòu)薄弱,是鐵路交通的薄弱環(huán)節(jié),需得到及時(shí)有效的檢測(cè).隨著高速鐵路的迅速發(fā)展,為保證高速列車安全、平穩(wěn)地變軌,高速尖軌需滿足更高的工作性能,其檢測(cè)需求也相應(yīng)地提高.
道岔中鋼軌損壞的主要原因是車輪走行對(duì)鋼軌形成的磨耗和疲勞破壞[1].目前,我國(guó)主要采用人工的方法檢測(cè)尖軌,使用相應(yīng)的測(cè)量尺,甚至目測(cè)來(lái)判斷尖軌的工作狀態(tài),檢測(cè)效率低下且檢測(cè)結(jié)果易受個(gè)人經(jīng)驗(yàn)影響.近年來(lái),隨著數(shù)字圖像技術(shù)的發(fā)展,出現(xiàn)了許多基于圖像視覺(jué)的檢測(cè)方法,如通過(guò)單目視覺(jué)的方法構(gòu)建的鋼軌輪廓檢測(cè)系統(tǒng)[2].相對(duì)于單目視覺(jué)系統(tǒng),基于結(jié)構(gòu)光雙目立體視覺(jué)的三維掃描系統(tǒng)具有測(cè)量精度高、掃描速度快且一次可進(jìn)行較大幅面掃描等特點(diǎn)[3],廣泛應(yīng)用于逆向工程和表面檢測(cè)等領(lǐng)域,包括鋼軌輪廓的檢測(cè)[4],主要研究應(yīng)用對(duì)象為結(jié)構(gòu)較為簡(jiǎn)單的鋼軌[5-6].有學(xué)者對(duì)道岔進(jìn)行了縫隙較大處的密貼值檢測(cè)[7],但對(duì)于結(jié)構(gòu)較為復(fù)雜的、非拉伸件的尖軌檢測(cè)尚沒(méi)有較為全面深入的研究.雖然激光檢測(cè)儀在道岔檢測(cè)中也有應(yīng)用,但激光檢測(cè)儀是截面檢測(cè)形式,難免存在數(shù)據(jù)小部分丟失的問(wèn)題,難以完全滿足結(jié)構(gòu)復(fù)雜的道岔檢測(cè)要求.鐵路高速道岔檢測(cè)仍然是鐵路線路檢測(cè)中的難題.為檢測(cè)高速尖軌的磨耗,基于點(diǎn)云庫(kù)(point cloud library, PCL)開(kāi)發(fā)了磨耗分析軟件,將三維結(jié)構(gòu)光設(shè)備掃描的點(diǎn)云數(shù)據(jù)導(dǎo)入可獲得三維尺度的檢測(cè)結(jié)果,但當(dāng)前的系統(tǒng)存在如下問(wèn)題:
(1) 結(jié)構(gòu)光掃描系統(tǒng)的機(jī)器視覺(jué)設(shè)備具有一定的工作視場(chǎng)范圍,無(wú)法在同一測(cè)點(diǎn)采集完整的高速道岔尖軌點(diǎn)云數(shù)據(jù),需從多個(gè)視角進(jìn)行數(shù)次掃描,將多幅局部點(diǎn)云拼接成完整的尖軌模型.目前常用的點(diǎn)云拼接方法是基于標(biāo)識(shí)點(diǎn)識(shí)別的點(diǎn)云拼接[8],極大地增加了人工成本,降低了掃描效率,并且需要點(diǎn)云數(shù)據(jù)連續(xù).
(2) 在應(yīng)用PCL進(jìn)行點(diǎn)云數(shù)據(jù)處理與分析時(shí),部分函數(shù)設(shè)備利用率不高,運(yùn)行速度緩慢,降低了整個(gè)檢測(cè)系統(tǒng)的實(shí)時(shí)性.
針對(duì)基于標(biāo)識(shí)點(diǎn)的點(diǎn)云拼接效率低下的問(wèn)題,本文通過(guò)分析高速道岔尖軌的檢測(cè)需求及其幾何形態(tài),引入了復(fù)合拼接的方法,通過(guò)融合編碼器的位移信息,完成了尖軌點(diǎn)云數(shù)據(jù)的拼接.通過(guò)掃描實(shí)驗(yàn)證實(shí)其可行性,在檢測(cè)系統(tǒng)的自動(dòng)化、掃描效率方面有較大提升.
針對(duì)PCL函數(shù)效率低下的問(wèn)題,考慮到數(shù)據(jù)處理流程的計(jì)算復(fù)雜度和運(yùn)算的時(shí)間消耗,重點(diǎn)分析了點(diǎn)特征直方圖(point feature histograms, PFH)的計(jì)算過(guò)程,結(jié)合PFH算法和OpenCL(open computing language)硬件模型的特點(diǎn),調(diào)整點(diǎn)云數(shù)據(jù)結(jié)構(gòu),提出基于OpenCL的PFH算法.通過(guò)實(shí)驗(yàn)測(cè)試,獲取優(yōu)化后的算法相對(duì)于原有PFH函數(shù)的加速比以及系統(tǒng)整體性能的提升幅度.
尖軌磨損的測(cè)量參數(shù)有垂直磨耗、側(cè)面磨耗和降低值等.以垂直磨耗為例,測(cè)量的是尖軌軌頂?shù)哪p,檢測(cè)位置為未磨損尖軌軌頂距離內(nèi)側(cè)1/3軌頭寬度處[9].不同于基本軌的固定截面,高速道岔尖軌的截面隨著位置的變化而改變.因此,要準(zhǔn)確測(cè)量尖軌各部位的垂直磨耗,需精確定位檢測(cè)點(diǎn).
使用結(jié)構(gòu)光掃描儀對(duì)高速道岔尖軌進(jìn)行磨耗檢測(cè)時(shí),在截面方向的定位可以選擇未與列車輪軌直接接觸的軌底頂面作為參考,以尖軌的CAD設(shè)計(jì)模型作為配準(zhǔn)目標(biāo),將測(cè)量得到的尖軌軌底數(shù)據(jù)精確配準(zhǔn)到這一標(biāo)準(zhǔn)模型的軌底,再對(duì)比軌頂處的磨耗情況;由于軌底截面固定不變,不具備在尖軌延伸方向定位的條件,原始的定位方法是采集整個(gè)尖軌的點(diǎn)云數(shù)據(jù),以其開(kāi)端為原點(diǎn)計(jì)算延伸值.受結(jié)構(gòu)光掃描儀工作范圍和掃描方位的限制,尖軌點(diǎn)云數(shù)據(jù)的獲取過(guò)程中需要進(jìn)行多次掃描并且精確拼接.將數(shù)次從不同方位、視角獲取的局部點(diǎn)云數(shù)據(jù)拼接成完整的待測(cè)尖軌的三維模型,再將其與標(biāo)準(zhǔn)的尖軌CAD模型精確配準(zhǔn),計(jì)算兩者之間的差異可以得出待測(cè)尖軌的磨耗值.傳統(tǒng)拼接流程如圖1所示.

圖1 點(diǎn)云的傳統(tǒng)拼接流程Fig.1 General point cloud registration
點(diǎn)云拼接的本質(zhì)是將在不同方位、視角下獲取的尖軌局部點(diǎn)云數(shù)據(jù)作剛性變換,將各自的局部坐標(biāo)系統(tǒng)一到全局坐標(biāo)系中.首先需定義全局坐標(biāo)系,通常可將首次獲取的局部尖軌點(diǎn)云所對(duì)應(yīng)的局部坐標(biāo)系定義為全局坐標(biāo)系,而單次測(cè)量獲得的尖軌點(diǎn)云是局部數(shù)據(jù),設(shè)平移變換為T(mén)和旋轉(zhuǎn)變換為R,局部坐標(biāo)為(XL,YL,ZL),全局坐標(biāo)為(XW,YW,ZW),它們之間的變換可描述為
(1)
通過(guò)式(1)中矩陣R和T的具體參數(shù)即可完成局部坐標(biāo)到全局坐標(biāo)的統(tǒng)一.典型的求解方法是通過(guò)對(duì)標(biāo)識(shí)點(diǎn)的檢測(cè)與定位[10].由于標(biāo)識(shí)點(diǎn)在全局坐標(biāo)系與局部坐標(biāo)系中拓?fù)潢P(guān)系不變,在局部到全局坐標(biāo)的變換中可以利用這一屬性實(shí)現(xiàn)標(biāo)識(shí)點(diǎn)匹配,從而確定變換關(guān)系.
利用局部點(diǎn)云交疊部分的標(biāo)識(shí)點(diǎn)實(shí)現(xiàn)點(diǎn)云拼接,對(duì)標(biāo)識(shí)點(diǎn)的數(shù)量和分布都具有一定的要求.在測(cè)試實(shí)驗(yàn)中,如果能夠滿足標(biāo)識(shí)點(diǎn)數(shù)目大于3且不共線的條件,即可實(shí)現(xiàn)點(diǎn)云的拼接,用于檢測(cè)高速道岔尖軌的磨耗.然而,在高鐵線路的實(shí)際工況環(huán)境下,道岔檢測(cè)時(shí)存在以下弊端:
(1) 較低的效率.人工的方法保證局部點(diǎn)云交疊處標(biāo)識(shí)點(diǎn)的位置與數(shù)量,極大耗費(fèi)檢測(cè)的時(shí)間,同時(shí)檢測(cè)人員對(duì)標(biāo)識(shí)點(diǎn)布置的合理性將影響測(cè)量的成功率和精度.
(2) 數(shù)據(jù)存在空洞.全黑或全白的標(biāo)識(shí)點(diǎn)的顏色設(shè)計(jì),雖然有利于特征提取,但與此同時(shí)會(huì)造成極端的曝光不足或過(guò)量,從而引起數(shù)據(jù)的缺失,形成點(diǎn)云數(shù)據(jù)空洞.
(3) 數(shù)據(jù)有冗余.鐵路現(xiàn)場(chǎng)的道岔尖軌磨耗以抽檢的形式進(jìn)行檢查,主要是在尖軌的尖端、頂寬5 mm處、頂寬20 mm處、頂寬35 mm處、頂寬50 mm處、頂寬70 mm以上6個(gè)主要檢查斷面[9].使用標(biāo)識(shí)點(diǎn)的方法強(qiáng)制性地要求尖軌的各幅點(diǎn)云數(shù)據(jù)之間具有重疊區(qū)域,不僅大大增加了掃描工作量,導(dǎo)致點(diǎn)云數(shù)據(jù)冗余,還會(huì)增加潛在的拼接失敗的風(fēng)險(xiǎn).
針對(duì)以上問(wèn)題,綜合高速道岔尖軌的幾何形態(tài),本文提出了基于距離編碼器的高速尖軌點(diǎn)云復(fù)合拼接方法.
首先分析高速道岔尖軌的幾何形態(tài).我國(guó)鐵路的大部分12號(hào)及12號(hào)以下的道岔均采用直線型尖軌[11],即大部分的尖軌曲率為0.由于尖軌軌底的截面形狀保持不變,沿尖軌延伸方向測(cè)得的各組點(diǎn)云可以看作是第1組點(diǎn)云的Z向平移.為了保證檢測(cè)數(shù)據(jù)的連續(xù)性,結(jié)構(gòu)光掃描設(shè)備搭載在檢測(cè)小車上,小車沿尖軌直線行駛,結(jié)構(gòu)光掃描設(shè)備相對(duì)于尖軌無(wú)偏轉(zhuǎn),僅在與軌道平行的方向發(fā)生位置變化.假設(shè)檢測(cè)過(guò)程中檢測(cè)車的車輪不與被測(cè)軌相對(duì)滑動(dòng),則檢測(cè)車通過(guò)的距離與車輪轉(zhuǎn)動(dòng)的總周長(zhǎng)相等,利用激光編碼器采集車輪的轉(zhuǎn)動(dòng)總弧度,可獲得檢測(cè)車在被測(cè)尖軌上平移的距離.
在沒(méi)有參考標(biāo)識(shí)點(diǎn)的條件下,以結(jié)構(gòu)光掃描設(shè)備自身的局部坐標(biāo)系為基準(zhǔn)獲取多組點(diǎn)云數(shù)據(jù),由于各測(cè)點(diǎn)處掃描設(shè)備對(duì)于尖軌的可視范圍一定,軌底的截面也恒定,各組檢測(cè)數(shù)據(jù)基本重合.
設(shè)XY平面與尖軌CAD模型的啟示截面重合,Z方向?yàn)殇撥壍难由旆较?建立全局坐標(biāo)系.利用激光編碼器記錄脈沖量,乘以脈沖長(zhǎng)度計(jì)算出測(cè)量檢測(cè)小車的位移量,換算成各局部點(diǎn)云沿軌道的偏移量,基于激光距離編碼器復(fù)合尖軌點(diǎn)云拼接的工作流程圖如圖2所示.

圖2 基于激光距離編碼器復(fù)合拼接流程Fig.2 Complex point cloud registration based on laser distance encoder
PFH是一種穩(wěn)定性較優(yōu)秀的點(diǎn)云特征描述方法,具有曲面剛性不變、點(diǎn)距對(duì)特征計(jì)算影響小和噪點(diǎn)擾動(dòng)較弱等優(yōu)勢(shì)[12].如圖3所示,PFH使用多維直方圖描述目標(biāo)點(diǎn)Pt與鄰域點(diǎn)Pi(i=1,2,…,k)之間的幾何特性[13-14],計(jì)算復(fù)雜度為O(k2),從而輔助點(diǎn)云配準(zhǔn)[15].

圖3 目標(biāo)點(diǎn)與k個(gè)鄰近點(diǎn)之間的幾何特性Fig.3 Geometric characteristic between query points and their nearest k neighbors
任取鄰域中兩點(diǎn)Pa與Pb,設(shè)它們的法向量分別為na、nb,計(jì)算兩點(diǎn)之間的空間位置關(guān)系和法向量的角度偏轉(zhuǎn).取其中的一點(diǎn)作為局部坐標(biāo)系原點(diǎn)定義局部坐標(biāo)系,以簡(jiǎn)化運(yùn)算,如圖4所示.

圖4 任意兩點(diǎn)Pa和Pb之間的相對(duì)位置關(guān)系Fig.4 Relative position of two arbitrary points Pa and Pb
其中,將Pa與Pb相連得到(Pb-Pa)坐標(biāo)系的Z軸垂直于X軸和(Pb-Pa)所在的平面.Pa和Pb的位置關(guān)系和其所對(duì)應(yīng)的法向量ns和nt之間的偏轉(zhuǎn)關(guān)系可描述為
(2)
式中:d是Pa和Pb之間的歐式距離.
計(jì)算鄰域內(nèi)任意兩點(diǎn)的幾何特征描述值(α,φ,θ,d),把兩點(diǎn)的空間位置關(guān)系和法向量偏轉(zhuǎn)關(guān)系(共12個(gè)值)減少為4個(gè).其中,3個(gè)參數(shù)是角度量,且省略d能減弱算法對(duì)點(diǎn)云密度的敏感度,從而增強(qiáng)魯棒性[13].將這3個(gè)角度參數(shù)映射到n3個(gè)區(qū)間的直方圖,計(jì)算領(lǐng)域點(diǎn)落到各區(qū)間的頻數(shù).PCL點(diǎn)云庫(kù)提供了一個(gè)pcl::PFHSignature125的數(shù)據(jù)類型存儲(chǔ)PFH值,它包含125個(gè)浮點(diǎn)數(shù),即n=5(每個(gè)分量分為5等分).
結(jié)構(gòu)光掃描設(shè)備采集的高速尖軌點(diǎn)云包含x、y、z3個(gè)位置坐標(biāo)描述,不具備法向量,因此首先需要估計(jì)點(diǎn)云數(shù)據(jù)的法向量.實(shí)驗(yàn)證明,在尖軌點(diǎn)云數(shù)據(jù)(規(guī)模為(105~106個(gè)點(diǎn))的計(jì)算中,點(diǎn)云的法向量的計(jì)算復(fù)雜度低于5%,OpenCL并行加速收益低,甚至可能因GPU (graphics processing unit)之間的數(shù)據(jù)拷貝帶來(lái)的額外開(kāi)銷而降低性能.綜上,本文中法向量計(jì)算在CPU平臺(tái)實(shí)現(xiàn).
假設(shè)尖軌點(diǎn)云包含M個(gè)點(diǎn),鄰域點(diǎn)數(shù)量設(shè)為N,那么計(jì)算PFH循環(huán)次數(shù)為M(N2-N)次(包括重復(fù)配對(duì)),或者M(jìn)N2次(不計(jì)重復(fù)配對(duì)).每個(gè)循環(huán)輸入的數(shù)值為6個(gè)(空間坐標(biāo)和法向量),且各點(diǎn)的PFH計(jì)算完全獨(dú)立,并行度較高.實(shí)踐表明,PFH直方圖計(jì)算所時(shí)間占整個(gè)點(diǎn)云數(shù)據(jù)處理時(shí)間的85%.因此,本文結(jié)合PFH算法和GPU設(shè)備的特點(diǎn),提出了OpenCL并行化的PFH算法.
GPU全局內(nèi)存的訪問(wèn)代價(jià)十分高昂,若線程頻繁訪問(wèn)全局內(nèi)存會(huì)因內(nèi)存阻塞而空載,降低計(jì)算單元的利用率.使用GPU內(nèi)建的局部?jī)?nèi)存可以有效解決內(nèi)存阻塞問(wèn)題[16].GPU的局限在于其局部?jī)?nèi)存容量,對(duì)于單個(gè)計(jì)算單元,局部?jī)?nèi)存容量通常只有幾十KB,而PFH的直方圖計(jì)算中,需要搜索配對(duì)臨近,對(duì)于無(wú)序點(diǎn)云這種搜索將擴(kuò)大到整個(gè)點(diǎn)云.因此,不能直接將完整的點(diǎn)云數(shù)據(jù)復(fù)制到局部?jī)?nèi)存中.
針對(duì)上述問(wèn)題,本文對(duì)點(diǎn)云數(shù)據(jù)格式進(jìn)行重構(gòu),使其適應(yīng)OpenCL設(shè)備高速訪存,優(yōu)化如下:
假設(shè)尖軌的點(diǎn)云數(shù)據(jù)量為M.首先設(shè)定鄰域點(diǎn)的數(shù)量為k,遍歷整個(gè)點(diǎn)云數(shù)據(jù),基于k-d搜索樹(shù)的方法建立鄰域點(diǎn)索引.建立兩個(gè)浮點(diǎn)數(shù)組,將鄰域點(diǎn)索引按目標(biāo)點(diǎn)遍歷的順序存儲(chǔ)空間坐標(biāo)和法向量.因此,每個(gè)點(diǎn)的鄰域點(diǎn)索引相互獨(dú)立,且在內(nèi)存中連續(xù).將待計(jì)算的目標(biāo)點(diǎn)的鄰域索引拷貝到GPU各計(jì)算單元的局部?jī)?nèi)存中,每個(gè)單元的線程只需從局部?jī)?nèi)存中讀取數(shù)據(jù),避免頻繁訪問(wèn)全局內(nèi)存,降低了訪存阻塞.基于OpenCL的PFH計(jì)算流程如圖5所示.在PFH計(jì)算流程中,法向量和鄰域點(diǎn)索引的創(chuàng)建在CPU平臺(tái)中實(shí)現(xiàn).CPU計(jì)算完成后,將計(jì)算結(jié)果拷貝到GPU的全局內(nèi)存中,在GPU平臺(tái)完成PFH計(jì)算,再將計(jì)算結(jié)果拷貝到主機(jī)內(nèi)存.

圖5 OpenCL優(yōu)化的PFH流程Fig.5 Flowchart of OpenCL-accelerated PFH
在OpenCL的抽象模型中,共享數(shù)據(jù)的工作項(xiàng)(work-item)組成一個(gè)工作組(work-group)[17],具體到GPU硬件設(shè)備中,在相同工作組中的所有工作項(xiàng)共享局部?jī)?nèi)存.結(jié)合PFH的計(jì)算特點(diǎn),本文將單個(gè)點(diǎn)的PFH計(jì)算任務(wù)分配到OpenCL模型中的一個(gè)工作組.
工作組大小的劃分會(huì)直接影響GPU的負(fù)載效率.以AMD GCN (advanced micro devices, graphics core next)架構(gòu)的GPU為例,最小的線程操作粒度為64(稱作wavefront)[18],即這64個(gè)線程的操作指令是同步的.以wavefront的整數(shù)倍劃分工作組的大小時(shí),GPU計(jì)算單元的利用率最高,計(jì)算性能會(huì)顯著優(yōu)于其他情況[17].設(shè)任意目標(biāo)點(diǎn)的鄰域點(diǎn)索引數(shù)量為k,則分配到每個(gè)工作組后需要執(zhí)行k2次計(jì)算.將工作組的大小設(shè)為P,每個(gè)工作項(xiàng)執(zhí)行S次循環(huán),使得總循環(huán)次數(shù)PS≥k2.最佳的k值隨點(diǎn)云數(shù)據(jù)密度改變而浮動(dòng),若工作組大小P設(shè)置太大,當(dāng)k值設(shè)置較小時(shí)容易造成計(jì)算單元的閑置.運(yùn)用CodeXL,可以分析出不同工作組大小下VALU (vector arithmetic logic unit)的負(fù)載利用率如圖6所示.

圖6 工作組大小不同時(shí)向量運(yùn)算器的負(fù)載情況Fig.6 Load percentage of VALU in different workgroup sizes
從圖6可以看出,當(dāng)k設(shè)定較小時(shí),包含64個(gè)工作項(xiàng)的工作組VALU初始化比例與包含256個(gè)工作項(xiàng)的工作組相當(dāng),但前者的VALU負(fù)載更高.因此在k較小時(shí),工作組設(shè)為64個(gè)工作項(xiàng)時(shí)計(jì)算單元利用率更高,與理論分析一致.當(dāng)k設(shè)定較大時(shí)兩者均能使GPU的計(jì)算單元高負(fù)載運(yùn)行.綜上,本文將工作組64個(gè)工作項(xiàng),即一個(gè)wavefront對(duì)應(yīng)的線程數(shù)量.
檢測(cè)的高速尖軌長(zhǎng)度為1 200 mm,使用點(diǎn)云采集幅面為400 mm×300 mm的掃描裝置獲取被測(cè)尖軌工作側(cè)的點(diǎn)云.考慮點(diǎn)云數(shù)據(jù)之間的交集,進(jìn)行4次數(shù)據(jù)采集,點(diǎn)云數(shù)據(jù)的偏移量由距離編碼器獲取.未經(jīng)處理的的原始點(diǎn)云數(shù)據(jù)將重疊在初始位置,如圖7所示.
將首次采集的軌尖處的點(diǎn)云與尖軌設(shè)計(jì)CAD模型尖端對(duì)齊.首先分割出軌底的點(diǎn)云數(shù)據(jù),將其與標(biāo)準(zhǔn)模型的對(duì)應(yīng)位置進(jìn)行粗配準(zhǔn)和精確配準(zhǔn),再沿Z軸平移至尖軌尖端,效果如圖8所示.
融合激光距離編碼器測(cè)得的偏移量到尖軌點(diǎn)云變換矩陣,實(shí)現(xiàn)后續(xù)點(diǎn)云的剛性變換,限制變換后的點(diǎn)云位置,進(jìn)而完成精確配準(zhǔn).后續(xù)點(diǎn)云精確配準(zhǔn)后的效果如圖9所示.

圖7 多片原始尖軌點(diǎn)云相互重疊Fig.7 Overlaps of multiple point clouds in the initial state

圖8 掃描的第一片尖端點(diǎn)云與高速尖軌標(biāo)準(zhǔn)模型尖端對(duì)齊Fig.8 Registration of the first scanned piece of point cloud of the switch rail to the CAD model on the starting points

圖9 后續(xù)點(diǎn)云與標(biāo)準(zhǔn)模型精確配準(zhǔn)結(jié)果Fig.9 Accurate registration results of the rest point clouds to the designed model
以測(cè)量數(shù)據(jù)與標(biāo)準(zhǔn)CAD模型的截面配準(zhǔn)誤差和距離編碼器法在尖軌延伸方向的誤差評(píng)價(jià)復(fù)合配準(zhǔn)方法的精度,利用商用軟件Geomagic Qualify作為驗(yàn)證工具,誤差分析操作如圖10所示.

圖10 點(diǎn)云模型匹配誤差分析Fig.10 Point cloud alignment error analysis
兩種點(diǎn)云拼接方法與標(biāo)準(zhǔn)CAD模型的匹配誤差如表1所示.首次采集的尖軌尖端數(shù)據(jù)由兩種方法共用,因此匹配誤差一致;距離編碼器法的任意一副局部點(diǎn)云均獨(dú)立與標(biāo)準(zhǔn)CAD模型精確配準(zhǔn),因此在截面方向上的匹配精度保持一致;標(biāo)識(shí)點(diǎn)法僅對(duì)首次采集的尖軌尖端數(shù)據(jù)精確配準(zhǔn),后續(xù)局部點(diǎn)云通過(guò)標(biāo)識(shí)點(diǎn)的檢測(cè)來(lái)定位,造成誤差累計(jì),為了使各截面的匹配足夠精確以滿足磨耗分析的要求,標(biāo)識(shí)點(diǎn)法的匹配過(guò)程中仍然需要考慮每一組局部點(diǎn)云的匹配精度.
表1匹配誤差表
Tab.1Alignment errors mm

點(diǎn)云序列標(biāo)識(shí)點(diǎn)拼接法距離編碼器拼接法0010.240.240020.450.280030.630.260040.880.23
以標(biāo)識(shí)點(diǎn)法為參考,距離編碼器法在尖軌延伸方向上的誤差如表2所示.可以看出,單次誤差約為0.40 mm.本文點(diǎn)云拼接所產(chǎn)生的累計(jì)誤差在1.00 mm內(nèi),適用于尖軌延伸方向的精度需求不高的測(cè)量.
表2延伸方向誤差表
Tab.2Errors along the switch rail mm

點(diǎn)云序號(hào)延伸方向誤差00100020.230030.610040.89
本實(shí)驗(yàn)的測(cè)試平臺(tái)如表3所示.

表3 OpenCL平臺(tái)配置表Tab.3 Hardware and software of the OpenCL platform
上述高速尖軌采集的第一片點(diǎn)云模型作為實(shí)驗(yàn)測(cè)試的點(diǎn)云數(shù)據(jù),數(shù)據(jù)量為400 117個(gè)點(diǎn).選取不同的鄰近點(diǎn)規(guī)模k,計(jì)算上述點(diǎn)云數(shù)據(jù)的PFH點(diǎn)特征直方圖,記錄CPU平臺(tái)和GPU平臺(tái)耗時(shí).選取每個(gè)實(shí)例運(yùn)行 3次后的平均值進(jìn)行對(duì)比.CPU平臺(tái)使用PCL庫(kù)提供的計(jì)算函數(shù),GPU平臺(tái)使用本文針對(duì)OpenCL優(yōu)化后的PFH函數(shù).測(cè)試的結(jié)果如圖11所示.

圖11 CPU和GPU的PFH計(jì)算對(duì)比Fig.11 Comparison between CPU and GPU PFH computing
GPU的加速效果在較小的k值下并不明顯,接近于CPU的計(jì)算耗時(shí),但隨著k值的逐步增長(zhǎng),GPU的計(jì)算耗時(shí)并未顯著增加,而CPU的計(jì)算時(shí)間卻發(fā)生了指數(shù)性增長(zhǎng).在臨近點(diǎn)為100的條件下,相對(duì)于CPU平臺(tái),GPU運(yùn)算的加速比可達(dá)45.
經(jīng)上述兩個(gè)方法優(yōu)化后,檢測(cè)系統(tǒng)的點(diǎn)云掃描效率和處理效率有了一定提升.以掃描四片點(diǎn)云為例,預(yù)估檢測(cè)系統(tǒng)的整體提升幅度,如表4所示.
表4系統(tǒng)優(yōu)化前后耗時(shí)對(duì)比
Tab.4Comparison of time consumption between original and optimized methods s

對(duì)比項(xiàng)目原方法改進(jìn)方法系統(tǒng)標(biāo)定33.1533.15噴涂顯影劑34.06×434.06×4粘貼標(biāo)識(shí)點(diǎn)30.00×30清除標(biāo)識(shí)點(diǎn)10.00×30掃描6.45×46.45×4點(diǎn)云預(yù)處理5.005.00PFH計(jì)算50.006.41粗匹配10.4110.41精確匹配4.65×44.65×4總耗時(shí)399.20235.61速度提升/%69.43
本文在高速尖軌點(diǎn)云拼接中引入基于距離編碼器的混合配準(zhǔn),取代了傳統(tǒng)的標(biāo)識(shí)點(diǎn)拼接法,在取得較滿意的拼接精度的同時(shí)精簡(jiǎn)了手動(dòng)粘貼標(biāo)識(shí)點(diǎn)的流程,提升了檢測(cè)系統(tǒng)掃描數(shù)據(jù)的自動(dòng)化程度;相對(duì)于PCL庫(kù)提供的默認(rèn)PFH算法,引入了基于OpenCL異構(gòu)加速計(jì)算的PFH點(diǎn)特征直方圖算法,能更有效的利用計(jì)算資源,發(fā)揮GPU的并行處理優(yōu)勢(shì),提升處理速度.以實(shí)際尖軌為實(shí)驗(yàn)對(duì)象,實(shí)驗(yàn)證明本文針對(duì)高速尖軌的結(jié)構(gòu)光檢測(cè)系統(tǒng)通過(guò)對(duì)數(shù)據(jù)掃描和數(shù)據(jù)處理兩部分的優(yōu)化,將檢測(cè)系統(tǒng)的整體效率提升了約70%,顯著提高了檢測(cè)效率.