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_normalspose_ref_rel_sampling_distancefeat_step_size_relfeat_angle_resolutiontrain_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’
    默认值:“假”

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/491005.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

任正非:5G独立组网全世界只有华为一家做好了 我们在等待高通进步

任正非来源&#xff1a; TechWeb华为创始人、CEO任正非7月18日在广东接受了意大利媒体的采访。近日&#xff0c;华为在心声社区公布了这次采访的圆桌纪要。在回答意大利媒体记者的提问中&#xff0c;任正非表示&#xff1a;“国际媒体对华为几乎都是负面报道&#xff0c;因为他…

MATLAB判断文件是否存在、删除文件

MATLAB判断文件是否存在&#xff1a; exist(output.txt,file) 如果output.txt存在&#xff0c;返回2&#xff0c;若不存在返回0 MATLAB删除文件&#xff1a; delete(output.txt);

Halcon算子学习:find_surface_model

find_surface_model ( : : SurfaceModelID, ObjectModel3D, RelSamplingDistance, KeyPointFraction, MinScore, ReturnResultHandle, GenParamName, GenParamValue : Pose, Score, SurfaceMatchingResultID) 在3D场景中找到一个表面模型的最佳匹配。 输入&#xff1a; Surf…

遗传算法学习笔记(一):常用的选择策略

简述 遗传算法(GA)是一种模拟生物进化自然选择过程的非确定性搜索方法&#xff0c;源于达尔文的进化论和孟德尔的遗传定律&#xff0c;由美国 Michigan 大学的 Holland教授在 20 世纪 70 年代首先提出。生物理论指出&#xff0c; 生物个体的各种生命表征是由许多基因共同决定的…

Nature指明大脑引流“废液”的确切路径

来源&#xff1a;中国生物技术网多年来&#xff0c;科学家们一直认为大脑中缺少淋巴系统&#xff0c;从而引发了液体、大分子和免疫细胞是如何被清除出去的问题。2015年&#xff0c;有两项小鼠研究证实&#xff0c;脑膜&#xff08;保护大脑并维持其形状的覆盖物&#xff09;的…

Halcon算子学习:distance_object_model_3d

distance_object_model_3d ( : : ObjectModel3DFrom, ObjectModel3DTo, Pose, MaxDistance, GenParamName, GenParamValue : ) 计算一个3D对象模型到另一个3D对象模型的点的距离。 输入&#xff1a; object_model_3d→(整数) 源3D对象模型的句柄。ObjectModel3DTo 目标3D对象…

js的工作原理

JavaScript就是所谓的客户端脚本语言&#xff0c;是一种在互联网浏览器&#xff08;浏览器也称为Web客户端&#xff0c;因为它连接到Web服务器上&#xff0c;以下载页面&#xff09;内部运行的计算机编程语言。 也就是说&#xff0c;如果一个网页里有js代码&#xff0c;那么&am…

MATLAB判断数据是否为NaN

MATLAB判断数据是否为NaN可以直接使用函数isnan()

郭仁忠院士:新城市科学认知与智慧城市建设

来源&#xff1a; 慧天地张亚勤、刘慈欣、周鸿祎、王飞跃、约翰.翰兹联合推荐这是一部力图破解21世纪前沿科技大爆发背后的规律与秘密&#xff0c;深度解读数十亿群体智能与数百亿机器智能如何经过50年形成互联网大脑模型&#xff0c;详细阐述互联网大脑为代表的超级智能如何深…

unity 面试题

今天这套笔试题感觉做得一般。 随后是二对一的技术面试&#xff0c;但涉及的技术细节相对较少&#xff0c;很多其它的是对曾经工作、项目经历的询问。 然后说今天先到这里。让我等通知。我还特意问了一下&#xff0c;通知大概要多久&#xff0c;他们说这个得看hr&#xff0c;他…

MATLAB把多行多列矩阵数据和文字写入txt文件

效果&#xff1a; 代码&#xff1a; a[1,2,3;4,5,6;7,8,9] [m,~]size(a) fidfopen(a.txt,w); fprintf(fid,第一列\t第二列\t第三列\r\n); for i1:m fprintf(fid,%d\t%d\t%d\r\n,a(i,:)); end fclose(fid);

数字图像处理:视觉系统中的坐标系介绍

参考&#xff1a; 图像坐标系、摄像机坐标系与世界坐标系四个坐标系简介和转换世界坐标、相机坐标、图像坐标、像素坐标的原理、关系&#xff0c;并用matlab仿真 1、像素坐标系(Pixel coordinate system)&#xff08;二维坐标系&#xff09; 摄像机采集的数字图像在计算机内…

图灵机与控制论之分歧,一切为了人类心智的荣耀!

来源&#xff1a;新智元作者&#xff1a;李力、郑南宁、王飞跃编辑&#xff1a;小芹【导读】图灵和维纳的思想都对人工智能的研究之路产生了重要影响&#xff0c;本文讨论了AI发展过程中的主要困难&#xff0c;特别是解释了图灵的人工智能方法和维纳的人工智能方法之间的关键区…

PyQt4重写事件处理方法

PyQt中的事件处理主要以来重写事件处理函数来实现。 #!/usr/bin/python # -*- coding: utf-8 -*-import sys from PyQt4 import QtGui, QtCore class Escape(QtGui.QWidget):def __init__(self, parent None):QtGui.QWidget.__init__(self)self.setWindowTitle(escape)self.re…

im2bw函数的阈值level

im2bw函数是MATLAB用于图像二值化的函数&#xff0c;调用形式为&#xff1a; J im2bw(I,level) 其中阈值level是一个0-1的值&#xff0c;如果输入的图像像素值范围0-255&#xff0c;设置阈值level160&#xff0c;则该函数会将图像中像素值<160的点置为0&#xff0c;像素值…

Halcon学习笔记:xyz_attrib_to_object_model_3d示例

Halcon学习笔记&#xff1a;xyz_attrib_to_object_model_3d——从X、Y和Z图像中创建3D对象模型同时附加属性 xyz_attrib_to_object_model_3d.hdev This example program shows the usage of the procedurexyz_attrib_to_object_model_3d.It can be used to create 3D object …

理论计算机科学中最令人困惑的谜题之一被解开

来源&#xff1a;原理“自敏感度猜想提出以来&#xff0c;它便是所有组合学和理论计算机科学中最令人沮丧和尴尬的开放性问题之一。”德克萨斯大学奥斯汀分校的理论计算机学家Scott Aaronson在一篇博客中写道。Aaronson提到的猜想是一个与计算机电路的基本构件结构有关的猜想&a…

成都Uber优步司机奖励政策(4月2、3日)

滴快车单单2.5倍&#xff0c;注册地址&#xff1a;http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单&#xff1a;http://www.cnblogs.com/mfryf/p/4612609.html 优步奖励低/不挣钱/怎么办?看这里&#xff1a;http://www.cnblogs.com/mfry…

MATLAB保存当前窗口图像

saveas(gcf,image.jpg); gcf会获得当前figure窗口的句柄