视觉硬件选型和算法选择(CNN)

基础知识

  • 什么是机械视觉:

机械视觉是一种利用机器代替人眼来进行测量和判断的技术,通过光学系统、图像传感器等设备获取图像,并运用图像处理和分析算法来提取信息,以实现对目标物体的识别、检测、测量和定位等功能。

  • 机械视觉与人类视觉有什么区别?:

机械视觉具有更高的精度和稳定性,能够在恶劣环境下工作,并且可以进行高速、大量的数据处理。但相比之下,人类视觉在灵活性、对复杂场景的理解和感知能力等方面具有优势。


系统组成

  • 机械视觉系统由哪些部分构成?

一般由照明系统、光学成像系统、图像传感器、图像处理单元、执行机构等组成。照明系统提供合适的光源,光学成像系统将目标物体成像在图像传感器上,图像传感器将光信号转换为电信号,图像处理单元对图像进行分析和处理,执行机构根据处理结果进行相应的动作。

  • 不同类型的图像传感器(如 CCD 和 CMOS)有什么特点和区别?

CCD(电荷耦合器件)具有较高的灵敏度和图像质量,但成本较高,功耗较大;CMOS(互补金属氧化物半导体)成本较低、功耗小、集成度高,但在灵敏度和图像质量上相对略逊一筹。


应用场景

  • 机械视觉在工业生产中有哪些具体应用?

如在汽车制造中的零部件检测、装配质量控制,电子制造中的芯片检测、电路板焊接检测,食品饮料行业的包装检测、异物检测等。

  • 机械视觉在农业领域有哪些应用

例如农作物生长监测、病虫害检测、果实采摘、种子筛选等。

技术挑战

  • 如何提高机械视觉系统的精度和稳定性?

这涉及到多个方面,如选择高精度的光学元件、优化照明方案、采用先进的图像处理算法、进行系统的校准和标定等。

  • 在复杂环境下(如强光、弱光、噪声干扰等)如何保证机械视觉系统的性能?

需要采用特殊的照明技术、图像增强算法、滤波算法等来克服环境因素的影响,提高系统的抗干扰能力。

发展趋势

  • 机械视觉技术未来的发展方向是什么

包括更高分辨率和帧率的图像传感器、更强大的深度学习算法、智能化的视觉系统、多模态融合的视觉技术等。

  • 人工智能技术如何推动机械视觉的发展?

人工智能中的深度学习算法可以自动学习图像中的特征,实现更准确的目标识别和分类,提高机械视觉系统的智能化水平和性能。


视觉设备

常用的相机

海康威视 , 大华 ,巴斯勒 ,大华,华周,康耐视,映美镜,大恒,灰点

常用镜头

FA镜头 , 海康 , OPT , vs , Computar

远心镜头: 视清 , 灿锐

常用光源

OPT、嘉励

扫码枪

基恩士、得力捷、Cognex、

补充:如果我们在做扫码的项目,首先我们要考虑偏振光

偏振片 : 光线在非金属表面的反射是偏振光,借助于偏振片可以有效的消除物体的表面反光

机械视觉的概述


机械视觉的工作原理

相机采集图像,软件处理分析,最后的出结论

机械视觉的应用

引导.检测,识别,测量

影响曝光的因素

感光度,快门,光圈

视觉软件

Visionpro Visionmaster Halcon Opencv

FA镜头参数

  • 光圈: 代表镜头的入光量 f/1.8 , f/2.8 , f/4 , f/8 , f/16 数值最小,光圈越大, 允许更多的光线通过

  • 焦距: 从镜头的镜面光学中心到相机芯片的距离, 8mm 12mm 25mm 焦距越大,相同拍照距离下视野范围越小,畸变也越小

  • 畸变: 因为镜头凸镜的原理, 在图像的中心和边缘的放大率不一致 ,导致排除的图片扭曲或者变形

  • 靶面尺寸: 镜头靶面的尺寸要大于等于相机靶面尺寸, 否则会有暗角

计算公式

注意: 1英寸=16mm; 物距==工作距离 视野就可以说是物体长或宽(产品尺寸) 芯片尺寸=CCD靶面型号的尺寸

  1. 视觉精度 = 公差大小 / 10(5或3)

  2. 单边分辨率= 视野的大小 / 视觉精度(像素) / 2(亚像素)

  3. 选择像素 = 单分辨率(长) * 单分辨率(宽)

  4. 焦距 (f) = 工作距离 * 芯片尺寸 / 视野大小

  5. 芯片尺寸 = 像元尺寸(长或宽) * 单边分辨率(长或宽) /1000 (转mm)

  6. 工作距离(WD) = 焦距(f) * 芯片尺寸 / 视野大小

  7. 工作距离(WD) = 焦距(f) / 倍率

  8. 视野大小(FOV) = 工作距离(WD) * 芯片尺寸 / 焦距(f)

  9. 系统放大倍率 = 芯片短边 / 视野短边

海康机器人-机器视觉产品页

相机选型示例

检测一个25mm*15mm的零件,需要达到0.08mm的精度,动态检测,需要选用哪个像素相机比较合适.相机选型
视野: 35mm * 25mm 视觉精度 =0.08/3=0.026mm视野大小是25*15,所以我们要给大值
分辨率 = 35/0.026 =1346 25/0.026=961这里是大约取值
所以我们要选,大于1346*961 的分辨率的相机常见的全局相机(动态)有: CA013-A0GM(12801024) CS050-10GM(24482048) CH120-10GM(4096*3000)
产品运动速度为200mm/s,视觉精度为0.015mm,视野大小 30mm*20mm, 6pc/s,相机该如何选择
相机分辨率=(30/0.015)*(20/0.015)=266.6万像素
每秒6pc产品 ,相机帧率要大于6帧 曝光时间 T < 0.015/200 =75us
可以选择 320万(2048*1536)全局相机

镜头选型

相机MV-CS050-60GM 视野100X80mm 物距不低于200mm 如何选择镜头?
视野= 100 80mm 工作距离=物距>=200mm 相机是500w(2448 2048)像素黑白相机 最大帧率是23fp/s 像元尺寸 3.45um * 3.45um
芯片尺寸= 3.45*2448/1000=8.4mm(大约) 焦距(f)=220✖8.4/100=18.48mm
所以我们要选择焦距大于 18.48mm的镜头
检测区域为110m*27mm 所需的细节尺寸为0.5mm 工作距离 400mm
视野(FOV) : 150mm*60mm 像素精度=0.5/10=0.05mm/pixel
分辨率= (150/0.05)*(60/0.05)=3000✖1200 要选择>360w像素相机 选用 MV-CS060-10GM-PRO 像元尺寸是2.4um 分辨率=3072✖2048
芯片尺寸=2.4*3072/1000=7.3mm 焦距(f)=400✖7.3/150=19mm 选择大于19mm的焦距镜头
已知条件: 工业相机芯片为2/3,c接口 ,5百万像素 视野是100*100mm 工作距离是500mm
像元尺寸=3.45um 芯片尺寸=3.45*2500/1000=8.6mm
焦距= 500mm*8.6mm/100=43mm
镜头放大倍率= 8.6mm/100=0.086

项目前期准备


当我们收到客户需要我们去做视觉定位项目,以下是我们的要求

1.明确项目需求

  • 定位类型: 首先我们要确定是二维定位(仅确定平面内的位置和角度) 还是三维定位(确定物体在空间中的位置和姿态).例如:在工业生产线上,通常只用二维定位来确定物料的放置位置; 而在机器人抓取不规则物体的时候,可能就需要三维定位
  • 精度要求: 明确所需的定位精度, 如毫米 ,微米级等. 不同的应用场景对精度要求差异很大; 像苹果手机零件之类的,有些制造可能要求微米级的精度, 但是有的相对比较大的分拣,可能只需要毫米级精度
  •  速度要求: 了解系统需要达到的处理速度, 例如每秒钟需要完成多少次定位. 高速生产线对视觉定位系统的处理速度要求较高
  • 工作环境: 我们需要到现场去了解项目的应用场景,需要去考虑光照条件, 温度, 湿度, 噪音 等环境因素. 例如, 在户外强光环境下 , 需要选择抗干扰的相机和合适的光源; 在高温环境中确保硬件设备能正常工作; 在噪音大的车间, 确保相机配备坚固和光源是否被干扰;

 2.选择硬件设备

  • 相机: 根据项目需求来选择相机类型, 如: 普通工业相机 ,高速相机 ,3D相机等; 根据定位精度和速度要求来选择相机的分辨率和帧率. 对于微小的物体进行高精度定位, 需要采用高分辨率的工业相机;根据环境,我们需要考虑是否需要对相机采用一些保护措施;如:使用防护外壳, 安装减震装置或选择抗噪传感器; 若是获取物体深度信息以实现更精准定位, 3D相机可能更合适; 对于高速生产线, 帧率应该选择在50fps以上

  • 镜头: 根据工作距离和视野范围选择合适的镜头. 不同的镜头有不同的焦距和视角 ,需要根据实际情况去选择. 例如: 在大视野检测中, 可选择广角镜头; 在近距离精度检测中, 可选择长焦镜头;

  • 光源: 需要根据物体的材质和表面特性选择光源类型, 还要考虑现场的环境因素是否需要采用抗干扰光源. 如:环形光和偏振光 适用于表面有反光的物体 ,可以减少反光干扰, 背光源 适用于检测物体的轮廓. 特定荧光物质可选择紫外光源.

视觉系统开发

1.图像采集

  • 手动采集: 使用视觉软件中的图像采集工具, 连接并配置好相机, 设置采集参数, 如曝光时间 , 增益等 以获取清晰的图像.
  • 自动采集: 通过编写C#或 VB.NET代码实现自动采集功能

2.图像预处理

  • 滤波处理: 运用高通滤波 ,高斯采样器等算法. 均值滤波可以平滑图像,减少噪声, 中值滤波对椒盐噪声有较好的去除效果, 高斯滤波能够有效抑制高斯噪音,平滑图像 (高通滤波包含 高斯滤波 均值滤波 中值滤波)

  • 灰度化处理: 将彩色图像转换成灰度图像, 可简化图像处理过程

  • 二值化处理: 使用阈值分割工具将灰度图像转换成二值图像. 可以选择固定阈值或自适应阈值方法

  • 图像增强: 通过直方图均衡化, 对比度调整等方法增强图像的质量

3.特征提取

  • 边缘检测: 根据物体的特点, 选择合适的算法. 例如, 使用边缘检测算法提取物体的边缘特征,选用 Sobel算子 ,Canny算子等. 设置合适的参数, 如边缘强度阈值, 以提取清晰的边缘特征. 使用自动边缘阈值 ,可以适当滤除一定的边缘干扰

  • 形状特征提取: 对于圆形, 矩形等规则形状的物体, 使用形状匹配工具提取其特征参数, 对于纹理特征提取, 可采用灰度共生矩阵等方法, 分析图像中纹理的方向, 粗细等特征, 通过形态学调整对图像执行灰度形态, 增强或减少图像特征.

4.算法选择与应用

  • 基于模板匹配

    • 创建模板: 选择一副包含物体的图像, 手动或者自动选择目标区域, 创建模板

    • 匹配设置: 设置匹配参数, 匹配类型(基于灰度或基于形状) , 匹配阈值, 目标物体的位置和角度

  • 基于特征点匹配

    • 特征提取: 使用如 SIFT(尺度不变特征变换) , SURF(加速稳健特征), ORB(加速的具有旋转不变性的BRIEF特征)等算法提取图像中的特征点

    • 特征匹配: 将提取的特征点与预先存储的目标特征点进行匹配, 通过匹配的特征点计算物体的位置和姿态.

  • 模式匹配算法

    • Patmax: 精确度最高

    • PatQuick: 算法速度最快

    • PatFlex: 比较适合于畸变的情况

  • 基于深度学习的定位

模板选择: 选择合适的深度学习模型, 如基于卷积神经网络(CNN)的目标检测模型, 如 YOLO(You Only Look Once), Faster R-CNN等 ,或专门用于定位的网络结构.

5.硬件搭建与调试

  • -硬件安装: 按照设计方案, 将相机, 镜头 ,光源等硬件设备安装在合适的位置上, 并进行机械固定. 确保相机的安装位置稳定, 镜头与检测对象之间的距离和角度符合设计要求, 光源的安装==角度和亮度==能够满足检测要求
  • 硬件连接:将相机通过对应的接口(如 GigE, USB3.0等) 连接到工业计算机上, 将光源的亮度, 颜色 ,角度等参数, 使检测对象在图像中具有良好的对比度和清晰度
  • 硬件参数调试: 调整相机的曝光时间, 增益, 白平衡等参数, 以获取清晰, 稳定的图像. 调整光源的亮度, 颜色, 角度等参数, 使检测对象在图像中有良好的对比度和清晰度
  • 硬件优化:如果发现硬件设备存在性能瓶颈, 如相机采集速度慢, 光源亮度不足等问题 ,及时更换或升级硬件设备

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Qt元对象系统

目录 1.元对象系统概述 2 宏QOBJECT slots emit 2.1 QOBJECT 2.2 信号槽相关宏 3 信号和槽 3.1 信号和槽的链接使用 3.2 信号槽触发流程 3.3 信号参数自定义 3.4 槽函数中获取发射信号的对象&#xff08;widget&#xff09; 3.4.1 使用QObject::sender() 3.4.2 在连…

verilog练习:i2c slave 模块设计

文章目录 前言1. 结构2.代码2.1 iic_slave.v2.2 sync.v2.3 wr_fsm.v2.3.1 状态机状态解释 2.4 ram.v 3. 波形展示4. 建议5. 资料总结 前言 首先就不啰嗦iic协议了&#xff0c;网上有不少资料都是叙述此协议的。 下面将是我本次设计的一些局部设计汇总&#xff0c;如果对读者有…

什么是中间件中间件有哪些

什么是中间件&#xff1f; 中间件&#xff08;Middleware&#xff09;是指在客户端和服务器之间的一层软件组件&#xff0c;用于处理请求和响应的过程。 中间件是指介于两个不同系统之间的软件组件&#xff0c;它可以在两个系统之间传递、处理、转换数据&#xff0c;以达到协…

【键盘识别】实例分割

第一步 键盘检测 方案一 canny边缘检测 canny边缘检测检测结果不稳定,容易因为复杂背景或光线变换检测出其他目标。 如图是用canny边缘检测方法标出的检测出的边缘的四个红点。 参考的是这篇文章OpenCV实战之三 | 基于OpenCV实现图像校正_opencv 图像校正-CSDN博客 方案二…

线程上下文-ThreadLocal原理

ThreadLocal主要作用&#xff1a;为每个线程提供独立的变量副本&#xff0c;实现线程间的数据隔离&#xff0c;从而避免多线程环境下的资源共享冲突。 原理 ThreadLocal有个内部类 ThreadLocalMap&#xff0c;顾名思义是个Map结构&#xff1a;key为 ThreadLocal实例&#xff0…

【Python】元组

个人主页&#xff1a;GUIQU. 归属专栏&#xff1a;Python 文章目录 1. 元组的本质与基础概念1.1 不可变序列的意义1.2 元组与数学概念的联系 2. 元组的创建方式详解2.1 标准创建形式2.2 单元素元组的特殊处理2.3 使用 tuple() 函数进行转换 3. 元组的基本操作深入剖析3.1 索引操…

SpringSecurity:授权服务器与客户端应用(入门案例)

文章目录 一、需求概述二、开发授权服务器1、pom依赖2、yml配置3、启动服务端 三、开发客户端应用1、pom依赖2、yml配置3、SecurityConfig4、接口5、测试 一、需求概述 maven需要3.6.0以上版本 二、开发授权服务器 1、pom依赖 <dependency><groupId>org.springfr…

android的Compose 简介

Jetpack Compose 简介 Jetpack Compose 是 Android 官方推出的声明式 UI 工具包&#xff0c;用于替代传统 XML 布局&#xff0c;简化界面开发流程。它基于 Kotlin 语言&#xff0c;通过函数式编程实现高效、灵活的 UI 构建&#xff0c;支持实时预览和更直观的状态管理。 优势…

四次挥手详解

文章目录 一、四次挥手各状态FIN_WAIT_1CLOSE_WAITFIN_WAIT_2LAST_ACKTIME_WAITCLOSE 二、双方同时调用close()&#xff0c;FIN_WAIT_1状态后进入CLOSING状态CLOSING状态 三、TIME_WAIT状态详解(1) TIME_WAIT状态下的2MSL是什么MSL &#xff08;报文最大生存时间&#xff09;为…

LIMO:上海交大的工作 “少即是多” LLM 推理

25年2月来自上海交大、SII 和 GAIR 的论文“LIMO: Less is More for Reasoning”。 一个挑战是在大语言模型&#xff08;LLM&#xff09;中的复杂推理。虽然传统观点认为复杂的推理任务需要大量的训练数据&#xff08;通常超过 100,000 个示例&#xff09;&#xff0c;但本文展…

51单片机之引脚图(详解)

8051单片机引脚分类与功能笔记 1. 电源引脚 VCC&#xff08;第40脚&#xff09;&#xff1a;接入5V电源&#xff0c;为单片机提供工作电压。GND&#xff08;第20脚&#xff09;&#xff1a;接地端&#xff0c;确保电路的电位参考点。 2.时钟引脚 XTAL1&#xff08;第19脚&a…

基于yolov11的阿尔兹海默症严重程度检测系统python源码+onnx模型+评估指标曲线+精美GUI界面

【算法介绍】 基于YOLOv11的阿尔兹海默症严重程度检测系统是一种创新的医疗辅助工具&#xff0c;旨在通过先进的计算机视觉技术提高阿尔兹海默症的早期诊断和病情监测效率。阿尔兹海默症是一种渐进性的神经退行性疾病&#xff0c;通常表现为认知障碍、记忆丧失和语言障碍等症状…

TAPEX:通过神经SQL执行器学习的表格预训练

摘要 近年来&#xff0c;语言模型预训练的进展通过利用大规模非结构化文本数据取得了巨大成功。然而&#xff0c;由于缺乏大规模高质量的表格数据&#xff0c;在结构化表格数据上应用预训练仍然是一个挑战。本文提出了TAPEX&#xff0c;通过在一个合成语料库上学习神经SQL执行…

轻松理解CSS中的float浮动元素

1.float:left&#xff0c;float:right可以让元素脱离原始文档流&#xff0c;也就是所谓的“浮动”&#xff0c;可以理解为元素漂浮在原本所占位置的上空&#xff0c;意思是元素漂浮起来了&#xff0c;不占原始文档流的空间。但是&#xff0c;别的元素可以感知到浮动元素的存在&…

Vue与Konva:解锁Canvas绘图的无限可能

前言 在现代Web开发中&#xff0c;动态、交互式的图形界面已成为提升用户体验的关键要素。Vue.js&#xff0c;作为一款轻量级且高效的前端框架&#xff0c;凭借其响应式数据绑定和组件化开发模式&#xff0c;赢得了众多开发者的青睐。而当Vue.js邂逅Konva.js&#xff0c;两者结…

【Git】tortoisegit使用配置

1. 安装 首先下载小乌龟&#xff0c;下载地址:https://tortoisegit.org/download/, 可以顺便下载语言包&#xff01; 安装时&#xff0c;默认安装就可以&#xff0c;一路next。也可以安装到指定目录中 目前已完成本地安装&#xff0c;接下来就需要与远程仓库建立连接&…

RuoYi-Vue-Oracle的oracle driver驱动配置问题ojdbc8-12.2.0.1.jar的解决

RuoYi-Vue-Oracle的oracle driver驱动配置问题ojdbc8-12.2.0.1.jar的解决 1、报错情况 下载&#xff1a;https://gitcode.com/yangzongzhuan/RuoYi-Vue-Oracle 用idea打开&#xff0c;启动&#xff1a; 日志有报错&#xff1a; 点右侧m图标&#xff0c;maven有以下报误 &…

C++ 设计模式 - 访问者模式

一&#xff1a;概述 访问者模式将作用于对象层次结构的操作封装为一个对象&#xff0c;并使其能够在不修改对象层次结构的情况下定义新的操作。 《设计模式&#xff1a;可复用面向对象软件的基础》一书中的访问者模式因两个原因而具有传奇色彩&#xff1a;一是因为它的复杂性&a…

DeepSeek在FPGA/IC开发中的创新应用与未来潜力

随着人工智能技术的飞速发展&#xff0c;以DeepSeek为代表的大语言模型&#xff08;LLM&#xff09;正在逐步渗透到传统硬件开发领域。在FPGA&#xff08;现场可编程门阵列&#xff09;和IC&#xff08;集成电路&#xff09;开发这一技术密集型行业中&#xff0c;DeepSeek凭借其…

ZU47DR 100G光纤 高性能板卡

简介 2347DR是一款最大可提供8路ADC接收和8路DAC发射通道的高性能板卡。板卡选用高性价比的Xilinx的Zynq UltraScale RFSoC系列中XCZU47DR-FFVE1156作为处理芯片&#xff08;管脚可以兼容XCZU48DR-FFVE1156&#xff0c;主要差别在有无FEC&#xff08;信道纠错编解码&#xff0…