日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > ChatGpt >内容正文

ChatGpt

Halcon算子学习:create_surface_model

發布時間:2024/7/23 ChatGpt 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Halcon算子学习:create_surface_model 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

create_surface_model

( : : ObjectModel3D, RelSamplingDistance, GenParamName, GenParamValue : SurfaceModelID)
創建執行基于表面的匹配所需的數據結構

輸入:

  • object_model_3d
    3D對象模型的句柄。
  • RelSamplingDistance (input_control) real→(real)
    相對于物體直徑的采樣距離
    默認值:0.03
    建議值:0.1,0.05,0.03,0.02,0.01
    限制:0 < RelSamplingDistance < 1
  • GenParamName (input_control)
    通用參數的名稱。
    默認值:[]
    建議值:model_invert_normals、pose_ref_rel_sampling_distance、feat_step_size_rel、feat_angle_resolution、train_3d_edges
  • GenParamValue
    通用參數的值。
    默認值:[]
    建議值:0,1,‘true’, ‘false’,0.005,0.01,0.02,0.05,0.1

輸出:

  • SurfaceModelID (output_control)
    表面模型的句柄

算子說明

1、操作符create_surface_model為3D對象模型ObjectModel3D創建基于表面的匹配模型。例如,以前可以使用read_object_model_3d從文件讀取3D對象模型,或者使用xyz_to_object_model_3d創建3D對象模型。創建的表面模型在SurfaceModelID中返回。

2、曲面模型的創建要求三維對象模型包含點和法線。下列組合是可能的:

  • 點和點法線;
  • 點和三角形或多邊形網格,例如,從CAD文件;
  • 點和2d映射,例如用xyz_to_object_model_3d三倍轉換的XYZ圖像。

3、注意,模型法線的方向和方向(向內或向外)對于匹配非常重要。還請注意,對于邊緣支持的基于表面的匹配,模型必須包含一個三角形或多邊形網格(如圖)

4、表面模型是通過對一定距離的三維對象模型采樣來創建的。采樣距離必須在參數RelSamplingDistance中指定,并相對于三維對象模型的軸向-平行 邊界框(axis-parallel bounding box)的直徑進行參數化。例如,如果RelSamplingDistance設置為0.05,ObjectModel3D的直徑為“10 cm”,則從對象表面采樣的點之間的距離大約為“5 mm”。采樣點用于操作符find_surface_model中的近似匹配(參見下面)。可以使用操作符get_surface_model_param使用值’sampled_model’獲得采樣點。請注意,應該避免對象模型中的離群點,因為它們會破壞直徑。
減少RelSamplingDistance會產生更多的點,從而實現更穩定但更慢的匹配。增加RelSamplingDistance會導致更少的點,從而導致更少的穩定但更快的匹配。

5、采樣點用于通過操作符find_surface_model在場景中查找對象模型。為此,要檢查點集中所有可能的點對,并計算每對點的距離和相對表面方向。這兩個值被離散化并存儲以進行匹配。通用參數**‘feat_step_size_rel’和‘feat_angle_resolution’可分別用于設置距離和方向角的離散化**(如下所示)。

再次采樣3D對象模型進行姿態細化。第二次采樣的采樣距離較小,導致更多的點。通用參數**'pose_ref_rel_sampling_distance’設置相對于對象直徑的采樣距離**。降低該值可以得到更精確的位姿細化,但會導致更大的模型和更慢的模型生成和匹配。增加該值會導致更少的精確姿態細化,但會導致更小的模型和更快的模型生成和匹配(見下文)。

6、此外,基于表面的匹配可以使用3D邊緣來改進對齊(排列)。這對于平面或包含較大平面邊的對象特別有幫助,例如在不正確的旋轉或背景平面中發現它們。為了允許find_surface_model也對齊邊緣,必須通過將通用參數‘train_3d_edges’設置為‘true’來訓練表面模型。在這種情況下,模型必須包含一個網格,即三角形或多邊形。此外,對于邊緣支持的基于表面的匹配的訓練需要 OpenGL 2.1、GLSL 1.2和OpenGL擴展GL_EXT_framebuffer_object和GL_EXT_framebuffer_blit。我也可以比沒有邊緣支持的訓練花更長的時間。
通用參數對GenParamName和GenParamValue用于為模型生成設置額外的參數。GenParamName包含要設置的參數名的元組,GenParamValue包含相應的值。以下值是可能的GenParamName:

  • “model_invert_normals”:
    反轉模型表面法線的方向。模型生成需要知道正常的方向。如果模型和場景都使用相同的設置,法線將指向相同的方向。如果模型是從CAD文件加載的,法線可能指向相反的方向。如果你在場景表面的“外部”發現了模型,并且模型是由CAD文件創建的,試著將這個參數設置為“true”。另外,確保CAD文件中的法線都指向外或內,即,始終一個方向。法向與曲面模型的姿態細化無關。因此,如果對象模型僅與操作符refine_surface_model_pose一起使用,則‘model_invert_normals’的值對結果沒有影響。
    可能的值:‘false’, ‘true’
    默認值:“假”

  • “pose_ref_rel_sampling_distance”:
    設置相對于對象直徑的姿態細化的采樣距離。減少這個值會導致更精確的姿態細化,但會導致更大的模型和更慢的模型生成和細化。增加該值會導致更少的精確姿態細化,但會導致更小的模型和更快的模型生成和匹配。
    建議值:0.05、0.02、0.01、0.005
    默認值:0.01
    斷言:0 < ‘pose_ref_rel_sampling_distance’ < 1

  • “feat_step_size_rel”:
    設置點對距離相對于物體直徑的離散化距離。該值默認為RelSamplingDistance的值。不建議更改此值。對于噪聲很大的場景,可以通過增加值來提高對噪聲點的匹配的魯棒性。
    建議值:0.1、0.05、0.03
    默認值:RelSamplingDistance的值
    斷言:0 < ‘feat_step_size_rel’ < 1

  • “feat_angle_resolution”:
    將點對方向的離散化設置為角度細分的數目。建議不要更改此值。值的增加增加了匹配的精度,但降低了對不正確法線方向的魯棒性。值的減少降低了匹配的精度,但增加了對不正確法線方向的魯棒性。對于法線方向無法精確計算的非常嘈雜的場景,該值可以設置為25或20。
    建議值:20、25、30
    默認值:30
    斷言:‘feat_angle_resolution’ > 1

  • “train_3d_edges”:
    支持邊緣支持的基于表面的匹配和細化的訓練。在這種情況下,模型必須包含一個網格,即三角形或多邊形。這個參數需要OpenGL。
    可能的值:‘false’, ‘true’
    默認值:“假”

總結

以上是生活随笔為你收集整理的Halcon算子学习:create_surface_model的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。