關於halcon基於表面的3d識別定位

2021-08-28 22:47:34 字數 1728 閱讀 9962

基於表面的3d識別定位,即在乙個3d 場景下,用3d表面模型去識別零件,得到零件的pose,這個pose是基於3d場景座標系的。

模型可以用solidworks軟體畫,儲存成.stl格式,也可以是程式生成的。

讀入檔案然後生成3d表面模型:

file:='零件模型的位址及名稱'

*『mm』也可以是'm','dm',設定成和後續3d scene的讀入一致即可

read_object_model_3d (file, 'mm', , , objectmodel3dmodel, status)

create_su***ce_model (objectmodel3dmodel, 0.03, , , sfm)

讀入3d場景:

*3d場景可以是.ply等型別的點雲

name:='3d點雲的位置和名字'

read_object_model_3d(name, 'mm', , , objectmodel3d, status)

接下來識別:

*可以詳細設定引數

find_su***ce_model (sfm, objectmodel3d, 0.02, 0.6, 0.3, 'true', , , pose, score, su***cematchingresultid)

展示結果:

objectmodel3dresult :=

for index2 := 0 to |score| - 1 by 1

if (score[index2] < 0.11)

continue

endif

cpose := pose[index2 * 7:index2 * 7 + 6]

* rigid_trans_object_model_3d (objectmodel3dmodel, cpose, objectmodel3drigidtrans)

objectmodel3dresult := [objectmodel3dresult,objectmodel3drigidtrans]

endfor

message[1] := 'found ' + |objectmodel3dresult| + ' object(s) in ' + timeformatching1$'.3' + 'ms'+' without remove noise'

scorestring := sum(score$'.2f' + ' / ')

message[2] := 'score(s): ' + scorestring

numresult := |objectmodel3dresult|

tuple_gen_const (numresult, 'green', colors)

tuple_gen_const (numresult, 3, radii)

indices := [1:numresult]

* dev_clear_window ()

visualize_object_model_3d (windowhandle, [objectmodel3d,objectmodel3dresult1], , , ['color_' + [0,indices],'point_size_0'], ['gray',colors,1.0], message, , instructions, poseout)

還可以提前對3d場景資料進行去噪,平滑等預處理,在生成模型和進行識別時,可以根據需要設定不同引數來提高精確度或者加速識別。

另外halcon18.05的新功能,能限定零件的位姿和對稱性來加速識別。

Halcon中的3D技術

對於檢測一些產品的3d資訊,我們通過3d相機能獲取其點雲資料或一張帶有高度資訊的影象。這邊我們用smartray相機,獲取到一張16位的png影象。實際上就是一張高度資訊圖。這邊x y縮放比例為0.019,z方向為0.0016,意思就是你xyz乘這係數就是相對距離。在那個相機軟體中能看到如上的3d圖...

3D 相機halcon運算元,持續更新

add scene 3d camera 功能 將相機新增到三維場景中。add scene 3d instance 功能 將三維物件模型的例項新增到三維場景中。add scene 3d label 功能 向三維場景新增文字標籤。add scene 3d light 功能 將光源新增到三維場景。clea...

3D相機如何獲取基於立體視覺的3D資料

本文概述了使用立體相機獲取深度感知的主要處理步驟。立體視覺的深度感知基於三角測量原理。我們講兩台搭載投影光學系統的相機併排放置,使兩台相機的視野在所需物距發生重疊。我們通過這兩台相機的拍攝,可以得到兩個不同角度下的場景圖。如圖1所示。物體在圓錐筒前面,圓錐筒散落排列。在3d空間內,兩幅影象中的每乙個...