openpnp - 底部相机视觉识别CvPipeLine的参数bug修正

news2024/10/24 8:42:47

文章目录

    • openpnp - 底部相机视觉识别的CvPipeLine的参数bug
    • 概述
    • 笔记
    • openpnp的视觉识别参数的错误原因
    • 备注
    • 补充 - 如果要直接改默认的底部视觉要注意
    • END

openpnp - 底部相机视觉识别的CvPipeLine的参数bug

概述

底部相机抓起一个SOD323的元件,进行视觉识别。
识别出的矩形错了,是一个很长的长方形,长方形的短边和器件差不多宽,但是长边比器件长10倍。导致识别出错。
因为这时,无论怎么填写封装的长和宽,都无法正确识别。
当识别出错时,用CvPipeLine的Edit功能,找到了问题。
原来是openpnp给的默认识别参数整错了,改了一下OK.

笔记

因为大部分元件识别都是好的,且用的都是默认的底部相机视觉。
所以,有个别元件识别错误后,要针对这个元件进行视觉识别的参数修正,而不能去动默认的底部视觉参数。
在这里插入图片描述
FilterContours命令识别的范围多了,导致识别了吸嘴圆形帽子上的一个点,这要继续过滤。

在FilterContours命令后面,默认就有个MaskCircle命令,默认的diameter是0,即不过滤。
这就导致后续命令用的图像在元件很远的地方有个点(FilterContours命令带过来的)
将MaskCircle的参数diameter改为300,基本就圈住了元件附近,再远的图像就用这个圈过滤掉了。

在这里插入图片描述
MaskCircle后面默认的后续命令是DrawContours
在这里插入图片描述
默认用的输入图像是filterContours的结果,这就不对了,因为针对这个元件,filterContours识别的多了(除了元件,还有离元件很远的一个点)

将DrawContours的参数contourStageName改为11(就是MaskCircle命令实例名称为11的结果), 这回就OK了。

在后续的命令处理后,红框就只框在元件的引脚外框上。

openpnp的视觉识别参数的错误原因

在FilterContours和DrawContours命令之间,加了一个MaskCircle命令(但是MaskCircle默认没做过滤)。
估计官方也考虑到给的视觉识别参数无法适应所有的吸嘴和元件,所以给用户留了一个改正的节点。
但是DrawContours的输入没有用MaskCircle命令的处理结果,这就是bug了。

备注

对openpnp的视觉处理参数也不熟, 主要是官方也没有文档专门讲这个。
以前都用默认的, 如果真出现问题,无奈,还真不知道怎么弄。

这次发现识别的有问题,在设备开着时,抓一个这种元件进行底部相机视觉识别,如果识别错误或者识别的不稳定,这时就可以在线编辑调试视觉识别参数。

还好,经过简单的修改,能正确识别了。

虽然不太懂官方为啥给这些命令进行图像识别的处理,但是大概齐知道啥意思。
图像识别处理的大概流程如下:

  • 从摄像头捕获图像
  • 进行颜色转换
  • 用蒙版屏蔽不需要的区域(e.g. 吸嘴/元件以外的区域)
  • 转成黑白图像
  • 画出最小矩形
  • 重新载入摄像头的图像
  • 将矩形换成红色显示

补充 - 如果要直接改默认的底部视觉要注意

元件的默认底部视觉都是全局的默认底部视觉。
最好是每个封装单独给一个配置,来改视觉。
开始没注意,直接改的底部视觉。
因为加入了MaskCircle命令名字为11,参数diameter值改为了300,其他用默认底部视觉的元件出现了奇怪问题。
e.g. LQFP32元件对齐后,居然是45度。导致贴到板子上角度也是错的。
如果要改全局视觉,MaskCircle命令名字为11,参数diameter值应该改为-1,代表不过滤任何图像,即输入图像直接转成输出图像。
在这里插入图片描述

END

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

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

相关文章

实验:使用Oxygen发布大型手册到Word格式

此前,我曾发表过一篇文章《结构化文档发布的故事和性能调优》,文中讨论了在将大型DITA手册转换为PDF格式时可能遇到的性能挑战及相应的优化策略。 近日,有朋友咨询,若将同样的大型手册输出为MS Word格式,是否也会面临…

【华为HCIP实战课程十八】OSPF的外部路由类型,网络工程师

一、外部路由类型: 上节讲的外部路由类型,无关乎COST大小,OSPF外部路由类型1优先于外部路由类型2 二、转发地址实验拓扑 我们再SW3/R5/R6三台设备运行RIP,SW3即运行RIP又运行OSPF SW3配置rip [SW3-rip-1]ver 2 [SW3-rip-1]network 10.0.0.0 AR5去掉ospf配置和AR6配置rip…

甘特图基线-用起来了吗~

管理项目无疑是一项充满挑战的任务!每个项目都伴随着严格的截止日期,因此,确保项目按时完成,并在推进过程中一一达成所有关键的里程碑,显得尤为重要。 为了更精准地掌握项目进展,利用甘特图的基线功能来捕捉…

企业数字化转型的最佳实践指南:微服务架构与物联网的深度融合

在瞬息万变的数字化时代,企业正面临着如何快速适应市场变化、优化业务流程以及利用技术创新来保持竞争力的挑战。数字化转型不仅是技术升级,更是企业从根本上重新定义运营模式和商业价值创造的过程。在这一过程中,微服务架构(MSA&…

Linux - 动静态库

文章目录 一、静态库1、定义2、文件扩展名3、生成静态库4、使用静态库5、静态库的优缺点 二、动态库1、定义2、文件扩展名3、生成动态库4、使用动态库5、动态库的优缺点6、简单动态库加载 三、补充 一、静态库 1、定义 静态库是在编译时链接到最终的可执行文件中的库。这意味着…

ubuntu 22.04网线连接无ip、网络设置无有线网界面(netplan修复)

目前遇到过树莓派和其他设备安装 ubuntu22.04, 使用有线网络一段时间(可能有其他软件安装导致)造成有线网络未启动无ip分配的问题。 1、动态分配 通过命令行启动dhcpclient实现 网络eth0存在异常,网口灯电源和信号灯均点亮&am…

基于Fourier的两个人形机器人:从改进的3D扩散策略之iDP3到从单个RGB视频中模仿学习的OKAMI

前言 今天10.23日,明天1024则将作为长沙程序员代表,在CSDN和长沙相关部门举办的1024程序员节开幕式上发言,欢迎广大开发者来长工作 生活 考察 创业,​包括我司七月也一直在招聘大模型与机器人开发人员 后天,则将和相…

基于 Datawhale 开源的量化投资学习指南(7):量化择时策略

1. 引言 在量化投资中,择时策略是实现超额收益的关键之一。量化择时策略不同于传统的主观判断,它通过数学模型、技术分析以及大数据等手段,对市场进行客观分析,从而捕捉买卖时机。合理运用择时策略,能够帮助投资者在市…

vuex使用modules模块化

1、main.js引入 //引入vuex import store from ./store new Vue({el: #app,router,store,components: { App },template: <App/>,data:function(){return{wbWinList: [] // 定义的变量&#xff0c;全局参数}}, })2、index.js import Vue from vue; import Vuex from …

【LLM之Agent】《Tool Learning with Large Language Models: A Survey》论文阅读笔记

概述 背景信息 近年来&#xff0c;基于大型语言模型&#xff08;LLMs&#xff09;的工具学习成为增强LLMs应对复杂任务能力的有力范式。尽管这一领域快速发展&#xff0c;现有文献的碎片化以及缺乏系统组织&#xff0c;给新入门者带来了阻碍。因此&#xff0c;本论文旨在对现…

鸿蒙启航 | 搭建 HarmonyOS 开发环境来个 Hello World

2024年10月22日&#xff0c;华为公司正式发布全新一代操作系统鸿蒙Next&#xff08;HarmonyOS NEXT&#xff09;&#xff0c;此次发布标志着华为在操作系统领域的重大进展&#xff0c;成为继苹果iOS和谷歌安卓之后的全球第三大移动操作系统。以下是鸿蒙Next的一些关键特点&…

无人机加速度计算法!

一、加速度计的工作原理 内部构造&#xff1a;加速度计内部通常包含一个微小的质量块&#xff0c;该质量块通过弹簧或其他弹性元件与固定基准相连。 工作原理&#xff1a;当无人机受到加速度作用时&#xff0c;质量块会相对于固定基准产生位移。这个位移量可以通过相应的传感…

在示波器上观察到李萨如图形应如何调节

在示波器上观察李萨如图形通常用于分析两个信号之间的频率和相位关系。若要清晰地显示和调节李萨如图形&#xff0c;可以按照以下步骤进行&#xff1a; 1. 连接信号 信号源&#xff1a;将两个待测信号分别接入示波器的CH1和CH2通道。 2. 设置示波器模式为X-Y模式 在示波器菜…

【状态机DP】【记忆化搜索1:1翻译递归空间优化】力扣2771. 构造最长非递减子数组

给你两个下标从 0 开始的整数数组 nums1 和 nums2 &#xff0c;长度均为 n 。 让我们定义另一个下标从 0 开始、长度为 n 的整数数组&#xff0c;nums3 。对于范围 [0, n - 1] 的每个下标 i &#xff0c;你可以将 nums1[i] 或 nums2[i] 的值赋给 nums3[i] 。 你的任务是使用最…

LabVIEW提高开发效率技巧----离线调试

离线调试是LabVIEW开发中一项重要的技巧&#xff0c;通过使用Simulate Signal Express VI生成虚拟数据&#xff0c;开发者能够有效减少对实际硬件的依赖&#xff0c;加速开发过程。这种方法不仅可以提高开发效率&#xff0c;还能降低成本&#xff0c;增强系统的灵活性。 ​ 离…

网安加·百家讲坛 | 徐一丁:金融机构网络安全合规浅析

作者简介&#xff1a;徐一丁&#xff0c;北京小西牛等保软件有限公司解决方案部总监&#xff0c;网络安全高级顾问。2000年开始从事网络安全工作&#xff0c;主要领域为网络安全法规标准研究、金融行业安全咨询与解决方案设计、信息科技风险管理评估等。对国家网络安全法规标准…

深度学习 之 模型部署 使用Flask和PyTorch构建图像分类Web服务

引言 随着深度学习的发展&#xff0c;图像分类已成为一项基础的技术&#xff0c;被广泛应用于各种场景之中。本文将介绍如何使用Flask框架和PyTorch库来构建一个简单的图像分类Web服务。通过这个服务&#xff0c;用户可以通过HTTP POST请求上传花朵图片&#xff0c;然后由后端…

【Qt】QTableView添加下拉框过滤条件

实现通过带复选框的下拉框来为表格添加过滤条件 带复选框的下拉框 .h文件 #pragma once #include <QCheckBox> #include <QComboBox> #include <QEvent> #include <QLineEdit> #include <QListWidget>class TableComboBox : public QComboBox …

前端构建工具vite的优势

1. 极速冷启动 Vite 使用原生 ES 模块 (ESM) 在开发环境下进行工作。相比于传统构建工具需要打包所有的文件&#xff0c;Vite 只在浏览器请求模块时动态加载所需的文件。无打包冷启动&#xff1a;无需预先打包&#xff0c;项目启动非常快&#xff0c;尤其对于大型项目效果更明…

顺序表(一)(数据结构)

一. 线性表 线性表&#xff08;linear list&#xff09;是n个具有相同特性的数据元素的有限序列 。 线性表是一种在实际中广泛使用的数据结构&#xff0c;常见的线性表&#xff1a;顺序表、链表、栈、队列、字符串... 线性表在逻辑上是线性结构&#xff0c;是人为想象出来的数…