视觉SLAM十四讲学习笔记——第五讲相机与图像



前言

研0学生,放假宅家,本科期间对其感兴趣,故开始学习。
一个人学有点无聊,可以一起来学呀!参考书:高翔《slam十四讲》第二版
我会在我的笔记中,结合自己的理解复述内容,并对代码部分完成复现。有问题的可以留言或者私信噢!
开发环境:虚拟机Ubuntu22.04+Vscode。


一、相机模型

针孔相机模型

针孔相机模型
O − x − y − z O-x-y-z Oxyz为相机坐标系, O O O是相机光心,物理成像平面是 O ′ − x ′ − y ′ O^{'}-x^{'}-y^{'} Oxy

注:此图应从左往右看。

P P P点的坐标是 [ X , Y , Z ] T [X,Y,Z]^{T} [X,Y,Z]T P ′ P^{'} P点的坐标是 [ X ′ , Y ′ , Z ′ ] T [X^{'},Y^{'},Z^{'}]^{T} [X,Y,Z]T,物理成像平面到光心的距离为 f f f(焦距)。根据相似三角形的知识可以得到:
Z f = − X X ′ = − Y Y ′ \frac{Z}{f}=-\frac{X}{X^{'}}=-\frac{Y}{Y^{'}} fZ=XX=YY
负号的原因是因为在小孔成像模型中,所呈现的像是倒像,为更符合实际,把成像平面等价地移至相机前方,去掉负号,并完成归一化,如下图所示。
成像平面
整理得到一组更为简单的式子:
X ′ = f X Z X^{'}=f\frac{X}{Z} X=fZX Y ′ = f Y Z Y^{'}=f\frac{Y}{Z} Y=fZY
为了描述传感器将感受到的光线转换成图像像素的过程,我们设在物理成像平面上固定着一个像素平面 o − u − v o-u-v ouv原点 o o o位于物理成像平面左上角, u u u轴向左平行于 x x x轴,v轴向下平行于 y y y。此时得到了像素坐标系下的 P ′ P^{'} P的坐标 ( u , v ) (u,v) (u,v)

像素坐标系和成像平面之间,相差了一个缩放和一个原点的平移,设像素坐标系在 u u u轴缩放了 α \alpha α倍, v v v轴缩放了 β \beta β倍,原点平移了 [ c x , c y ] T [c_{x},c_{y}]^{T} [cx,cy]T,可以得到像素坐标系下的 P ′ P^{'} P的坐标 ( u , v ) (u,v) (u,v)为:
{ u = α X ′ + c x v = β Y ′ + c y \left\{\begin{matrix} u=\alpha X^{'}+c_{x}\\ v=\beta Y^{'}+c_{y} \end{matrix}\right. {u=αX+cxv=βY+cy
X ′ X^{'} X Y ′ Y^{'} Y代入,得:
{ u = α f X Z + c x v = β f Y Z + c y \left\{\begin{matrix} u=\alpha f\frac{X}{Z}+c_{x}\\ v=\beta f\frac{Y}{Z}+c_{y} \end{matrix}\right. {u=αfZX+cxv=βfZY+cy α f \alpha f αf合并成 f x f_{x} fx,将 β f \beta f βf合并成 f y f_{y} fy,得:
{ u = f x X Z + c x v = f y Y Z + c y \left\{\begin{matrix} u=f_{x}\frac{X}{Z}+c_{x}\\ v=f_{y}\frac{Y}{Z}+c_{y} \end{matrix}\right. {u=fxZX+cxv=fyZY+cy
把上述式子改写成矩阵形式:
( u v 1 ) = 1 Z ( f x 0 c x 0 f y c y 0 0 1 ) ( X Y Z ) = 1 Z K P \begin{pmatrix} u\\ v\\ 1 \end{pmatrix}=\frac{1}{Z} \begin{pmatrix} f_{x}&0&c_{x}\\ 0& f_{y} &c_{y} \\ 0 & 0 &1 \end{pmatrix}\begin{pmatrix} X\\ Y\\ Z \end{pmatrix}=\frac{1}{Z} KP uv1 =Z1 fx000fy0cxcy1 XYZ =Z1KP
至此,我们得到得矩阵 K K K即相机得内参矩阵,通常情况,相机生产好时,厂商会将其告诉你,如果没有,则需要自己标定,现在这个标定也很成熟,如张正友标定法

相机既然有内参就会有外参,外参得概念是,观察上一个式子的 P P P是相机坐标系下的坐标,在实际过程中相机是在运动的,所以 P P P的相机坐标是它的世界坐标 P w P_{w} Pw经过平移旋转得到的。那么有:
Z P u v = Z [ u v 1 ] = K ( R P w + t ) = K T P w ZP_{uv}=Z\begin{bmatrix} u \\ v\\ 1 \end{bmatrix}=K(RP_{w}+t)=KTP_{w} ZPuv=Z uv1 =K(RPw+t)=KTPw其中 R , T R,T R,T称为相机的外参。

畸变模型

待更新

双目相机模型

待更新

RGB-D相机模型

待更新

二、图像

待更新

三、代码复现

待更新


总结

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值