相同相机的内在参数相同?

Posted

技术标签:

【中文标题】相同相机的内在参数相同?【英文标题】:Same intrinsic parameter for same camera? 【发布时间】:2013-09-16 12:00:25 【问题描述】:

我正在开发一款移动增强现实应用。我需要使用棋盘校准来校准我的相机以获取内部和外部参数。

我是否可以假设,如果我校准我的 nexus 4,所有 nexus 将具有相同的焦距、偏斜因子和失真矩阵?

谢谢

【问题讨论】:

如果您假设所有 nexus 4 设备都具有完全相同的摄像头,是的!这里最有价值的词正是 在现实生活中,nexus4 有完全相同的相机吗?我猜没有……? 除非您需要真正的高精度,否则假设所有这些手机都进行相同的校准应该是安全的。 【参考方案1】:

嗯,答案可以是“是”也可以是“否”。正如您所说,在现实生活中,没有一台相机与另一台相机完全相同,即使它们来自同一制造商。但是,为了让我们的生活更轻松,是的,我们使用这种简化,即使对于摄影测量/计算机视觉项目,精度要求也相当高。

【讨论】:

【参考方案2】:

大多数相机都带有编码到相机管道中的不失真操作,因此您很可能根本不需要搜索失真参数。只需检查图像外围的直线是否真的是直的。我希望偏斜接近于零并且 fx=fy 因为像素是方形的。

除了您提到的参数外,还有两个主要点 Cx、Cy(光轴与传感器的交点通常接近 w/2、h/2)。所以总的来说,你只有 3 个参数:F、Cx、Cy,第一个参数在同一型号的手机中变化最大(根据我的经验)。如果您不使用手机来计算另一个相机的相对位置,您很可能只需要准确了解焦距。

显然,当您需要担心单个参数时,有更简单的方法来获取它,而不是使用棋盘装置并尝试找到除内在参数之外的外在参数。即使没有测量,您也可以计算出来 - 只需获取相机视野(例如 getHorizo​​ntalViewAngle())并使用

tan(fov) = image_width/2 / f

或者你可以做一个简单的测量,让你的手机与目标平行:对于一个大小为 H 的垂直目标,它产生 h 像素的图像,你得到 f

f/z = h/H

【讨论】:

【参考方案3】:

嗯...如果这个相机有内置的自动对焦,焦距会一直改变

【讨论】:

以上是关于相同相机的内在参数相同?的主要内容,如果未能解决你的问题,请参考以下文章

计算内在相机参数时获取复数

计算给定 kinect 内部相机参数的外部参数

来自 Unity 的相机内在矩阵

iPhone 5s 相机校准参数

OpenCV:SolvePnP 对相同的输入参数给出不同的结果

如何从相机投影矩阵计算 ext 和 int 参数