Halcon算子_find_aniso_shape_model

Halcon的find_aniso_shape_model算子用于在图像中找到各向异性尺度不变形状模型的实例。该算子考虑了旋转、缩放、得分阈值等因素,返回模型的位置、旋转角度和得分。参数包括AngleStart和AngleExtent(旋转范围)、ScaleRMin和ScaleRMax(行方向缩放范围)、ScaleCMin和ScaleCMax(列方向缩放范围)、MinScore(最小得分)、NumMatches(最大实例数)等。此外,还可以通过SubPixel参数调整亚像素精度,以及通过MaxOverlap控制实例重叠情况。该算子广泛应用于工业检测、图像分析等领域。
摘要由CSDN通过智能技术生成


find_aniso_shape_model(Image : : ModelID, AngleStart, AngleExtent, ScaleRMin, ScaleRMax, ScaleCMin, ScaleCMax, MinScore, NumMatches, MaxOverlap, SubPixel, NumLevels, Greediness : Row, Column, Angle, ScaleR, ScaleC, Score)

1、算子find_aniso_shape_model在输入图像Image(参数)中找到各向异性尺度不变形状模型ModelID(参数)的最佳NumMatches(参数)个实例。模型ModelID(参数)必须先通过调用create_aniso_shape_model或read_shape_model创建。

2、所得实例在行和列方向上的位置,旋转和缩放会以参数Row,Column,Angle,ScaleR和ScaleC的形式返回。 其中坐标Row和Column是搜索图像中形状模型原点的坐标。 默认情况下,原点是用于使用create_aniso_shape_model创建形状模型的图像的域(区域)的重心。 可以使用set_shape_model_origin设置不同的原点。

3、请注意,坐标Row和Column不完全对应于搜索图像中模型的位置。 因此,您不能直接使用它们。 相反,这些值可以进行优化后用于创建转换矩阵。

4、通过转换矩阵,我们可以使用匹配结果来完成各种任务。例如调整其他处理步骤的ROI。

5、每个找到的实例的得分都在Score中返回。 分数是介于0和1之间的数字,这是模型在图像中可见多少的近似度量。 例如,如果模型的一半被遮挡,则得分不能超过0.5。

6、图像Image(参数)的域确定了模型参考点的搜索空间。模型参考点是指在算子create_aniso_shape_model中用于创建形状模型的图像的域的重心。 不考虑使用set_shape_model_origin设置的不同原点。 在图像的域内搜索模型,模型必须完全位于图像内。 这意味着如果模型扩展超出图像边界,则该模型将不会被发现,即使它的分数大于MinScore(参数),这个行为可以通过set_system('border_shape_models','true')来改变,这可以使得超出图像边框的模型在得分大于MinScore时被发现。 在这里,位于图像之外的点被认为被遮挡,即,它们会降低得分。 应该注意的是,在这种模式下,搜索的运行时间会增加。

7、参数AngleStart和AngleExtent决定了搜索模型的旋转范围。

8、 ScaleRMin,ScaleRMax,ScaleCMin和ScaleCMax的参数决定了搜索模型的行和列方向的缩放范围。

9、如有必要,将两个范围缩小到使用create_aniso_shape_model创建模型时给出的范围。这意味着模型和搜索的角度范围必须真正重叠。

10、搜索中的角度范围不适用于模数360°例如,如果使用AngleStart = -20°和AngleExtent = 40°创建模型,使用AngleStart = 350°和AngleExtent = 20°搜索模型,则模型不会被发现。即使将他们视为模数360°时,角度范围将重叠,模型也是不会被发现。所以需要以AngleStart = -10°和AngleExtent = 20°搜索模型。

11、如果模型ModelID是由算子create_shape_model或create_scaled_shape_model创建的,那将会以1.0的各向同性缩放或者在ScaleRMin到ScaleRMax范围内的各向同性缩放来搜索模型。

12、参数ScaleR和ScaleC返回实际的缩放率。

13、注意:某些稍微超出旋转和缩放范围的实例也有可能被识别出来。如果指定的搜索范围小于创建模型时给出的范围,则可能会发生这种情况。

14、参数MinScore确定了实例的最小匹配分数。选择较大的MinScore,搜索速度越快。如果模型可以预测到不会被遮挡,MinScore可能设置为高达0.8甚至0.9。如果匹配没有跟踪到最低金字塔级别,那么可能会发现比分低于MinScore的匹配。

15、可以使用NumMatches确定要查找的最大实例数。如果图像中找到的分数大于MinScore的NumMatches实例多,则只返回最佳的NumMatches个实例。如果少于NumMatches,则只返回能找到的实例,即参数MinScore优先于NumMatches。

16、如果模型呈现对称性,则可能发生在图像中发现具有类似位置但具有不同旋转的多个实例。参数MaxOverlap通过分数(即,0和1之间的数字)来确定两个实例可以最多重叠,以便将它们视为不同的实例,并且单独返回。如果两个实例彼此重叠超过MaxOverlap,则只返回最佳实例。重叠的计算基于所找到的实例的任意方向(见minimum_rectangle2)的最小包围矩形。如果MaxOverlap = 0,发现的实例可能根本不重叠,而对于MaxOverlap = 1,所有实例都将返回。

17、参数SubPixel确定是否应以亚像素精度提取实例。如果SubPixel设置为“none”(或“false”用于向后兼容),则只能通过像素精度和使用create_aniso_shape_model指定的角度和比例分辨率来确定模型的姿态。如果SubPixel设置为“interpolation”(或“true”),则以亚像素精度确定位置以及旋转和缩放。在这种模式下,模型的姿态是通过得分函数进行插值得到的的。该模式几乎不需要计算时间,并达到了对于大多数应用来说足够高的精度。

18、然而,在一些应用中,精度要求非常高。在这些情况下,可以通过最小二乘法调整来确定模型的姿态。与“interpolation”相反,该模式需要额外的计算时间。可以使用不同的最小二乘法调整模式('least_squares','least_squares_high'和'least_squares_very_high')来确定正在搜索最小距离的准确性。然而,选择精度越高,子像素提取将采取越长的时间。通常,SubPixel应设置为“interpolation”。如果需要进行最小二乘法调整,则应选择“least_squares”,因为这将导致运行时和精度之间的最佳权衡。

19、相对于模型而言有稍微变形的物体,在某些情况下,无法被找到或者即使被找到,精度也很低。对于这样的对象,可以在参数SubPixel中额外传递最大允许对象变形。变形必须以像素为单位指定。这可以通过传递可选参数值“max_deformation”,后跟一个0到32之间的整数值(在同一个字符串中),该值指定最大变形。例如,如果对象的形状相对于存储在模型中的形状可以变形多达2个像素,则必须在SubPixel中传递值“max_deformation 2”。传递值“max_deformation 0”时,进行搜索时要求物体不能变形,与不设定“max_deformation”的作用一样。

20、请注意,最大变形值设定得较高时通常会导致运行时间增加。此外,选择变形值越高,发现错误模型实例的风险越高。这两个问题主要出现在搜索小物体或具有精细结构的物体时。这是因为这种物体在高变形时会失去其特征形状,而特征形状对于强大的搜索来说是很重要的。还要注意,对于较高的变形,如果在物体附近存在杂波,部分遮挡物体的精度可能会降低。因此,最大变形应尽可能选择尽可能小,只有在有必要的时候才设置得高一点。

21、当指定高于0的变形时,匹配分数的计算取决于亚像素提取的所选值即subpixel的值。在大多数情况,如果选择了“minimum_squares”,“minimum_squares_high”或“least_squares_very_high”(参考上文第17点),则匹配的分数会发生变化(与“none”或“interpolation”进行比较)。此外,如果选择最小二乘调整中的一个,则增加最大变形时得分可能增加,因为对于模型点,可以找到更多对应的图像点。

  • 4
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值