如何提高匹配的速度

基于形状的匹配,改进了无数次,其实已经很满意了。

想起刚入门机器视觉那会儿,我们写的代码,无论c++还是c#的,都是调用人家的函数,从来没想过,自己有一天把这些函数代替了。

那时候调用evision的抓线工具gaugeline,事先在工作界面,手动调好抓线工具的参数,然后写程序,要能加载抓线工具这些参数,还要能保存抓线工具参数。

这样的事情不知搞了几多会,用过抓线工具的人都知道,这个工具先放在能抓到线的地方,并设置抓线工具一定的弹性,也就是说,当图像中这个线条在小范围内浮动时,我们的抓线工具加载上来不用动,仍然能找到直线。

这要感谢plc电控的朋友们,他们上料,一般不会偏差0.2mm,所以我们的抓线工具能适应这样的弹性范围变化,跑自动的时候,记得很清楚,当我们抓不到线的时候,总是找plc电控麻烦,说他们上料偏差太大了,他们却说我们的抓线不行,吵过不知多少回,有时改一下抓线工具的弹性,重新保存加载一下抓线工具,有时plc改进上料精度,问题都能解决,大家把项目完成好就行。

说这个有什么用呢?

其实这里边隐藏了匹配一种思想,即匹配时,要有弹性,另外,保存和加载参数的好处也分外明显,自动化需要这个,实在太重要。

我们匹配中要借鉴后面这个思路,也就是说,我们要找的事物特征,很大的概率会在某一区域,这是由自动化特殊的原因(电控和视觉)保证的,我们机器视觉不就是自动化的产物吗?我们可以记住这个区域,下一次找的时候,保持一定的弹性,就能很快找到想要的特征。

匹配时,要再一步提高速度的思路是这样的:

学习时,记住学习的位置,在匹配时用;即学习时保存,匹配时加载参数,应用时,完全是自动化的。

如上图,学习时,我们学习特征“X”的roi矩形如图,然后以roi矩形的left-20,top-20为选定位置,

把整个区域分成三块I,II,III

好,我们匹配时,优先找I区,

然后找II区,最后找III区,这样速度会快不少。

为什么可以这样做,因为你可知道,我们一般不会把重要的特征放到边缘区,原因是,我们怕失去精度,因为,图像边缘区,是很容易畸变的,我们都是从这里趟过去的。

另一个原因就是,我们一开始就讲了,你学习特征的区域,在plc电控保证下,不会有多少变化

所以,搞视觉的人,一般都会把特征往中间放,即使你不知道是为什么,也没关系!

其实从高斯(正态)分布来看,中间出现的概率极大,这个事情和我们的眼睛也是契合的,也就是说,直觉就是这样,也就是说,注意力在中间,这叫做focus。

今天编程试了一下,效果不错,这也算是过往的贡献吧!

我们这种方式最好是只找I区域,最差找三个区域,在今天之前,我一直全区域去找,虽然已经很快了,但重复的事情会触发新的发现!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ES 之索引和文档

本文主要介绍ES中的数据组成结构单元。 一、文档(Document) 1、概念 ES的数据存储单元是面向文档的,文档是所有数据存储,搜索的最小单元。 你可以把ES中的文档对应成mysql中的一条条数据记录。到时候你存进ES的数据就是一个个文档。 文档存入ES是序列…

读书笔记:单载波频域均衡技术 SC-FDE

原文:https://mp.weixin.qq.com/s?__bizMzU5NzgxNDgwMg&mid2247486891&idx1&sn51e0dc3d28bcf356126dc8ae922f5533&chksmfe4cf6d6c93b7fc0237d4e2107b5671a401db8ed7a8527159ef18333d2b1f48c56b381f846ae&mpshare1&scene1&srcid0117h6K…

Windows Redis图形客户端 Another Redis Desktop Manager的简单使用教程

1、 Redis官方文档 2、 Redis国内中文版文档 3、 Redis客户端 Another Redis Desktop Manager 4、连接redis服务 我直接使用的是公司搭建好的服务。连接服务需要以下几个信息: HostPortPasswordSSL 5、New Key 5.1 如何创建一个Key? 点击New k…

《SPSS统计学基础与实证研究应用精解》视频讲解:SPSS中用到的概率分布

《SPSS统计学基础与实证研究应用精解》2.2 视频讲解 视频为《SPSS统计学基础与实证研究应用精解》张甜 杨维忠著 清华大学出版社 一书的随书赠送视频讲解2.2节内容。本书已正式出版上市,当当、京东、淘宝等平台热销中,搜索书名即可。本书旨在手把手教会使…

Vue3的使用

一 Vue3的变化 1.性能的提升 打包大小减少41% 初次渲染快55%, 更新渲染快133% 内存减少54% 2.源码的升级 使用Proxy代替defineProperty实现响应式 重写虚拟DOM的实现和Tree-Shaking 3.拥抱TypeScript Vue3可以更好的支持TypeScript 4.新的特性 Composition API&#…

2024年华数杯国际赛B题:光伏发电功率 思路模型代码解析

2024年华数杯国际赛B题:光伏发电功率(Photovoltaic Power) 一、问题描述 中国的电力构成包括传统能源发电(如煤、油和天然气)、可再生能源发电(如水电、风能、太阳能和核能)以及其他形式的电力…

Redis 服务器 命令

目录 1.Redis Client Pause 命令 - 在指定时间内终止运行来自客户端的命令简介语法可用版本: > 2.9.50返回值: 返回 OK。如果 timeout 参数是非法的返回错误。 示例 2.Redis Debug Object 命令 - 获取 key 的调试信息简介语法可用版本: > 1.0.0返回值: 当 key 存在时&…

企业微信无法正常启动 报错0xc0000142

报错内容如下,每次打开工作电脑时候企业微信一般会正常启动,但是有时候经常会出现下面这种错误,重启也解决不了,每次都得重装企业微信,今天整理了一下网上的方法,这个原因大概率是亿赛通。 解决办法&#x…

刷题总结1.17 下午

第五题的平面图,偶图不理解 第三题为什么使用克鲁斯卡尔算法? 旅行商问题(Traveling Salesman Problem,TSP)是一个著名的组合优化问题,描述的是一个旅行商要在给定的一系列城市之间找到最短的路径&#xff…

jmeter根据公钥base64对明文密码进行rsa加密

在登录时遇到加密是比较常见的场景,也为安全一般是从服务器动态获取公钥,再根据公钥对密码明文进行rsa加密,做为密码再进行登录使用。所以需要对输入的密码进行处理,即在登录接口中添加前置JSR223进行处理,如下图所示&…

08- OpenCV:形态学操作(膨胀与腐蚀 、提取水平与垂直线)

目录 前言 一、膨胀(Dilation)与 腐蚀(Erosion) 二、形态学操作 1、开操作(Opening) 2、闭操作(Closing) 3、形态学梯度(Morphological Gradient) 4、…

【Python数据可视化】matplotlib之设置子图:绘制子图、子图共享x轴坐标、调整子图间距、设置图片大小

文章传送门 Python 数据可视化matplotlib之绘制常用图形:折线图、柱状图(条形图)、饼图和直方图matplotlib之设置坐标:添加坐标轴名字、设置坐标范围、设置主次刻度、坐标轴文字旋转并标出坐标值matplotlib之增加图形内容&#x…

Resemble Enhance音频失真损坏修复AI工具:一个开源语音超分辨率AI模型

Resemble Enhance是一款强大的音频处理工具,可以将嘈杂的录音转化为清晰而有力的声音,为用户提供更优质的听觉体验。这个工具不仅可以有效去除录音中的各种噪声和杂音,还能够恢复音频失真并扩展音频带宽,使原本的声音听起来更加清…

RT-Thread Studio学习(十三)DAC

RT-Thread Studio学习(十三)DAC 一、简介二、新建RT-Thread项目并使用外部时钟三、启用DAC四、测试五、总结 一、简介 本文将基于STM32F407VET芯片介绍如何在RT-Thread Studio开发环境下使用DAC设备。硬件及开发环境如下: OS WIN10STM32F40…

springcloud Eureka服务注册与发现

文章目录 代码地址Eureka基础知识什么是服务治理什么是服务注册与发现 单机版eurekaServerIDEA生成eurekaServer端服务注册中心类似物业公司EurekaClient端cloud-provider-payment8001修改EurekaClient端cloud-consumer-order80 集群Eureka构建步骤新建cloud-eureka-server7002…

告别混乱:文件重命名,删除下划线,让文件管理更高效

在数字时代,经常要处理大量的文件,无论是工作、学习还是生活。文件名中经常有下划线、特殊字符和数字,使得文件管理变得混乱不堪。下面来看云炫文件管理器如何通过文件重命名删除下划线,让文件管理更高效。 文件名下划线被删除前后…

服务器如何重置密码?

服务器重置密码 服务器存在多种操作系统,本篇文章仅以RedHat、银河麒麟、Win Server系统作为举例! 如果想了解更多服务器操作系统相关知识,请参看历史文章《服务器操作系统介绍》 银河麒麟破解密码 银河麒麟为国产Linux系统,UOS为…

【iOS】UIColor、CGColor、CIColor的区别和联系

编者在实验室小组的指导下,仿写了许多App,其中UI的颜色模仿也是令人头痛的点。设计颜色一般使用UIColor类方法直接获取颜色: 有时会使用 (UIColor *)colorWithRed:(CGFloat)red green:(CGFloat)green blue:(CGFloat)blue alpha:(CGFloat)alph…

十大排序算法模板

☆* o(≧▽≦)o *☆嗨~我是小奥🍹 📄📄📄个人博客:小奥的博客 📄📄📄CSDN:个人CSDN 📙📙📙Github:传送门 📅&a…

近4w字吐血整理!只要你认真看完【C++编程核心知识】分分钟吊打面试官(包含:内存、函数、引用、类与对象、文件操作)

🌈个人主页:godspeed_lucip 🔥 系列专栏:C从基础到进阶 🏆🏆关注博主,随时获取更多关于C的优质内容!🏆🏆 C核心编程🌏1 内存分区模型&#x1f384…