如何提高匹配的速度

news2024/11/28 16:49:12

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

想起刚入门机器视觉那会儿,我们写的代码,无论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区域,最差找三个区域,在今天之前,我一直全区域去找,虽然已经很快了,但重复的事情会触发新的发现!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

GaussDB技术解读系列:5分钟带您了解DRS录制回放

一、什么是DRS录制回放? DRS录制回放是将源数据库发生的真实业务流量,在目标数据库模拟执行,从而观察和检验目标数据库的功能和性能表现。录制回放主要分为录制、回放两个阶段,录制过程是从源数据库上将所需时间段内的全部SQL原语…

3、深入解析Redis Cluster集群运维与核心原理

在今天的大规模分布式系统中,Redis Cluster已经成为了许多企业选择的分布式缓存方案之一。了解Redis Cluster的运维及核心原理对于确保系统的高可用性和性能至关重要。本文将深入探讨Redis Cluster集群的运维细节和核心原理,以帮助读者更好地理解和优化R…

rabbitmq基础教程(ui,java,springamqp)

概述:安装看我上篇文章Docker安装rabbitmq-CSDN博客 任务一 创建一个队列 这样创建两个队列 在amq.fanout交换机里面发送数据 模拟发送数据 发送消息,发现一下信息: 所以得出理论,消息发送是先到交换机,然后由交换机…

软件开发架构

【 一 】软件开发架构图 【 1】ATM和选课系统 三层的开发架构 前段展示台 后端逻辑层 数据处理层 【二】软件开发架构的步骤流程 需求分析:在软件开发架构设计之前,需要对应用系统进行需求分析,明确用户需求、功能模块、业务流程等内容。…

Java可视化物联网智慧工地综合云平台源码 私有化部署

智慧工地平台围绕建筑施工人、物、事的安全管理为核心,对应研发了劳务实名制、视频监控、扬尘监测、起重机械安全监测、安全帽监测等功能一体化管理的解决方案。 智慧工地是聚焦工程施工现场,紧紧围绕人、机、料、法、环等关键要素,综合运用…

MongoDB调优

三大导致 MongoDB 性能不佳的原因 1)慢查询2)阻塞等待3)硬件资源不足1,2通常是因为模型/索引设计不佳导致的。排查思路:按1-2-3依次排查。 影响 MongoDB 性能的因素 MongoDB 性能监控工具 Free Monitoring 从版本 4.0 开始&am…

Template Engine-06-模板引擎 Handlebars 入门介绍

拓展阅读 java 表达式引擎 logstash 日志加工处理-08-表达式执行引擎 AviatorScriptMVELOGNLSpELJEXLJUELJanino QLExpress 阿里表达式引擎系统学习 什么是 Handlebars? Handlebars 是一种简单的模板语言。 它使用模板和输入对象生成 HTML 或其他文本格式。Ha…

C Primer Plus 第6版 编程练习 chapter 15

文章目录 1. 第1题1.1 题目描述1.2 编程源码1.3 结果显示 2. 第2题2.1 题目描述2.2 编程源码2.3 结果显示 3. 第3题3.1 题目描述3.2 编程源码3.3 结果显示 4. 第4题4.1 题目描述4.2 编程源码4.3 结果显示 5. 第5题5.1 题目描述5.2 编程源码5.3 结果显示 6. 第6题6.1 题目描述6.…

使用easyexcel 导出多级表头demo

先看效果&#xff1a; 1、引入maven依赖 <!--EasyExcel --> <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>3.2.1</version> </dependency> 2、实体类 package com.…

c语言 编译与链接

编译与链接 翻译环境和执行环境翻译环境1.1预编译1.2编译1.3汇编&#xff08;ASM&#xff09;2.链接 执行环境最后给大家附上一张关于本节知识内容的图供大家更好理解~ ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/522d488885ba44d99aa504d6b21c88d5.png) &…

yolov8+deepsort的代码实现

按照官方描述&#xff0c;YOLOv8 是一个 SOTA 模型&#xff0c;它建立在以前 YOLO 版本的成功基础上&#xff0c;并引入了新的功能和改进&#xff0c;以进一步提升性能和灵活性。具体创新包括一个新的骨干网络、一个新的 Ancher-Free 检测头和一个新的损失函数&#xff0c;可以…

Python新手常见问题——列表中删不掉的0

1.测试代码 运行代码 nums1 [1,2,3,0,0,0] print(type(nums1))for i in nums1:if i 0:nums1.remove(i) print(nums1)效果如下 2.疑问&#xff1a; 上面代码&#xff0c;为什么把nums1里面的0移除不干净 3.原因&#xff1a; 在 Python 中&#xff0c;不建议在循环中直接…

蒙特卡洛概率抽样简介

蒙特卡罗方法是一类对概率分布进行随机抽样的技术。 在许多问题领域中&#xff0c;描述或估计概率分布相对简单&#xff0c;但计算所需的数量却很棘手。这可能是由于多种原因造成的&#xff0c;例如domain的随机性质或随机变量的指数级数量增长。 相反&#xff0c;可以通过使…

学校智慧能源消耗管理系统,破解学校节能降耗难题

随着碳达峰、碳中和工作的主要任务&#xff0c;学校作为能源集中地&#xff0c;且能源情况较为复杂的建筑&#xff0c;有效降低能源消耗、减少能源使用成本&#xff0c;已经成为学校一项紧迫的任务。 学校能耗痛点有哪些&#xff1f; 1、规模大 学校是集教学、科研、生活于一…

zabbix客户端配置及自定义监控

部署zabbix客户机 1.服务端和客户端都配置时间同步 yum install -y ntpdate ntpdate -u ntp.aliyun.com 2.服务端和客户端都设置 hosts 解析 cat > /etc/hosts << EOF 172.16.23.16 localhost 172.16.23.17 zbx-server EOF 3.被监控端 //设置 zabbix 的下载源&…

leedcode刷题笔记day1

题目大意&#xff1a; 暴力解法 两个for循环&#xff08;也是我一看到题目想到的方法&#xff09; 枚举在数组中所有的不同的两个下标的组合逐个检查它们所对应的数的和是否等于 target 复杂度分析 时间复杂度:O(n2)&#xff0c;这里 n 为数组的长度 空间复杂度:O(1)&#x…

精彩推荐 | 【深入浅出Docker原理及实战】「原理实战体系」零基础+全方位带你学习探索Docker容器开发实战指南(实战技术总结)

Dockerfile实战总结 前提介绍实战总结方案创建容器时传入环境变量调整宿主机和容器的时间差异解决办法 指定容器的rootfs的大小快速管理容器和镜像快速删除容器的原理--format格式化输出输出所有容器的name输出所有容器名包含test的容器查看退出状态的容器删除所有容器删除/启动…

transbigdata笔记:其他方法

1 出租车相关 1.1 taxigps_to_od 提取出租车OD信息 transbigdata.taxigps_to_od(data, col[VehicleNum, Stime, Lng, Lat, OpenStatus]) 输入出租车GPS数据&#xff0c;提取OD信息 data出租车GPS数据col[VehicleNum, Time, Lng, Lat, OpenStatus]五列 比如GPS数据长这样&am…

docker screen 常用基础命令

1.docker基础命令 1.1开启docker systemctl start docker #开启docker service docker restart #重启docker systemctl stop docker #关闭docker 1.2查看命令 docker images #查看docker镜像docker ps #查看正在运行的镜像或者容器docker ps -a #查看所有容器1.3运…

信驰达科技参与《汽车玻璃集成UWB数字钥匙发展研究白皮书》编制工作

为进一步探索汽车数字钥匙技术路线及开发思路&#xff0c;中国智能网联汽车产业创新联盟&#xff08;CAICV&#xff09;、福耀玻璃工业集团股份有限公司联合发起了《汽车玻璃集成UWB数字钥匙发展研究白皮书》研究工作。 2023年12月20日&#xff0c;由中国智能网联汽车产业创新…