孫 翌,包建東
(南京理工大學(xué) 機(jī)械工程學(xué)院,江蘇 南京 210094)
近年來,隨著我國工業(yè)管道施工技術(shù)的發(fā)展,對金屬管道內(nèi)凹槽磨損等疵病的檢測提出了越來越高的要求,其嚴(yán)重者會(huì)直接影響到管道泄漏問題,因此對管道內(nèi)壁的檢測十分重要.傳統(tǒng)的方法是采用激光位移傳感器掃描管道內(nèi)壁,將采集的多段數(shù)據(jù)進(jìn)行拼接處理呈現(xiàn)完整的三維立體輪廓圖,但在面對大量點(diǎn)云數(shù)據(jù)時(shí),拼接過程耗時(shí)巨大,效率低下,無法滿足日益增長的檢測需求,為解決這一問題,本文對傳統(tǒng)的算法做了研究,并在此基礎(chǔ)上進(jìn)行了改進(jìn),通過仿真和現(xiàn)場試驗(yàn),證明其可行性.
對點(diǎn)云數(shù)據(jù)進(jìn)行拼接常用的方法是Besl提出的最近點(diǎn)迭代算法[1](Iterative Closest Point,ICP),其核心是通過求得旋轉(zhuǎn)矩陣R和平移向量T,把不同坐標(biāo)系下測得的數(shù)據(jù)點(diǎn)云進(jìn)行坐標(biāo)變換,主要分為4個(gè)階段[2]:
1) 對原始點(diǎn)云數(shù)據(jù)進(jìn)行采樣.
面對大量的點(diǎn)云數(shù)據(jù),可先對其進(jìn)行采樣,以提高拼接速度,減少噪音點(diǎn).
2) 確定初始對應(yīng)點(diǎn)集.
根據(jù)確立對應(yīng)點(diǎn)集的方法,大致分為3類: 點(diǎn)到點(diǎn),點(diǎn)到投影,點(diǎn)到面.
3) 去除錯(cuò)誤對應(yīng)點(diǎn)對.
一般情況下,在確立初始對應(yīng)點(diǎn)集中會(huì)存在大量的錯(cuò)誤對應(yīng)點(diǎn)對,因此需要一種約束方法去除錯(cuò)誤對應(yīng)點(diǎn)對,常用的有基于曲線幾何特征的約束方法和基于剛性運(yùn)動(dòng)一致性的約束方法.
4) 坐標(biāo)變換的求解.
該階段為本算法的核心,對于旋轉(zhuǎn)矩陣R和平移矢量T的求值,通常可采用以下4種方法: 單位四元數(shù)法、 奇異值分解法、 正交矩陣法和對偶四元數(shù)法.
在確認(rèn)初始點(diǎn)集與去除錯(cuò)誤對應(yīng)點(diǎn)對時(shí),面對大量的點(diǎn)云數(shù)據(jù),常用的方法在精度以及計(jì)算時(shí)間上都有一定的局限性,因此本文將采用一種基于自適應(yīng)空間球的k最近領(lǐng)域快速搜索算法,來提高點(diǎn)云拼接ICP算法的迭代精度和速度.
傳統(tǒng)的ICP算法搜索是計(jì)算任一點(diǎn)到其余各點(diǎn)的歐氏距離,然后升序排序,前面的k個(gè)點(diǎn)即為此點(diǎn)的k領(lǐng)域點(diǎn),但隨著點(diǎn)云數(shù)據(jù)規(guī)模的不斷增大,這種方法耗時(shí)巨大,故本文將采用與k無關(guān)的分塊策略對整個(gè)點(diǎn)云空間分塊,以候選點(diǎn)所在子塊的采樣點(diǎn)近似密度確定初始動(dòng)態(tài)球半徑,以球的外切立方體搜索k領(lǐng)域候選點(diǎn),當(dāng)k領(lǐng)域候選點(diǎn)數(shù)目不滿足要求或搜索不成功時(shí),以外切立方體的外接球擴(kuò)大搜索范圍,直至滿足要求或鄰域搜索成功[3].
1) 點(diǎn)云空間分塊
在一組點(diǎn)云數(shù)據(jù)中,共有N個(gè)采樣點(diǎn),設(shè)一立方體恰好將所有采樣點(diǎn)全部圍住,其體積為V; 將立方體分為若干個(gè)子空間,每個(gè)子空間內(nèi)點(diǎn)云數(shù)目為num,則子空間邊長L為[4]
(1)
式中:xmax,xmin分別為點(diǎn)云空間中在x方向的最大值和最小值;ymax,ymin分別為點(diǎn)云空間中在y方向的最大值和最小值;zmax,zmin分別為點(diǎn)云空間中在z方向的最大值和最小值.
2) 計(jì)算子空間中任意一點(diǎn)p的初始動(dòng)態(tài)球半徑,公式如下
(2)
3) 以p為圓心,r為半徑確定p的動(dòng)態(tài)球O0,計(jì)算O0的外切立方體A0, 位于外切立方體內(nèi)的點(diǎn)則成為k鄰近候選點(diǎn),其數(shù)目為K.
4) 若K 本文采用基于剛性運(yùn)動(dòng)一致性的約束方法去除錯(cuò)誤對應(yīng)點(diǎn)對,此類方法直接利用了剛性運(yùn)動(dòng)應(yīng)保持被測物體重疊區(qū)域?qū)?yīng)點(diǎn)不變的原理,利用候選對應(yīng)點(diǎn)對間的距離約束排除錯(cuò)誤對應(yīng)點(diǎn)對[5]: 若(p1,q1)與(p2,q2)為正確對應(yīng)點(diǎn)對,則由剛性運(yùn)動(dòng)一致性約束應(yīng)有‖p1-q2‖=‖(q1-p2)‖,考慮到實(shí)際點(diǎn)云數(shù)據(jù)不可能完全滿足上式,故本文采用如下標(biāo)準(zhǔn) (3) 式中:δ為事先給定的閾值(文中取10%). 本文采用奇異值分解算法[6](Singular Value Decomposition,SVD)來進(jìn)行坐標(biāo)變換的求解. 對于A∈Rm×n,則必然存在U=[μ1,…,μm]∈Rm×n與V=[v1,…,vn]∈Rm×n使下式成立 (4) 式中: ∑r=diag(σ1,σ2,…,σr),σ1≥σ2≥…≥σr>0,μi為第i個(gè)左奇異向量,vi為第i個(gè)右奇異向量. 為求得旋轉(zhuǎn)矩陣R與平移向量T,對最終確立的對應(yīng)點(diǎn)點(diǎn)集P與Q進(jìn)行如下操作: 1) 分別計(jì)算點(diǎn)集P與點(diǎn)集Q的重心 (5) 2) 構(gòu)造一個(gè)3×3矩陣H (6) 3) 利用奇異值分解法對矩陣H進(jìn)行分解得到矩陣U和V,分解結(jié)果如下 H=UΛVT, (7) 式中:Λ為對角矩陣,Λ=diag(d1,d2,d3),d1≥d2≥d3≥0. 4) 如矩陣U與V滿足以下條件,則矩陣A (8) 5) 可得到旋轉(zhuǎn)矩陣R與平移向量T分別為 (9) 該算法在一次迭代后如無法滿足需求,需在此基礎(chǔ)上重新匹配對應(yīng)點(diǎn)集后進(jìn)行迭代求解. 本文利用MATLAB隨機(jī)生成兩組點(diǎn)云數(shù)據(jù),使用傳統(tǒng)ICP算法與本文改進(jìn)ICP算法拼接進(jìn)行比較,其結(jié)果如圖 1 及表 1 所示. 表 1 仿真數(shù)據(jù)拼接結(jié)果 圖 1 迭代結(jié)果Fig.1 The iteration results 傳統(tǒng)ICP算法達(dá)到收斂條件時(shí)其迭代次數(shù)達(dá)到了99次,精度為0.032 6 mm,耗時(shí)194.88 s.本文的改進(jìn)算法僅迭代10次,耗時(shí)0.731 8 s,且精度達(dá)到了0.017 7 mm. 由表 1 所知,本文改進(jìn)的ICP算法在算法迭代次數(shù)、 精度與速度上都有了極大的改進(jìn),能夠確實(shí)有效地提高實(shí)際檢測效率. 圖 2 為本文設(shè)計(jì)的管道內(nèi)壁激光檢測裝置,現(xiàn)場實(shí)驗(yàn)圖如圖 3 所示,步驟如下: 1) 直行電機(jī)以4.4 mm/s的速度帶動(dòng)裝置勻速前行,激光位移傳感器的采樣頻率為3 000 Hz,y方向輪廓間距約為0.001 5 mm. 2) 起始位置位于炮口有膛線處,每次爬行到管道尾端結(jié)束此次測量. 3) 旋轉(zhuǎn)電機(jī)以20 °/s的速度旋轉(zhuǎn),每次測量60°范圍內(nèi)的管道,以152口徑為例,可測得25.3 mm 寬的數(shù)據(jù),每個(gè)數(shù)據(jù)點(diǎn)之間的間隔(即x方向)約為0.002 8 mm,共分6次測量完整管道. 4) 對采集到的數(shù)據(jù)進(jìn)行處理、 拼接等后續(xù)工作,可得到內(nèi)膛表面完整的三維輪廓圖. 圖 2 管道內(nèi)壁激光檢測裝置Fig.2 A laser detection device for the inner wall of the pipe 圖 3 現(xiàn)場實(shí)驗(yàn)圖Fig.3 Field experiment 圖 4 為管道內(nèi)壁激光檢測設(shè)備工作25 s后根據(jù)數(shù)據(jù)形成的圖像,原數(shù)據(jù)共有75 000個(gè)點(diǎn),經(jīng)過數(shù)據(jù)處理后,形成了寬25.3 mm,長約110 mm的三維輪廓圖; 圖 5 為兩個(gè)點(diǎn)云數(shù)據(jù)拼接后的寬50.6 mm,長110 mm的圖像. 由實(shí)驗(yàn)結(jié)果可知,通過該設(shè)備采集的數(shù)據(jù)進(jìn)行處理得到的三維輪廓圖像,較好地描述了管道內(nèi)壁的實(shí)際情況,可直觀清楚地了解到管道內(nèi)壁的各種信息,對判斷疵病損傷有極大的幫助. 圖 4 初始輪廓圖Fig.4 Initial contour 圖 5 輪廓拼接圖Fig.5 Contour splicing 本文以一種管道內(nèi)壁激光檢測裝置為例,簡要介紹了它的工作原理,重點(diǎn)介紹了采集的點(diǎn)云數(shù)據(jù)的一些處理算法,包括傳統(tǒng)ICP算法和基于k領(lǐng)域快速搜索的改進(jìn)ICP算法,特別是改進(jìn)后的ICP算法較原ICP算法迭代次數(shù)減少了十倍,迭代精度也有較高的提升,更是極大地縮短了迭代時(shí)間,這對提高點(diǎn)云數(shù)據(jù)的拼接效率有極大的幫助,證明改進(jìn)后的ICP算法可有效應(yīng)用于管道內(nèi)壁檢測領(lǐng)域中.2.2 去除錯(cuò)誤對應(yīng)點(diǎn)對
2.3 奇異值分解法
3 仿真分析
4 現(xiàn)場試驗(yàn)
5 結(jié) 論