传感器基础(上):摄像头工作原理、坐标系与内参外参、图像数据格式

大家好,我是你们这趟感知融合之旅的向导。今天咱们聊聊摄像头——感知系统里最基础、也最像人眼的传感器。

说实话,我刚入行那会儿,觉得摄像头不就是个拍照片的嘛,有啥好学的?后来在项目里栽了跟头才明白,不懂摄像头的工作原理和坐标系,你连标定都做不明白。嗯,咱们今天就把这块硬骨头啃下来。

一、摄像头是怎么“看”世界的?

摄像头的工作原理,说白了就是小孔成像的升级版。光线通过镜头,投射到感光元件上,光电转换后变成数字信号。

我习惯把摄像头拆成三部分来理解:

  • 镜头(Lens):负责聚光和对焦。焦距越短,视野越宽,但物体看起来越小。
  • 感光元件(Sensor):把光信号转成电信号。常见的有CCD和CMOS,现在自动驾驶基本都用CMOS,功耗低、速度快。
  • ISP(图像信号处理器):把原始数据加工成我们能看的图像。包括去噪、白平衡、色彩校正等。
个人经验: 我在做夜间感知项目时,发现ISP的降噪参数调不好,车道线检测直接崩了。后来我建议团队在ISP阶段保留更多原始细节,别过度平滑。效果立竿见影。

你想想看,摄像头每秒能拍30帧甚至60帧图像,每帧图像里包含数百万个像素点。这些像素点就是感知算法的原材料。

二、坐标系:把世界“翻译”给算法

摄像头拍到的是一张2D图片,但我们要做的是从2D里还原3D信息。这就绕不开坐标系。

自动驾驶里常用的坐标系有四个:

坐标系 原点 用途
世界坐标系 自定义(如车辆启动位置) 描述物体在真实世界中的位置
相机坐标系 摄像头光心 以摄像头为中心的3D坐标
图像坐标系 图像中心 2D平面坐标(毫米单位)
像素坐标系 图像左上角 像素位置(行列号)

为什么会搞这么复杂?因为数据在不同坐标系之间流转,每一步都需要精确的数学变换。

举个例子:路上有个行人,他的GPS坐标(世界坐标系)→ 摄像头看到的3D位置(相机坐标系)→ 成像平面上的点(图像坐标系)→ 最终在屏幕上的像素位置(像素坐标系)。每一步都对应一个变换矩阵。

三、内参和外参:摄像头的“身份证”和“户口本”

内参和外参是标定的核心。我当年第一次做标定,把内参和外参搞混了,结果投影出来的3D点全飞了。后来我给自己编了个口诀:内参管“怎么看”,外参管“在哪看”。

内参矩阵(Intrinsic Matrix)

内参描述的是摄像头本身的特性,包括:

  • 焦距(fx, fy):单位是像素。注意,fx和fy通常不一样,因为像素不是正方形。
  • 主点(cx, cy):光轴与成像平面的交点,一般在图像中心附近。
  • 畸变系数:径向畸变(k1, k2, k3)和切向畸变(p1, p2)。

内参矩阵长这样:

K = [[fx,  0, cx],
     [ 0, fy, cy],
     [ 0,  0,  1]]
避坑指南: 我曾经用一款广角摄像头做标定,畸变系数没调好,导致边缘的车道线弯曲了20个像素。后来我改用鱼眼模型才搞定。记住:普通针孔模型不适用于大广角摄像头。

外参矩阵(Extrinsic Matrix)

外参描述的是摄像头在世界坐标系中的位置和朝向。它由旋转矩阵R和平移向量t组成。

外参矩阵是4x4的齐次矩阵:

[R | t]
[0 | 1]

旋转矩阵R有3个自由度(俯仰角、偏航角、翻滚角),平移向量t有3个自由度(x, y, z)。

我习惯用欧拉角来理解,但实际计算时用四元数更稳定,避免万向锁问题。

四、图像数据格式:算法“吃”什么?

摄像头输出的原始数据,算法不能直接吃。需要经过格式转换。

常见的图像数据格式有:

  • RAW格式:传感器原始数据,每个像素只记录一种颜色(R/G/B)。数据量最小,但需要去马赛克处理。
  • YUV格式:亮度(Y)和色度(UV)分离。Y通道保留细节,UV通道可以压缩。很多ISP直接输出YUV。
  • RGB格式:每个像素三个通道。算法最喜欢,但数据量大。
  • BGR格式:OpenCV默认格式。注意,和RGB顺序相反,新手经常踩坑。
注意: 我在做模型部署时,发现训练用的图像是RGB,但摄像头驱动输出的是BGR。没做转换直接喂给模型,结果模型把红色识别成蓝色。这种低级错误,排查起来特别费时间。

另外,图像的分辨率和位深也很关键。1080p(1920x1080)是主流,但为了检测远距离小目标,现在很多方案上到了4K甚至8K。位深一般是8bit(0-255),但HDR场景需要12bit或更高。

五、知识体系总览

下面这张图,是我自己总结的摄像头基础知识框架。你可以把它当成一张地图,学完这章后对照着复习。

摄像头基础知识体系 摄像头工作原理 坐标系 内参 & 外参 图像数据格式 镜头 感光元件 ISP 世界坐标系 相机坐标系 图像坐标系 像素坐标系 焦距/主点 畸变系数 旋转矩阵R 平移向量t RAW YUV RGB/BGR

这张图把今天讲的内容串起来了。你从左上角开始,顺着箭头往下看,就能理清摄像头从物理原理到数学建模再到数据输出的完整链路。

好了,这一章的内容就到这里。记住:摄像头是感知系统的眼睛,坐标系是沟通的桥梁,内参外参是标定的灵魂,图像格式是算法的口粮。把这四个点吃透了,后面的融合算法你学起来会轻松很多。

可可精品资料库