CV学习笔记-相机模型(欧式变换及仿射变换)

相机模型

1.相机模型原理

1. 相机成像

相机成像是一个小孔成像模型,将现实生活中的三维空间物体映射到二维的成像平面上,进而生成二维的图像。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DEGq4FLV-1637041595381)(./imgs/image-20211114135810896.png)]

相机模型中的坐标系:

  • 世界坐标系Pw(Xw, Yw, Zw): 对应真实客观三维世界的坐标系,也称为客观坐标系,表征物体在真实世界中的位置坐标。世界坐标系是随着物体的大小和位置变化的,单位一般是长度单位。
  • 摄像机坐标系PO(x, y, z): 对应以相机的光心为原点的坐标系,其以平行于图像的x和y方向为x轴y轴,z轴与光轴平行,单位也为长度单位。
  • 图像物理坐标系P’(x’, y’): 对应以主光轴和图像平面交点为坐标原点的坐标系,单位仍为长度单位。
  • 图像像素坐标系P(u, v): 对应以图像的顶点为坐标原点的坐标系,u和v的方向平行于x’和y’方向, 单位是像素

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dzVaIQd1-1637041595384)(./imgs/image-20211114141130252.png)]

相机成像流程:

Created with Raphaël 2.3.0 外部实体 世界坐标系 相机坐标系 图像物理坐标系 像素坐标系

2. 坐标变换

欧式变换: 在任何的三维空间的物体,都可以以三维坐标系表示,也即在现实空间中的物体的点,在不同的坐标系下的坐标是不一样的,因为基底不同,那么一个固定的点,在一个坐标系下的坐标,如果转换到另一个坐标系下,使得另外一个坐标系能够确定这个位置,就需要用到欧式变换。 任何一个坐标系到另一个坐标系的转换可以通过旋转和平移完成。

平移变换&旋转变换&齐次坐标:

平移变换是指转换双方坐标系经过有限次平移可以重合,情形例如高帽在人脸的正上方的情况,这样人脸的中心坐标系转换到高帽中心坐标系,仅需将坐标原点向上平移变换即可,没有坐标轴的旋转偏移,在线性代数里的平移变换是在空间坐标系中所在位置的转换,习惯用坐标系中的O的向量表示,通过向量的加常量即可实现,多次平移变换直接进行向量相加即可实现。平移变换比较简单易懂,而旋转变换较为复杂,可以通过二维坐标旋转变换推广到三维笛卡尔坐标系下,对于空间里的刚体来说,是有六个自由度的,绕xyz的转动自由度有三个,而在二维平面中,只能绕垂直平面的轴旋转,即只能有一个自由度,那么对于三维坐标系来说能够写出3×3的R矩阵,记为旋转矩阵

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sIJZU6A8-1637041595386)(./imgs/image-20211116123138089.png)]

上式表示从B坐标系转换到A坐标系的旋转矩阵中的每一列子向量,等价为B坐标系的坐标轴单位向量在A坐标系中的表示。不难发现这个旋转矩阵是正交单位阵,故有以下推论:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tW190L2w-1637041595387)(./imgs/image-20211116123357528.png)]

上式说明,矩阵的每一行就是A坐标系的坐标轴在B坐标系中的表示。旋转变换的公式如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-inzoW6ly-1637041595388)(./imgs/image-20211116123625208.png)]

连续的旋转变换只要矩阵相乘即可。当旋转平移变换同时出现的时候,引入齐次坐标变换的概念;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pn3xhoty-1637041595390)(./imgs/clip_image002.jpg)]

由上面的结论不难推出此变换过程,这个过程如果用一个矩阵表示,会简洁很多,齐次坐标变换矩阵也应运而生,上图的变换过程等效于以下表达:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9PiJxnCB-1637041595392)(./imgs/image-20211116123937788.png)]

T矩阵就是该变换中的齐次坐标变换矩阵,齐次坐标变换矩阵T是一个四阶方阵,可以同时表示旋转变换和平移变换,齐次坐标变换矩阵公式表达如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-krBrsXjf-1637041595393)(./imgs/image-20211116124053414.png)]

将上面推导过程的角标简化,举个例子:

若将向量a进行两次欧式变换,旋转和平移分别为R1,t1和R2,t2,分别得到:

b = R1*a + t1; c = R2*b + t2; c = R2*(R1*a + t1) + t2

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-STam15ri-1637041595395)(./imgs/image-20211116124949731.png)]

世界坐标系到相机坐标系:

世界坐标系到相机坐标系的变换中也不例外的存在旋转矩阵R和平移矩阵t,关系表示为:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tqf2QbFV-1637041595396)(./imgs/image-20211116125309891.png)]

相机坐标系到图像物理坐标系:

  • 原理:相似三角形

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WiziuuLD-1637041595398)(./imgs/image-20211116125508932.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3n3XYeQR-1637041595399)(./imgs/image-20211116125549226.png)]

  • 矩阵表示为:f为焦距

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kgZFpeVi-1637041595401)(./imgs/image-20211116125922909.png)]

图像物理坐标系到图像像素坐标系:

  • 原理:坐标偏移(dx、dy表示x和y方向上的一个像素分别占多少个长度单位,dx、dy可能为小数)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5zcFeD8F-1637041595402)(./imgs/image-20211116130257426.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kssDeKW0-1637041595405)(./imgs/image-20211116130324834.png)]

  • 齐次坐标表示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yZgNFYBP-1637041595406)(./imgs/image-20211116130551385.png)]

相机坐标系到图像像素坐标系的连续欧式变换:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-L6TFCxia-1637041595407)(./imgs/image-20211116130721117.png)]

世界坐标系到图像像素坐标系:

  • 推导过程:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7b3kSHN4-1637041595408)(./imgs/image-20211116130944386.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KHbmlGmw-1637041595409)(./imgs/image-20211116131023041.png)]

  • 结论:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dXGjUqCT-1637041595410)(./imgs/image-20211116131109134.png)]

2. 镜头畸变

1. 镜头畸变

由于制造精度以及组装工艺的偏差,透镜的成品往往会产生畸变,导致原始图像失真。镜头畸变分为径向畸变和切向畸变。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EASvNKiP-1637041595411)(./imgs/image-20211116131523568.png)]

2. 径向畸变

  • 原因 : 由于透镜的形状产生的畸变称为径向畸变,透镜径向畸变后点位的偏移示意图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FPFTjLei-1637041595412)(./imgs/image-20211116131711931.png)]

枕形畸变

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uTXee5a2-1637041595413)(./imgs/image-20211116131811689.png)]

桶形畸变

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9Ghy2CWH-1637041595414)(./imgs/image-20211116131848978.png)]

3. 切向畸变

  • 原因: 切向畸变是由于透镜本身与相机传感器平面(成像平面)或图像平面不平行而产生的。(大多是由于透镜被粘贴到镜头模组上的安装偏差导致)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8LeygAeL-1637041595415)(./imgs/image-20211116132221556.png)]

4. 畸变矫正

方法:

  • 径向畸变和切向畸变模型中一共有5个畸变参数,在Opencv中他们被排列成一个5*1的矩阵,依次包含k1、k2、p1、p2、k3(这5个参数就是相机标定中需要确定的相机的5个畸变系数),经常被定义为Mat矩阵的形式

    Mat distCoeffs = Mat(1.5, CV_32FC1, Scalar::all(0));
    
  • 求得这5个参数后,就可以校正由于镜头畸变引起的图像的变形失真。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FSfPy3h4-1637041595416)(./imgs/image-20211116132730949.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qiAoMd4g-1637041595417)(./imgs/image-20211116132801198.png)]

3. 透视变换

1.定义

透视变换又称投影映射(Projective Mapping),是将一个图片从原有平面投影到一个新的视平面(Viewing Plane)的过程。

2. 目的

现实中的物体为直线的棱等在图片中可能是斜线,通过透视变换可以把这条斜线变换成直线。

3. 与仿射变换的区别

仿射变换是透视变换的一个特例,仿射变换(Affine Transformation 或 Affine Map)是指在几何中图像从一个向量空间进行一次线性变换和一次平移,变换到另一个向量空间的过程。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-92pEaRFO-1637041595418)(./imgs/image-20211116133853212.png)]

4. 变换过程

  • 变换公式:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RQUxgcHB-1637041595419)(./imgs/image-20211116133953678.png)]

下式中的X,Y是原始图片坐标(上式的x,y),对应得到变换后的图片坐标(X’;Y’;Z’)其中Z’=1:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KjZHhO4I-1637041595420)(./imgs/image-20211116134103712.png)]

一般地,我们令a33=1,展开上面公式,得到一个点的情况:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ehyyWqRw-1637041595421)(./imgs/image-20211116134232783.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BbqPkWD7-1637041595422)(./imgs/image-20211116134424612.png)]


个人学习笔记,仅学习交流,转载请注明出处!

  • 5
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Moresweet猫甜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值