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

背景:

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

一、相机相关的一些指标

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

 

 

 

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

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

相关文章

响应式网页布局 - W3Schools How-Tos 01

W3Schools教学系列 W3Schools是知名的网页设计/前端开发教学网站,不仅提供HTML、CSS、JavaScript等的详尽教学,还可以把它当作说明文件(Documents)。有经验的前端或多或少已经接触过这个网站,因为它经常出现…

正則表達式,终极使用!3个工具,搞定一切

文章前提,本人。不会正则的不论什么语法,仅仅懂一点正则的概念。本人从未自己写过正则,都是网上收罗进行改动的。相同。没有时间去研究正则。 可是为了方便,入手了几个工具。 如今就为大家一一展示。 第一个,regexBuil…

iOS 在tableview的侧滑事件里执行tableView.selectRow无效的解决办法

很奇怪的问题,在执行默认选中一个cell的时候,突然发现这句话不起作用了 (我的场景是:当前cell侧滑删除后,默认选中上一个cell) 搞了半天,终于发现罪魁祸首竟然是因为:这句话写在了侧…

VS2017 C++工程 执行python脚本

我解决了哪怕很小的一个问题,我也想记录下来来见证我的经历。 背景: 一、使用libhuru库生成pdf报告 最近参与一些测试工作,希望测试结束后能够根据测试得到的数据和图像自动生成测试报告,最开始调研到了生成报告的库有libharu和…

标准正弦波变频电源调制方式的实现

目前变频电源正不断向规模化、专业化、智能化、精细化方向发展。变频电源的技术随着工业电器电子制造的兴起而不断得到重视和发展。其中,中港扬以正弦脉SPWM为核心变频电源系统电路便是一个很好的代表。纯硬件电路在焊接电路上比较复杂,但是调节出来的SPWM波形比较完…

Jmeter教程索引贴

Jmeter教程索引贴 新的一年即将到来,不知不觉2015年自己在Jmeter方面总结的文章有十几篇,在此汇总一下,顺便也算是个总结吧。2016年,继续学习技术,总结,写文章。 一、基础部分: 使用Jmeter进行h…

类与接口(二)java的四种内部类详解

引言 内部类,嵌套在另一个类的里面,所以也称为 嵌套类; 内部类分为以下四种: 静态内部类成员内部类局部内部类匿名内部类一、静态内部类 静态内部类: 一般也称”静态嵌套类“,在类中用static声明的内部类。 因为是stat…

单例设计模式和多线程

单例设计模式 单例&#xff1a;整个项目中&#xff0c;有某个类或者某些特殊的类&#xff0c;属于该类的对象只能建立一个。 #include<iostream> using namespace std;class MyCAS { private:MyCAS(){}private:static MyCAS *m_instance;public:static MyCAS *GetInstanc…

运行imgui例程

背景&#xff1a;目前在做一个视觉测试系统&#xff0c;需要做一个界面&#xff0c;将相机获取的图像&#xff0c;以及测试过程中的数据呈现在界面上&#xff0c;在我印象里&#xff0c;做界面就用qt吧&#xff0c;直到这个月真要开始做界面了&#xff0c;我的领导给我建议用im…

性能测试总结(三)--工具选型篇

性能测试总结(三)--工具选型篇 本篇文章主要简单总结下性能测试工具的原理以及如何选型。性能测试和功能测试不同&#xff0c;性能测试的执行是基本功能的重复和并发&#xff0c;需要模拟多用户&#xff0c;在性能测试执行时需要监控指标参数&#xff0c;同时性能测试的结果不是…

创建一个最简单的imgui测试用例

在上一篇文章中&#xff0c;我们初步认识了一下imgui,并且成功运行了他提供的demo。这只是开始学习imgui的第一步&#xff0c;在实际使用时&#xff0c;我们需要将imgui应用到自己的工程中去&#xff0c;所以你需要具备将imgui加到你工程中去的能力&#xff0c;简单起见&#x…

idea中maven的setting.xml的配置

2019独角兽企业重金招聘Python工程师标准>>> <?xml version"1.0" encoding"UTF-8"?> <settings xmlns"http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance&qu…

ref和out区别总结

ref&#xff1a;是必需要先初始化才能用,但调用时可以对它什么也不做.out&#xff1a;可以不初始化也能用,但调用时一定要对其赋值(即使已经初始化的也要赋值,哪怕是赋一个和原来一样的值).转载于:https://www.cnblogs.com/gjnsmallworld/p/7216206.html

继 承(面向对象特征之一)

1&#xff1a;成员变量。 当子父类中出现一样的属性时&#xff0c;子类类型的对象&#xff0c;调用该属性&#xff0c;值是子类的属性值。 如果想要调用父类中的属性值&#xff0c;需要使用一个关键字&#xff1a;super This&#xff1a;代表是本类类型的对象引用。 Super&…

如何将cv::Mat类型转换为imgui中的ImTextureID类型

背景&#xff1a; 我原来的工程是使用opencv的&#xff0c;所以程序中的图像都是表示为cv::Mat类型&#xff0c;为了能够在imgui窗口中显示我的cv::Mat的图像&#xff0c;我找到了下面这个函数&#xff1a; void ImGui::Image(ImTextureID user_texture_id, const ImVec2&…

react native 原生模块桥接的简单说明

原文出自&#xff1a;https://github.com/prscX/awes...博客链接&#xff1a;https://ssshooter.com/2019-02... Android 创建原生模块包 通过继承 ReactPackage 为你的原生模块包创建 Java 类&#xff0c;可以这么写&#xff1a;覆盖 createNativeModules 和 createViewManage…

UVa 1354 天平难题 枚举二叉树

题意&#xff1a;给出房间宽度 r 和 s 个挂坠的重量 wi&#xff0c;设计一个尽量宽的天平&#xff0c;挂着所有挂坠。天平由一些长度为 1 的木棍组成&#xff0c;木棍的每一端要么挂一个挂坠&#xff0c;要么挂另外一个木棍。 这题卡了很久&#xff0c;看了很多大神的代码&…

通过指针便利图像元素

for (size_t y 0; y < image.rows; y) {//row_ptr为第y行的头指针&#xff0c;unsigned char* row_ptr image.ptr<unsigned char>(y);for (size_t x 0; x < image.cols; x) {//data_ptr: 指向待访问像素unsigned char* data_ptr &row_ptr[x*image.channels…

[精华][推荐]SSO CAS单点登录框架学习 搭建详细步骤及源码

1.了解单点登录 SSO 主要特点是: SSO 应用之间使用 Web 协议(如 HTTPS) &#xff0c;并且只有一个登录入口. SSO 的体系中有下面三种角色: 1) User(多个) 2) Web 应用(多个) 3) SSO 认证中心(一个) 2.SSO 实现包含以下三个原则 1) 所有的登录都在 SSO 认证中心进行。 2) SS…

电脑下载的M4A格式文件怎么转换为MP3格式

M4A文件格式并不是一个家喻户晓的名字&#xff0c;与&#xff2d;&#xff30;&#xff13;格式相比&#xff0c;知名度远远落后。但是&#xff0c;这并不意味着它无关紧要&#xff0c;有时候我们下载的音乐可能就是M4A格式的&#xff0c;如果换一个设备播放可能就会出现格式不…