模板匹配,是工业图像处理,最重要的算法。(最常用,最基础,最好用)
所以这个算法实现的优劣,直接体现了该算法平台的实力。(衡量标准:鲁棒性,精度 和 速度)
以本人目前的见识来说,halcon 应该是做的最好。然后是visionpro。再是VM。
但这并不妨碍VM的模板匹配是个优秀的工具。只是某些方面与halcon有些差距。(主要是速度以及可调参数,这部分我们会在最后讨论。)
本篇分两部分。
第一部分,介绍vm中的模板匹配工具的使用。以及常用参数的意义。
第二部分,介绍模板匹配的原理,以及vm与halcon的对比。
vm中有四个模板匹配,如下图:
其中 :高精度匹配,快速匹配,图像定位,都是轮廓匹配。
他们的不同,主要是默认参数,开发的可调参数,不一样。
而图像定位,则是在制作模板的时候,提供了空心十字,空心矩形的方式。再提供高精度,快速匹配两种方式。
快速匹配:默认不可见参数最多。也是最常用的。(你接触到的项目,99.9%的匹配需求,都可以用快速匹配达到目的)
多说一句,就是匹配的目的,通常都是粗定位,偏差几个像素,是可以接受的,匹配速度,反而很关键。匹配算法其实是比较复杂的算法。很多参数,对大部分人来说只是负担。所以可调参数少,通常来说反而是件好事。
我们来看一下,快速匹配有哪些参数?
首先,创建模板:
只有有2个参数:特征尺度(特征点的疏密程度,系数越小,特征点越密集,反之越稀疏),对比度阈值(字面意思,被选中的特征点最低对比度阈值,系数越小,特征点选入门槛越低,被选入的特征点就越多,反之被选中的特征点越少)。如果选中的特征对比度好,直接默认自动参数就可以。
然后,运行参数:
最小匹配分数:字面意思。
最大匹配个数:字面意思。
匹配极性:简易理解就是 对象比背景白,还是比背景黑。 这个因素是否被考虑
角度范围:字面意思
尺度范围:字面意思 支持模板缩放范围。
高级参数:
最大重叠率:字面意思 支持对象部分被遮挡。
排序类型:字面意思
阈值类型:字面意思
延拓阈值:本人理解是对阈值类型的补充,就是查找的时候,对图片中特征选择阈值范围,可以超过阈值类型范围的补充。
超时控制:字面意思,超过这个时间就跳出程序,不再继续匹配。匹配到了就匹配到了,没匹配到就没匹配到。(测试时候,发现bug,超时时,如果没有匹配到对象,会跳出,算法不超时。如果匹配到了对象,算法不会跳出。还会继续执行。导致算法超时)
重点讲一下匹配极性:
考虑极性的意思是,如果你制作模板时候,匹配对象比背景白,那就只匹配白的对象。不会匹配比背景黑的对象。
不考虑极性就是,不管你制作模板时,匹配对象比背景黑,还是白。匹配的时候,会把黑的,白的,都找到。
如上图所示,图片中有一白,一黑对象,背景介于黑白之间。如果我做模板时候,用白对象做模板。
查找对象的时候,考虑极性,就不会找到黑的对象。只会找到白的对象。
查找对象的时候,不考虑极性,那么黑白对象都会找到。
高精度匹配:(只讲与快速匹配不同的地方)
如下图所示,与快速匹配相比,就是多开放2个参数可调。
1,创建模板时,多一个 速度尺度。(快速匹配这个参数不可见,是给了一个默认最大值)这个参数只是限制特征尺度的最大值。
2,运行参数中,xy方向尺度可以单独调试,就是xy两个方向的缩放可以单独调。
运行过程中,使用高度度匹配和快速匹配,使用同样的参数,运行速度不一样。我猜测,还有内在参数不一样。应该是角度匹配的步距,缩放匹配的步距不一样。
图形定位:
如下图所示,制作模板时的图像,比较特殊,是空心矩形和空心十字行。
还有就是高级参数,因为确实对这个参数理解不到位。(目的应该是提高匹配精度)
结合运行参数中,定位类型参数。
图形定位这个算法,除了模板匹配外,还会对匹配到的对象,再进行一次 矩形或十字行匹配。提高匹配精度。(特殊项目,比如mark点是 十字型,或空心矩形)
因为没有实际应用对比,这部分就不展开了。
灰度匹配:
如字面意思,不再是对轮廓特征进行匹配。而是对整个图片的灰度值进行匹配(匹配原理就是滑窗的卷积)。
一般用于图片轮廓对比度太低,或者轮廓太多太杂乱。(其实通常非常少用,该匹配速度慢,鲁棒性,更差)。
其中,制作模板,只有一个参数可调。金字塔层数。(匹配前,先下采样,缩小模板和图片,提高速度)
运行参数有一个 角度步长(因为支持旋转匹配,在匹配的角度范围,要不同角度多次匹配,步长就是决定不同的匹配角度。比如-10 到 +10 ° 范围内匹配,角度步长为1.那么就是 会在 -10,-9,-8......8,9,10。这些角度分别匹配。 如果步长为5。那么只会在 -10,-5,0, 5,10 这几个角度下进行匹配)
以上就是VM 匹配工具的介绍。
由于本贴内容比较多。第二部分,单独再开一贴来讲。(多说一句,轮廓匹配是基于轮廓梯度方向来匹配的。基本原理是linemod的原理,用向量加法优化速度,替代滑窗的卷积。)
原网址: 访问
创建于: 2024-01-10 09:48:13
目录: default
标签: 无
未标明原创文章均为采集,版权归作者所有,转载无需和我联系,请注明原出处,南摩阿彌陀佛,知识,不只知道,要得到
java windows火焰图_mob64ca12ec8020的技术博客_51CTO博客 - 在windows下不可行,不知道作者是怎样搞的 监听SpringBoot 服务启动成功事件并打印信息_监听springboot启动完毕-CSDN博客 SpringBoot中就绪探针和存活探针_management.endpoint.health.probes.enabled-CSDN博客 u2u转换板 - 嘉立创EDA开源硬件平台 Spring Boot 项目的轻量级 HTTP 客户端 retrofit 框架,快来试试它!_Java精选-CSDN博客 手把手教你打造一套最牛的知识笔记管理系统! - 知乎 - 想法有重合-理论可参考 安宇雨 闲鱼 机械键盘 客制化 开贴记录 文本 linux 使用find命令查找包含某字符串的文件_beijihukk的博客-CSDN博客_find 查找字符串 ---- mac 也适用 安宇雨 打字音 记录集合 B站 bilibili 自行搭建 开坑 真正的客制化 安宇雨 黑苹果开坑 查找工具包maven pom 引用地 工具网站 Dantelis 介绍的玩轴入坑攻略 --- 关于轴的一些说法 --- 非官方 ---- 心得而已 --- 长期开坑更新 [本人问题][新开坑位]关于自动化测试的工具与平台应用 机械键盘 开团 网站记录 -- 能做一个收集的程序就好了 不过现在没时间 -- 信息大多是在群里发的 - 你要让垃圾佬 都去一个地方看难度也是很大的 精神支柱 [超级前台]sprinbboot maven superdesk-app 记录 [信息有用] [环境准备] [基本完成] [sebp/elk] 给已创建的Docker容器增加新的端口映射 - qq_30599553的博客 - CSDN博客 [正在研究] Elasticsearch, Logstash, Kibana (ELK) Docker image documentation elasticsearch centos 安装记录 及 启动手记 正式服务器 39 elasticsearch 问题合集 不断更新 6.1.1 | 6.5.1 两个版本 博客程序 - 测试 - bug记录 等等问题 laravel的启动过程解析 - lpfuture - 博客园 OAuth2 Server PHP 用 Laravel 搭建带 OAuth2 验证的 RESTful 服务 | Laravel China 社区 - 高品质的 Laravel 和 PHP 开发者社区 利用Laravel 搭建oauth2 API接口 附 Unauthenticated 解决办法 - 煮茶的博客 - SegmentFault 思否 使用 OAuth2-Server-php 搭建 OAuth2 Server - 午时的海 - 博客园 基于PHP构建OAuth 2.0 服务端 认证平台 - Endv - 博客园 Laravel 的 Artisan 命令行工具 Laravel 的文件系统和云存储功能集成 浅谈Chromium中的设计模式--终--Observer模式 浅谈Chromium中的设计模式--二--pre/post和Delegate模式 浅谈Chromium中的设计模式--一--Chromium中模块分层和进程模型 DeepMind 4 Hacking Yourself README.md update 20211011
Laravel China 简书 知乎 博客园 CSDN博客 开源中国 Go Further Ryan是菜鸟 | LNMP技术栈笔记 云栖社区-阿里云 Netflix技术博客 Techie Delight Linkedin技术博客 Dropbox技术博客 Facebook技术博客 淘宝中间件团队 美团技术博客 360技术博客 古巷博客 - 一个专注于分享的不正常博客 软件测试知识传播 - 测试窝 有赞技术团队 阮一峰 语雀 静觅丨崔庆才的个人博客 软件测试从业者综合能力提升 - isTester IBM Java 开发 使用开放 Java 生态系统开发现代应用程序 pengdai 一个强大的博主 HTML5资源教程 | 分享HTML5开发资源和开发教程 蘑菇博客 - 专注于技术分享的博客平台 个人博客-leapMie 流星007 CSDN博客 - 舍其小伙伴 稀土掘金 Go 技术论坛 | Golang / Go 语言中国知识社区
最新评论