浅谈 VisionMaster 中的视觉工具系列:模板匹配 (第二部分)
第二部分,介绍模板匹配的原理,以及vm与halcon的对比。

接上贴所提到,轮廓匹配是基于轮廓梯度方向来匹配的。基本原理是linemod的原理,用向量加法优化速度,替代滑窗的卷积。

本人认为vm轮廓模板也是使用该原理。

Linemod算法小结原文链接:https://blog.csdn.net/zmdsjtu/article/details/79933822

linemod原理原文链接讲解的很清楚。下文主要讲一下实现中的问题以及 mv对比halcon速度实测。


匹配原理已经有了。工程实现是个问题。我们轮廓模板匹配,只需要2D,而且需要旋转,缩放。

所以创建模板对象的时候,需要根据不同的金字塔层,创建不同步长(旋转步长,缩放步长)的模板。

以下就是工程实现过程中,我认为的一个提升速度方法:

匹配的时候,由高层开始匹配。根据高层匹配程度(速度快,精度差),决定底层匹配(速度慢,精度高)时,是否需要剪裁无效区域后再匹配。

例如:假设模板尺寸(i*j),原图尺寸(m*n),假设取了五层金字塔层。  

先在第五层下匹配。第五层模板尺寸(i/32  * j/32).第五层原图尺寸(m/32 * n/32)。全角度,全缩放 匹配到的坐标是 (c1,r1)。

然后再第四层匹配。第五层模板尺寸(i/16  * j/16).第五层原图尺寸(m/16 * n/16)。全角度,全缩放 匹配到的坐标是 (c2,r2)。

如果(c1,r1)*2 = (c2,r2) (等于或偏差2个像素以内)。可以认为这个匹配点是正确的,那就直接跳到原图去匹配。并把匹配区域缩小 只比模板大20个像素。

即:原模板  尺寸(i*j), 原图尺寸(i+20  *  j+20)。在这个尺度范围内匹配,角度和缩放,取刚才对比的最大范围。这样极大加快是匹配速度,同时保证了匹配精度。

如果(c1,r1)*2 != (c2,r2)(等于或偏差比较大),那继续去第三差匹配。丢掉第五层。让第三层与第四层匹配结果对比。依次类推。



使用同一组图片测试。图片分辨率是 5472*3648  两千万黑白图片。

用一组图片测试 vm 快速匹配 平均时间大概是35ms   精度匹配 平均时间大概是 45ms


而用halcon测试, 平均时间大概是 5ms


本测试不是非常严谨,主要是vm可调参数少,只能是让vm可调参数与halcon的一致,其他参数控制不了。

本测试只能大致的说明,halcon在调整好参数后,可以做到高速匹配。2000万图片,5ms。真的非常快了。

当然VM也很优秀,35ms。这个速度,基本上可以满足99.9%以上的项目需求。

(因为把全图查找,缩小为局部查找(2000*2000范围 400万像素内)速度迅速提升,耗时只要10ms左右。

(我自己写的匹配算法,大概要120ms左右。还有很大的进步空间。)


以上就是模板匹配的分享。

在工程中,模板匹配是最常用的工具。主要用来纠正对象位置不一致。

接着就是位置修正。然后是精定位,比如找圆。找直线,找交点,找垂线等等。


下图是halcon的组手工具,显示的是halcon最基础也是最重要的工具。其中就有 “模板匹配”,测量矩形 ,标定,字符训练检测,图片采集。


下一篇,测量矩形   测量矩形是所有测量的基础,是找圆,找直线的基础。

版权声明:本文为V社区用户原创内容,转载时必须标注文章的来源(V社区),文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:v-club@hikrobotics.com 进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
上一篇

浅谈 VisionMaster 中的视觉工具系列:模板匹配

下一篇

浅谈 VisionMaster 中的视觉工具系列:测量矩形

评论请先登录 登录
全部评论 2

楼主做的对比很客观,也我让更多了了解了两种软件的区别。。。

2023-03-11 10:11:36 未知地区
回复

VM采用的是顶层和底层两层搜索架构,并无中间过渡层,和halcon还是有区别的😃

2022-06-24 17:23:27 未知地区
回复
  • 1
Lv.0
0
关注
442
粉丝
28
创作
843
获赞
所属专题
  • 好消息!!!听说VM文档首次全面优化完成了~
  • 小白,怎么学习VisionMaster--1
  • 小白,怎么学习VisionMaster--2
  • 小白,怎么学习VisionMaster--3
  • 浅谈 VisionMaster 中的视觉工具系列:测量矩形
  • 浅谈 VisionMaster 中的视觉工具系列:模板匹配 (第二部分)
  • VM组合模块的使用方法(VM4.1)
  • 【共享学习】VM还有这种操作?分享十个使用技巧!
  • VM算法平台,利用点点测量1个点到其他N个点的距离使用方法。
  • 技术分享——VM识别模块基础使用介绍
相关阅读
  • 汽车制造
    刹车盘圆孔尺寸检测案例
    浏览 3275
  • 汽车制造
    汽车行业-汽车焊点检测案例
    浏览 2604
  • 汽车制造
    液晶背光板缺陷检测案例分享
    浏览 2636
  • 汽车制造
    创维车载显示屏-清洗机视觉定位项目案例分享
    浏览 2433
  • 汽车制造
    汽车行业-金属片针脚焊点缺陷检测
    浏览 219

请升级浏览器版本

您正在使用的浏览器版本过低,请升级最新版本以获得更好的体验。

推荐使用以下浏览器