自动泊车技术—相机模型
一、相机分类及特性
传感器类型 | 深度感知原理 | 有效工作范围 | 环境适应性 | 功耗水平 | 典型成本区间 | 数据丰富度 |
---|---|---|---|---|---|---|
单目相机 | 运动视差/几何先验 | 1m~∞ | 光照敏感 | 1-2W | 5−5−50 | 2D纹理中 |
双目相机 | 立体匹配 (SGM/SGBM算法) | 0.3m~20m | 纹理依赖 | 3-5W | 50−50−300 | 2D+稀疏深度 |
多摄像头系统 | 多视角三角测量 | 0.1m~50m | 标定敏感 | 10-20W | 200−200−1000 | 2D全景 |
RGB-D传感器 | 结构光/ToF (Time-of-Flight) | 0.1m~5m | 室外失效 | 4-8W | 100−100−500 | 3D点云高 |
全景相机 | 多镜头拼接 | 全向覆盖 | 动态物体鬼影 | 5-10W | 500−500−3000 | 360° 2D |
事件相机 | 异步光强变化检测 | 理论无限 | 低光增强 | 0.1-0.5W | 1000−1000−5000 | 时空事件流 |
二、相机的针孔模型
1. 基本概念
-
针孔模型原理:光线通过一个无限小的孔(光心)投射到成像平面,形成倒立的实像。
-
关键组成部分:
-
光心(Optical Center):相机透镜的中心点,所有光线通过此处。
-
成像平面(Image Plane):光线投影形成的二维平面,位于光心后方,距离为焦距 ff。
-
光轴(Optical Axis):垂直于成像平面并通过光心的直线。
-
2. 坐标系定义
-
世界坐标系(World Coordinate)
三维空间中的绝对坐标系,表示为 (Xw,Yw,Zw)(Xw,Yw,Zw)。 -
相机坐标系(Camera Coordinate)
-
原点位于光心 OcOc。
-
ZcZc 轴沿光轴指向场景,XcXc 和 YcYc 轴与成像平面平行。
-
点 PP 的坐标为 (Xc,Yc,Zc)(Xc,Yc,Zc)。
-
-
成像平面坐标系(Image Plane Coordinate)
-
原点位于光轴与成像平面的交点。
-
坐标 (x,y)(x,y) 表示投影点,单位为物理尺度(如毫米)。
-
-
像素坐标系(Pixel Coordinate)
-
原点位于图像左上角。
-
坐标 (u,v)(u,v) 表示像素位置,单位为像素。
-
3. 投影过程
步骤1:世界坐标 → 相机坐标
通过刚体变换(旋转矩阵 RR 和平移向量 tt)将世界坐标系中的点转换到相机坐标系:
矩阵变换公式可表示为:
$$ \begin{bmatrix} X_c \ Y_c \ Z_c \ 1 \end{bmatrix}
\begin{bmatrix} R & t \ 0 & 1 \end{bmatrix} \begin{bmatrix} X_w \ Y_w \ Z_w \ 1 \end{bmatrix} $$
其中:
- $[X_c, Y_c, Z_c, 1]^T$ 表示相机坐标系下的齐次坐标
- $[X_w, Y_w, Z_w, 1]^T$ 表示世界坐标系下的齐次坐标
- $R$ 为旋转矩阵
- $t$ 为平移向量
步骤2:相机坐标 → 成像平面坐标
根据相似三角形原理,投影到成像平面:
$$x=f⋅XcZc,y=f⋅YcZcx=f⋅ZcXc,y=f⋅ZcYc$$
其中 ff 为焦距。
步骤3:成像平面坐标 → 像素坐标
考虑像素缩放和主点偏移:
$$u=xdx+u0,v=ydy+v0u=dxx+u0,v=dyy+v0$$
-
$$dx,dydx,dy$$:每个像素的物理尺寸(如毫米/像素)。
-
$$(u0,v0)(u0,v0)$$:主点(光轴与成像平面的交点的像素坐标)。
4. 内参矩阵与外参矩阵
-
内参矩阵(Intrinsic Matrix, KK)
包含相机固有参数:
$$K=[fxsu00fyv0001]K=fx00sfy0u0v01$$
-
$$fx=f/dxfx=f/dx, fy=f/dyfy=f/dy$$:以像素为单位的焦距。
-
ss:轴倾斜因子(通常为0)。
-
(u0,v0)(u0,v0):主点坐标。
-
外参矩阵(Extrinsic Matrix)
描述相机在世界坐标系中的位姿:
$$[R∣t]=[r11r12r13txr21r22r23tyr31r32r33tz][R∣t]=r11r21r31r12r22r32r13r23r33txtytz$$
-
RR:3×3旋转矩阵。
-
tt:3×1平移向量。
5. 齐次坐标下的投影公式
将三维点 $Pw=(Xw,Yw,Zw,1)Pw=(Xw,Yw,Zw,1)$ 投影到像素坐标 $p=(u,v,1)p=(u,v,1)$:
$$p=K⋅[R∣t]⋅Pwp=K⋅[R∣t]⋅Pw$$
展开后:
$$[uv1]=[fxsu00fyv0001][r11r12r13txr21r22r23tyr31r32r33tz][XwYwZw1]uv1=fx00sfy0u0v01r11r21r31r12r22r32r13r23r33txtytzXwYwZw1$$
6. 畸变矫正(非针孔模型部分)
实际相机因透镜存在畸变,需额外矫正:
-
径向畸变:
$$xcorrected=x(1+k1r2+k2r4+k3r6)xcorrected=x(1+k1r2+k2r4+k3r6)$$
$$ycorrected=y(1+k1r2+k2r4+k3r6)ycorrected=y(1+k1r2+k2r4+k3r6)$$ -
切向畸变:
$$xcorrected+=2p1xy+p2(r2+2x2)xcorrected+=2p1xy+p2(r2+2x2)$$
$$ycorrected+=p1(r2+2y2)+2p2xyycorrected+=p1(r2+2y2)+2p2xy$$