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

前言

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

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

系统分辨率与像素精度

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

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

例如相机的像素为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,一经查实,立即删除!

相关文章

[数据结构]-哈希

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

智能工厂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面向对象三大特征的最后一个——多态。 多态 多态的概述 概念:完成某个行为…

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 …

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

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

k8s-调度

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

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

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

Linux:命名管道及其实现原理

文章目录 命名管道指令级命名管道代码级命名管道 本篇要引入的内容是命名管道 命名管道 前面的总结中已经搞定了匿名管道,但是匿名管道有一个很严重的问题,它只允许具有血缘关系的进程进行通信,那如果是两个不相关的进程进行通信&#xff0…

《佛法修学概要》009-012集研讨

课程摘要 9、只有走出心中的妄想,才可能接觸彌陀的光明! 佛陀在經典裡講出一個譬喻,說有一座動物園,這座動物園關了很多動物。其中有一隻袋鼠,就是澳洲那種很會跳的袋鼠。動物園的管理員,給牠圈了一個十公尺…

《合成孔径雷达成像算法与实现》Figure5.16

clc clear close all距离向参数 R_eta_c 20e3; % 景中心斜距 Tr 25e-6; % 发射脉冲时宽 Kr 0.25e12; % 距离向调频率 Fr 7.5e6; % 距离向采样率 Nrg 256; % 距离线采样点数 Bw abs(Kr*Tr); …

【vue oidc-client】invalid_requestRequest Id: 0HN0OOPFRLSF2:00000002

需求:完成统一登录,需要从三方平台跳到我们的平台。 oidc-client报错记录。这个一般是配置信息出错,需要和三方平台进行沟通,一定要把client_id,密钥进行对应; 同时关于此次出错还修改了以下代码&#xff…

主成分分析(PCA)Python

实际问题研究中,常常遇到多变量问题,变量越多,问题往往越复杂,且各个变量之间往往有联系。于是,我们想到能不能用较少的新变量代替原本较多的旧变量,且使这些较少的新变量尽可能多地保留原来变量所反映的信…

按配置数据绘制配置型地图marker的icon,自定义marker

一、需求 需要自定义配置数据的marker&#xff0c;其中图片内容要灵活可配置自动生成。此处项目用的百度地图。 效果图&#xff1a; 二、思路 用背景图canvas绘制数字的方式生成icon的图片资源。 再将icon生成对应地图marker。 三、代码 canvasImg.js <!-- * descrip…

进程地址空间(Linux)

进程地址空间 一、引入概念1. 程序的地址分布2. 线性地址和物理地址 二、进程地址空间1. 初步认识2. 地址空间和物理内存的联系3. 区域划分4. 拓展——关于“线” 三、进一步理解进程地址空间四、页表总结 一、引入概念 1. 程序的地址分布 测试代码&#xff1a; #include &l…

Nginx安装以及具体应用

文章目录 Centos7安装NginxNginx命令Nginx具体应用反向代理 location指令说明负载均衡动静分离 Nginx.conf配置详解 Centos7安装Nginx 下载地址&#xff1a;nginx: download 中间这个就是tar.gz包 Centos7安装Nginx 下载nginx-1.16.1.tar.gz上传到Centos7中的/user/local目…