传感器——针孔相机模型

主要内容

针孔相机模型的建模及分析过程

针孔相机

推导过程:

对于现实中某个点P(x,y,z),由相似三角形有:
z f = x x ′ = y y ′ \frac{z}{f}=\frac{x}{x^{'}}=\frac{y}{y^{'}} fz=x′x=y′y

即:
{ x ′ = x z f y ′ = y z f \left\{ \begin{aligned} x^{'}=\frac{x}{z}f\\ y^{'}=\frac{y}{z}f \end{aligned} \right. ⎩ ⎨ ⎧x′=zxfy′=zyf

而像素坐标(u,v)通常经过一个平移 ( c x , c y ) (c_x,c_y) (cx,cy)和缩放α,β(x和y轴上的缩放比例)
{ u = α x ′ + c x v = β y ′ + c y \left\{ \begin{aligned} u &=αx^{'} + c_x \\ v &=βy^{'} + c_y \end{aligned} \right. {uv=αx′+cx=βy′+cy

把 x ′ 和 y ′ 代入得 x^{'}和y^{'}代入得 x′和y′代入得
z [ u v 1 ] = K ⋅ R ⋅ X + t = K ⋅ P z \begin{bmatrix} u \\ v \\ 1 \end{bmatrix} = K \cdot R \cdot X + t=K \cdot P z uv1 =K⋅R⋅X+t=K⋅P
K = [ f x 0 c x 0 f y c y 0 0 1 ] K = \begin{bmatrix} f_x & 0 & c_x \\ 0 & f_y & c_y \\ 0 & 0 & 1 \end{bmatrix} K= fx000fy0cxcy1

其中 f x = α f , f y = β f f_x=αf,f_y=βf fx=αf,fy=βf

总结:

针孔相机模型是一种描述相机成像原理的数学模型,模拟了相机将三维世界中的物体投影到二维图像平面上的过程。以下是该模型的逐步解释:

  1. 基本原理

    • 相机通过一个"针孔"(小孔)接收光线,并在后方固定位置(成像平面)形成一个图像。
    • 这个过程类似于光学成像,三维空间中的点被映射到二维图像平面上。
  2. 数学描述

    • 使用齐次坐标表示点的位置和变换,将三维点投影到二维图像。
    • 基本公式为:
      z [ u v 1 ] = K ⋅ R ⋅ X + t = K ⋅ P z \begin{bmatrix} u \\ v \\ 1 \end{bmatrix} = K \cdot R \cdot X + t=K \cdot P z uv1 =K⋅R⋅X+t=K⋅P
      其中,X 是三维空间点,K 是内参数矩阵,R 和 t 分别是相机的旋转和平移参数。等效的矩阵P是外参矩阵。
  3. 内参数矩阵 (K)

    • 包含相机的焦距、图像中心坐标等内参数。内参由相机性质决定,对于同一相机,内参数矩阵是相同的。因此基本为已知参数
    • 形式为:
      K = [ f x 0 c x 0 f y c y 0 0 1 ] K = \begin{bmatrix} f_x & 0 & c_x \\ 0 & f_y & c_y \\ 0 & 0 & 1 \end{bmatrix} K= fx000fy0cxcy1
      其中, f x , f y f_x,f_y fx,fy 是焦距在成像平面上的缩放后的"像素焦距",( c x , c y c_x, c_y cx,cy) 是成像平面相对于摄像机小孔的原点坐标。
  4. 外参数矩阵 ( P )

    • R 表示相机的姿态(旋转),t 表示相机的位置。
    • 经过齐次变换,RX+t可以等效成外参数矩阵P。
    • 描述了相机在三维空间中的方位和位置。
  5. 投影过程

    • 三维点 X 经过内参数矩阵 K 和外参数矩阵 (R, t) 的变换后,得到二维图像坐标 (x', y')。
    • 这一过程模拟了相机将物体成像到图像平面的过程。
  6. 应用与局限性

    • 在计算机视觉中,针孔相机模型是三维重建和图像合成的基础。
    • 由于实际相机存在透镜等复杂因素,模型有一定的简化假设,无法完美描述所有成像过程。
相关推荐
Bryce李小白29 分钟前
Flutter实现Android原生相机拍照
android·数码相机·flutter
qq_429879671 天前
OpenGL里相机的运动控制
数码相机
格林威1 天前
Baumer工业相机堡盟工业相机如何通过YoloV8深度学习模型实现卫星图像识别(C#代码,UI界面版)
人工智能·深度学习·数码相机·yolo·计算机视觉
安卓开发者1 天前
Android CameraX 使用指南:简化相机开发
android·数码相机
格林威2 天前
Baumer工业相机堡盟工业相机如何通过YoloV8深度学习模型实现沙滩小人检测识别(C#代码UI界面版)
人工智能·深度学习·数码相机·yolo·计算机视觉
格林威2 天前
Baumer工业相机堡盟工业相机如何通过YoloV8深度学习模型实现轮船检测识别(C#代码UI界面版)
人工智能·深度学习·数码相机·yolo·视觉检测
lqjun08272 天前
相机内外参矩阵:从3D世界坐标到2D像素坐标变换
数码相机·3d·矩阵
格林威2 天前
Baumer工业相机堡盟工业相机如何通过YoloV8深度学习模型实现持械检测(C#代码,UI界面版)
人工智能·深度学习·数码相机·yolo·计算机视觉
ZPC82103 天前
相机ROI 参数
数码相机
lingling0093 天前
精准扫描,驱动未来:迁移科技3D视觉系统在工业自动化中的革命性应用
人工智能·数码相机