Halcon 3D物體識別

2021-08-21 11:42:50 字數 1185 閱讀 8952

總結了一下關於halcon的 object-recognition-3d:

1.基於控制點的位姿估計:

首先,得確定相機的內外參,其次,選擇三個或以上容易和準確地從影象中提取的點作為控制點,通過確定控制點的三維座標來確定物體的位姿

2.基於形狀的匹配:

利用三維計算機輔助設計(cad)模型生成三維形狀模型,三維形狀模型由從不同檢視中看到的三維物體的二維投影組成,需要限制形狀模型的允許姿態範圍,從而最小化必須計算並儲存在三維形狀模型中的二維投影的數量,然後在影象中搜尋,最終返回物體的三維位姿

3.基於表面三維匹配的姿態估計:

利用表面模型(由乙個三維物體模型產生的,這個模型可以是三維計算機輔助設計(cad)模型,也可以是三維重建方法)於3d場景中(如3d點雲)搜尋資料,得到匹配的三維位姿

4.基於表面的三維變形匹配:

與上一種不同的地方在於,它允許三維模型有一點變形,可選擇使用add_deformable_su***ce_model_reference_point定義一些引用點

5.基於3d基元擬合的位姿估計:

用的3d基元型別包括球體、圓柱體和平面,3d基元擬合確定了簡單3d形狀的位置或3d姿勢。

6.基於標定的透視變形匹配的姿態估計:

使用乙個平面物體的自動派生輪廓來搜尋。透視變形匹配可用於標定的相機,然後返回物體的三維姿態,也可用於未標定的相機,然後只返回二維投影變換矩陣

適用於由輪廓清晰區分的平面物體或平面物體部件。

7.基於標定描述符匹配的姿態估計

與透檢視可變形匹配類似,基於描述符的匹配查詢和定位與影象中的模板模型相似的物件。同樣,匹配可以應用於校準過的攝像機,然後返回物體的三維姿態,或者應用於未校準過的攝像機,然後只返回二維投影變換矩陣(homography)。

和上一種方法的不同之處在於,基於描述的匹配不是基於輪廓的,而是使用不同的物件點,即所謂的興趣點,來描述模板並在影象中找到模型。

主要適用於具有特徵紋理和特徵目標點的平面物體

8.圓的位姿估計

提取二維橢圓與內部攝像機引數和已知的圓半徑,可以利用運算元get_circle_pose來獲得圓的兩種可能的三維姿態(具有相同的位置,但方向相反)

9. 矩形的位姿估計

矩形的輪廓被分割成四個線段,它們的交點被認為是四邊形輪廓的角。使用提取的三維矩形二維四邊形,連同內部攝像機引數和已知的矩形大小,可以使用運算元get_rectangle_pose輕鬆獲取矩形可能的三維姿態

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

基於表面的3d識別定位,即在乙個3d 場景下,用3d表面模型去識別零件,得到零件的pose,這個pose是基於3d場景座標系的。模型可以用solidworks軟體畫,儲存成.stl格式,也可以是程式生成的。讀入檔案然後生成3d表面模型 file 零件模型的位址及名稱 mm 也可以是 m dm 設定成...

Unity Shader學習 2D3D物體描邊

參考了下法線擠出的方法感覺對於法線夾角過大的物體來說效果不好,先簡單實現一下,大部分情況應該能用。ui描邊效果找不到特別好的,仿照了unity自帶的outline組建,其實方法挺差的而且估計挺費效能,基本效果還是能將就著用用。描邊基本原理 3d物體沿發現拉公升擴大影象,渲染成純色的,然後把原影象疊上...

Halcon中的3D技術

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