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

news2024/12/25 13:23:51

前言

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

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

系统分辨率与像素精度

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

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

例如相机的像素为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.coloradmin.cn/o/1413192.html

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

相关文章

Vue 响应式原理源码剖析

文章目录 1. 说明2. 初始化initState()initProps()initData()observe()ObserverdefineReactive() 3. 数据代理4. 模板解析4.1. 模板解析的基本流程4.2. 模板解析(1): 大括号表达式解析4.3. 模板解析(2): 事件指令解析4.4. 模板解析(3): 一般指令解析 5. 数据绑定5.1. 数据绑定5…

实体识别与分类方法综述

目录 前言1 实体识别简介2 基于模板和规则的方法3 基于序列标注的方法3.1 常见序列标注模型3.2 模型参数估计和学习问题3.3 常见序列预测模型 4. 基于深度学习的实体识别方法5 基于预训练语言模型的实体识别5.1 BERT、GPT等预训练语言模型5.2 解码策略 6 特殊问题与挑战6.1 标签…

Ultraleap 3Di新建项目之给所有的Joint挂载物体

工程文件 Ultraleap 3Di给所有的Joint挂载物体 前期准备 参考上一期文章,进行正确配置 Ultraleap 3Di配置以及在 Unity 中使用 Ultraleap 3Di手部跟踪 新建项目 初始项目如下: 新建Create Empty 将新建的Create Empty,重命名为LeapPro…

10-微服务Nacos Config的通用配置

一、解决不同环境相同配置问题-自定义Data ID配置 在实际的开发过程中,我们的项目所用到的配置参数有的时候并不需要根据不同的环境进行区分,生产、测试、开发环境所用到的参数值是相同的。那么解决同一服务在多环境中,引用相同的配置的问题…

HTTP中POST、GET、PUT、DELETE方式的区别

GET请求会向数据库发索取数据的请求,从而来获取信息,该请求就像数据库的select操作一样,只是用来查询一下数据,不会修改、增加数据,不会影响资源的内容,即该请求不会产生副作用。无论进行多少次操作&#x…

uni-app 微信小程序之红包雨活动

文章目录 1. 页面效果2. 页面样式代码 1. 页面效果 GIF录屏有点卡&#xff0c;实际比较丝滑 每0.5s掉落一个红包控制4s后自动移除红包点击红包消除红包&#xff08;或者自行1&#xff0c;或者弹窗需求&#xff09; 2. 页面样式代码 <!-- 红包雨活动 --> <template>…

【TCP】重传与超时机制

前言 在网络通信的世界里&#xff0c;传输控制协议&#xff08;TCP&#xff09;扮演着一个至关重要的角色。它确保了数据的可靠传输&#xff0c;就像邮差确保每一封信都能准确无误地送达收件人手中一样。但是&#xff0c;网络环境充满了不确定性&#xff0c;数据包可能会因为各…

(大众金融)SQL server面试题(3)-客户已用额度总和

今天&#xff0c;面试了一家公司&#xff0c;什么也不说先来三道面试题做做&#xff0c;第三题。 那么&#xff0c;我们就开始做题吧&#xff0c;谁叫我们是打工人呢。 题目是这样的&#xff1a; DEALER_INFO经销商授信协议号码经销商名称经销商证件号注册地址员工人数信息维…

web3d-three.js场景设计器-mesh网格添加多模型-模型描述随动

给场景中的模型加上广告牌描述&#xff0c;可以在模型的MESH里添加Sprite&#xff0c;配上相应的文字&#xff0c; 描述Sprite的位置则是在mesh中的相对位置&#xff0c;比如模型高10&#xff0c;那么我们可以给一个y等于10 来进行适配&#xff0c;这样在移动模型mesh网格时可…

重磅!讯飞星火V3.5马上发布!AI写作、AI编程、AI绘画等功能全面提升!

讯飞星火大模型相信很多友友已经不陌生了&#xff0c;可以说是国内GPT相关领域的龙头标杆&#xff0c;而对于1月30日即将在讯飞星火发布会发出的V3.5新版本来说&#xff0c;讯飞星火V3.5与之前版本相比&#xff0c;性能提升方面相当明显&#xff0c;在提示语义理解、内容生成、…

常见の算法链表问题

时间复杂度 1.链表逆序 package class04;import java.util.ArrayList; import java.util.List;public class Code01_ReverseList {public static class Node {public int value;public Node next;public Node(int data) {value data;}}public static class DoubleNode {publi…

零基础学习数学建模——(四)备战美赛

本篇博客将讲解如何备战美赛。 什么是美赛 美赛&#xff0c;全称是美国大学生数学建模竞赛&#xff08;MCM/ICM&#xff09;&#xff0c;由美国数学及其应用联合会主办&#xff0c;是最高的国际性数学建模竞赛&#xff0c;也是世界范围内最具影响力的数学建模竞赛。 赛题内容…

Unity3D学习之UI系统——NGUI

文章目录 1. 前言2 NGUI下载和导入3. NGUI三大组件3.1 Root组件3.1.1 分辨率概念3.1.2 Root的作用3.1.3 root脚本各组件3.1.4 总结 3.2 Panel 组件3.2.1 Panel的作用3.2.2 Panel的控件3.2.3 总结 3.3 EventSystem组件3.3.1 作用3.3.2 组件3.3.3 总结 4 图集制作4.1 图集的作用4…

华为和苹果手机迁移备忘录数据方法

在数字时代&#xff0c;手机已成为我们生活的重要组成部分&#xff0c;而备忘录更是我们日常不可或缺的小助手。但当我们从华为切换到苹果&#xff0c;或从苹果转向华为时&#xff0c;如何确保那些重要的备忘信息不丢失&#xff0c;顺利迁移到新手机中呢&#xff1f; 我曾亲身…

Java实现加权平均分计算程序WeightedAverageCalculator

成绩加权平均分计算程序&#xff0c;带UI界面和输入保存功能。 因为本人对成绩的加权均分有所关注&#xff0c;但学校的教务系统查分时往往又不显示个人的加权均分&#xff0c;加之每次手动敲计算器计算很麻烦就花了点时间写了一个加权均分计算程序自用&#xff0c;顺便开源。…

Vue组件化-插槽Slot和非父子通信

一、认识插槽Slot作用 1.认识插槽Slot 在开发中&#xff0c;我们会经常封装一个个可复用的组件&#xff1a; 前面我们会通过props传递给组件一些数据&#xff0c;让组件来进行展示&#xff1b;但是为了让这个组件具备更强的通用性&#xff0c;我们不能将组件中的内容限制为固…

鸿蒙开发第2篇__装饰器

在ArkTS中&#xff0c; 有装饰器语法。 装饰器用于装饰类、结构、方法、变量&#xff0c;赋予其特殊的含义。 1. Component 表示自定义组件&#xff0c; 用此装饰器的组件是可重用的&#xff0c;可以与其他组件重合 此装饰器装饰的 struct 表示该结构体具有组件化能力&#…

3. MATLAB中Plot绘制放大特定的区域

在MATLAB中&#xff0c;我们经常需要绘制图形并进行一些自定义的操作。在本示例中&#xff0c;我们将演示如何在MATLAB中绘制一个图形&#xff0c;并通过放大某个特定的区域来突出显示。 ## 原始图形 首先&#xff0c;我们绘制了一个包含正弦和余弦函数的图形。 % MATLAB 代…

【STM32】STM32学习笔记-BKP备份寄存器和RTC实时时钟(42)

00. 目录 文章目录 00. 目录01. BKP简介02. BKP特性03. BKP基本结构04. RTC简介05. RTC主要特性06. RTC框图07. RTC基本结构08. 硬件电路09. RTC操作注意事项10. 附录 01. BKP简介 备份寄存器是42个16位的寄存器&#xff0c;可用来存储84个字节的用户应用程序数据。他们处在备…

设计模式_组合模式_Composite

案例引入 学校院系展示 编写程序展示一个学校院系结构: 需求是这样&#xff0c;要在一个页面中展示出学校的院系组成&#xff0c;一个学校有多个学院&#xff0c;一个学院有多个系 【传统方式】 将学院看做是学校的子类&#xff0c;系是学院的子类&#xff0c;小的组织继承大…