蘇 波,鄭孟州
(河南理工大學電氣工程與自動化學院,河南 焦作 454000)
機器視覺具有信息量大、精度高、檢測范圍廣等特點[1],可以有效提高生產系統的效率和柔性,已被廣泛應用于各領域。但是傳統的機器視覺系統受限于工業現場的環境條件,獲取的圖像需要經過一系列的圖像處理才能使用,增加了系統的復雜性,且魯棒性差。隨著近二十年設備和技術的發展,3D視覺已成為機器視覺領域發展的焦點[2]。
三維激光掃描智能傳感器以精度高、速度快、抗干擾性強的方式作業,對物體發射激光束,獲取大量點云數據,對點云數據進行處理、建模可快速還原物體的真實面貌[3],已成為視覺系統中常用的方法。3D智傳感器集激光器、傳感器和測量軟件于一身,具有運行穩定可靠,維護方便簡單,運行和構建成本低廉等特點[4],可用于三維位姿智能化測量。
基于上述原因,本文提出利用智能傳感器獲取工件位姿的方法。
該方法利用三維視覺技術,利用表面匹配技術在點云構建的模型中匹配獲取工件位姿。結果表明,該方法能夠智能化識別工件獲取位姿信息,能較好應用于工業現場。
單目視覺系統的三維位姿智能化測量已成為工業自動化的主要發展方向[5]。為了滿足柔性裝配系統對工件位姿的感知力,適應智能化生產系統,搭建了工件位姿檢測系統。系統結構如圖1 所示。

圖1 系統結構圖
該系統的硬件主要包括智能傳感器、工件傳送平臺、數據傳輸線和I/O線、轉換器及上位機。智能傳感器選用Gocator2350。該3D傳感器把2D相機、鏡頭、激光器、標定算法集成在一起,出廠前標定完畢,開箱即可用于測量,開發周期較短。轉換器選用HF150W-S-48,并采用符合傳感器使用要求的系統和瀏覽器計算機。根據傳感器的參數表,調整架設高度并完成傳感器的安裝和接線,其他硬件按照相應的技術要求安裝連接。完成相應的連接后,進行編碼器和平臺校準,并在 Web 應用界面上設置好曝光值、采集間距、有效區域等各類相關參數,即可以開始進行圖像的采集[6]。
HALCON是德國MVTec公司開發的一套完善的標準機器視覺算法包,擁有應用廣泛的機器視覺集成開發環境。它能節約產品的成本,縮短軟件的開發周期,在歐洲及日本的工業界是公認的具有極佳效能的機器視覺軟件。它是一套圖像處理庫,由多個各自獨立的算子以及底層的數據管理核心構成[7]。HALCON支持Windows、Linux和Mac OS X操作環境,它保證了投資的有效性。整個函數庫可以用C、C++、C#、Visual Basic和Delphi等多種普通編程語言訪問。HALCON為大量的圖像獲取設備提供接口,保證了硬件的獨立性。進行開發時,在 HALCON 圖像處理軟件的 HDevelop 環境下進行開發會相對比較容易,代碼的執行速度也比較快。所以HALCON成為目前業內功能最完善、效率最高的軟件之一,已被廣泛應用于工業生產中的各個方面,如汽車制造、公路檢測、包裝檢測、電子器件加工等領域。
3D表面被認為是表示和識別三維對象的最有前景的工具之一。而表面匹配是三維計算機視覺領域的基本技術。因此,三維表面匹配被廣泛應用于三維物體識別、檢索、分類等[8-9]。對于兩個給定的三維表面,一個模板表面為M(x,y,z),另一個搜索表面為S(x,y,z)。二者具有重疊的區域O(x,y,z),且O=MIS。一般采用七參數空間相似性變換模型描述兩個獨立的3D坐標系的外部變換關系,假設模板上任意點P(x,y,z),對應搜索表面共軛點為O(x′,y′,z′),且P、Q應滿足P∈(MIO),Q∈(SIO),則Q=t+mRP,即:
(1)
式中:tx、ty、tz為沿坐標軸方向的三個平移分量,像素(Px);φ、ω、k為繞坐標軸旋轉的三個角度參數,(°);m為空間坐標系尺度[9]。
表面匹配的目標是尋找M(x,y,z)和S(x,y,z)之間空間幾何變換關系的正形變換參數T,使得:
S(x,y,z)=T{M(x,y,z)}
(2)
為了獲得正形變換T,引入隨機真誤差向量V(x,y,z),使得:
V(x,y,z)=S(x,y,z)-M(x,y,z)
(3)
求解上述方程,即可確定正形變換參數T。設P、Q,則:
D=(x-x′)2+(y-y′)2+(z-z′)2
(4)
理論上,匹配完成后共軛點間距平方和值D為0,但是通常情況下不能達到理論值,而且點云數據計算比較復雜。使用HALCON中的算子則可以很好地解決計算問題。
在構建的試驗平臺下,提出的適用于工業現場的智能傳感器的工件位姿獲取方法。首先利用智能傳感器獲取工件的三維點云數據,然后通過獲取的信息構建三維模型,最后通過3D表面匹配技術獲取工件的位姿。
①Gocator智能傳感器采集的圖片為16位的RGB圖。圖像的高度信息、灰度信息和參數信息分別保存在R、G、B三個通道中。運用算子Go2GenTL_ParseData(Image,HeightMap,Intensity,frameCount,timestamp,encoderPosition,encoderIndex,inputs,xOffset,xResolution,yOffset,yResolution,zOffset,zResolution,width,height,hasIntensity)進行圖像拆分,得到高度圖和灰度圖。各參數所代表的意義如下:Image為圖像,HeightMap為高度圖,Intensity為灰度圖,frameCount為幀計數,timestamp 為時間標志,encoderPosition為編碼器位置,encoderIndex為編碼器序列,inputs為輸入,xOffset為X方向偏移,xResolution為X方向分辨率,yOffset為Y方向偏移,yResolution為Y方向分辨率,zOffset為Z方向偏移,zResolution為Z方向分辨率,width為圖像寬,height為圖像高,hasIntensity為是否有灰度值。圖像的寬度和高度表示x和y軸的尺寸,每個3D點像素代表現實世界坐標中的一個點。根據像素坐標(Px,Py,Pz),計算世界坐標(X,Y,Z):

(5)
工件位姿獲取方法流程如圖2所示。

圖2 工件位姿獲取方法流程圖
然而智能傳感器在獲得的參數信息中并沒有X圖像和Y圖像,只有校準的深度圖像,即“Z圖像”可用。因此,可以創建對應的X和Y圖像:X和Y圖像必須具有與Z圖像相同的尺寸。通過將Z圖像的列號分配給X圖像的每一行來創建X圖像,并且通過將Z圖像的行號分配給Y圖像的每一列來創建Y圖像,這樣創建的X、Y和Z圖像可以轉換成3D模型。
②通過上述方法獲得X、Y和Z圖像,而且X、Y和Z圖像已經包含3D對象模型所需的信息。因此,可以使用運算符xyz_to_object_model_3d,從X,Y和Z圖像中導出3D對象模型。
③create_surface_model表面模型是通過對具有一定距離的3D對象模型進行采樣而創建的。采樣距離必須在參數采樣距離中指定。表面模型的創建要求3D對象模型包含點和法線,而上述方法利用xyz_to_object_model_3d算子構建3D模型,再創建的表面模型中則包含點和2D映射信息。通過上述方法構建的表面模型如圖3所示。

圖3 表面模型
④通過運算符find_surface_model,在3D場景ObjectModel3D中查找表面模型SurfaceModelID的最佳匹配。找到的對象實例的3D姿態在Pose中返回。運算符find_surface_model(::SurfaceModelID,ObjectModel3D,RelSamplingDistance,KeyPointFraction,MinScore,ReturnResultHandle,GenParamName,GenParamValue:Pose,Score,SurfaceMatchingResultID)參數如上所示。算子的匹配過程分為三個步驟。
首先,從ObjectModel3D中傳遞的場景中統一采樣點。采樣結果可由參數RelSamplingDistance和KeyPointFraction控制。RelSamplingDistance為采樣距離,KeyPointFraction為關鍵點比例。減小采樣距離和增加關鍵點比例,會降低匹配速度,但可以獲得更穩定的匹配效果。反之,則會降低匹配穩定性提高匹配速度,可以利用這兩個參數來尋找合適的穩定與速度結合的匹配方案。對于每個選定的關鍵點,通過將關鍵點與所有其他采樣場景點配對,找到表面模型上具有相似距離和相對方向的點對來計算表面模型的最佳姿態。對象上采樣的場景點數量被認為是姿勢的得分。
其次,稀疏姿態細化。將前一步中找到的近似姿態進一步細化,這增加了姿勢的準確性和分數值的重要性。稀疏姿態細化使用來自近似匹配的采樣場景點。姿態被優化,使得從采樣的場景點到最近的模型點的平面的距離是最小的。
最后,密集的姿勢細化。準確地細化前面步驟中找到的姿勢。此步驟與稀疏姿態細化類似,并將場景點與最近模型點的平面之間的距離最小化。不同之處在于,只有前一步得分最高的才會被提煉,而且ObjectModel3D中傳遞的場景中的所有點都用于細化,從場景中取得所有點提高了細化的準確性。
完成系統的構建后,對上述工件位姿獲取方法進行了試驗驗證。仿真試驗從智能傳感器采集的在不同場景中工件的位姿信息建立場景,并從中隨機選取5個場景進行匹配試驗分析。在各場景中獲得的匹配結果如圖4所示,表面匹配獲得的工件位姿數據如表1所示。

圖4 匹配結果

場景X軸平移 Y軸平移 Z軸平移 X軸旋轉 Y軸旋轉 Z軸旋轉 119.414126.27310.571 00.022354.852121.2612-48.260-173.69411.366 3355.716359.6763.0693130.205-163.02712.334 6357.8502.974323.1374120.135-17.345-12.530 75.205 17353.732327.9325153.675-47.49613.425 4357.4194.230327.361
本文以專業的機器視覺處理軟件HALCON為平臺,配合使用3D智能傳感器Gocator2350,提出了智能傳感器位姿獲取方法。該方法利用智能傳感器獲取工件表面點云數據,并利用數據構建表面模型,最后通過3D表面匹配的方法獲取場景中工件的位姿。仿真試驗表明,該方法可以有效排除工業現場環境因素的干擾,獲取準確的位姿數據,具有較好的工業應用價值。