摄影测量与计算机视觉--几何差异和转换

随着计算机视觉的发展,摄影测量和计算机视觉逐渐交叉融合,两个不同学科之间的差异逐渐变小。但是在此处,博主仍旧想记录一下两个学科在几何关系描述上的一些本质差异。

一、坐标的几何表示
首先,对于两个领域来说,最为明显的一个差异就是对坐标的表示方法。
在摄影测量中,通常直接直接使用二维坐标或者三维坐标对坐标进行描述。而在计算机视觉中,通常情况下使用齐次坐标对坐标进行表述。
原则上说,两种表述方法在本质上并没有什么区别。只不过在齐次坐标下能够将一系列变化(旋转、平移、仿射等等)统一成矩阵相乘的形式,处理起来更加方便。但是,一般来说,直接使用坐标进行描述,理解起来更加直观。
下边给出一个示例,假设对二维点P 进行旋转R 和平移t

这里写图片描述

对于摄影测量来说,此处可以简单的把公式写成:
P=(λRP+t) P ′ = ( λ R P + t )

而对于计算机视觉来说,上述公式可以更简单的写成:
这里写图片描述

二、欧拉旋角和扭转系数与四元数
第二个较为明显的差异是两者对旋转矩阵的理解方式。在摄影测量中,通常是按照一定顺序和方向在坐标轴的方向上进行旋转,进而得到旋转矩阵。但是在计算机视觉中,最为普遍常用的方法是扭转系数和四元数。不过需要注意的是,无论是使用那种表达方式,得到的旋转矩阵都应该是一样的。

  1. 摄影测量的欧拉旋角
    首先介绍一下摄影测量中的欧拉旋角,常见的旋转体系有opk和pok。值得注意的是,在摄影测量中通常是通过旋转坐标轴来定义旋转角的,而在公式表达时是则是在旋转坐标的角度上来写的
    opk是国际上较为通用的一种旋转体系,其中旋转顺序是x–>y–>z,旋转方向均以逆时针旋转为正。而pok是国内较为通用的一套旋转体系,其中旋转顺序是y–>x–>z,旋转方向除y轴外都是逆时针旋转为正。
    此处我们用opk写出一个示例,假设要从坐标系A旋转到坐标系B,则旋转矩阵可以写成:

    PA=RxRyRzPB P A = R x R y R z P B

    其中, PA P A PB P B 分别是两个坐标系下的坐标,描述的是如何按照opk的顺序从A旋转到B。
    我们可以把上式展开,如下图所示的公式:
    这里写图片描述

    此处,我们也给出如何从旋转矩阵恢复opk的公式,如下:
    这里写图片描述

  2. 计算机视觉中的旋角系统
    相比而言,计算机视觉中的旋角系统定义比较复杂,比较难理解。扭转系数可以理解成绕某一个三维向量旋转一个角度,来描述三维旋转。四元数是在扭转系数的基础上推导出的一种旋转表达方式。
    由于这两种旋转表达方式并不需要指定旋转轴等等,我们直接给出其和旋转矩阵之间的关系式:

    这里写图片描述

    这里写图片描述

    当然,如果想从旋转矩阵恢复四元数,上述公式已经可以完成。但是如果想从旋转矩阵恢复扭转系数,则还需要用到四元数和扭转系数之间的关系式:
    这里写图片描述

最后关于两种旋转表达的优缺点,我就不再累赘,可以参考huang9012的博客。但是此处我只说欧拉公式中两个我经常遇到的缺点:
1.opk的旋转矩阵比较难以求导,求导公式较为复杂;
2.opk的旋转矩阵在矩阵连乘时很容易失去正定性,计算误差导致的。

三、共线方程与小孔成像
最后说两个领域中,成像模型的一些差异问题。首先给出两个图,分别表示的是摄影测量和计算机视觉中关于成像模型的表述方式。

摄影测量

这里写图片描述

计算机视觉

这里写图片描述

仔细观察两幅图,我们可以发现两个明显的区别:

  • 在摄影测量中成像平面在Z轴的负半轴,而在摄影测量中成像平面则在Z轴的正半轴。造成这个区别的原因是,摄影测量通常是航空拍摄,相机从天空俯视地面,即成像物体在相机下方;而摄影测量则主要是近景拍摄,成像物体在相机前方。因而根据人们常规对下方和前方的认识,导致了Z轴的朝向不同。
  • 在摄影测量中,Y轴朝向图片的上方;而在计算机视觉中,Y轴朝向图片的下方。因为摄影测量和计算机视觉都是使用右手坐标系,由于Z轴的改变,Y轴自然也就不一样。

四、空三结果的互相转换
由于现在摄影测量和计算机视觉的交叉发展,如何进行将两种空三结果进行相互转换就非常重要。其实也非常简单,推导如下(为推导方便,此处统一不适用齐次坐标系):

  • 记某一照片在摄影测量下的成像关系如下:
    xyf=λRp(XYZXsYsZs) [ x y − f ] = λ R p ( [ X Y Z ] − [ X s Y s Z s ] )
  • 由于摄影测量和计算机视觉的成像中心在同一个坐标,仅仅Y轴和Z轴方向相反,则其表达式如下:
    xyf=λRc(XYZXsYsZs) [ x − y f ] = λ R c ( [ X Y Z ] − [ X s Y s Z s ] )

    等同于
    100010001xyf=λRc(XYZXsYsZs) [ 1 0 0 0 − 1 0 0 0 − 1 ] [ x − y f ] = λ R c ( [ X Y Z ] − [ X s Y s Z s ] )
  • 观察上式就可以发现,摄影测量和计算机视觉仅仅在旋转上有表达区别,在平移量上时相同的,因此只需要对旋转进行转换即可:
    Rp=100010001Rc R p = [ 1 0 0 0 − 1 0 0 0 − 1 ] R c
  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值