当前位置: 首页 > article >正文

【视觉SLAM:四、相机与图像】

相机模型

相机模型是计算机视觉中的重要内容,用于描述真实相机如何将三维世界投影到二维图像平面。以下从多个角度介绍常见的相机模型。

针孔相机模型

针孔相机模型是最简单的相机模型,用数学公式描述从三维世界到二维图像平面的映射关系。核心公式如下: s [ u v 1 ] = K [ R t ] [ X Y Z 1 ] s\begin{bmatrix}u\\v\\1\end{bmatrix}=\mathbf{K}\begin{bmatrix}\mathbf{R}&\mathbf{t}\end{bmatrix}\begin{bmatrix}X\\Y\\Z\\1\end{bmatrix} s uv1 =K[Rt] XYZ1

  • 参数解释:
    • (X,Y,Z) 是世界坐标系中的三维点。
    • (u,v) 是图像坐标系中的像素坐标。
    • R∈SO(3) 和 𝑡 描述相机的旋转和平移(即相机位姿)。
    • K 是相机的内参矩阵,包含焦距和主点坐标。
    • s 是尺度因子,表示物体在相机坐标系中的深度。
  • 优点:
    • 精确描述了相机的透视投影特性。
  • 局限性:
    • 忽略了真实相机中的畸变现象。

畸变模型

真实相机镜头存在一定的畸变,常见畸变包括:

  • 径向畸变:由镜头曲率引起,导致直线变成弯曲。
  • 表达公式: p d = p u ( 1 + k 1 r 2 + k 2 r 4 + k 3 r 6 ) \mathbf{p}_d=\mathbf{p}_u(1+k_1r^2+k_2r^4+k_3r^6) pd=pu(1+k1r2+k2r4+k3r6)
    其中 𝑟 是未畸变点 p u \mathbf{p}_u pu到光轴的距离。
  • 切向畸变:由于镜头与成像平面不完全平行引起。
    • 表达公式:
      x d = x u + [ 2 p 1 x u y u + p 2 ( r 2 + 2 x u 2 ) ] x_d=x_u+[2p_1x_uy_u+p_2(r^2+2x_u^2)] xd=xu+[2p1xuyu+p2(r2+2xu2)]
      y d = y u + [ p 1 ( r 2 + 2 y u 2 ) + 2 p 2 x u y u ] y_d=y_u+[p_1(r^2+2y_u^2)+2p_2x_uy_u] yd=yu+[p1(r2+2yu2)+2p2xuyu]
      通过校正畸变,可以将畸变的图像点恢复到针孔相机模型中。

双目相机模型

双目相机系统由两个相机组成,用于通过视差恢复三维点的深度信息。

  • 几何关系:
    • 两个相机之间的相对位置和姿态由旋转矩阵
  • 深度计算:
    Z = f ⋅ b d Z=\frac{f\cdot b}{d} Z=dfb
    其中:
    • 𝑍 是3D点的深度。
    • 𝑓 是相机焦距。
    • 𝑏 是基线长度(两个相机的距离)。
    • 𝑑 是视差(两个相机对应点的像素差)。

双目相机常用于三维场景重建。

RGB-D相机模型

RGB-D相机结合了传统的RGB图像和深度信息,直接提供每个像素的深度值 𝑍。

  • 深度值与3D点的计算:
    [ X Y Z ] = Z ⋅ K − 1 [ u v 1 ] \begin{bmatrix}X\\Y\\Z\end{bmatrix}=Z\cdot\mathbf{K}^{-1}\begin{bmatrix}u\\v\\1\end{bmatrix} XYZ =ZK1 uv1
    其中 (𝑢,𝑣) 是像素坐标,𝐾 是相机内参。
  • 优点:
    • 能直接获取场景深度,避免了双目相机的匹配误差。
  • 常见设备:
    • Kinect、Realsense、Lidar等。

图像

图像的基本定义

  • 图像是对真实场景的二维采样,由像素组成,每个像素存储场景的亮度或颜色信息。
  • 图像的基本形式:
    • 灰度图像:每个像素存储亮度值。
    • 彩色图像:每个像素存储RGB三个通道的颜色值。

图像坐标系

  • 像素坐标系:以像素点为单位,左上角为原点,坐标为 (𝑢,𝑣)。
  • 图像坐标系:以图像中心为原点,单位为像素。

计算机中的图像

图像的存储

  • 在计算机中,图像以矩阵的形式存储:
    I = [ I ( 0 , 0 ) I ( 0 , 1 ) ⋯ I ( 0 , n ) I ( 1 , 0 ) I ( 1 , 1 ) ⋯ I ( 1 , n ) ⋮ ⋮ ⋱ ⋮ I ( m , 0 ) I ( m , 1 ) ⋯ I ( m , n ) ] \mathbf{I}=\begin{bmatrix}I(0,0)&I(0,1)&\cdots&I(0,n)\\I(1,0)&I(1,1)&\cdots&I(1,n)\\\vdots&\vdots&\ddots&\vdots\\I(m,0)&I(m,1)&\cdots&I(m,n)\end{bmatrix} I= I(0,0)I(1,0)I(m,0)I(0,1)I(1,1)I(m,1)I(0,n)I(1,n)I(m,n)

每个 𝐼(𝑢,𝑣) 表示像素的亮度或颜色值。

图像的处理

  • 图像处理包括滤波、边缘检测、特征提取等。
  • 在视觉SLAM中,图像处理是特征点提取和匹配的基础。

3D视觉

双目视觉

  • 双目视觉通过两个相机的配合,计算场景的深度信息。
  • 核心原理:
    • 使用极线约束和视差进行三角测量。
  • 双目视觉的应用:
    • 3D场景重建。
    • 目标检测与深度估计。

RGB-D视觉

  • RGB-D视觉直接提供深度信息,常用于室内场景的三维建模。
  • 优势:
    • 数据采集速度快。
    • 深度信息精确,无需匹配。
  • 缺点:
    • 深度传感器对光线和环境敏感。

总结

相机与图像是计算机视觉的核心组成部分。从针孔相机模型到RGB-D相机模型,从二维图像的表示到三维视觉的场景重建,都离不开对相机模型的理解与应用。结合这些模型,可以实现从图像到三维世界的感知与表达,为计算机视觉和SLAM任务奠定了理论基础。


http://www.kler.cn/a/461208.html

相关文章:

  • vue cli更新遇到的问题(vue -V查询版本号不变的问题)
  • 六十一:HTTP/2的问题及HTTP/3的意义
  • 小程序学习07—— uniapp组件通信props和$emit和插槽语法
  • 信息学奥赛一本通:1311:【例2.5】求逆序对
  • 神经网络入门实战:(二十三)使用本地数据集进行训练和验证
  • 机器学习之正则化惩罚和K折交叉验证调整逻辑回归模型
  • 公交智眼 4G 录像机:开启安全运营新篇章
  • spring中常见的自动注入方式
  • 论文实现:Reactive Nonholonomic Trajectory Generation via Parametric Optimal Control
  • Vue3 简介
  • C++初步认识函数
  • @RestControllerAdvice注解
  • OneOS操作系统入门-驱动-03:I2C总线及驱动
  • java实现excel导入参考资料合集
  • Zookeeper在中间件的应用和在Spring Boot业务系统中实现分布式锁和注册中心的解决方案
  • CT 扫描显示 USB-C 电缆可能隐藏复杂的恶意硬件
  • 强化学习方法分类详解
  • 电脑cxcore.dll文件缺失怎么办?cxcore100.dll缺失问题解决办法
  • svn不能添加.a文件
  • 从零开发一套UWB定位系统需要多长时间?UWB超宽带定位系统源码
  • 计算机网络•自顶向下方法:IP分片与重组
  • Dell服务器升级ubuntu 22.04失败解决
  • 基于Django+python的Python在线自主评测系统设计与实现
  • caddyfile如何托管静态文件,首页默认为index.html
  • 如何在谷歌浏览器中创建安全的密码
  • 深入理解 pytest Fixture 方法及其应用