首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于内、外部摄像机参数的单形矩阵计算

基于内、外部摄像机参数的单形矩阵计算
EN

Stack Overflow用户
提问于 2020-08-03 15:41:43
回答 1查看 3.3K关注 0票数 2

我愿意执行一个360°全景缝合6个鱼眼相机。

为了找出相机之间的关系,我需要计算出单形矩阵。后者通常是通过在图像中找到特征并进行匹配来计算的。

然而,对于我的相机设置,我已经知道

通过摄像机calibration.

  • Extrinsic摄像机参数R和t计算了
  • 本征摄像机矩阵K。相机的方向是固定的,在任何一点上都不会改变。摄像机位于已知直径d的圆上,每个摄像机相对于圆的位移为60°。

因此,我认为我可以手工计算出“单字矩阵”,我认为这将导致比执行特征匹配更精确的方法。

在文献中,我找到了以下公式来计算与图像2和图像1相关的同形矩阵:

代码语言:javascript
复制
H_2_1 = (K_2) * (R_2)^-1 * R_1 * K_1

这个公式只考虑相机之间的旋转角度,而不考虑在我的情况下存在的平移矢量。

在计算H?时如何插入每个摄像机的平移t?

我已经尝试了计算H没有考虑平移,但作为d>1米,图像不是准确地对齐全景图片。

编辑:

根据Francesco以下的回答,我提出了以下问题:

  • 在校准鱼眼镜片之后,我得到了一个带有焦距f=620的矩阵K,用于1024x768大小的图像。这是否被认为是一个大的或小的焦点length

  • 我的相机位于直径为1米的圆圈上。下面的解释对我来说很清楚,由于相机之间的“大”翻译,我对相对接近它们的物体有显著的鬼影效果。因此,如果单形模型不能完全表示相机的位置,是否可以使用另一种模型,如基本/本质矩阵,用于图像
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-04 15:55:30

你不能“插入”翻译:它的存在,连同一个非平凡的旋转,数学上意味着图像之间的关系不是一个同形。

然而,如果所拍摄的场景离摄像机“足够远”,也就是说,如果摄像机之间的平移相对于场景物体与摄像机的距离很小,并且摄像机的焦距足够小,那么您可以使用由纯旋转引起的同形作为近似。

你的方程式错了。正确的公式如下:

在齐次coordinates

  • Back中,
  • 取相机1:p_1 = (x, y, 1)中的一个像素,将其投影成3D空间中的射线:P_1 = inv(K_1) * p_1
  • Decompose,照相机2:P_2 = R_2_1 * P1
  • Project坐标下的光线,照相机2中的像素:p_2 = K_2 * P_2
  • Put方程:p_2 = [K_2 * R_2_1 * inv(K_1)] * p_1

乘积H = K2 * R_2_1 * inv(K1)是纯旋转R_2_1诱导的同形。旋转将点从第1帧转换为第2帧。它用一个3x3矩阵表示,其列是在第2帧中分解的帧1的x、y、z轴的分量。如果你的设置给出了所有相机相对于一个普通帧0 (即R_i_0 )的旋转,那么它就是R_2_1 = R_2_0 * R_1_0.transposed

一般来说,您应该使用上述同形作为初始估计,通过匹配点和优化来改进。这是因为(a)同形模型本身只是一个近似(因为它忽略了平移),和(b)机械装置(甚至校准的)提供的旋转受误差的影响。使用匹配的像素来优化转换将最大限度地减少图像上的误差,而不是抽象的旋转空间。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63232589

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档