Joh*_*ohn 6 opengl geometry computer-vision homography augmented-reality
通过计算它们之间的3x3单应性,我能够在同一场景的不同图像上跟踪4个坐标.这样做我可以将其他2D图像叠加到这些坐标上.我想知道我是否可以使用这种单应性来使用opengl将立方体增加到这个位置?我认为3x3矩阵没有提供足够的信息,但如果我知道相机校准矩阵可以让我足够创建一个模型视图矩阵来做到这一点?
感谢您提供任何帮助.
小智 3
如果您有相机校准矩阵(固有参数)和单应性,因为单应性(同一平面物体的两个视图之间)定义为:
H = K[R|T]
其中 K 是 3x3 校准矩阵,R(3x3 旋转矩阵)和 T(3x1 平移向量)是视图变换(从对象坐标到相机坐标)。关于如何从 H 计算 R 和 T 有很多话要说。一种方法是计算直接解,另一种方法是使用某种非线性最小化技术来计算 R 和 T。显然,后一种方法更好,因为它将给出更好的近似解。前者只是开始进行增强现实的一种方式;):
让我们看看使用直接方法时如何导出 R 和 T。如果 h1、h2 和 h3 是 H 的列向量,则用 K、R 和 T 定义为:
H = K [r1 r2 t](请记住,我们正在谈论 z=0 的点)
其中 r1 是 R 的第一个列向量,r2 是第二个列向量,t 是平移向量。然后:
r1 = l1 * (K^-1) h1
r2 = l2 * (K^-1) h2
r3 = r1 x r2(r1 和 r2 之间的叉积)
t = l3 * (K^-1) h3
其中 l1,l2,l3 是比例因子(实际值):
l1 = 1 / norm((K^-1)*h1)
l2 = 1 / norm((K^-1)*h2)
l3 = (l1+l2)/2
请记住,应使用非线性最小化方法对该解决方案进行细化(例如,您可以使用该解决方案作为起点)。您还可以使用一些畸变模型来恢复镜头畸变,但这一步是不必要的(即使没有它,您也会得到很好的结果)。
如果您想使用最小化方法来计算 R 和 T 的更好近似值,有很多不同的方法。我建议你阅读这篇论文
“根据视频图像进行快速且全局收敛的姿态估计”,Lu,Hager
它为您提供了最好的算法之一。