【问题标题】:How can I derive relative translation and rotation from two extrinsic camera matrices?如何从两个外部相机矩阵推导出相对平移和旋转?
【发布时间】:2015-07-29 18:51:56
【问题描述】:

我有两组与视频序列相关的数据。一个包含使用一种算法生成的相对旋转和平移数据。另一个由与每一帧相关联的真实外在矩阵组成。

我想比较数据集以确定它们之间的差异。我的问题是,如何从两个外部相机矩阵中推导出相对平移和旋转?

【问题讨论】:

    标签: opencv computer-vision perspectivecamera


    【解决方案1】:

    如果你有camera1 姿势P1 = [R1|T1]camera2 姿势P2 = [R2|T2] 然后P1to2 = P2 * P1^-1

    直观地,想象一个简单的情况,其中两个相机的平移都为零,camera1 在 X 轴上旋转 +30 度,camera2 在 X 轴上旋转 +60 度。

    P1 = [R1|0] P2 = [R2|0]
    

    所以它们都在 X 轴上旋转了 +30 度:

    P1to2 = P2 * P1^-1 = [R2|0] * [R1|0]^-1 = [R2|0] * [R1^1|0]
    
    R2 * R1^1 = 60 - 30 on X = rotation of +30 degrees on X
    

    【讨论】:

    • 你能确认pose P = N^-1,其中N是外在矩阵吗?
    • 那么如何计算相对平移呢?
    • @aledalgrande 当相机没有零平移时,相对旋转会是多少?我们将在什么情况下应用逆向平移来获得上述零平移的情况?
    【解决方案2】:

    外在矩阵由 3x3 的旋转矩阵和 3x1 的平移向量组成。

    因此,M 3x4 只是两个 [R t] 的串联。除非我误解了你的问题,否则旋转和翻译是微不足道的。

    【讨论】:

    • R 和 t 是世界相对于相机的旋转和平移。获得他们的世界坐标等价物也不难。考虑到它们的外在矩阵,我正在寻找的是两帧之间的增量。例如第 1 帧和第 2 帧之间的平移。
    • 你的意思是第1帧和第2帧像素坐标之间的变换吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-06
    • 2017-10-14
    • 2011-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多