【发布时间】:2014-09-12 04:02:51
【问题描述】:
我有两个旋转矩阵。一个是我通过解决 PnP 问题得到的真实网络摄像头的旋转矩阵。我有一个世界坐标系,并且我知道世界空间中世界坐标中每个点的位置。
据我了解,旋转矩阵将世界坐标中的点转换为相机帧坐标(此处不考虑平移)。这意味着,R1 为您提供了世界坐标系相对于相机坐标系的方向。
我的第二个旋转矩阵是一个传感器,它也在世界坐标中。即,这个旋转矩阵为您提供了世界坐标系相对于传感器坐标系的方向。
我想找到真实网络摄像头坐标系相对于传感器坐标系的方向。
让我们命名第一个旋转矩阵 Rw1 和第二个旋转矩阵 Rw2,下标 w1 表示相对于真实网络摄像头的世界,w2 表示相对于传感器的世界(1 和 2 可以被认为分别表示真实网络摄像头和传感器) .
所以我的目标是找到R12。 (而不是 R21)
R12 = R1w * Rw2 = (Rw1)' * Rw2
我假设这个 R12 在整个过程中(在视频的后续帧中)保持不变,因为传感器和网络摄像头的位置不会相互干扰,并且它们总是一起移动。我的假设有效吗?
如果有效,那么我的最终目标是在后续帧中计算真实网络摄像头的旋转矩阵。我可以在后续帧中计算传感器的旋转矩阵,即 Rw2帧。我必须找出 Rw1,我不能使用任何 PnP 算法。我想根据当前可用的信息来计算它。
现在让我们考虑第二帧。
我知道 R12(我假设它是常数,我在第一帧计算它)和 Rw2(第二帧的传感器旋转矩阵)。我必须为第二帧找到 Rw1。
Rw1 = Rw2 * R21 = Rw2 * (R12)'
我的方法对吗?
PS: (R)' 表示 R 的转置。
【问题讨论】:
-
如果您使用行向量乘以矩阵左侧,我认为您的公式是正确的。
-
我不明白你在这种情况下所说的行向量是什么意思。 R 是一个 3*3 矩阵。在这种情况下,所有矩阵都是 3*3。
-
考虑到一个旋转矩阵
R和一个由1x3列向量M=[X, Y, Z]表示的3D点,你计算旋转点是M.R还是R.M'?在第一种情况下,您的公式是可以的,否则您需要转置所有内容。 -
我将其计算为 R.M',这将产生大小为 3 的列向量
-
实际上,转置所有内容并不足以纠正您的公式。详细解释见我的回答。
标签: computer-vision transformation rotational-matrices