劉建春, 劉軒, 蔣炳翔, 李偉
(1.廈門理工學(xué)院機(jī)械與汽車工程學(xué)院, 福建廈門 361024; 2.廈門市機(jī)器人系統(tǒng)與數(shù)字制造重點實驗室, 福建廈門 361024; 3.廈門航天思爾特機(jī)器人系統(tǒng)股份公司, 福建廈門 361023)
剛性物體的位姿檢測是一個工業(yè)應(yīng)用場景下質(zhì)量檢測和機(jī)器人控制的重要問題[1]。 在工業(yè)生產(chǎn)過程中, 部分工件對組合拼裝的精度有較高要求, 機(jī)器人通過人工示教或視覺識別的方法抓取工件的過程中,由于受機(jī)器人自身誤差和抓取點定位誤差的影響, 機(jī)器人將工件移動到指定坐標(biāo)后, 工件的實際三維姿態(tài)會產(chǎn)生細(xì)微的偏差[2], 這些姿態(tài)偏差會對工件的安裝精度造成影響。
視覺檢測技術(shù)在效率、 成本和穩(wěn)定性上都有較為顯著的優(yōu)點, 目前, 位姿檢測多基于視覺檢測方法。牛晨等人[3]利用雙目視覺結(jié)合SURF 算法, 實現(xiàn)箱體的三維位姿檢測, 這種方法適用于邊緣紋理穩(wěn)定的物體, 而對于金屬工件, 其表面紋理易受環(huán)境光和表面粗糙度的干擾。 高翔等人[4]針對工件擺放誤差與拼裝誤差的問題, 利用多個線激光器采集工件若干邊緣點坐標(biāo), 但是線激光器的安裝位置與測量點需要根據(jù)工件的外形調(diào)整, 且激光器的位置不可隨意變動, 難以同時測量不同形狀的工件。 陳藝海[5]利用雙目視覺結(jié)合光柵條紋對物體進(jìn)行三維重建, 再將重建模型與理想點云模型做三維配準(zhǔn), 得到物體的三維位姿, 這種方法重建與匹配的計算量較大, 且金屬工件的邊緣部分重建效果并不穩(wěn)定, 需要被測工件具有更明顯的三維特征信息才便于點云配準(zhǔn)。 近年來, 深度學(xué)習(xí)技術(shù)的發(fā)展也為物體位姿估計研究提供了新的思路[6]。PENG 等[7]提出PVNet, 根據(jù)提取指向物體關(guān)鍵點的方向向量判斷物體位姿。 HE 等[8]提出全流雙向融合FFB6D 網(wǎng)絡(luò), 根據(jù)單個RGB-D 圖像進(jìn)行6D 姿態(tài)估計, 利用RGB 圖像中的外觀信息和深度圖像中的幾何信息作為2 個互補數(shù)據(jù)源, 但是這2 種方法都依賴對象有較為穩(wěn)定的二維紋理信息, 而部分利用點云的方法如PointNet[9], 則要求獲取較為準(zhǔn)確的點云數(shù)據(jù), 這對表面質(zhì)量復(fù)雜的金屬工件來說具有一定困難。
在工業(yè)應(yīng)用場景下, 部分金屬工件三維形狀特征匱乏, 只有簡單的平面特征, 且其表面的紋理又易受銹跡和加工工藝的影響, 表面粗糙度不均勻, 即使是同種工件, 其紋理也各有差異, 易受環(huán)境光干擾, 較為復(fù)雜, 不利于提取穩(wěn)定的特征點。 基于上述情況,為解決這類帶有平面特征的復(fù)雜紋理金屬工件位姿檢測的問題, 本文作者提出一種可以靈活適應(yīng)多種類型工件的三維位姿檢測方法, 實現(xiàn)對工件三維位姿的檢測。
該方案采用主動投射非編碼多線結(jié)構(gòu)光的方式,檢測系統(tǒng)由2 臺工業(yè)相機(jī)與DLP 投影儀組成。 相機(jī)選用1 200 W 黑白相機(jī), 鏡頭焦距為25 mm, 工作距離L為400 mm, 結(jié)合相機(jī)在藍(lán)光波段的量子效率曲線, 選用波長為459 nm 的DLP 投影儀和對應(yīng)藍(lán)光波長的帶通濾光片。
與傳統(tǒng)多線激光器和網(wǎng)格激光器相比, DLP 投影儀可更靈活地調(diào)節(jié)結(jié)構(gòu)光的形狀、 間距和密度, 具有較高的自由度, 可以靈活適應(yīng)不同工件的檢測需求。 系統(tǒng)工作平臺如圖1 (a) 所示。
圖1 系統(tǒng)工作平臺(a) 和待測工件(b)Fig.1 System working platform (a) and target workpiece (b)
投影儀處于2 個相機(jī)中間, 2 個相機(jī)的光軸以夾角θ對準(zhǔn)被測物體, 在檢測不同的工件時, 投影儀分別向被測工件投射預(yù)先繪制的多條豎直結(jié)構(gòu)光, 雙目相機(jī)依次采集投射圖案, 完成后續(xù)檢測流程。 待測工件如圖1 (b) 所示, 可見該類工件三維特征較少,工件表面同時存在粗糙部分與易反光的部分, 且位置分布隨機(jī), 表面紋理質(zhì)量較為復(fù)雜。
雙目相機(jī)在進(jìn)行立體標(biāo)定后[10], 對拍攝圖像做極線校正, 使左右相機(jī)的光軸“虛擬” 平行。 極線校正后的雙目視覺模型如圖2 所示。
圖2 雙目視覺模型Fig.2 Binocular vision model
校正后左右照片的同一特征點在行方向上對齊,便于后續(xù)對空間點進(jìn)行三維重建。 設(shè)Pw(xw,yw,zw)是空間中的一點,Z是Pw在相機(jī)坐標(biāo)系下的深度值,該點在左右相機(jī)成像面上的坐標(biāo)分別是Pl(ul,vl)與Pr(ur,vr), 相機(jī)焦距為f, 左相機(jī)光心Ol與右相機(jī)光心Or的距離B為相機(jī)基線, 可由雙目標(biāo)定獲得。設(shè)世界坐標(biāo)系與左相機(jī)坐標(biāo)系重合, 由相似三角形原理可得:
其中:ul-ur即為空間點P在雙目相機(jī)成像面上的視差。 因此, 左右成像面上的同一空間點, 均可以通過式(1) 實現(xiàn)對該點的三維重建。
該方案的研究路線為: DLP 投影儀向待測工件表面分別投射差分多線結(jié)構(gòu)光, 雙目相機(jī)采集圖片,并分別計算出2 次投射的多線結(jié)構(gòu)光中心線。 對同一側(cè)相機(jī)采集的圖片, 由2 條中心線相互補償, 擬合出一條虛擬的新中心線。 再由兩側(cè)各自擬合的新中心線, 以線序和特征點行坐標(biāo)的順序, 依次提取左右照片中新中心線上的立體匹配點并進(jìn)行三維重建。 隨后, 利用基于Tukey 權(quán)重函數(shù)的平面擬合方法與直線擬合方法, 求解被測面的法向量, 提取工件的若干邊緣和角點坐標(biāo)。 最后, 將邊緣點和角點坐標(biāo)映射到擬合平面上, 實現(xiàn)對工件的三維位姿檢測。 研究路線如圖3 所示。
圖3 研究路線流程Fig.3 Flow of research roadmap
目前提取光條中心線的方法有灰度重心法、 形態(tài)學(xué)骨架法和極值法等[11], 然而受工件表面粗糙度的影響, 實際拍攝的光條極易受反光干擾, 或遇到光條灰度值局部異常的缺陷, 上述算法極易受到這些缺陷的影響, 降低提取中心線的質(zhì)量。 而Steger 算法常用于檢測圖像中的線條, 該算法可以將光條的截面光強分布轉(zhuǎn)變?yōu)槔硐氲恼龖B(tài)函數(shù), 并補償灰度值非對稱的光條, 校正待提取光條的位置與寬度, 有較好的抗干擾能力[12], 因此選用Steger 算法初步提取光條中心線。
設(shè)圖像的灰度分布函數(shù)為I(x,y), 利用Hessian矩陣[12]計算光條圖像中每個點附近的光強度特征向量, 并以沿著光強變化最快的方向?qū)ο袼鼗叶茸鎏├斩囗検秸归_, 進(jìn)而計算出光條中心的亞像素位置。 對于二維高斯函數(shù)G(x,y), Hessian 矩陣H(x,y)可以表示為
H(x,y)最大特征值所對應(yīng)的特征向量即為光強法向(nx,ny)。 設(shè)像素點(x0,y0)的法線方向為(nx,ny),沿著法線方向?qū)D像灰度進(jìn)行二階泰勒展開:
則光條中心線亞像素坐標(biāo)為(x0+tnx,y0+tny)。
上述步驟雖可以較為準(zhǔn)確地提取光條中心線, 但部分受工件表面瑕疵干擾嚴(yán)重的光條依然會導(dǎo)致提取中心線的部分坐標(biāo)產(chǎn)生誤差。 如圖4 (a) 所示, 單幅結(jié)構(gòu)光條紋能夠提供的三維結(jié)構(gòu)信息量有限, 擬合中心線無法對細(xì)微的異常值做補償。 為降低這些誤差點對三維重建精度的影響, 增強光條中心線的抗干擾能力, 引入一種基于差分多線結(jié)構(gòu)光的中心線提取方法。
圖4 Steger 法與差分法提取的中心線Fig.4 Centerline extracted by Steger method and differential method: (a) structured light 1; (b) structured light 2; (c) differential fitting
雙目相機(jī)在采集一幅多線結(jié)構(gòu)光圖案后, DLP投影儀將投影圖案整體水平移動一個像素, 并由雙目相機(jī)再次采集。 以左相機(jī)為例, 對2 幅結(jié)構(gòu)光圖像分別提取每道光條的中心線, 如圖4 (a) (b) 所示的2 道結(jié)構(gòu)光圖像即為同一光條圖案在整體水平移動一個像素前后產(chǎn)生的不同效果, 將這2 道光條視為一組差分結(jié)構(gòu)光。
對無編碼的雙目結(jié)構(gòu)光系統(tǒng), 特征點匹配的順序需嚴(yán)格對應(yīng), 因此對左相機(jī)2 張照片中的中心線分別以左上角起始點縱坐標(biāo)值遞增排序, 將次序一致的中心線視為同一組差分結(jié)構(gòu)光中心線, 使2 幅圖像中每一組差分光條的中心線都可以相互對應(yīng)。
對每組差分光條的2 條中心線, 取擁有相同行坐標(biāo)的2 個點視為有效點, 再計算有效點列坐標(biāo)的平均值, 即可擬合出該組差分結(jié)構(gòu)光的新中心線。 新中心線坐標(biāo)(xn,yn)的計算方法可以表示為
擬合效果如圖4 (c) 線2 所示, 與單次投射結(jié)構(gòu)光計算出的光條中心線相比, 新中心線在2 道差分結(jié)構(gòu)光的相互補償下, 更符合工件表面的實際輪廓,提高了提取平面特征點的穩(wěn)定性。
對右相機(jī)采集的圖像同樣進(jìn)行上述提取新中心線的步驟, 由于左右相機(jī)下各自擬合的新中心線的線序依然不變, 則再次依照線序, 以相同行坐標(biāo)的原則,篩選出新中心線下可以相互匹配的坐標(biāo)點, 并依照新中心線的線序和行坐標(biāo)遞增排序, 如圖5 所示, 將左右圖像中同一線序下同一行坐標(biāo)的點視為立體匹配特征點, 由此遍歷所有新中心線, 最終得到所需的特征點。
圖5 新中心線線序及特征點匹配Fig.5 New centerline sequence and feature point matching:(a) left camera; (b) right camera
以線序和行坐標(biāo)約束的排序方式避免了無編碼雙目結(jié)構(gòu)光系統(tǒng)立體匹配失序的問題。 將匹配的特征點三維重建, 即可獲得工件被測平面的點云。
三維空間中常見的平面擬合方式有RANSAC 擬合法[13]、 ICP 配準(zhǔn)法[14]和最小二乘法。 最小二乘法因計算方式簡單而得到了廣泛的應(yīng)用, 但是因其擬合過程中對點集內(nèi)每一個點都賦予了相同的權(quán)重, 使擬合結(jié)果容易受到異常值干擾。 RANSAC 和ICP 配準(zhǔn)法都是采用迭代方式估計預(yù)置數(shù)學(xué)模型的算法, 其不同之處在于ICP 配準(zhǔn)法需要同時確立初始點集和目標(biāo)點集, 是一個求取點集剛性變化的過程; 而RANSAC則是在點集中隨機(jī)抽取用于估算預(yù)置模型的若干樣本, 并迭代出樣本內(nèi)置信點最多的模型作為結(jié)果, 但是受閾值和迭代次數(shù)的影響, 容易產(chǎn)生局部最優(yōu)解。
為提高擬合平面的穩(wěn)定性, 減少工件平面點云受到如倒角、 破損缺陷等異常情況的干擾, 采用Tukey權(quán)重函數(shù)[15]對最小二乘法做出改進(jìn), 降低異常點的干擾。
設(shè)平面方程為z=ax+by+c, 構(gòu)建誤差函數(shù)為
式中:τ為消除異常值的剪裁因子;δi是每個點到擬合平面的距離閾值。 將點集中異常點的距離閾值設(shè)置為σδ, 以下式表示:
經(jīng)整理, 將求解自變量a、b、c的過程表示為矩陣形式:
為獲取準(zhǔn)確的工件邊緣, 利用投影儀照亮工件的邊緣部分, 改變工件表面與背景的對比度。 使用Sobel濾波器[16]增強邊緣特征, 并通過膨脹腐蝕和篩選輪廓面積的方式排除大部分干擾點, 保留工件輪廓信息,提取出輪廓的粗邊緣。 隨后沿著工件邊緣方向, 每隔若干像素繪制一個測量矩形, 測量矩形如圖6 所示。
圖6 測量矩形示意Fig.6 Schematic of measuring rectangle
矩形的長邊與工件邊緣近似垂直, 取測量矩形2條長邊的中心線作為灰度線, 在矩形內(nèi)部沿著灰度線每隔一個像素寬度做一條矩形切線, 并沿著灰度線方向計算每條切線的平均灰度值, 作為灰度線上的灰度分布函數(shù), 其中, 切線上各點的灰度值采用雙線性插值法計算[17]。
隨后對灰度分布函數(shù)作高斯平滑, 并求一階導(dǎo)數(shù), 取導(dǎo)數(shù)極值點作為一個輪廓點, 提取邊緣效果如圖7 (a) 所示。 對同一邊緣上的多個邊緣點進(jìn)行直線擬合, 即可作為工件的實際邊緣輪廓線。
圖7 提取工件邊緣點示意Fig.7 Extracting workpiece edge points: (a) measuring rectangle and exception points; (b) fitted line;(c) workpiece corner in left camera image;(d) workpiece corner in right camera image
為避免提取異常的邊緣點對擬合直線產(chǎn)生干擾,再次引入Tukey 權(quán)重函數(shù)對各點加權(quán)。 設(shè)直線方程y=ax+b, 構(gòu)建誤差函數(shù):
式(13) 可由式(11) 遞推, 擬合直線效果如圖7 (b) 所示, 擬合的直線排除了異常點的干擾。由此擬合多條工件輪廓, 如圖7 (c) (d) 所示, 各輪廓線的交點即為工件實際的角點。 將工件角點和若干邊緣點的點云X、Y坐標(biāo)映射至擬合平面, 即可求得工件邊緣實際三維坐標(biāo), 獲取工件三維位姿。
將實驗設(shè)備和待測工件置于三坐標(biāo)測量平臺(蔡司CONTURA G3, 探頭為VAST XXT, 分辨率0.002 mm), 實驗平臺如圖8 所示。
圖8 實驗平臺示意Fig.8 Experimental platform
3.1.1 平面抬升精度驗證
將待測工件置于三軸精密滑臺上, 并由雙目結(jié)構(gòu)光系統(tǒng)采集工件被測初始平面的點云數(shù)據(jù)作為基準(zhǔn)平面。 隨后在滑臺行程范圍內(nèi), 每次沿著滑臺Z軸方向?qū)_抬升0.5 mm, 并由三坐標(biāo)儀測量每次平面抬升的實際距離da作為真實值, 一共抬升10 次。 雙目結(jié)構(gòu)光系統(tǒng)依次采集滑臺抬升后的平面圖像, 提取平面點云數(shù)據(jù), 計算每個點云到基準(zhǔn)平面的相對距離di, 取其均值d-作為系統(tǒng)測量的平面抬升距離值。
分別對使用差分結(jié)構(gòu)光和普通結(jié)構(gòu)光的2 種方法進(jìn)行試驗, 將每次抬升滑臺的測量結(jié)果d-與三坐標(biāo)儀測量值da進(jìn)行比較, 結(jié)果如圖9 (a) 所示, 2 種測量方法的平均距離相對誤差都沒有超過±0.01 mm, 符合測量要求。 而使用差分結(jié)構(gòu)光方法的距離標(biāo)準(zhǔn)差則明顯小于對照組, 如圖9 (b) 所示, 其最大標(biāo)準(zhǔn)差僅為0.023 mm, 提取平面點云的穩(wěn)定性提高了16.67%~55.17%, 證明使用差分結(jié)構(gòu)光的方法有效可靠。
圖9 測量平面點云至基準(zhǔn)平面平均距離相對誤差(a) 和標(biāo)準(zhǔn)差(b)Fig.9 Relative errors (a) and standard deviations (b) of the average distance from the point cloud to the reference plane
3.1.2 平面法向量穩(wěn)定性驗證
為測量Tukey 權(quán)重擬合平面的法向量穩(wěn)定性,將工件靜置于精密滑臺上, 由投影儀分別沿同一水平方向移動多線結(jié)構(gòu)光圖案10 次, 每次平移一格像素, 使結(jié)構(gòu)光圖案可以完全掃描整個被測平面,且每平移一次圖案拍攝5 組照片, 總計拍攝50 組照片。 分別利用最小二乘法、 RANSAC 擬合法和Tukey 權(quán)重法擬合50 次平面, 各自計算3 種擬合方法的法向量均值作為被測平面的實際法向量, 隨后計算各擬合方法下每組平面法向量與實際法向量的夾角偏差。
由圖10 與表1 可知: 使用Tukey 權(quán)重法擬合平面可以大幅降低異常數(shù)據(jù)對平面擬合質(zhì)量的影響, 其均方根誤差相較使用最小二乘法和RANSAC 擬合法的對照組分別減少了60.0%和19.6%, 法向量最大偏離誤差僅為0.016°。
表1 不同平面擬合算法的法向量穩(wěn)定性Tab.1 Normal vector stability of different plane fitting algorithms
圖10 不同平面擬合算法的法向量偏差對比Fig.10 Comparison of normal vector deviations of different plane fitting algorithms
在滑臺行程范圍內(nèi), 將滑臺分別沿著x軸和y軸方向每次移動0.5 mm, 由三坐標(biāo)儀測量每次滑動的距離作為實際值, 一共移動10 次。 相機(jī)檢測工件的角點坐標(biāo), 并將角點映射到工件被測平面上, 分別計算映射角點在滑臺沿x軸和y軸方向移動時的位移增量, 對比檢測值與實際值的誤差。 由圖11 可知: 在多組實驗驗證下, 系統(tǒng)在x軸方向上的檢測誤差最大為0.024 mm, 在y軸方向上的檢測誤差最大為0.028 mm。 上述結(jié)果表明: 該方案用于檢測工件邊緣和提取角點也具有較高的精度。
圖11 x 軸與y 軸方向相對誤差Fig.11 Relative errors of x-axis and y-axis direction
針對一類帶有平面特征但表面粗糙且紋理復(fù)雜的金屬工件位姿檢測問題, 設(shè)計了如下檢測方法:
(1) 將復(fù)雜紋理工件的局部特征作為檢測重點,采用投影差分多線結(jié)構(gòu)光的方法, 提高了提取光條中心線的精度;
(2) 利用極線約束的特性, 設(shè)計了無編碼雙目結(jié)構(gòu)光系統(tǒng)特征點匹配方法, 提高了提取平面特征點的穩(wěn)定性;
(3) 基于Tukey 權(quán)重函數(shù)改進(jìn)擬合算法, 提升了工件被測平面的擬合精度和提取工件邊緣和角點的精度。
最后利用分辨率為0.002 mm 的蔡司三坐標(biāo)儀和三軸精密滑臺驗證算法精度, 將檢測結(jié)果與測量值做比較, 實現(xiàn)了提取粗糙平面點云標(biāo)準(zhǔn)差小于0.023 mm, 平均深度誤差小于0.01 mm, 角點坐標(biāo)在x軸方向最大誤差為0.024 mm、 在y軸方向最大誤差為0.028 mm, 法向量最大偏離誤差僅為0.016°的結(jié)果,可以滿足工件三維位姿檢測的需求。