相机和镜头选型需要注意哪些问题

2023-05-16

背景:

最近需要优于项目需求需要对工业相机和镜头进行选型,于是我就开启的学习相机之旅,虽然我一直在做机器视觉方向,但是我对相机的了解还是很少,我想正好趁这次机会好好学习一下。如果有错误的观点请指正。

一、相机相关的一些指标

1. 靶面尺寸

     相机的靶面尺寸就是用于接收光信号的传感器的尺寸,业界规定在描述靶面尺寸时1英寸=16毫米(当然实际情况下1英寸=25.4mm)。相机的靶面尺寸是用靶面对角线的长度与16mm的比值表示的,如对角线为4mm的靶面尺寸为1/4”,然后根据4:3的长边短边比,利用勾股定理就可以计算出靶面的边长。在其他条件一致的情况下,相机的靶面尺寸越大则可获得的视野范围越大。

 

 

图1. 相机靶面尺寸

2. 像元尺寸

      像元就是传感器上的感光单元,这些感光单元可以把光信号转换为电信号。如像元尺寸为4.8um*4.8um。像元有方形的也有长方形的。

3. 相机分辨率

      分辨率就是相机的传感器上即感光靶面上横向和竖向各有多少个感光单元(像元)。当然“靶面尺寸”,“像元尺寸”和“分辨率”三者之间是有联系的,比如我们已经知道了“像元尺寸”和“分辨率”那么我们就可以直接计算出相机靶面的长和宽出来,如“分辨率”为2592*2048,“像元尺寸”为4.8um,那么靶面长=2596*0.0048=12.44mm,靶面宽=2048*0.0048= 9.83mm,这与在图1中靶面尺寸为1”的长边和宽边的长度有些出入,这主要是近似的缘故。

4. 镜头分辨率

  •  什么是传递函数(又叫MTF),什么是极限空间分辨率

        简单来说MTF是空间分辨率的一种表达方式,单位:线对/mm。每个光学或者光电成像器件都有各自的MTF,镜头有MTF,相机也有MTF。光学器件或者光电成像器件的MTF越好,或者MTF对应的空间截止频率越高,证明器件自身的空间分辨率越好,越能看清楚更小的细节。MTF对应的空间截止频率又叫极限空间分辨率。

  • 镜头中的百万像素,二百万像素,五百万像素是指什么?

       其实,镜头中的百万像素,二百万像素,五百万像素同样是指镜头的空间分辨率,因为镜头必须配合相机使用,为了方便记忆镜头和相机的匹配关系,人们常采用对应的相机的分辨率来命名镜头,这种命名方式其实是不科学的,同时给新接触视觉系统的人带来很多误解,经常或机械的套用百万像素分辨率相机对应百万像素分辨率镜头,二百万像素分辨率相机对应二百万像素分辨率镜头,五百万像素分辨率相机对应五百万像素分辨率镜头。其实镜头与相机对应的不是相机本身的像素分辨率(像素数),而是各自的极限空间分辨率。按照目前公开的性能指标来说,百万像素镜头对应的极限空间分辨率为90线对/mm,二百万像素镜头对应的极限空间分辨率为110线对/mm,五百万像素镜头对应的极限空间分辨率为160线对/mm,因此百万像素镜头配合相机的极限空间分辨率必须低于90线对/mm, 二百万像素镜头配合相机的极限空间分辨率必须低于110线对/mm,五百万像素镜头配合相机的极限空间分辨率必须低于160线对/mm。而决定相机极限空间分辨率的并不是相机自身的像素分辨率,而是相机的单个像元尺寸大小。

  • 相机的极限空间分辨率

       相机的极限空间分辨率代表了相机能够分辨的空间最小细节,其计算公式可以理解为:1/(单个像元尺寸*2),单位:线对/mm。为啥需要在像元尺寸上乘以2呢,这是因为,两个像元才对应一对黑白条,如下图所示。

图2. 两个像元对应一对黑白条

 

  • 相机和镜头的配套原则

       镜头的极限空间分辨率必须高于相机的极限空间分辨率,这样才能让相机实现最佳成像性能。

二、项目中如何根据实际需要选择合适的相机和镜头呢?

1. 相机输出接口选择USB3.0还是GIGE千兆网

      同等像素条件下,各种接口的总线其相机帧率是不一样的,一般来说Camera Link>USB3>GIGE>1394B>USB2,1394A。现在最快的是Camera Link总线,USB3的理论速度达到了5Gbps即640MB,实际表现来看,应该有80%的有效带宽,即有512M左右的总带宽可供实际传输,这样如果一个500万像素的相机,每幅图像5M,那么也可能达到100帧每秒,速度也非常快了。而对于GIGE千兆网相机,500万像素的相机,较快的可以做到23FPS。1394B的500万像素相机可以做到13FPS,USB2,1394A一般为5~6帧的样子。除了考虑两者的传输速率,还要考虑两者的工作距离,通常情况下USB3.0的工作距离为5米以内,GIGE千兆网接口的工作距离为100米以内。根据下表对比USB3.0和GIGE接口的特点选择适合自己的接口形式。

表1. USB3.0和GIGE对比

 

带宽

理论下载速度

实际下载速度

500万图像传输帧率

优点

缺点

USB3.0接口

5Gbps

640MB

约512MB

约100fps

1. 帧率高
2. 不需要单独供电

1. 工作距离近,通常在5m内。
2. 占用CPU内存。
3.电脑端无卡扣容易被扯掉

GIGE接口

1KMbps

128MB

约100MB

约20fps

1. 传输距离远,通常在100m以内。
2. 不占用CPU内存。
3. 两头有卡扣,确保连接稳定。

1. 帧率没有USB3.0高。
2. 需要单独供电。

 

2. 选择图像分辨率和帧率

        第一步中的选择,其实是确定了总的带宽,然后根据我们对帧率的需求来确定分辨率,倘若我们要求帧率为20帧,如果选用GIGE接口,那么一帧图像的大小不超过5M,也就是一帧图像分辨率为500万左右,如果选择USB3.0接口,相同的帧率,那么一帧图像的大小可以放宽到25M,也就是不超过2500万像素。如果你想要得到更高的帧率,那就不得不降低分辨率。如果你想帧率和分辨率都很高,那么就选择传输速率较高的USB3.0接口形式,但是要考虑5米以内的工作距离是否满足需求。

3. 确定分辨率

        根据第二步我们可以确定,我们可选的分辨率大小,当然我们希望分辨率越大越好,所以在允许的范围内,我们要选择分辨率最大的。如果已经确定接口是GIGE接口,帧率为20帧,分辨率为500万像素,然后就是选择实际的分辨率,假设实际测试场地为5000*4000长宽比为1.25,所以我们在选择的时候,也尽量选择分辨率的长宽比接近1.25的相机,如之前选择的2592*2048,为530万像素的相机,长宽比为1.266与1.25较为接近。那么这时达到的精度差不多为2mm/pixel。如果要提高精度,要不然就提高分辨率,那样帧率势必要降低,要不然就换成USB3.0输出接口。

4. 选择相机靶面尺寸

       在候选的相机中,我们要选择靶面尺寸更大的相机,如有2/3"和1“的可供选择,那么我们就选择后者,靶面尺寸大,相对应的得到的视场范围也就越大。

5. 选择相机颜色

       在没有彩色图像分析需求时,我们要选择黑白相机,因为黑白相机使用单色光源成像质量要比彩色相机使用复合白光的质量要好。

6. 选择相机的曝光时间

       目标的运动速度对相机的最小曝光时间提出了要求,如果目标运动速度为300mm/s, 我们的测量精度为1mm/pixel,那么我们必须考虑,物体的运动引起的拖影必须要小于我们的精度1mm,目标移动1mm,需要3.3ms,这就要求我们的相机的曝光时间必须小于3.3ms, 其实我们工业相机最快曝光时间可达几十到一百多微秒的样子,所以完全可以满足我的精度需求。

7. 选择传感器类型

        如果拍摄的目标是静止不动的,为了节约成本,可以考虑使用CMOS相机,而如果目标是运动的,则优先考虑CCD相机,如果需要高速采集,这里的高速是指很高的采集速度,而不是目标物体的运动速度,可以考虑CMOS相机,因为CMOS相机的采集速度要优于CCD相机,如果需要高质量的图像,如进行尺寸测量,可以考虑CCD相机,在小尺寸的传感器中,CCD的成像质量优于CMOS。

8. 计算镜头焦距

  • 经过上面的指标基本上可以确定相机,然后就要选择镜头,首先我们要根据相机的靶面尺寸,实际测试中的工作距离和视野范围来计算焦距。焦距f = 工作距离(WD)*靶面尺寸(H or V)/视野范围(H or V)。
  • 在选择镜头时要考虑镜头的相面大小与相机的感光面大小是否兼容,遵循“大的服从小的”原则,即镜头的相面大小不得小于相机感光面大小,否则边缘视场的像质不保。
  • 选择的镜头的接口要与相机接口一致。
  • 一般来说相机的成像质量要和镜头的成像质量相对应,差异不能太大。镜头再好,机身传感器的分辨率上不去,其优质的取景能力也表现不出来;机身画幅和分辨率再高,镜头画质不给力,也捕获不到优秀的画质。倘若选择的相机的像元尺寸为4.8um*4.8um,先计算相机的极限空间分辨率为:1/(0.0048*2) = 104线对/mm,那么我们选择镜头时,要挑选那些空间分辨率不低于104线对/mm的镜头,也就是选择二百万像素的镜头,空间分辨率为110线对/mm,就可以了。倘若选择的相机的像元尺寸为3.45um*3.45um,那相机对应的空间分辨率为:1/(0.00345*2)= 145线对/mm,那么此时我们就应该选择500万像素分辨率的镜头了,对应的空间分辨率为160线对/mm,当然还要考虑相机和镜头靶面尺寸的匹配。

三、实例分析

表2. 数据罗列

 

指标

数据/mm

实际场景

 

 

视野范围H

5000

视野范围V

4000

工作距离

3200

相机参数

 

 

 

 

 

 

靶面尺寸

1"

像元尺寸

4.8um*4.8um

分辨率

2592*2048

最大帧率

22

颜色

黑白

输出接口

GIGE

镜头接口

C-Mount

镜头参数

 

 

 

 

 

焦距

6mm

最大像面

1"

镜头分辨率

1200万

视场角H(度)

95.4

视场角V(度)

78.4

镜头接口

C-Mount

下面是之前选的海康的工业相机,千兆网接口,1", 500万分辨率,帧率不高于22帧,为了达到更大的视野,所以优先选择大靶面的。

图3. 选择的海康工业相机

确定相机后根据相机的靶面尺寸,工作距离,视野范围来计算所需镜头的焦距。

焦距f = 工作距离WD*靶面尺寸(H or V)/视野范围(H or V) = 3200*12.8/5000 = 8.19,所以安全起见,我们需要选择焦距小于8的镜头,所以我决定选6mm焦距的镜头。

关于镜头的选择,首先,焦距要选符合我们项目需求的,如上面计算的6mm, 其次就是要尽可能保证,镜头对应的靶面尺寸与相机的靶面尺寸兼容,如下面第一幅图中,该6mm焦距的镜头就兼容1”和2/3"的靶面尺寸。我们在选选择镜头时,单从靶面尺寸这个指标来看,所选镜头的靶面尺寸要大于或者等于相机的靶面尺寸,但是绝不能小于,否则,相机的视野就被镜头给限制了。除了要看镜头的焦距,靶面尺寸,还要看镜头的分辨率,关于镜头的分辨率这快我还有不少困惑,但是选择的思路是,在保证镜头的焦距和靶面尺寸满足需求的前提下,一定要确保,镜头的分辨率要高于相机的分辨率,这样可以把相机和镜头的潜力都发挥出来,但是如果镜头的分辨率太低,那再好的相机,高质量的成像效果也得不到了,但是也不需要无限的高,否则镜头的分辨率又被浪费了。

我问了镜头1的客服,他这款镜头的分辨率也是1200万的,但是为啥不在表格中标识出来呢?

表3. 选取的镜头1的指标

在镜头4的指标表格中标识了镜头的分辨率为1200万,这里并没有使用镜头的空间分辨率lp/mm来表示,大概是表示成与相机分辨率一致的形式,便于买家理解吧。

标4. 选取的镜头2的指标

参考文献

1. http://www.skcircle.com/?id=1217

2. https://mp.weixin.qq.com/s/K1TtIH8EJcZxHVRrsIN4qQ

3. https://blog.csdn.net/qq_27923041/article/details/106858708

4. http://www.skcircle.com/?id=1193

相机镜头购买链接

1. https://item.taobao.com/item.htm?spm=a1z0d.6639537.1997196601.86.119e7484FcxYWy&id=613134277199

2. https://detail.tmall.com/item.htm?spm=a1z0d.6639537.1997196601.13.119e7484FcxYWy&id=610617969641

3. https://item.taobao.com/item.htm?spm=a1z0d.6639537.1997196601.24.119e7484FcxYWy&id=563772167933

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

相机和镜头选型需要注意哪些问题 的相关文章

随机推荐

  • apm软件仿真+QGC地面站 环境搭建

    本教程使用场景 xff1a apm软件仿真运行于虚拟机 ubuntu环境 qgc地面站位于windows 系统 两个环境在同一台电脑上 一 apm仿真环境搭建 1 安装vm虚拟机及ubuntu 18 2 ubuntu下 下载Ardupilo
  • GPS基础知识(四)、GPS信号结构

    GPS信号结构 xff08 三层 xff09 载波伪码数据码 一 xff0c 载波 载波是三层的基础 xff0c 伪码和数据码都是调制在载波上才能发送 GPS有两个载波频率 xff0c L1和L2 xff0c L1为1575 42MHz x
  • 简述四种干扰观测器(三)————基于扩张状态观测器的干扰观测器

    本节以最广泛应用的二阶系统为例介绍通用的线性观测器 非线性的扩张状态观测器将在将在自抗扰控制中介绍 观测器设计问题 xff0c 就是重新构造一个系统 xff0c 利用原系统中可以直接测量到的输出向量和输入向量作为它的输入信号 xff0c 并
  • Typora+PicGo+阿里云oss

    阿里云Oss图床 43 PicGo 43 Typora 之前用的gitee网上说可能会不稳定 xff0c 我就改成了阿里云OSS对象存储 参考 xff1a PicGo配置阿里云OSS 栗筝i的博客 CSDN博客 picgo 阿里云 1 注册
  • centos安装软件失败

    错误 xff1a 为仓库 appstream 下载元数据失败 Cannot prepare internal mirrorlist No URLs in mirrorlist 问题参考 CentOS Linux 8 AppStream 错误
  • Docker容器安装ssh

    Docker 容器里安装ssh和连接ssh 在服务器创建容器中安装了anaconda xff0c 为了方便敲代码 xff0c 用pycharm连接容器中的anaconda xff0c 我们需要安装ssh服务 前提 创建好docker容器 x
  • 阿里云创始人王坚正式回归阿里云

    5 月 11 日消息 xff0c 阿里云创始人王坚正式回归阿里云 据多名知情人士透露 xff0c 早在 2022 年底 xff0c 王坚其实就已经应张勇等人邀请 xff0c 以幕后顾问的角色进行考察和指导阿里云的工作 经过几个月的磨合和协商
  • random.seed()的用法

    random random 可以用来生成一个随机数 xff0c 如果在生成随机数之前 xff0c 先调用random seed x xff0c x可以是一个随机整数 xff0c 这时候在调用random random xff0c 则种子x和
  • PRGC: Potential Relation and Global Correspondence Based Joint Relational Triple Extraction

    标题 xff1a PRGC xff1a 基于潜在关系和全局对应的联合关系三元组抽取 摘要 联合抽取实体和关系的局限性 xff1a 关系预测的冗余性 xff0c 基于span抽取泛化能力差和效率低 本文从新角度将此任务分解为三个子任务 xff
  • 查看显存使用情况:nvidia-smi

    在装有nvidia驱动的机器终端输入nvidia smi xff0c 可以查看显卡的状况 xff0c 其输出界面如下 xff1a NVIDIA 系统管理接口 xff08 nvidia smi xff09 是一个命令行实用程序 xff0c 基
  • Docker更换Docker Root Dir目录

    原因 xff1a 我在加载自己的镜像时 xff0c 发现root空间不足 xff0c 无法加载 xff0c 所以需要更改Docker Root Dir目录 xff0c 才能放下我的镜像文件 具体方法 一 查看默认目录 执行docker in
  • PHP关于时间的整理

    year 61 date 34 Y 34 month 61 date 34 m 34 day 61 date 34 d 34 dayBegin 61 mktime 0 0 0 month day year 当天开始时间戳 dayEnd 61
  • 制作.sens数据集跑通bundlefusion

    1 主要参考这篇博客实现 https blog csdn net Wuzebiao2016 article details 94426905 2 首先就是将自己采集的RGBD图像的保存格式向Bundlefusion需要的格式对齐 xff0c
  • python之moviepy库的安装与使用

    目的 xff1a 因为需要保存一个大大的 mp4视频 xff0c 以防过程中设备出现异常导致整个长长的视频无法正常保存 xff0c 所以采用分段保存视频的方式 xff0c 每500帧保存一段 xff0c 然后再将视频合到一起 xff0e 最
  • 使用iai_kinect2标定kinectV2相机

    实验背景 xff1a 因为需要制作bundlefusion需要的数据集 xff0c 所以需要使用kinectV2相机获取rgbd图像 xff0c 年前的时候在我的笔记本上安装了libfreenect2库和iai kinect2 xff0c
  • python中将四元数转换为旋转矩阵

    在制作bundlefusion时 想测试TUM数据集 并且将groundtruth写入到数据集中 TUM中给定的groundtruth中的旋转是使用四元数表示的 而bundlefusion中需要SE3的形式 所以我需要首先将四元数转换为旋转
  • 做了8年游戏开发的程序员对未来的忧虑

    编者按 xff1a 这位做了8年游戏开发的程序员的忧虑或许不是个例 xff0c 也可能是我们许多人正在经历或者将要经历的一个人生迷茫期 鉴于此 xff0c 希望他的忧虑和对未来的思考也能对你在现在或者将来的选择上有所帮助 我 22 岁毕业
  • BundleFusion那些事儿

    背景 xff1a 前面几篇博客中写了很多关于BundleFusion的东西 xff0c 主要包括bundlefusion的论文阅读笔记 xff0c sens数据集的生成等 xff0c 经过最近几天的工作 xff0c 我对bundlefusi
  • BundleFusion代码框架讲解

    背景 xff1a 前面用了几篇文章来记录和总结了 xff0c 我在研究bundlefusion过程中遇到的一些问题以及解决方法 xff0c 本来想实现给bundlefusion输入先验轨迹 xff0c 然后让其根据给定的轨迹进行重建 xff
  • 相机和镜头选型需要注意哪些问题

    背景 xff1a 最近需要优于项目需求需要对工业相机和镜头进行选型 xff0c 于是我就开启的学习相机之旅 xff0c 虽然我一直在做机器视觉方向 xff0c 但是我对相机的了解还是很少 xff0c 我想正好趁这次机会好好学习一下 如果有错