尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

Halcon 模板匹配 Shape-Based Matching原理

Halcon 模板匹配 Shape-Based Matching原理
📅 发布时间:2026/7/16 22:45:43

其核心原理可以分为两个主要部分:模板创建(离线阶段)和图像匹配(在线阶段)。

Shape-Based Matching(形状模板匹配)不是比较灰度,而是比较轮廓(Edge)

Shape-Based Matching = 边缘提取 + 梯度方向编码 + 图像金字塔 + 几何搜索 + 亚像素优化

因此:

  • 光照变化影响小
  • 对旋转鲁棒
  • 可支持部分遮挡
  • 定位精度高

保留:边缘。所以:它根本不关心:里面:到底:黑色还是:白色。

因此:

光照变化:影响很小

简单流程:

原图 ↓ ROI ↓ 边缘提取 ↓ 建立Shape Model ↓ 保存模型 ------------------------ 检测图片 ↓ 边缘提取 ↓ 金字塔搜索 ↓ 粗定位 ↓ 细定位 ↓ 亚像素优化 ↓ 输出 (Row Column Angle Score)

2D 形状匹配 目标物体被遮挡,如何解决-CSDN博客

一、 模板创建 - 学习阶段

这个阶段的目标是创建一个紧凑而富有信息的模板,用于在后续的图像中搜索。

  1. 输入参考图像:

    • 选择一张高质量的、包含目标物体的图像,物体轮廓清晰,对比度好。

  2. 定义模板区域:

    • 用户通过绘制一个ROI(感兴趣区域,通常是矩形、多边形或圆形)来精确指定图像中哪个部分是我们要找的模板。这步非常关键,因为它排除了背景干扰。

  3. 特征提取 - 核心所在:

    • Halcon并不直接存储模板的像素信息。相反,它提取物体的轮廓特征。这些特征主要基于物体的边缘(梯度信息)。

    • 过程:

      • 边缘检测:首先,在模板区域内进行边缘检测(如使用sobel,edges_image等算子),得到物体的轮廓。

      • 创建模型:使用create_shape_model或create_scaled_shape_model(带缩放)等算子。

      • 金字塔化:算子内部会为模板图像创建图像金字塔。金字塔顶层是原图的下采样版本(分辨率低,但特征稳定),底层是原图或接近原图的分辨率。

      • 梯度方向量化:在每个金字塔层级上,计算轮廓上每个边缘点的梯度方向(即边缘的法线方向)。为了提升匹配速度和鲁棒性,Halcon会将连续的梯度方向量化为几个离散的方向(例如,量化为0°-360°之间的8、16或32个方向)。

    • 结果:最终生成的模板(.shm文件)本质上是一个多分辨率、由带方向的边缘点组成的集合,并附带了一些用于加速搜索的索引结构。

为什么用边缘/梯度?
因为相对于灰度值,边缘特征对光照变化、颜色变化、纹理变化以及局部遮挡具有更强的鲁棒性。

二、 图像匹配 - 搜索阶段

这个阶段的目标是在一张新的、待检测的图像中,快速找到所有与模板相似的实例。

  1. 输入待检测图像。

  2. 图像金字塔搜索:

    • 匹配过程从金字塔的顶层(最低分辨率)开始。

    • 原因:顶层图像像素少,噪声少,可以非常快地进行粗略的全局搜索,排除掉大量不可能的候选位置。

    • 在顶层找到一些“可能”的位置(候选点)后,算法会沿着金字塔向下,在更高分辨率的图层上对这些候选位置进行精炼和验证。

    • 这种“由粗到细”的策略是Halcon形状匹配能够如此快速的根本原因。

  3. 相似性度量 - 另一个核心:

    • 在金字塔的每一层,算法如何判断某个位置是不是匹配呢?它使用一种叫做归一化相关系数的变体,但作用在梯度方向上。

    • 具体来说,对于图像中的一个候选位置(x, y)和旋转角度θ,算法会:

      • 将模板的轮廓点(及其量化后的梯度方向)通过仿射变换(平移(x, y),旋转θ)投射到待检测图像上。

      • 在待检测图像上,计算这些投射点位置的实际梯度方向。

      • 比较模板点的预期梯度方向和图像上对应点的实际梯度方向。如果两者方向一致,则认为该点是一个好的匹配点。

    • 将所有轮廓点的匹配程度汇总,得到一个匹配得分(Score),范围通常是0到1。1表示完美匹配,0表示完全不匹配。

  4. 结果输出:

    • 算法会输出所有匹配得分高于用户设定阈值(如MinScore)的实例。

    • 对于每个找到的实例,输出其位置(Row, Column)、旋转角度Angle,如果使用了可缩放模板,还会输出缩放比例Scale。

三、 主要特点与优势

  1. 高速度:

    • 基于图像金字塔的“由粗到细”的搜索策略。

    • 梯度方向的量化。

    • 优化的算法,可以处理亚像素精度。

  2. 高鲁棒性:

    • 对光照变化不敏感:因为使用梯度而非灰度值。

    • 对遮挡不敏感:匹配得分是轮廓点的总和,即使有部分点被遮挡,只要剩余点的匹配得分超过阈值,依然能找到。

    • 对噪声不敏感:金字塔顶层本身就具有平滑去噪的效果。

    • 对杂乱背景不敏感:只要模板特征足够独特,就能从复杂背景中分离出来。

  3. 灵活性:

    • 可以处理多个实例。

    • 可以处理旋转和缩放(通过创建相应模型)。

    • 甚至可以处理轻微的形变(通过设置MaxDeformation等参数)。

四、 关键参数解析

在使用find_shape_model时,理解以下参数对优化匹配效果至关重要:

  • NumLevels:金字塔层数。层数越多,搜索越快,但可能会漏掉小物体或细节。

  • AngleStart/AngleExtent:限制搜索的旋转角度范围,可以大幅加速搜索。

  • MinScore:最小匹配得分。设置越高,要求越严格,可能漏检;设置过低,可能导致误检。

  • Greediness:贪婪度(0-1)。控制搜索的“侵略性”。值越高(接近1),速度越快,但可能漏掉一些较差的匹配;值越低(接近0),速度越慢,但搜索更彻底。

  • MaxOverlap:最大重叠度。用于处理多个实例时,允许实例之间重叠的比例。

总结

Halcon形状匹配的本质是:一种基于物体轮廓梯度方向的多分辨率、由粗到细的相似性搜索算法。

它的强大之处在于将人类视觉中“看形状”的直觉,转化为了一套高效、鲁棒的数学计算和搜索流程,使其成为工业视觉定位应用中无可替代的工具。

五、是形状匹配(Shape Matching)原理

1、HALCON 中模板匹配(Template Matching)的原理

类型HALCON 算子特点
基于灰度的匹配create_template,find_template快速,但不抗光照、遮挡
基于形状(边缘)的匹配create_shape_model,find_shape_model高精度,抗光照、速度快
基于局部仿射的匹配create_aniso_shape_model允许方向非均匀缩放
基于透视模型的匹配create_planar_calib_deformable_model用于视角变化
基于梯度方向匹配create_shape_model_xld抗噪、抗光变化
ROI │ ▼ 提取边缘 │ ▼ 计算梯度方向 │ ▼ 筛选稳定边缘 │ ▼ 建立Shape Model

边缘提取

为什么要建立图像金字塔?

例如:图片:4000×3000

直接搜索:速度:太慢。

HALCON:

Level3 400×300 ↓ Level2 800×600 ↓ Level1 1600×1200 ↓ Level0 4000×3000

先:粗搜索。再:细搜索。速度:提高:几十倍。

2、形状模板匹配(Shape-Based Matching)数学原理

待检测图像 │ ▼ 建立图像金字塔 │ ▼ 每层提取边缘 │ ▼ 旋转搜索 │ ▼ 平移搜索 │ ▼ Score计算 │ ▼ 粗定位 │ ▼ 亚像素优化 │ ▼ 输出 (Row,Column,Angle,Score)

HALCON 的 Shape Model 是基于边缘点(XLD)+ 梯度方向的匹配。

HALCON 提供多种类型的模板匹配:

形状匹配是在图像中找到与模板形状最相似的目标的技术。
在 Halcon 中,它主要用来处理目标位置、角度、缩放变化等情况。

Halcon 的形状匹配分两类:

  1. 基于轮廓的形状匹配(Contours-based / Shape-based Matching)

  2. 基于灰度的形状匹配(Gray-value / Intensity-based Matching)

1. 提取模板轮廓(XLD)

edges = Edges(image, ...) // Canny or Sobel XLD = SelectEdges(edges)

2. 建立形状模型(Shape Model)

3、匹配阶段 find_shape_model 的原理

1. 梯度方向一致性检查

2. 位姿投票(Generalized Hough Transform)

数学

3. 模板评分(Score)

4. 亚像素精定位

6、vector_angle_to_rigid()

将:

模板坐标:

转换:

实际坐标。

5、HALCON vs OpenCV 模板匹配对比

项目HALCON shape-basedOpenCV TM / SIFT
光照✔ 抗光照✘ 灰度 TM 很差
旋转缩放✔ 支持✘ TM 不支持
遮挡✔ 可容忍✘ TM 基本崩
精度亚像素到像素
速度非常快中等
工业应用标配较少

3️⃣ 旋转、缩放、平移处理

Halcon 的轮廓匹配支持:

  • 平移:模板在图像中移动。

  • 旋转:模板可旋转一定角度范围。

  • 缩放:模板可按比例缩放。

  • 亚像素精度:匹配结果可以达到亚像素精度。

Halcon 使用金字塔搜索和轮廓方向编码来加速匹配和提高鲁棒性。


4️⃣ 优缺点

优点缺点
对目标形状变化(旋转、缩放)鲁棒对严重遮挡敏感
精度高(亚像素级)对光照和噪声敏感
速度快,Halcon 内置优化模板需要精心选择,边缘提取质量影响大

5️⃣ 应用场景

  • ✅ 工业零件定位

    ✅ 机器人抓取

    ✅ PCB 定位

    ✅ 汽车零件装配

    ✅ 存在旋转

    ✅ 存在少量遮挡

    ✅ 光照变化

    不推荐:

    ❌ 目标发生较大形变(橡胶、布料等)

    ❌ 尺度变化很大(普通 Shape Model 不处理尺度,可使用 Scaled Shape Model)

    ❌ 纹理丰富但边缘不明显(可考虑特征点方法)

内容Shape-Based Matching 核心
匹配对象边缘点 + 梯度方向,不是灰度
数学基础梯度计算、几何变换、边缘一致性评分、局部优化
建模create_shape_model提取稳定边缘并建立多分辨率模型
搜索图像金字塔 + 平移 + 旋转搜索
Score边缘位置和方向的一致程度(HALCON 未公开完整公式)
精定位亚像素优化(输出 Row、Column、Angle)
关键算子create_shape_model、find_shape_model、create_shape_model_xld、find_shape_models
适用场景工业定位、机器人抓取、PCB、装配、存在旋转和一定遮挡

相关新闻

  • 变量组合数公式(有 x 个变量,每个变量有 y 个状态,它们的组合有 y^x 种)
  • 基于DeepSeek+Dify构建智能知识库的实践指南
  • Redocusaurus与Redocly集成:提升OpenAPI规范质量的完整指南

最新新闻

  • 从SQL查询到数据洞察:SQLPad如何重构数据库交互体验
  • 别急着签合同!2026年广州建站平台推荐,先看这4个细节
  • 从零开始安装部署一个openclaw
  • 2026北京帝舵回收,闲置帝舵腕表长期搁置易贬值!毓典奢品汇专业鉴定估价,运动奢华腕表稳妥变现 - 奢品流通笔谈
  • NAS一键部署AFFiNE:打造私有Notion+白板知识库
  • AI模型技术选型与多模型集成开发实践指南

日新闻

周新闻

  • IX9104 PCIe5.0 高速交换芯片@ACP#完整规格 + 应用场景总结
  • Unity游戏集成Coze智能体:实现NPC智能对话与知识库联动
  • SAP EPIC 建行回单查询:从标准类CL_EPIC_EXAMPLE_CN_CCB_GHTD到Z类的5处关键修改

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号