光学系统的核心--分辨率

前言

在机器视觉领域,可以把各个部件划分为光源,镜头,相机,采集卡,算法,运动平台等。各个部件都是系统的有机组合,均有各自的重要性。在实际应用中,成像镜头涉及的光学理论较多,在选型过程比较繁琐。不少拥有多年机器视觉行业经验的工程师依然会对成像镜头在光学系统中的作用感到困惑。

本文尝试从分辨率角度分析镜头在光学系统中的作用解释镜头的重要性。

系统分辨率与像素精度

机器视觉系统最重要的参数是系统分辨率。工程师运用各种理论与技巧,目标就是要提高系统精度。因为一个设备的系统分辨越高,价值越大。一般来说,工程师习惯使用像素精度来表示系统分辨率。

像素精度的概念很简单,即单个像素代表的物理尺寸。

例如相机的像素为10*10,被测物为100mm*100mm,即每个像素代表的物理尺寸为:100mm/10=10mm/像素。

按照这个逻辑,提高系统精度的方法就是提高单位面积的像素比例。

如被测物还是100mm*100mm,相机像素提升为100*100,即每个像素代表的物理尺寸为:100mm/100=1mm/像素。

图1:同一个FOV下像素精度的变化

如果按照这个逻辑,单位面积无限增加像素比例,光学系统的精度可以无限提高?

答案显然是不可能的,那这个限制在哪呢?

系统分辨率的“木桶理论”

可以用“木桶理论”来考虑这个问题。光学系统的分辨率(光学分辨率)和相机的图像分辨率是整个成像系统分辨率这个“木桶”上的两块“木板”;成像系统的分辨率等于这两块“木板”中比较短的那块。

图2:镜头和相机的“木桶理论”

由上述的“木桶理论”可知,存在四种情况:

相机分辨率大于镜头分辨率,提升镜头分辨率,系统分辨率提升;

相机分辨率大于镜头分辨率,提升相机分辨率,系统分辨率不变;

镜头分辨率大于相机分辨率,提升相机分辨率,系统分辨率提升;

镜头分辨率大于相机分辨率,提升镜头分辨率,系统分辨率不变。

平时我们讨论的相机与镜头之间的关系,其实是相机,镜头,系统三者之间的关系。想要理解这三者之间的关系,必须了解分辨率的概念。

相机像元数,相机“像素”与相机分辨率

“像元”“像素”“分辨率”这几个相机相关的术语,业界目前没有十分明确的定义,有些行业还会有显示分辨率,图像分辨率等等不同的概念,比较容易引起混淆。按照笔者理解,相机是没有像素的概念,像素是图像的描述,相机的像元个数等于该相机拍摄的图像像素个数。

像元,图像传感器上能单独感光的物理单元。

像素,数字图像中显示的最小单位。一般相机拍出的图像才会使用像素的概念。相机“像素”的概念并不准确。

分辨率,指分辨率即分辨两个靠近的点的能力,也称为解析力。相机能分辨最小的点就是像元尺寸,可理解为相机的分辨率=像元尺寸。

举个例子:

相机A配备索尼IMX250芯片。其像元个数为2448*2048,其像元尺寸为3.45µm x 3.45 µm。此相机的像元个数为2448*2048,拍摄的图片像素为5013504,相机分辨率为3.45μm。

镜头“像素”与镜头分辨率

为了方便的用户选购镜头,工业镜头厂家往往以“像素”命名镜头。

如相机A能拍摄500万像素的图像,厂家把匹配的镜头命名为500万像素镜头。市面上的标清镜头,高清镜头,1080P镜头,均以相机拍摄的图像像素命名。

但在其他领域,如显微镜,内窥镜,单反镜头,却并没有出现此种现象。显然,以“像素”命名镜头,并不能准确地描述镜头的性能。并且也出现了厂家随意命名的现象,为我们理解镜头分辨率制造了困扰。

真实的镜头分辨率应以MTF曲线体现,图3为MTF曲线的其中一种表达形式。

图3:镜头A的MTF曲线图

此MTF曲线的核心内容则是空间频率。即要读懂镜头的分辨率,必须先了解空间频率。

分辨率与空间频率

分辨率可以用空间频率进行量化表达。

空间频率,代表了单位长度内信号的周期数,常用1mm中含有的线对数量表示。一黑一白为1线对。

图4:空间频率

相机分辨率与镜头分辨率可以量化

由上述可知,相机分辨率与镜头分辨率,拥有一个通用的参数——空间频率。换算出相机的空间频率,就可以量化判断系统分辨率到底是由“木桶”的哪块板决定(相机分辨率,镜头分辨率)

相机的空间频率计算公式如下:

相机空间频率(lp/mm)=

以相机A与镜头A为例。

相机A,可换算其空间频率为:

相机空间频率(lp/mm)=

150lp/mm

镜头A,其空间频率,查看MTF曲线可知为150lp/mm。

镜头A,匹配空间频率大于150lp/mm的相机时,系统分辨率不变;

镜头A,匹配空间频率小于150lp/mm的相机时,系统分辨率下降。

相机A,匹配空间频率大于150lp/mm的镜头时,系统分辨率不变;

相机A,匹配空间频率小于150lp/mm的镜头时,系统分辨率下降;

在相机分辨率越来越高的时代背景下,成像系统分辨率的“压力”也就落在了镜头上,所以更高分辨率(空间频率)的镜头在成像系统中的作用越来越重要。

镜头分辨率与其他参数共同作用影响系统分辨率

镜头分辨率除了跟相机分辨率外,还与其他因素关联,共同影响系统分辨率。

1,镜头分辨率是一个变化的参数

对于一个镜头,其分辨率不是一个恒定不变的值。不同工作距离,不同光圈,不同工作波段,不同像面位置,镜头分辨率会产生变化。

2,镜头分辨率与光源

在设计研发时,一般会对特定波段优化镜头的分辨率。使用特定波长以外的光源,镜头分辨率下降。一般来说,使用特定波段单色光,镜头分辨率会提升。

3,镜头的像方分辨率与物方分辨率

成像镜头的分辨率有多种表达,其中最常用的是像方分辨率与物方分辨率。物方分辨率只是指镜头靠近被测物一方的空间频率,像元分辨率是指靠近相机一方的空间频率。工业定焦镜头一般公开像方分辨率,显微物镜更多公开物方分辨率。

4,镜头分辨率与工作距离

成像镜头的设计主要运用了几何光学原理,一般会对特定的工作距离进行优化。对工业定焦镜头而言,多数产品的最佳工作距离是300mm-600mm,即此工作距离下,镜头分辨率表现最佳,其他工作距离,分辨率表现可能会下降。而安防镜头的最佳工作距离为远距离和无穷远。微距镜头的最佳工作距离为近距离。

5,镜头分辨率与光圈

在一般应用中,镜头分辨率与光圈相关性比较大,减小镜头的光圈,分辨率会提高。但是光圈越小,衍射极限的限制也越明显。

6,镜头分辨率存在物理极限

恩斯特·阿贝博士在19世纪70年代就发现了成像镜头的分辨率极限。可见光镜头的分辨率极限是0.2μm。并且因为材料和工艺问题,一般的成像镜头难以达到这个值。

总结

理解成像镜头的分辨率(空间频率)的计算和评判方法,能更好地理解影响系统精度的核心因素,也为系统升级指明方向。

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

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

相关文章

[数据结构]-哈希

前言 作者:小蜗牛向前冲 名言:我可以接受失败,但我不能接受放弃 如果觉的博主的文章还不错的话,还请点赞,收藏,关注👀支持博主。如果发现有问题的地方欢迎❀大家在评论区指正 本期学习目标&…

适用于烟机变频风机的32位单片机

RAMSUN介绍一款适用于烟机变频风机的32位单片机MM32SPIN0230系列,采用M0内核,最高工作频率可达60MHz,内置32KBFlash和4KBSRAM的存储器,包括1路12位模数转换器ADC,支持11通道,采样速率1Msps,4个通…

智能工厂4G无线设备预测维护云端联动的DI、AI、DO混合信号处理单元

在现代工业智能化进程中,一款集成了丰富I/O接口并能与各大云平台无缝对接的智能设备显得尤为重要。比如最近推出的这款创新产品,它集合了8路数字输入通道,涵盖了干湿节点的识别功能,适用于多种开关量信号的读取;同时&a…

你知道地产神秘顾客调研流程有哪些

在当今竞争激烈的地产市场中,客户满意度是每个地产企业追求的核心目标。为了深入了解客户需求,提升服务质量,神秘顾客调研成为了众多地产企业的得力助手。大家是否了解神秘顾客执行流程呢?一般包括以下几个部分: 在进…

(八)springboot实战——springboot3下的webflux项目全局异常处理

前言 在webflux响应式编程中,如何处理系统运行时异常是本节的主要内容。在传统的Servlet阻塞式web项目中主要通过HandlerExceptionResolver处理器来处理,而在webflux响应式web项目中,则是通过DispatchExceptionHandler异常处理器来处理异常。…

[SWPUCTF 2018]SimplePHP1

打开环境 有查看文件跟上传文件,查看文件里面显示没有文件url貌似可以文件读取 上传文件里面可以上传文件。 先看一下可不可以文件读取 /etc/passwd不能读取,源码提示flag在f1ag.php 看看能不能读取当前的文件, 先把代码摘下来 file.php …

JavaScript 之 作用域变量提升闭包

一、JavaScript 代码的执行 浏览器内核是由两部分组成的,以 webkit 为例 WebCore:负责HTML解析、布局、渲染等等相关的工作JavaScriptCore:解析、执行 JavaScript 代码 另外一个强大的 JavaScript 引擎就是 V8 引擎 二、深入 V8 引擎原理 …

Java面向对象三大特征之多态

在之前的文章,我们分别介绍了类与对象、面向对象三大特征的封装、以及继承(一)、继承(二)。这一篇文章,我们介绍Java面向对象三大特征的最后一个——多态。 多态 多态的概述 概念:完成某个行为…

前端工程化之:webpack1-1(构建工具)

一、浏览器端的模块化 1.问题 效率问题:精细的模块划分带来了更多的 JS 文件,更多的 JS 文件带来了更多的请求,降低了页面访问效率;兼容性问题:浏览器目前仅支持 ES6 的模块化标准,并且还存在兼容性问题&…

Hive之set参数大全-17

配置是否启用 HiveServer2 的 Web 用户界面(WebUI)中的跨源资源共享(CORS) 在 Hive 中,hive.server2.webui.enable.cors 是一个参数,用于配置是否启用 HiveServer2 的 Web 用户界面(WebUI&…

CVE-2024-23897 Jenkins 任意文件读取漏洞

项目介绍 Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行持续集成。Jenkins是开源CI&CD软件领导者, 提供超过1000个插…

Java集合相关面试题

📕作者简介: 过去日记,致力于Java、GoLang,Rust等多种编程语言,热爱技术,喜欢游戏的博主。 📗本文收录于java面试题系列,大家有兴趣的可以看一看 📘相关专栏Rust初阶教程、go语言基…

C# 设置一个定时器函数

C#中,创建设置一个定时器,能够定时中断执行特定操作,可以用于发送心跳、正计时和倒计时等。 本文对C#的定时器简单封装一下,哎,以方便定时器的创建。 定义 using Timer System.Timers.Timer;class SetTimer {Timer …

Nacos注册中心:揭秘分布式系统的灵魂之所

目录 一、Nacos注册中心简介 1.1 概述 1.2 作用和意义 二、Nacos的特点和优势

OSPF协议基础(OSPF工作过程)

目录 OSPF基本工作原理邻居建立过程Router ID发现并建立邻居 - Hello报文OSPF邻居建立过程 链路状态信息丰富的数据链路层支持能力网络类型 - P2P网络网络类型 - 广播型网络网络类型 - NBMA网络网络类型 - P2MP网络OSPF的度量方式 报文类型及作用OSPF协议报文头部OSPF报文类型O…

物理服务器

物理服务器 物理服务器是一种独立的、非虚拟化的计算机设备,它通常被用作高性能应用、数据库、存储和网络等关键业务应用的运行平台。物理服务器可以提供更高的处理能力、更好的安全性和可靠性,但需要用户自行维护和管理。 物理服务器的形式多种多样&…

图论-寒假

文章目录 A - Amusement Arcade题意:题解:代码: B - Brexiting and Brentering题意:题解:代码: I - Montys Hall题意:题解:代码: A - Amusement Arcade 题意&#xff1a…

每日一道编程题:回文数

题目 一串字符如果从左读和从右读完全相同&#xff0c;我们称之为回文。请判断键盘输入一串字符&#xff08;不超过1000位&#xff09;&#xff0c;是否是回文。是&#xff0c;则输出YES&#xff0c;否则输出NO。 输入样例 1aabbccbbaa1输出样例 YES代码 #include <bit…

k8s-调度

调度 从上面的架构图我们可以看到,调度是工作在Master,负责调度Pod&#xff0c;为POD分配Node。 调度的工作原理 #查看所有的Node kubectl get nodes 我们可以看到节点有一个Name,这就是调度的关键。 调度的步骤&#xff1a; 1 创建POD的时候每一个POD都会有一个叫NodeName的…

老板为何都对项目经理毕恭毕敬!因为这个职位一念成佛一念成魔

hello宝子们...我们是艾斯视觉擅长ui设计和前端开发10年经验&#xff01;希望我的分享能帮助到您&#xff01;如需帮助可以评论关注私信我们一起探讨&#xff01;致敬感谢感恩&#xff01; 老板为何都对项目经理毕恭毕敬&#xff01;因为这个职位一念成佛一念成魔 曾几何时&am…