侵权投诉

机器视觉镜头的主要特性

2019-05-06 11:46 次阅读

在镜头设计中有许多重要的特性,包括镜头分辨率、镜头畸变和光照均匀性等,直接影响机器视觉系统性能。

机器视觉镜头的主要特性

图1所示:调制传递函数

机器视觉系统中使用的摄像机、镜头和照明都对图像的整体质量做出了重要贡献。过去几年CMOS图像传感器技术的快速发展为镜头制造商带来了重大挑战。越来越高的传感器分辨率意味着现在有许多传感器具有更小的像素,需要更高分辨率的镜头。另一方面,为获得更高的灵敏度而保持较大像素大小的高分辨率传感器通常采用较大的格式,因此需要较大格式的高分辨率镜头。此外,许多需要非常长焦距镜头的应用,如监视、运动、航空摄影和主题公园游乐设施上的摄影,正日益纳入机器视觉的范畴,需要加以解决。在镜头设计中包括镜头分辨率、空间失真和通过镜头的照明均匀性对镜头的性能产生重要影响。

了解镜头性能-调制传递函数(MTF)

理想的镜头可以产生与物体完美匹配的图像,包括其所有细节和亮度变化。在实践中,这绝不是完全可能的,因为镜头充当低通滤波器。考虑到所有像差,镜头的图像质量可以通过其调制传递函数定量地描述。 MTF由透镜再现具有不同间距(线对/空间频率/ mm)的线(网格)的能力来定义。可以区分的线对/ mm越多,镜头的分辨率越好。每个空间频率的MTF图显示了由镜头引起的对比度损失(图1)。通常以相对良好的对比度转移诸如粗糙间隔线的大结构。较小的结构,例如细间隔的线,以低对比度传输。任何给定频率或细节的衰减量按MTF分类,这表示镜头的传输效率。对于任何镜头,都有一个调制为零的点。此限制通常称为分辨率限制,通常以每毫米线对数(lp / mm)引用,或者以最小线尺寸(以μm为单位)引用一些微距镜头,这也相当于镜头所需的最小像素尺寸。适当。 MTF从镜头的中心轴向边缘移动恶化,如果整个图像需要标称分辨率,这是一个重要的考虑因素。由于像散,MTF也可以根据镜头上某点的线条方向而变化,并且也是测量时的光圈设置的函数,因此在比较镜头性能时必须小心。由于必须选择透镜以使分辨率与图像传感器的像素尺寸相匹配,因此像素越小,透镜所需的分辨率越高。

提示:在保持传感器尺寸以降低成本的同时提高传感器分辨率需要具有更高MTF的镜头来分辨这些更小的像素。应该始终考虑系统成本,因为较低成本的较小像素尺寸需要更高分辨率的镜头。

机器视觉镜头的主要特性

图2:镜头畸变

镜头畸变

除了分辨率的变化外,所有透镜也会受到一定的空间畸变。图2显示了如何以非线性方式拉伸或压缩图像,使整个传感器的精确测量变得非常困难。虽然有一些软件方法可以解决这个问题,但它们无法考虑物体的物理深度,因此最好选择质量好的低失真镜头,而不是试图在软件中纠正这些错误。作为一般规则,较短焦距的镜头将具有比具有较长焦距的镜头更大的失真,因为光从更大的角度照射到传感器。使用更复杂的镜头设计,可以保持低失真,并且许多镜头制造商一直在努力研究他们的光学设计,使他们能够将空间失真降低到0.1%的数量级。

提示:为了以最小的成本最小化失真,较长的工作距离将提供最佳的效果。

照明均匀性

所有来自镜头的图像都存在渐晕,即从图像中心到边缘的光照强度降低,这可能会影响透镜应用的适用性。机械晕渲是由于光束被机械地遮挡(通常是被透镜支架遮挡)而导致的对图像边缘的晕渲。这主要发生在透镜的图像圆(或格式)对于传感器的尺寸太小时。所有的镜头都受到“Cos4渐晕”的影响,这是由于光线必须经过更远的距离到达图像边缘,并以浅角度到达传感器。当角度将光线聚焦到传感器的非敏感部分时,在每个像素上都有微透镜的镜头上,这一点也被夸大了。这可以最小化,如果镜头是由两个f停止下来。通过提高整个传感器的照明均匀性,镜头制造商可以消除对光强度补偿的需求,因为光强度补偿可能会在图像中引入噪声。

机器视觉镜头的主要特性

图3。机械渐晕

环境影响

许多视觉系统被部署在制造环境中,这意味着它们暴露在各种各样的环境影响下,从污垢、湿度和温度到机械和电磁效应。有许多可用的防护罩,可以防止灰尘和湿气的侵入。镜头组件的机械稳定性对于避免模糊和确保可靠和可重复的测量至关重要。大多数用于机器视觉应用的镜头都是用金属外壳和聚焦机制制造的,以保证镜头的稳定性。许多镜头也提供了抗冲击和振动特性,使他们适用于最恶劣的环境。镜头制造商已经提出了一系列的设计方案,其中一些获得了专利,以限制镜头玻璃由于振动和冲击而移动所产生的图像位移。这些包括使用锁定螺钉来防止焦点和光圈的移动,甚至是固定光圈的移动,以及透镜体中所有元件的粘接。

镜头接口

将镜头固定到相机上是通过使用不同标准的镜头接口来实现的。机器视觉应用中最常用的是C-mount,它可以从各种镜头和配件中受益,包括提供计算机控制的光圈和聚焦的能力。CS安装座并不太常用与C-mount安装座基本相同,但法兰焦距缩短了5mm。较小的镜头卡口系统(如S-mount)通常用于板级相机和微型相机。这些镜头只允许最小的调整。对于大幅面传感器和线扫描应用,可以使用更大尺寸的F-mount系统,尽管越来越多地使用更强大的M42安装座(有时称为T-mount)。但大幅面镜头不支持自动控制光圈和对焦的能力。长焦镜头也在机器视觉中得到应用,最长焦距可达600毫米。这些大幅面镜头主要为专业摄影师开发,也包括电动光圈和变焦,需要专门的EF镜头安装座。目前,越来越多的机器视觉相机采用EF安装功能和EF镜头制造,其新颖的光学功能通过最近的直接分销协议提供给更广泛的机器视觉市场。

机器视觉镜头的主要特性

图4。不同的镜头支架

让它正确

有了如此多的机器视觉镜头选项,为特定的应用选择最好镜头并不简单。所以将系统作为一个整体来考虑非常重要。例如,许多现代的百万像素相机使用小的传感器尺寸来降低成本,但由此产生的小像素尺寸需要更高的质量,因此光学器件也更昂贵。对于某些应用来说,选择更昂贵、像素更大、光学要求更低的相机可能会有好处,从而降低整个系统的成本。与专家视觉技术供应商合作可以减轻这些决策中的风险。

收藏 人收藏
分享:

评论

相关推荐

如何才能在FPGA上实现对数函数

对数函数在粒子滤波、RBF 神经网络、图像处理等领域广泛运用。CORDIC 算法( TheCoord....
发表于 08-07 17:14 15次 阅读
如何才能在FPGA上实现对数函数

可附着在昆虫上的微型机器人

据外媒GeekWire消息,华盛顿大学的研究人员开发出了可以附着在昆虫背面的微型机器人摄像机。
发表于 08-06 10:06 18次 阅读
可附着在昆虫上的微型机器人

基于canny边缘检测算法有效解决检测边缘断裂问题

边缘检测是图像处理中的重要内容。图像边缘是图像局部特性不连续性(灰度突变、颜色突变、纹理结构突变等)....
的头像 电子设计 发表于 08-06 09:12 79次 阅读
基于canny边缘检测算法有效解决检测边缘断裂问题

Python标准库中文版资料合集

Python 的标准库包括了很多的模块, 从 Python 语言自身特定的类型和声明, 到一些只用于....
发表于 08-06 08:00 18次 阅读
Python标准库中文版资料合集

谭浩强版C语言程序设计PDF电子书免费下载

C语言是在 70 年代初问世的。一九七八年由美国电话电报公司(AT&T)贝尔实验室正式发表了C语言。....
发表于 08-06 08:00 22次 阅读
谭浩强版C语言程序设计PDF电子书免费下载

使用MicroLIB+fputc的方式实现串口打印功能

要实现fputc函数的原因是:printf函数依赖于fputc函数,重新实现fputc内部从串口发送....
的头像 玩转单片机 发表于 08-05 10:52 119次 阅读
使用MicroLIB+fputc的方式实现串口打印功能

将DSP的Flash里面的函数转移到RAM中

意思是到FLASH去下载InitFlash(),下载到SECURE_RAM,然后要到SECURE_R....
的头像 玩转单片机 发表于 08-04 17:10 111次 阅读
将DSP的Flash里面的函数转移到RAM中

七轴机器人的特点是什么,它的原理又是怎样的

七轴原理 第七轴是在常规六轴机器人的基础上添加的一个附加轴,该轴均为非标设计。其作用是协助机器人达到....
发表于 08-04 16:03 59次 阅读
七轴机器人的特点是什么,它的原理又是怎样的

镜像翻转的图像,能不变?

这项研究在多种领域(人脸,互联网图片,数字处理图像)上利用卷积神经网络,发现了许多常人难以捕捉的「视....
的头像 算法与数据结构 发表于 08-03 16:58 483次 阅读
镜像翻转的图像,能不变?

Python语言的常用语法到底有哪些

在Python 中有4 种类型的数——整数、长整数、浮点数和复数。使用变量时只需要给它们赋一个值。不....
发表于 08-03 16:32 23次 阅读
Python语言的常用语法到底有哪些

Linux设备与驱动的手动解绑与手动绑定

但是有时候,这种自动匹配并不一定是我们想要的。比如我们有时候就是希望XXX设备用YYY驱动,而不是用....
的头像 Linuxer 发表于 08-03 16:25 89次 阅读
Linux设备与驱动的手动解绑与手动绑定

请问DSP28x_usDelay函数的定义在哪里?

使用28035时,有个函数,DSP28x_usDelay函数的定义在哪里...
发表于 07-31 08:03 0次 阅读
请问DSP28x_usDelay函数的定义在哪里?

Python的经典面试题总结

这里记住的是类型是属于对象的, 而不是变量。而对象有两种,“ 可更改”(mutable )与“不可更....
发表于 07-30 17:53 34次 阅读
Python的经典面试题总结

vTaskResumeFromISR的使用的限制具体是什么?

portBase_TYPE vTaskResumeFromISR(xTaskHandle pxTaskToResum) 这个函数是用来唤醒某个任务的。 但是使用教...
发表于 07-30 11:39 0次 阅读
vTaskResumeFromISR的使用的限制具体是什么?

怎么使用netconn_recv这个函数吗?

各位大神 请问有人会使用netconn_recv这个函数吗? 是v1.3.2版本的api.lib.c 我从server端回传的文字会存在哪里 我要怎么样才...
发表于 07-30 08:09 0次 阅读
怎么使用netconn_recv这个函数吗?

追踪变量时弹出这个窗口是为什么?

追踪函数和其他变量都可以,但是有个别就弹出这个,u8都弹出.....      求赐教...
发表于 07-30 04:45 0次 阅读
追踪变量时弹出这个窗口是为什么?

C语言的声明和定义与引用说明

本文档的主要内容详细介绍的是C语言的声明和定义与引用说明
发表于 07-29 08:00 34次 阅读
C语言的声明和定义与引用说明

C6748_StarterWare_1_20_04_01请问其他的子函数在哪可以查到?

导入的C6748_StarterWare_1_20_04_01的工程,只有一个主函数,和部分子函数,请问其他的子函数在哪可以查到?在工程里面使用C...
发表于 07-28 11:07 0次 阅读
C6748_StarterWare_1_20_04_01请问其他的子函数在哪可以查到?

使用Delphi 7.0开发软件和Moxa库函数实现同步卡调试器的设计

根据这一需求,作者使用Delphi 7.0开发这款软件。首先定制界面,该部分较简单,略之。关键部分如....
的头像 电子设计 发表于 07-28 08:56 341次 阅读
使用Delphi 7.0开发软件和Moxa库函数实现同步卡调试器的设计

采用StratixII系列的EP2S60FPGA芯片实现报文内容过滤算法研究分析

可见,位置i上的hash函数可以通过i-1位置上的hash函数简单的算出。并且如果dij=di+1j....
发表于 07-27 17:57 61次 阅读
采用StratixII系列的EP2S60FPGA芯片实现报文内容过滤算法研究分析

了解一些C程序的基本规则

程序由一个或多个函数组成,其中一定有一个名为 main()的函数。函数的描述由函数头和函数体组成。函....
的头像 lhl545545 发表于 07-27 11:01 237次 阅读
了解一些C程序的基本规则

基于坐标旋转数字计算机技术实现MQR自适应波束形成

图1给出了MQR-SMI(混合QR分解采样矩阵求逆)阵结构(以三阵元为例)。阵中包含两种单元,边界单....
的头像 电子设计 发表于 07-27 08:40 648次 阅读
基于坐标旋转数字计算机技术实现MQR自适应波束形成

unsigned int P_Cal(unsigned char*pc) 函数求解?

unsigned int P_Cal(unsigned char*pc) ,这个函数是在jpegdecode.c里面 point_val=(unsigned long)pc;//得到当前指针所指地址...
发表于 07-25 02:26 0次 阅读
unsigned int P_Cal(unsigned char*pc) 函数求解?

信号是什么?如何对其进行表征

何谓信号以及如何对其进行表征呢?最简单而有用的定义如下:信号是随时间变化的电压(或电流)。为了表征信....
发表于 07-24 18:54 31次 阅读
信号是什么?如何对其进行表征

如何使用神经网络处理数据代码资料概述

本文档的主要内容详细介绍的是如何使用神经网络处理数据代码资料概述。
发表于 07-21 08:00 24次 阅读
如何使用神经网络处理数据代码资料概述

MATLAB数学建模编程资料详细说明

它已经成为世界上应用最广泛的数学软件之一,尤其在工程计算领域、高校应用最广。该软件以矩阵运算为基础,....
发表于 07-20 14:59 38次 阅读
MATLAB数学建模编程资料详细说明

vTaskDelayUntil绝对延时,vTaskDelay相对延时有什么区别呢?

请问       1.这两个函数xQueueCreateSet,xQueueAddToSet是干什么用的呢?官方没加注释。  ...
发表于 07-20 08:03 0次 阅读
vTaskDelayUntil绝对延时,vTaskDelay相对延时有什么区别呢?

delay_xms()和vTaskDelay()函数区别问题如何解决

有道友能具体解释一下这俩函数的区别嘛?我知道vTaskDelay()函数会导致任务调度。但是我不知道什么时候需要调度什么时候不需...
发表于 07-19 08:03 0次 阅读
delay_xms()和vTaskDelay()函数区别问题如何解决

函数参数传递总是出错怎么办

函数参数传递总是出错,怎么办啊??可能会是什么原因?...
发表于 07-19 08:00 0次 阅读
函数参数传递总是出错怎么办

如何使用下确界不可约的概念格属性约简方法的资料概述

对概念格的属性约简方法进行研究。证明概念格中任意属性亏值都为可辨识属性集,下确界不可约概念的属性亏值....
发表于 07-16 15:50 36次 阅读
如何使用下确界不可约的概念格属性约简方法的资料概述

F28377里这两个函数的第一个参数是什么意思啊?

GPIO_SetupPinOptions(17,GPIO_OUTPUT,GPIO_PUSHPULL); GPIO_SetupPinMux(17,GPIO_M...
发表于 07-16 06:11 1次 阅读
F28377里这两个函数的第一个参数是什么意思啊?

C语言的编程规范详细概述

今天人们越来越明白软件设计更多地是一种工程而不是一种个人艺术由于大型产品的开发通常由很多的人协同作战....
发表于 07-15 17:29 44次 阅读
C语言的编程规范详细概述

如何使用一种弹性自适应控制方法实现超声速飞行器的控制

针对参数不确定情况下高超声速飞行器的控制问题,提出了一种弹性自适应控制方法。给出了高超声速纵向动力学....
发表于 07-10 08:00 72次 阅读
如何使用一种弹性自适应控制方法实现超声速飞行器的控制

怎么样才能自动识别巡检机器人中指针式的仪表示数

针对巡检机器人室外自主识别仪表示数易受到光照影响的问题,在研究了基于二维伽马函数的仪表图像光照不均匀....
发表于 07-09 16:43 63次 阅读
怎么样才能自动识别巡检机器人中指针式的仪表示数

如何搭建小型又经济的输出级?

典型的信号发生器提供25 mV至5 V输出电压。为了驱动50 Ω或更高的负载,一般会在输出端使用功能....
的头像 亚德诺半导体 发表于 07-06 16:12 263次 阅读
如何搭建小型又经济的输出级?

HMACMD5键控哈希算法的程序和工程文件免费下载

HMACMD5 是从 MD5 哈希函数构造的一种键控哈希算法,被用作基于哈希的消息验证代码 (HMA....
发表于 07-06 08:00 44次 阅读
HMACMD5键控哈希算法的程序和工程文件免费下载

图文详解:神经网络的激活函数

什么是神经网络激活函数?激活函数有助于决定我们是否需要激活神经元。如果我们需要发射一个神经元那么信号....
的头像 如意 发表于 07-05 11:21 416次 阅读
图文详解:神经网络的激活函数

uC/OS是个什么鬼?那它有什么用呢?

那 uC/OS 是变出无限个main函数呢,答案就是时钟节拍,时钟节拍就是系统以固定的频率产生中断(....
的头像 玩转单片机 发表于 07-01 16:52 713次 阅读
uC/OS是个什么鬼?那它有什么用呢?

Python:装饰器的原理和案例

Python中的装饰器用于扩展可调用对象的功能,而无需修改其结构。基本上,装饰器函数包装另一个函数以....
的头像 如意 发表于 07-01 11:35 330次 阅读
Python:装饰器的原理和案例

STOP函数在低噪声数据采集应用中的优势

在电源方面,由于其基本的工作原理,高效的DC/DC转换器可能成为重要的噪声源。它们既会在转换器的开关....
的头像 德州仪器 发表于 07-01 10:24 393次 阅读
STOP函数在低噪声数据采集应用中的优势

KUKA-C4机器人SWRITE函数的用法说明

IF(PRO_NAME1_L[1]=="C") AND (PRO_NAME1_L[2]=="E") ....
的头像 机器人及PLC自动化应用 发表于 06-30 16:57 346次 阅读
KUKA-C4机器人SWRITE函数的用法说明

LabVIEW与Matlab的混合编程

LabVlEW 和 Matlab的混合编程 ,通过 LabVIEW 专有程序接 口调用 MATLAB....
发表于 06-30 08:00 62次 阅读
LabVIEW与Matlab的混合编程

C语言模拟实现memmove函数

memmove用于从src拷贝count个字节到dest,如果目标区域和源区域有重叠的话,memmo....
的头像 如意 发表于 06-29 17:53 192次 阅读
C语言模拟实现memmove函数

C语言模拟实现memcpy函数

memcpy指的是c和c++使用的内存拷贝函数,memcpy函数的功能是从源src所指的内存地址的起....
的头像 如意 发表于 06-29 17:29 266次 阅读
C语言模拟实现memcpy函数

C语言模拟实现strcmp函数

C语言模拟实现strcmp函数
的头像 如意 发表于 06-29 16:51 310次 阅读
C语言模拟实现strcmp函数

C语言模拟实现strstr函数

strstr(str1,str2) 函数用于判断字符串str2是否是str1的子串。如果是,则该函数....
的头像 如意 发表于 06-29 16:36 491次 阅读
C语言模拟实现strstr函数

C语言模拟实现strcat函数

C语言模拟实现strcat函数
的头像 如意 发表于 06-29 16:18 304次 阅读
C语言模拟实现strcat函数

C语言模拟实现strcpy

strcpy是一种C语言的标准库函数,strcpy把从src地址开始且含有’\0’结束符的字符串复制....
的头像 如意 发表于 06-29 15:54 224次 阅读
C语言模拟实现strcpy

C语言模拟实现strlen的步骤

strlen所作的仅仅是一个计数器的工作,它从内存的某个位置(可以是字符串开头,中间某个位置,甚至是....
的头像 如意 发表于 06-29 15:48 243次 阅读
C语言模拟实现strlen的步骤

理解函数指针、函数指针数组、函数指针数组的指针

理解函数指针、函数指针数组、函数指针数组的指针
的头像 如意 发表于 06-29 15:38 370次 阅读
理解函数指针、函数指针数组、函数指针数组的指针

传值、传址、传引用的区别,哪个更高效?

传值、传址、传引用的区别,哪个更高效?
的头像 如意 发表于 06-29 15:05 178次 阅读
传值、传址、传引用的区别,哪个更高效?

一文了解C++的命名空间

在C++中,变量、函数和类都是大量存在的,这些变量、函数和类的名称将都存在于全局命名空间中,会导致很....
的头像 如意 发表于 06-29 14:48 150次 阅读
一文了解C++的命名空间

C++:详谈析构函数的特性和使用

与构造函数功能相反,在对象被销毁时,由编译器自动调用,完成类的一些资源清理和汕尾工作。
的头像 如意 发表于 06-29 11:53 336次 阅读
C++:详谈析构函数的特性和使用

C++:详谈拷贝构造函数

只有单个形参,而且该形参是对本类类型对象的引用(常用const修饰),这样的构造函数称为拷贝构造函数....
的头像 如意 发表于 06-29 11:45 355次 阅读
C++:详谈拷贝构造函数

C++:重载、重定义和重写的概念和区分

在C++中我们经常会遇见“重载、重定义、重写”的概念,三个概念名字很像,很容易混淆,今天我们对三者进....
的头像 如意 发表于 06-29 11:33 322次 阅读
C++:重载、重定义和重写的概念和区分

STL源码剖析的PDF电子书免费下载

学习编程的人都知道,阅读、剖析名家代码乃是提高水平的捷径。源码之前,了无秘密。大师们的缜密思维、经验....
发表于 06-29 08:00 39次 阅读
STL源码剖析的PDF电子书免费下载

Python基础教程第三版PDF电子书免费下载

《Python基础教程 第3版》包括Python程序设计的方方面面:首先,从Python的安装开始,....
发表于 06-29 08:00 182次 阅读
Python基础教程第三版PDF电子书免费下载

火焰图:全局视野的Linux性能剖析

CPU火焰图中的每一个方框是一个函数,方框的长度,代表了它的执行时间,所以越宽的函数,执行越久。火焰....
的头像 Linuxer 发表于 06-28 09:44 376次 阅读
火焰图:全局视野的Linux性能剖析

RT-Thread编程高阶用法-函数扩展之$Sub$$与$Super$$

那具体RT-Thread又是如何实现在main函数执行之前就把所有初始化硬件、时钟的工作都做了呢?跟....
的头像 RTThread物联网操作系统 发表于 06-28 09:18 302次 阅读
RT-Thread编程高阶用法-函数扩展之$Sub$$与$Super$$

组态王命令语言函数手册资料免费下载

“组态王”支持使用内建的复杂函数,其中包括字符串函数、数学函数、 系统函数、控件函数、报表函数及其他....
发表于 06-28 08:00 61次 阅读
组态王命令语言函数手册资料免费下载