Yin的笔记本

vuePress-theme-reco Howard Yin    2021 - 2025
Yin的笔记本 Yin的笔记本

Choose mode

  • dark
  • auto
  • light
Home
Category
  • CNCF
  • Docker
  • namespaces
  • Kubernetes
  • Kubernetes对象
  • Linux
  • MyIdeas
  • Revolution
  • WebRTC
  • 云计算
  • 人工智能
  • 分布式
  • 图像处理
  • 图形学
  • 微服务
  • 数学
  • OJ笔记
  • 博弈论
  • 形式语言与自动机
  • 数据库
  • 服务器运维
  • 编程语言
  • C
  • Git
  • Go
  • Java
  • JavaScript
  • Python
  • Nvidia
  • Shell
  • Tex
  • Rust
  • Vue
  • 视频编解码
  • 计算机网络
  • SDN
  • 论文笔记
  • 讨论
  • 边缘计算
  • 量子信息技术
Tag
TimeLine
About
查看源码
author-avatar

Howard Yin

304

Article

153

Tag

Home
Category
  • CNCF
  • Docker
  • namespaces
  • Kubernetes
  • Kubernetes对象
  • Linux
  • MyIdeas
  • Revolution
  • WebRTC
  • 云计算
  • 人工智能
  • 分布式
  • 图像处理
  • 图形学
  • 微服务
  • 数学
  • OJ笔记
  • 博弈论
  • 形式语言与自动机
  • 数据库
  • 服务器运维
  • 编程语言
  • C
  • Git
  • Go
  • Java
  • JavaScript
  • Python
  • Nvidia
  • Shell
  • Tex
  • Rust
  • Vue
  • 视频编解码
  • 计算机网络
  • SDN
  • 论文笔记
  • 讨论
  • 边缘计算
  • 量子信息技术
Tag
TimeLine
About
查看源码
  • 相机对齐

    • 问题背景
      • 问题描述
        • 求解方法1

        相机对齐

        vuePress-theme-reco Howard Yin    2021 - 2025

        相机对齐


        Howard Yin 2025-03-26 20:16:00 图形学

        # 问题背景

        在多目立体视觉中,不同的 dense reconstruction 算法提取出来的相机位姿不会完全一样,如果要对这多种 dense reconstruction 算法输出的点云/相机位姿进行对齐。

        # 问题描述

        已知一系列相机在世界坐标系A下的旋转矩阵和位移向量为[Rr∣tr][R_r|t_r][Rr​∣tr​]、在世界坐标系B下的旋转矩阵和位移向量为[R∣t][R|t][R∣t],求坐标系B到坐标系A的变换矩阵(s,[Rt∣tt])(s,[R_t|t_t])(s,[Rt​∣tt​])(sss为一对角矩阵表示缩放)使得坐标系B下的任意坐标PPP映射为坐标系A下的坐标PrP_rPr​:Pr=s(RtP+tt)P_r=s(R_tP+t_t)Pr​=s(Rt​P+tt​)。

        # 求解方法1

        显然,同一个点世界坐标系AB下的坐标PrP_rPr​和PPP在同一个相机坐标系下的坐标必然成比例:

        RP+t=sr(RrPr+tr)RP+t=s_r(R_rP_r+t_r) RP+t=sr​(Rr​Pr​+tr​)

        带入Pr=s(RtP+tt)P_r=s(R_tP+t_t)Pr​=s(Rt​P+tt​):

        RP+t=QP=R−1Q−R−1t\begin{aligned} RP+t&=Q\\ P&=R^{-1}Q-R^{-1}t\\ \end{aligned}RP+tP​=Q=R−1Q−R−1t​

        RP+t=srRrs(RtP+tt)+srtrRP+t=ssrRrRtP+ssrRrtt+srtr\begin{aligned} RP+t&=s_rR_rs(R_tP+t_t)+s_rt_r\\ RP+t&=ss_rR_rR_tP+ss_rR_rt_t+s_rt_r \end{aligned}RP+tRP+t​=sr​Rr​s(Rt​P+tt​)+sr​tr​=ssr​Rr​Rt​P+ssr​Rr​tt​+sr​tr​​

        若带入P=0P=\bm 0P=0则有:

        t=ssrRrtt+srtrssrRrtt=t−srtrtt=1ssrRr−1(t−srtr)\begin{aligned} t&=ss_rR_rt_t+s_rt_r\\ ss_rR_rt_t&=t-s_rt_r\\ t_t&=\frac{1}{ss_r}R_r^{-1}(t-s_rt_r)\\ \end{aligned}tssr​Rr​tt​tt​​=ssr​Rr​tt​+sr​tr​=t−sr​tr​=ssr​1​Rr−1​(t−sr​tr​)​

        进而方程可消去位移项:

        RP=ssrRrRtPP=ssrR−1RrRtP\begin{aligned} RP&=ss_rR_rR_tP\\ P&=ss_rR^{-1}R_rR_tP \end{aligned}RPP​=ssr​Rr​Rt​P=ssr​R−1Rr​Rt​P​

        显然要让上式成立,ssrR−1RrRtss_rR^{-1}R_rR_tssr​R−1Rr​Rt​必为单位矩阵:

        ssrR−1RrRt=IssrRt=Rr−1R\begin{aligned} ss_rR^{-1}R_rR_t&=I\\ ss_rR_t&=R_r^{-1}R\\ \end{aligned}ssr​R−1Rr​Rt​ssr​Rt​​=I=Rr−1​R​

        其中RtR_tRt​、RrR_rRr​和RRR都是旋转矩阵,所以必有ssr=1ss_r=1ssr​=1而Rt=Rr−1RR_t=R_r^{-1}RRt​=Rr−1​R,再带入ttt_ttt​的计算式易得:

        tt=Rr−1(t−1str)t_t=R_r^{-1}(t-\frac{1}{s}t_r) tt​=Rr−1​(t−s1​tr​)

        仍有未知量需要求解,如何求解ttt_ttt​和sss? 多个相机的Rr,iR_{r,i}Rr,i​和tr,it_{r,i}tr,i​可构成方程组求解之。

        由于ttt_ttt​对于所有相机都相同,可以取任意两相机i,ji,ji,j求sss:

        Rr,i−1(ti−1str,i)=Rr,j−1(tj−1str,j)=ttRr,i−1(sti−tr,i)=Rr,j−1(stj−tr,j)sRr,i−1ti−Rr,i−1tr,i=sRr,j−1tj−Rr,j−1tr,js(Rr,i−1ti−Rr,j−1tj)=Rr,i−1tr,i−Rr,j−1tr,js=Rr,i−1tr,i−Rr,j−1tr,jRr,i−1ti−Rr,j−1tj\begin{aligned} R_{r,i}^{-1}(t_i-\frac{1}{s}t_{r,i})&=R_{r,j}^{-1}(t_j-\frac{1}{s}t_{r,j})=t_t\\ R_{r,i}^{-1}(st_i-t_{r,i})&=R_{r,j}^{-1}(st_j-t_{r,j})\\ sR_{r,i}^{-1}t_i-R_{r,i}^{-1}t_{r,i}&=sR_{r,j}^{-1}t_j-R_{r,j}^{-1}t_{r,j}\\ s(R_{r,i}^{-1}t_i-R_{r,j}^{-1}t_j)&=R_{r,i}^{-1}t_{r,i}-R_{r,j}^{-1}t_{r,j}\\ s&=\frac{R_{r,i}^{-1}t_{r,i}-R_{r,j}^{-1}t_{r,j}}{R_{r,i}^{-1}t_i-R_{r,j}^{-1}t_j}\\ \end{aligned}Rr,i−1​(ti​−s1​tr,i​)Rr,i−1​(sti​−tr,i​)sRr,i−1​ti​−Rr,i−1​tr,i​s(Rr,i−1​ti​−Rr,j−1​tj​)s​=Rr,j−1​(tj​−s1​tr,j​)=tt​=Rr,j−1​(stj​−tr,j​)=sRr,j−1​tj​−Rr,j−1​tr,j​=Rr,i−1​tr,i​−Rr,j−1​tr,j​=Rr,i−1​ti​−Rr,j−1​tj​Rr,i−1​tr,i​−Rr,j−1​tr,j​​​

        最后将sss带入公式易得ttt_ttt​。

        帮助我们改善此页面!
        创建于: 2025-03-26 20:16:05

        更新于: 2025-03-26 20:16:05