【相机标定系列】相机sensor传感器尺寸,CMOS靶面尺寸,分辨率和镜头焦距,畸变处理效果,相机主点
文章目录
- 概述
- 传感器分辨率
- 传感器尺寸
- 传感器规格
- 焦距
- 畸变处理
- 相机主点(principal point)
- 小孔成像
- 相机参数
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之间存在如下关系:
xc∗F∗xd=0xc*F*xd =0xc∗F∗xd=0
其中F称为径向畸变基础矩阵(fundamental matrix for radial distortion),等于畸变中心点e=[cc1,cc2,1]′e=[cc1,cc2,1]'e=[cc1,cc2,1]′叉乘H,如下:
F=e×HF = e × HF=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%),以及成本受限的情况下,单目测距依然是首选方案,何况其实现起来也十分简单。
【相机标定系列】相机sensor传感器尺寸,CMOS靶面尺寸,分辨率和镜头焦距,畸变处理效果,相机主点相关推荐
- 相机标定——张正友棋盘格标定法
目录 为什么需要相机标定? 相机标定可以做什么? 相机标定后可以得到什么? 什么情况下需要借助相机标定的方法? 相机标定的原理 实现相机标定的方法 为什么需要相机标定? 一个是由于每个镜头的在生产和组 ...
- 利用python语言进行相机标定
利用python语言进行相机标定 目录 利用python语言进行相机标定 一.相机标定相关原理 1.相机标定简介 2.坐标映射 2.1图像坐标系 1)图像坐标系(Pixel coordinate sy ...
- 张正友相机标定(全流程,含畸变,matlab源代码解析)
张正友标定的具体原理很多文章已经介绍,这里主要结合源代码对其中的基本原理及本人遇到的问题进行介绍.(仅介绍基本原理供本人复习,同时方便他人,如有问题,请及时指正勿喷) 1. 标定基本思路介绍 相机标定 ...
- 一文详解双目相机标定理论
01 前言 双目相机标定,从广义上讲,其实它包含两个部分内容: 两台相机各自误差的标定(单目标定) 两台相机之间相互位置的标定(狭义,双目标定) 在这里我们所说的双目标定是狭义的,讲解理论的时候仅指两 ...
- halcon相机标定
一.相机标定的目的: 1.摄像头拍出来的原始图片是存在畸变的,我们需要通过标定来矫正这种畸变. 2.相机坐标系 到 世界坐标系 的转化,需要知道图片上像素点的距离转化到实际中代表多长. 3.标定分为内 ...
- 非常详细的相机标定原理、步骤(一)
目录 一.什么是相机标定 二.坐标系 1.世界坐标系(word Coordinate) 2.相机坐标系(camera coordinate) 3.世界坐标系到相机坐标系转换 三.总结: 非常详细的相机 ...
- 【传感器融合】相机标定(理论推导+具体实现)
目录 为什么进行相机标定 相机标定原理推导 坐标系的转换 世界坐标系->相机坐标系 相机坐标系->图像坐标系 图像坐标系->像素坐标系 为什么使用齐次坐标系 图像畸变和畸变矫正 径向 ...
- 元旦特惠!无人机/ROS2/三维重建点云/SLAM/多传感器/相机标定/深度估计等重磅干货教程...
随着AI技术的大规模落地,国内外资本对AI视觉兴趣只增不减,自动驾驶.工业视觉.AR/VR.测量测绘.移动机器人等领域涌现了大量独角兽公司,相关产品更是受到重点关注. AI领域的热度和资本涌入持续增长 ...
- [毕设系列] 一、张正友相机标定
张正友相机标定 预备知识 0.1 刚体.仿射.线性.旋转变换 0.2 什么是标定? 0.3 为什么要进行标定? 0.4 什么是畸变? 一.张正友标定法 1.1 简介 1.2 流程 1.3 畸变公式 二 ...
最新文章
- python爬虫代码1000行-Python爬虫教程(16行代码爬百度)
- Mysql并发时经典常见的死锁原因及解决方法
- JAVA程序测试时用到的与内存测试有关的东西
- 2021Q1美妆行业季度观察报告
- Android手机安全性测试手段
- csv 逗号数量不一样_lexin_common系列之CSV
- 小白_Unity引擎_Console控制台
- centos7.4下的KVM虚拟机安装使用
- 挑战程序设计竞赛是c语言编写的嘛,POJ 2115 C Looooops 题解《挑战程序设计竞赛》...
- 总结了 110+ 公开专业数据集
- HTB_Dancing 靶机之 smb 协议简介
- AMOLED 结构及显示原理
- python 负数变正数_numpy正数相乘变负数的解决办法
- 图片云存储服务商在阿里云和又拍云之间如何选择?
- 拟合程度的评估--判定系数
- JavaScript画星星
- 软件测试应该何时介入项目?
- java代码实现短信接受验证码
- [回归初作]——edge浏览器的小游戏
- sqoop导入时候显示ERROR