【相机标定系列】相机sensor传感器尺寸,CMOS靶面尺寸,分辨​率​和​镜头​焦距,畸变处理效果,相机主点

【相机标定系列】相机sensor传感器尺寸,CMOS靶面尺寸,分辨​率​和​镜头​焦距,畸变处理效果,相机主点https://blog.csdn.net/j_shui/article/details/77262947相机标定是进行视觉测量和定位的基础工作之一,标定参数准确与否直接关系到整个系统的精度,为此根据自己项目中的经验及参考相关的商用视觉软件的做法将相机标定过程中标定图片的获取过程中需要注意的问题总结如下:标定板拍摄的张数要能覆盖整个测量空间及整个测量视场,把相机图像分成四个象限(如图1所示),应保证拍摄的标定板图像均匀分布在四个象限中,且在每个象限中建议进行不同方向的两次倾斜,图2是一组推荐摆放方式图片

大家好,又见面了,我是你们的朋友全栈君。

https://blog.csdn.net/j_shui/article/details/77262947

https://www.ni.com/zh-cn/support/documentation/supplemental/18/calculating-camera-sensor-resolution-and-lens-focal-length.html#section-489585536

相机标定是进行视觉测量和定位的基础工作之一

概述

首先,​定义​基本​术语。

视野 (FOV):​摄像​头​的​采集​图片​的​区域
最小​特征:​要​在​图片​中​检测​到​最小​特征​的​大小
工作​距离 (WD):​镜头​前端​至​被​检​物体​之间​的​距离

请​参考​下​图:

在这里插入图片描述

在这里插入图片描述
按照​下列​两​个​步骤​为​应用​场景​选择​摄像​头​最低​分辨​率​以及​合适​的​焦距。

计算​最低​传感器​分辨​率:了解​视野​和​要​检测​的​最小​特征。
选择​摄像​头:选定​摄像​头​之后,​可​使用​传感器​大小​计算​得到​焦距。

传感器​分辨率

图像​的​分辨​率​就是​单位​面积​内​像​素​点​的​数量。​分辨​率​有​两​个​维​度,​例如,​640X480。​可以​单独​计算​每​个​维​度。​简单​起​见,​通常​只​计算​一个​维​度。

如​要​对​图片​进行​精确​测量,​最小​特征​必须​要有​两​个​以上​的​像​素。​计算​最低​传感器​分辨​率:​视野​的​大小​(实际​单位)​乘​以​2(或​每​个​最小​特征​的​像​素数),​除以​最小​特征​的​大小,​如​下列​公式​所​示:

在这里插入图片描述

计算​传感器​分辨​率:

例​1: 视野​为​100mm,​最小​特征​为​1mm。​根据​公式,​所需​的​最低​传感器​分辨​率​为​200​像​素。​可​选择​分辨​率​为​640x480​的​相机,​因为​两​个​维​度​均​大于​最低​200​像​素​的​要求。
例​2: 视野​为​500mmX600mm,​最小​特征​为​2mm。​假设​最小​特征​是​直径​为​2mm​的​圆形​区域。​根据​公式,​所需​的​最低​传感器​分辨​率​为​500X600​像​素。​在​该​情况​下,​640X480​的​传感器​不​适用。​在​这种​情况​下,​可​选择​分辨​率​为​1024X768 或者 1280X1024​的​摄像​头。

只要​已知​三​个​变量,​就​可​使用​该​公式​求得​其他​变量​的​值。

传感器​尺寸

传感器​尺寸​是​指​传感器​的​实际​大小。​产品​规范​上​通常​不会​注明​该​值。​将​像​素​大小​乘​以​分辨​率,​即可​得到​传感器​尺寸。

计算​传感器​大小:

例​3:Basler acA1300-30um​的​像​素​大小​为​3.75 x 3.75um,​分辨​率​为​1296 x 966​像​素。​传感器​尺寸​为​(3.75um x 1296) x (3.75um x 966) = 4.86 x 3.62mm。

传感器​规格

传感器​规格​是​指​传感器​的​实际​大小。​传感器​规格​跟​像​素​大小​不​相关。​该​参数​用于​判断​摄像​头​适用​的​镜头。​为了​使​镜头​与​摄像​头​兼容,​镜头​的​规格​需要​大于​或​等于​传感器​规格。​如果​使用​较​小​规格​的​镜头,​则​图像​会​出现​渐​晕​现象,​导致​在​镜头​规格​区域​之外​的​传感器​区域​变​暗。

在这里插入图片描述
在这里插入图片描述

焦距

一般​情况​下,​镜头​为​定​焦​镜头。​但是,​工作​距离​是​灵活​可变​的。​简便​起​见,​计算​工作​距离​和​焦距​的​比值。​这样​有助​于​使用​特定​的​镜头​焦距​判断​所需​的​工作​距离。​如果​工作​距离​是​有限​的,​通过​该​比率​计算​可​得到​该​工作​距离​下​适用​的​镜头​焦距。​这样​有助​于​使用​一个​范围​的​工具​距离​获得​镜头​焦距​的​范围。​选择​了​镜头​之后,​即可​重新​计算​所需​的​精确​工作​距离。

计算​公式​如下:
在这里插入图片描述
计算​镜头​焦距:

例4(使用​灵活​的​工作​距离):​视野​为​508mm  x 381mm,​传感器​大小​为​8.47mm(对角线)。​工作​距离​与​焦距​的​比例​为​381mm / 8.47mm = 45:1。​所以,​如​选择​25mm​的​焦距​(约​1"),​则​需要​大约​1140mm (45")​的​工作​距离。​如​最大​工作​距离​为​889mm (35"),​通过​比例​(1:45)​倒​推​得到​最大​焦距​为​35/45 = 19.76mm (7/9")。​16mm​焦距​的​摄像​头​适用,​重新​计算​得到​工作​距离​为​711.2mm (28")。
例5 (使用​固定​工作​距离):​视野​为​609.6mm x 609.6mm,​传感器​规格​为​12.7mm(对角线),​工作​距离​为​1016mm。​为了​精确​地​得到​焦距,​需要​知道​传感器​的​长​宽​比。​如果​没有​长​宽​比,​对角线​也​可。​根据​上述​焦距​公式,​得到​焦距​为​(12.7X1016)/​609.6 = 21.2mm。​这​不是​一个​常见​的​焦距,​所以​需要​调整​工作​距离​或者​使用​可变​焦​的​非​标准​镜头。

定​焦​镜头​的​焦距​通常​为​固定​的​几个​值。​常见​的​镜头​焦距​包括​6​毫米、​8​毫米、​12.5​毫米、​25​毫米、​50​毫米。​一旦​您​选择​焦距​与​图像​采集​系统​所需​焦距​最​接近​的​镜头,​需​调整​工具​距离,​将​被​摄​物体​放在​焦点​位置。

注:短​焦​镜头​(小​于​12​毫米)​拍摄​的​图片​会​有​较大​的​扭曲​和​失真。​如​应用​场景​对​图像​失真​敏感,​请​尝试​增加​工作​距离​或​使用​较大​焦距​的​镜头。​如​无法​改变​工作​距离,​会​影响​您​可​选择​的​镜头​范围。

畸变处理

畸变前

在这里插入图片描述
畸变矫正

在这里插入图片描述

焦距:1.074097234609696e+03,1.071753430673165e+03

尺寸:1080,1920

内参矩阵
1.074097234609696e+03,0,0;
0,1.071753430673165e+03,0;
9.553145178698927e+02,5.794196521896478e+02,1

主点,主轴与像平面相交的点
9.553145178698927e+02,5.794196521896478e+02

畸变
-0.3751,-0.1204

相机主点(principal point)

相机主点(principal point),即相机畸变中心的基础矩阵估计方法

设相机前方一平面标定板的坐标为xc=[x,y,1]’,其所成的像的坐标为xd=[u,v,1]’,畸变矫正的坐标为xu,则xc与xd之间存在如下关系:
x c ∗ F ∗ x d = 0 xc*F*xd =0 xcFxd=0

其中F称为径向畸变基础矩阵(fundamental matrix for radial distortion),等于畸变中心点 e = [ c c 1 , c c 2 , 1 ] ′ e=[cc1,cc2,1]’ e=[cc1,cc2,1]叉乘H,如下:
F = e × H F = e × H F=e×H

其中H为标定板坐标系到相面的单应性矩阵。

理论上一张图片即可估计出principal point。首先通过标定板坐标xc和标定板所成相的像素坐标xd的匹配点对,通过八点算法估计出F矩阵,然后求出F矩阵的左零空间,并把该左零空间向量的第三个元素化为1,该向量的第一二个元素即为相机的principal point。如果有多张图片,即是所有F矩阵共同的左零空间。

小孔成像

在这里插入图片描述

在这里插入图片描述

这里要说明下,这是一个典型的小孔成像模型,与单目相机的成像原理类似。

中间通过红蓝的垂线是相机的主光轴,d是被测物体至镜头的距离,f为相机镜头的焦距,w为被测物体的实际宽度(高度),w’为物体在成像平面(感光元件)上的宽度(高度)。

根据相似三角形公式可得:f / d = w’ / w

由于f(相机镜头焦距)一般都是已知参数(买相机的时候总要选镜头焦距吧…),即使不清楚也可以通过计算得出,这里就不具体说了,w(实际物体宽或高)则是可以实际测得的常量。

相机参数

重点说下怎么通过计算得出w’(物像宽或高)。

举个栗子,假设你手上的相机是200w像素捕获画面尺寸为1920*1080,感光元件尺寸为1/2.7’’,宽高分别为5.3mm和4mm(估值),被测物体在画面上的像素宽高都为600 pixel,那么w’(x) = (5.3 / 1920 * 600)(mm),同样的,w’(y) = (4 / 1080 * 600)(mm)。关于感光元件尺寸和画面尺寸可以通过查看相机参数手册获得,而感光元件的宽和高可以通过其尺寸计算出来,这里直接扔张感光元件靶面尺寸表作为参考,图来源自网络:
在这里插入图片描述

这样,得知了 f,w,w’ ,就可以根据上文提到的相似三角形公式计算得出d啦。

不过以上考虑的的是理想情况,前提是保证物像光线通过主光轴,相机是完全无畸变的,且被测物体平面要与相机成像平面保持平行状态。在这里我使用的相机是无畸变工业相机(低程度畸变,完全没畸变的相机是不存在的…),如果是较为廉价的相机或者是广角镜头相机都会存在较大程度的画面畸变,可以通过软件进行校正。准确来说这些情况都属于无法完全消除的偏差,只能通过后期软件来尽量减少这种偏差。

以上也就是为什么单目测距的精度要比双目测距差的多的原因,但是在所需测量精度不需要很精确的情况(偏差 < 10% ~ 15%),以及成本受限的情况下,单目测距依然是首选方案,何况其实现起来也十分简单。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/135450.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 什么是ARP欺骗_ARP欺骗防范

    什么是ARP欺骗_ARP欺骗防范ARP欺骗的本质是把虚假的IP-MAC映射关系通过ARP报文发给主机,让主机把虚假的IP-MAC映射存入ARP缓存表(可能是IP地址错误,也可能是MAC地址错误),让其无法正确发送数据漏洞的根源ARP协议是无连接操作系统收到ARP请求或响应后无法确认senderMAC和senderIP真假ARP欺骗伪造网关攻击者B伪造ARP报文(senderIP地址是网关的,senderMAC地址不是网关的),发送给网段内的主机A,那么主机A就会把网关的ip地址和伪造的mac地址缓存到arp缓.

    2022年10月29日
  • 服务器查看外网IP地址和方法

    服务器查看外网IP地址和方法返回IP地址curlip.6655.com/ip.aspxcurlwhatismyip.akamai.comwget-qO-ifconfig.cocurlicanhazip.comdig+shortmyip.opendns.com@resolver1.opendns.comcurlident.mecurlv4.ident.mecurlcu…

  • softmax损失函数

    softmax损失函数cnn进行前向传播阶段,依次调用每个Layer的Forward函数,得到逐层的输出,最后一层与目标函数比较得到损失函数,计算误差更新值,通过反向传播逐层到达第一层,所有权值在反向传播结束时一起更新。losslayer是CNN的终点,接受两个Blob作为输入,其中一个是CNN的预测值,另一个是真实标签。损失层则将这两个输入进行一系列运算,得到当前网络的损失函数(LossFunction),

  • MyEclipse7.0破解下载

    MyEclipse7.0破解下载

    2021年11月16日
  • php对接亿乐社区,亿乐社区对接教程

    php对接亿乐社区,亿乐社区对接教程###:-:**亿乐社区**###1、打开网站网站:[http://www.124sq.cn/](http://www.124sq.cn/)有账号的直接登录,没有账号的注册一个###2、选择商品ID在左侧目录栏选一个,这里选择的是`刷名片赞专区`,然后选择一个商品点开![](https://img.kancloud.cn/b3/9f/b39f76546ed13c86ab2153247bc…

  • TP5与TP3.X对比

    TP5与TP3.X对比

    2021年10月12日

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号