【视觉SLAM十四讲】相机与图像

相机与图像

针孔相机模型

Zf=−XX′=−YY′ (像是倒立的) \frac{Z}{f}=-\frac{X}{X'}=-\frac{Y}{Y'} ~~~ (像是倒立的) fZ=−X′X=−Y′Y (像是倒立的)

坐标系

常用的坐标系一般有三种:

  1. 世界坐标系:描述物体在真实世界中的位置
  2. 相机坐标系:原点为相机光心,Z 轴指向相机前方
  3. 像素坐标系:原点为图像左上角,u 轴向右,v 轴向下

各个坐标系的转换关系如下:

  • 世界坐标系------相机坐标系:通过旋转平移(外参)进行转换
    Pc=RPw+t=TPw(使用变换矩阵T时,Pw是齐次坐标形式) P_c=RP_w+t=TP_w(使用变换矩阵T时,P_w是齐次坐标形式) Pc=RPw+t=TPw(使用变换矩阵T时,Pw是齐次坐标形式)

  • 相机坐标系------像素坐标系:通过内参矩 阵进行转换
    (uv1)=1Z(fx0cx0fycy001)(XYZ)=1ZKPc~ \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}K\tilde{P_c} uv1 =Z1 fx000fy0cxcy1 XYZ =Z1KPc~

畸变模型

由于透镜的存在,越靠近图像边缘的位置,畸变的现象就越明显

  • 径向畸变:由透镜形状引起。可视为坐标点距离原点的长度发生了改变。桶形畸变图像的放大率随着与光轴之间的距离增加而减小,枕形畸变则相反。这两种畸变中,仅有穿过图像中心与光轴有交点的直线不变

{xdistorted=x(1+k1r2+k2r4+k3r6)ydistorted=y(1+k1r2+k2r4+k3r6) \begin{cases}x_{distorted}=x(1+k_1r^2+k_2r^4+k_3r^6)\\y_{distorted}=y(1+k_1r^2+k_2r^4+k_3r^6) \end{cases} {xdistorted=x(1+k1r2+k2r4+k3r6)ydistorted=y(1+k1r2+k2r4+k3r6)

  • 切向畸变 :由透镜制作和安装的缺陷引起(与成像平面不平行)。可视为坐标点水平夹角发生了改变
    {xdistorted=x+2p1xy+p2(r2+2x2)ydistorted=y+p1(r2+2y2)+2p2xy \begin{cases}x_{distorted}=x+2p_1xy+p_2(r^2+2x^2)\\y_{distorted}=y+p_1(r^2+2y^2)+2p_2xy \end{cases} {xdistorted=x+2p1xy+p2(r2+2x2)ydistorted=y+p1(r2+2y2)+2p2xy

去畸变

去畸变的核心是反向映射,对于目标图像(去畸变图像)上的每一个点

  1. 通过内参逆变换映射到无畸变的归一化平面上,得到点 (x,y)(x,y)(x,y)
  2. 将该点正向代入畸变模型,计算出该点发生畸变后,在畸变的归一化平面上的对应坐标 (xdistorted,ydistorted)(x_{distorted},y_{distorted})(xdistorted,ydistorted)
  3. 将 (xdistorted,ydistorted)(x_{distorted},y_{distorted})(xdistorted,ydistorted) 通过内参变换,得到它在原始畸变图像上的像素坐标,并通过插值获取该位置的像素值赋给去畸变图像的对应点

内参

k=fxscx0fycy001 k=\begin{bmatrix} f_x&s&c_x\\0&f_y&c_y\\0&0&1 \end{bmatrix} k= fx00sfy0cxcy1

  • fx,fyf_x,f_yfx,fy :焦距 f 在像素坐标系u,v上的缩放。fx=fdxf_x=\frac{f}{dx}fx=dxf ,dx 是传感器上一个像素的实际物理尺寸
  • cx,cyc_x,c_ycx,cy :主点。即光心在像素坐标系的投影
  • sss :轴倾斜参数,描述 u 轴和 v 轴之间的夹角偏离 90∘90^\circ90∘ 的程度,通常为 0

外参

描述相机姿态,由旋转矩阵 R(3x3)和平移向量 t(3x1)组成,或者直接用变换矩阵表示

双目相机模型

左右相机中心的距离即为基线,左右像素的几何关系如下:
z−fz=b−uL+uRb \frac{z-f}{z}=\frac{b-u_L+u_R}{b} zz−f=bb−uL+uR

整理得
z=fbdd=uL−uR z=\frac{fb}{d} \qquad d=u_L-u_R z=dfbd=uL−uR

相关推荐
昨日之日20063 小时前
【MiniMax H3】TaoMate-H3:3步LoRA让视频生成更快更高效,速度快10倍
人工智能·计算机视觉·音视频
桃西西呀3 小时前
从手写数字到ImageNet冠军:CNN架构20年,为什么越深越难训?
人工智能·计算机视觉·llm
底层信号3 小时前
NVIDIA Halos 会刹车,但机器人安全架构还缺一块仪表盘
人工智能·机器人
AI的探索之旅6 天前
97 个 OpenCV 实例(三十):双目立体,从标定到点云
人工智能·opencv·计算机视觉
美狐美颜SDK开放平台6 天前
开发直播APP时如何接入视频美颜SDK?开发流程与注意事项
android·人工智能·计算机视觉·音视频·直播美颜sdk
风合星语6 天前
2026 具身智能技术实战(一):VLA 到底怎么控制机器人?——用 LeRobot 跑通 SmolVLA 推理
pytorch·机器人·具身智能·vla·lerobot·smolvla
鲁邦通物联网6 天前
图书馆机器人跨楼层运行,机器人梯控低噪设计与架构分析
机器人·巡检机器人·机器人梯控·agv梯控·非侵入式采集·机器人乘梯·机器人自主乘梯
FLJwu6 天前
存储与固件量产实战01:运动相机TF卡量产翻车实录!V30≠4K可用,90%OEM踩中的隐形售后坑
经验分享·数码相机·相机
拉你进_教堂6 天前
小龙虾技能之【Parkinson‘s & Epileptic Behavior Recognition Skill | 帕金森癫痫行为识别技能】简介
人工智能·计算机视觉·多模态大模型·openclaw小龙虾技能
PascalXie6 天前
人形机器人的“眼睛“:多目视觉方案怎么选?
计算机视觉·机器人