徐中平,王海寬,李徐輝,童 彥
(1.上海大學 機電工程與自動化學院,上海 200444;2.上海飛機制造有限公司,上海 201324)
管路是航空航天和汽車產(chǎn)品的重要組成部分,管路負責系統(tǒng)各部件之間流體的輸送,關系到系統(tǒng)的可靠穩(wěn)定安全運行。受安裝空間限制,管路的空間形狀復雜,同一管路上往往同時存在多個直線段和圓弧段,具有形狀不規(guī)則、三維走向多變的特點。管路三維形狀的正確性是實現(xiàn)管路可靠裝配的前提,然而在制造過程中,拉伸和壓縮應力的不均勻分布導致回彈等多種缺陷,從而影響管路裝配過程中的精度[1]。在管路裝配前,管路測量是保證管路正確裝配的重要步驟。
管路測量的主要參數(shù)包括節(jié)點坐標、步進長度、管路旋轉角和管路彎折角等。管路測量方法主要分為接觸式測量和非接觸式測量。接觸式測量中專用量具、三坐標測量設備等存在應用范圍有限、測量效率低、自動化程度低等不足[2];非接觸式測量中的視覺測量因其操作難度低、測量效率高等優(yōu)點受到研究院所和工業(yè)界的關注[3-6]。
管路的幾何形狀可由管路中心線和管路外徑描述,通過管路中心線進行管路三維重建,能夠有效提高重建效率。綜合已有的管路三維重建方法,結合裝配產(chǎn)線上大量管路的在線快速檢測需求,以管路中心線提取進行管路重建研究,為使獲取的管路中心線既能滿足精度要求,又能具有較高的重建效率,本文提出了一種基于圖割的多相機管路三維重建測量方法。該方法利用圖割算法在視差范圍內尋求管路中心線的最優(yōu)視差,實現(xiàn)中心線的匹配,根據(jù)多視圖匹配點以及相機成像模型計算出管路三維中心線點云并用NURBS 曲線描述。實驗結果表明該方法具有較好的重建效果。
對于具有源點s 和匯點t 的圖G=(V,E),其中V 為頂點集,E 為邊集。圖的一個割就是將V 分成2個互不相交的子集S 和T,其中s∈S,t∈T。頂點集S 到頂點集T 所有割邊的容量和稱為割的代價,最小割就是所有割中代價最小的割[7]。從s 到t 的最大流量稱為最大流,最小割的容量被證明與最大流相等。
運用圖割立體匹配一般需要先設計滿足匹配目標的能量函數(shù),然后根據(jù)能量函數(shù)構造圖,將能量函數(shù)與圖的割集對應起來[8],利用圖最小割算法實現(xiàn)能量函數(shù)最小化,獲取最佳視差。本文的能量函數(shù)由數(shù)據(jù)項、遮擋項、平滑項、唯一項構成[9]。
根據(jù)能量函數(shù)的4 項約束,實現(xiàn)能量函數(shù)最優(yōu)化就是取得像素點最佳匹配。傳統(tǒng)圖割算法所有像素點都參與圖的構建,計算量過大,不適用于管路中心線快速重建。管路三維中心線的重建只需中心線上的像素點,故在構建管路圖時,將圖像在管路中心線上的像素點作為圖的頂點,其八鄰域內的點作為相鄰點,構造圖如圖1 所示,其中黑色區(qū)域代表管路中心線像素點,s 和t 與頂點之間邊的容量,頂點與頂點之間邊的容量由能量函數(shù)確定。完成圖的構造后,通過最大流算法獲取視差。
圖1 管路中心線的構造圖Fig.1 Graph construction of tube centerline
根據(jù)上述方法,可以獲得圖像中管路中心線的視差,即可獲得兩圖像中管路中心線上的匹配點對。構建四相機陣列視覺系統(tǒng),以相機1 為基準,分別使用圖割算法對相機2-1、相機3-1 和相機4-1 視圖中管路視差進行計算,則相機1 圖像中同一點可分別獲得在相機2、相機3 和相機4 圖像中的匹配點。
不同圖像中的匹配點即為空間中同一點在相應圖像上的投影,如圖2 所示??臻g中的一點P和圖像中的點pi(i=1,2,3,4)的關系可由式(1)表示:
圖2 空間點投影Fig.2 Projection of a spatial point
式中:K為相機的內參矩陣;R為相機的旋轉矩陣;t為相機的平移矩陣;λ 為齊次值。
將不同圖像中的匹配點代入式(1)并聯(lián)立方程式,通過最小二乘法求得空間點坐標值。對管路中心線上的匹配點按順序計算其空間坐標點,則可獲得管路中心線的離散點云坐標。
2.2.1 NURBS 曲線
根據(jù)離散點云坐標利用NURBS 曲線重建管路中心線,NURBS 曲線是一種參數(shù)化的曲線,其優(yōu)勢在于能夠以統(tǒng)一的數(shù)學表達形式描述自由曲線,同時具有產(chǎn)生光滑曲率的柔性[10],NURBS 曲線的定義如下:
式中:Pi(i=0,1,…,n)為控制點;wi表示和控制點相應的權因子;u∈[0 1]為自變量;Ni,k(u)為定義在節(jié)點矢量U=[u0,u1,…,un+k+1]上的k 次B 樣條基函數(shù),滿足de Boor 遞推關系式[11]。
2.2.2 管路中心線平面擬合
根據(jù)平面管路中心線上像素點的角度變化量將管路分為直線段和圓弧段,如圖3 所示。獲取的平面管路中心線和三維管路中心線點云皆為順序排列的點列,故分段位置可對應到三維中心線點云相應位置。
在管路中心線分段后,由于直線段Line1、Line2和圓弧段Arc1 在同一平面上,故可將獲得的位于Line1、Line2 和Arc1 上的管路中心線點云進行加權平面擬合。將獲得的所有管路中心線點云投影到多個原始圖像上,根據(jù)投影點與原始圖像管路中心線的最小距離設置點云權重,權重值設置為與4 個原始圖像最小距離中最大值的倒數(shù)。
獲得擬合平面的參數(shù)后,管路中心線由在平面上的直線段和圓弧段組成,設(X,Y,Z)為世界坐標系,建立平面局部坐標系(X′,Y′,Z′),則可將世界坐標系中的點轉換到平面局部坐標系中,擬合平面和建立的局部坐標系的示意圖,如圖4 所示,其中Z′為擬合平面的法向量方向,圓點代表管路三維中心線點云。
圖4 擬合平面和平面局部坐標系Fig.4 Fitting plane and plane coordinate system
2.2.3 管路中心線直線段圓弧段擬合
管路中心線點云轉換到平面局部坐標系后,將點云投影到擬合平面上,則三維點轉化為二維點。對兩直線段數(shù)據(jù)先進行加權直線擬合獲得直線參數(shù),由兩直線方程求得直線交點O,根據(jù)O 在擬合平面上建立二維圓弧局部坐標系(X″,Y″),如圖5所示。其中,O 為圓弧局部坐標系原點,v1,v2為兩直線方向的單位向量,以v1+v2的方向為圓弧局部坐標系的X″軸方向,Y″軸垂直X″軸,θ 為直線與X″的角度。
圖5 圓弧局部坐標系Fig.5 Arc coordinate system
在兩直線確定的情況下對圓弧部分進行圓擬合,直線確定則可求出直線X″與的角度θ,則與直線相切,圓心在(γ,0)的圓的方程可表示為
依次從圓弧擬合的數(shù)據(jù)中選擇一個點,判斷該點處的斜率絕對值是否大于直線斜率的絕對值,若該點處斜率絕對值大于直線斜率絕對值,則將點投影到與其相近直線上計算出點坐標,否則不進行投影。將點的坐標代入圓方程中計算出γ,然后將除此點外的其他圓弧擬合數(shù)據(jù)pci(xci,yci)劃分為N1和N2兩個數(shù)據(jù)集,如圖5 所示,數(shù)據(jù)點pci劃分的依據(jù)為
對N1數(shù)據(jù)集中的點計算其與圓弧的距離誤差和,對N2數(shù)據(jù)集中的點計算與其相近直線的距離誤差和,則所有點的誤差和表示為
式中:k′為與點靠近直線的斜率;W 為權重,通過誤差和最小的參數(shù)構造最終的擬合圓弧。
對于其余直線段和圓弧段采用類似擬合方法,將Line2、Line3 和Arc2 視為過直線Line2 的平面束中的一個平面,通過平面擬合獲得平面參數(shù),再對直線和圓弧進行擬合。在擬合結果上選擇部分點,將其轉換到世界坐標系下作為特征點。采用累積弦長參數(shù)方法對節(jié)點矢量進行設置,通過最小二乘法求得NURBS 曲線控制點,獲得管路三維中心線曲線。
在搭建的四相機陣列視覺系統(tǒng)上對提出的管路三維重建方法進行驗證。相機分辨率為3840×2160,感光芯片尺寸為1″,鏡頭的焦距為6 mm,采用背光源。重建的對象選取的航空液壓管路,如圖6所示,其外徑為6 mm,以圖中標識角度為測量對象。
圖6 重建管路對象Fig.6 Tube to be reconstructed
構建的相機陣列視覺系統(tǒng)相機之間的位姿示意圖,如圖7 所示。
圖7 相機位姿示意圖Fig.7 Camera pose
對相機內參、畸變系數(shù)及相機之間的位姿進行標定,相機2-1、相機3-1 和相機4-1 兩兩相機對通過標定得到的外部參數(shù)如表1 所示。本文4 臺相機陣列視覺系統(tǒng)標定的平均投影誤差為0.41 pixel。
表1 相機外部參數(shù)Tab.1 Camera external parameters
由相機1~相機4 分別采集同一位姿管路圖像,提取管路平面中心線,圖像中獲取到的中心線點數(shù)分別為793、808、780、789。然后利用圖割算法獲得管路中心線上點在不同圖像中的匹配點,通過最小二乘法計算獲得管路三維空間點。實驗采用三次NURBS 曲線進行管路中心線擬合,通過平面擬合、直線擬合和圓弧擬合獲得特征點61 個,將節(jié)點矢量的前4 個參數(shù)值設置為0,節(jié)點矢量的末尾4 個參數(shù)值設置為1,其余節(jié)點矢量參數(shù)值根據(jù)累積弦長參數(shù)法計算設置。計算獲得控制點63 個,計算獲得的NURBS 曲線控制點和NURBS 曲線如圖8 所示。
圖8 NURBS 曲線與控制點Fig.8 NURBS curve and control points
為了定量衡量重建的管路中心線的精度,對任意擺放的不同位姿的管路進行中心線重建,均勻提取重建曲線上800 個點,將其投影到4 臺相機的原始圖像上,投影點與原始管路中心線距離的均值如表2 所示。
表2 不同位姿管路中心線投影距離Tab.2 Projection distance of tubes in different poses
實驗結果表明,將建立的管路三維中心線投影回4 臺相機的原始圖像,投影點能夠與原始圖像的管路中心線對應,平均誤差基本在0.5 pixel 以內。提出的方法對不同姿態(tài)管路都能有效地進行管路中心線重建,方法的穩(wěn)定性較好,并且具有較高的效率和準確度。
為驗證重建方法測量管路的精度,將重建管路中心線計算得到的角度值與標準參考值進行對比。采用HEXAGON 關節(jié)臂三坐標測量機通過接觸式取點計算獲得標準角度參考值。對同一位姿的管路測量10 次,結果取均值,不同位姿管路的測量結果如表3 所示。
表3 不同位姿管路角度測量Tab.3 Measurement of angle in different poses
從表3 中可以看出,管路不同位姿計算得到的角度值與參考值的偏差值最大為0.33°,不同位姿測量角度值的平均值與標準參考值的偏差為0.12°,提出方法重建的管路三維中心線能夠用于管路參數(shù)測量。
本文對管路三維重建進行了研究,提出了一種基于圖割的多相機管路三維重建測量方法,該方法利用圖割算法獲取管路中心線視差值實現(xiàn)匹配。通過4 臺相機陣列視覺系統(tǒng)獲取了管路準確的三維中心線點云,并用NURBS 曲線描述,根據(jù)管路中心線和外徑重建管路三維模型。通過實驗驗證了本方法的有效性、魯棒性和準確性,同時該方法具有較高的效率,可進一步擴展多相機陣列,滿足實際工程需求。當然,實際工程中存在結構更加復雜的管路,如何完成對更復雜管路的三維重建及進一步提高重建精度是今后的研究重點。