0 Preface
智能驾驶对于环境的感知来源于各种传感器的信息,不同的整车厂给出了不同的解决方案<智能驾驶系统架构>,在众多感知传感器中,摄像头因其技术成熟且成本低,被最早用作驾驶辅助系统中,而且无论具体方案摄像头总占有一席之地。
1 Camera System
1.1 Camera Link
一个典型的摄像头链路如下图所示,行车摄像头通过LVDS直接与AD域控制器连接,同时AD域控对摄像头图像进行处理、缩放、拼接再通过LVDS传递给智能座舱控制器IVI,IVI根据功能将图像显示在屏幕上。
整个摄像头链路分为
- Camera模块(前视摄像头),
- AD对于摄像头图像的解串,处理(e.g. 格式转换)、缩放、拼接最后加串发送给IVI
- IVI对拼接数据进行解串,在SOC中对数据流进行裁剪、渲染后最终显示到屏幕上
1.2 Camera System Component
通过上述Camera链路可以看到,Camera System根据硬件的不同功能可以分为:
零部件:
- 独立的摄像头零件:包括摄像头的镜头、图像传感器以及最终将图像通过串行器发送到物理链路上。
- 域控制器:接受图像数据进行图像处理,并将处理后的感知数据给到模型和算法
- 显示:根据功能摄像头数据将被显示在屏幕上
链路、接口、协议:
- 物理链路LVDS上的协议行业上有两种不同的选择:Maxim 和 TI
- 基于这两种不同的协议,Serdes的选型也有两种方向,当然这两种方案并不兼容,甚至对于TI方案来说不同的协议版本也并不兼容。
- 虽然LDVS的传输上并没有统一的标准但对于板上的图像传输有MIPI的协议可以参考,当前目前我们只用到了MIPI CSI/eDP协议,以及物理层的CPHY、DPHY协议。
2 Camera Module
2.1 Camera Module Overview
Camera模组简单结构如下所示,包括镜头、图像传感器、串行器以及模组供电模块,同时摄像头中也可选的可以集成ISP。如果摄像头中未集成ISP,则摄像头图像传感器的RAW数据将被串化并发送到数据传输线LVDS上;如果集成了ISP,则摄像头端就可以进行数字信号处理,将图像传感器的RAW格式转换成例如YUV格式。摄像头传输数据格式的选择基于摄像头的使用场景和后续的数据处理方案,由于在智驾场景中,SOC侧会集成ISP并进行后续各种图像操作,所以车载摄像头一般不需要集成ISP。
- 通过LVDS(GMSL)携带POC将外部(SOC)供电通过内部PMIC给图像传感器和串行器供电,
- 将摄像头通过LVDS将图像数据Forward传输给SOC
- LVDS上也携带Reverse的IIC控制信息,SOC可以通过此链路获得Camera信息/故障信息。
- LVDS上也携带IO控制信息,SOC可以通过此链路控制同步曝光、复位等操作。
2.2 Camera Parameter
以SUNNY的感知摄像头为例,来看摄像头的基本参数包括:
Lens F# | 1.6/2.0 |
FOV | 30/60/120 |
Sensor | AR0820/AR0233 |
Resolution | 3840*2160/1920*1537/1920*1080 |
Pixel Format | RGGB |
Bits per pixel | RAW12 |
Fps | 30 |
2.3 Camera Basic Concept
2.3.1 Camera Lens
Camera模组镜头,直接影响光成像效果,根据场景不同有长焦,广角等各类镜头。
2.3.1.1 光圈大小F#
F:光圈值
F值 = 焦距/光圈直径
F1.6 意味着光圈很大,可以让大量的光线进入相机。
大光圈对低光环境有利,可以提升图像亮度
大光圈产生浅景深,即只有焦点处是清晰的,其余部分模糊;适于人像摄影,突出主体。
2.3.1.2 视场角FOV
视场角,如果成像平面的宽度(W)固定,FOV的大小直接由Focal Length(焦距)决定。Focal Length越大,看得越远,但FOV越小。Focal Length焦距越小,看得越近,但FOV变大。
HFOV | 水平FOV | 广角镜头,120°视场角看的近 长焦镜头,30°视场角看得远 |
VFOV | 垂直FOV | |
DFOV | 对角线FOV |
2.3.2 Camera Sensor
图像传感器,为模组内核心模块,用于将光信号转换为电信号采集图像信息。
根据sensor技术类型
-
CCD(Charge-Coupled Device) ,电耦合器件
-
CMOS(Complementary Metal-Oxide-Semiconductor),互补金属氧化物半导体
-
低功耗,成本低,读取速度快
-
2.3.2.1 Sensor成像原理
-
CFA(Color Filter Array) 彩色滤波阵列
光源射入传感器前,有一层Filter layer滤光,使其底下的传感器只反应该类光的强度。也就是每个Pixel上放置一个单一颜色的滤镜(RGB),这样每个Pixel只有1/3是真实的,剩下的部分通过各种插值手段进行填充。所以CFA中阵列排布直接影响RAW数据的采集和后续处理(插值等)。
-
Bayer Patten
基于CFA的差异,分为不同的Bayer Pattern(e.g. RGGB、RCCB etc...
-
曝光与读出
- 曝光指传感器在光线下积累光电荷的过程
- 曝光后,在Senor中,通常采用按行读出的方式
Rolling Shutter曝光模式:
- CMOS传感器沿着图像的一行一行采集数据
- 每次读取一整行,然后依次移动到下一行进行读取
- 每行的像素都会同时读取,这是因为CMOS传感器允许每个像素都有各自的读出电路。
例如一个1920*1080的图像,每次读出一行即1920个像素
- Row Reset: 清零一行像素,开始从曝光(积累电荷)。
- Row Read: 读出一行像素,开始输出RAW数据(如通过MIPI发出数据行)。
- Row Read - Row Reset = Line
这样CMOS传感器将曝光积累的电荷读出,通过放大器并进行AD转换,获取RAW值。这个Raw Data指的是Pixel像素的位深。
2.3.2.2 像素Pixel
-
摄像头像素,指的是Sensor上由多少个感光单元
- 手机,e.g. 一亿像素
- 汽车,e.g. 8M像素
-
Image:图像由像素组成,但输出时可能不生成相应像素的图像,而是使用合并像素的低分辨率格式
- 提升图像质量和降低文件大小
- 图像分辨率:图像的宽和高分别由多少像素
- 位深度:存储图像一个像素需要多少bit
-
Pixel:由RGB组成,每个像素的颜色是通过RGB颜色展示出来的
-
一个像素需要多少存储空间取决于需要存储一个像素的多少信息,以及是否采用压缩技术。
-
2.3.2.3 分辨率Resolution
图像分辨率MP = K(列) x P(行)
- 720p指的是720行
- 2K指的是2048列
- 3840 H x 2160 V = 8.3M active-pixel array
Resolution | |
720p | 1280 * 720 |
1080p | 1920 * 1080 |
2K | 2048 * 1080 |
4K | 4096 * 2160 |
2.3.2.4 像素位深
黑白(不压缩) | 1bit | 2种状态 |
灰度(不压缩) | 8bit | 256种状态 |
RGB888(不压缩) | 24bit | RGB真彩色 |
RGBA | 32bit | A是透明度 |
2.3.2.5 通信带宽
-
图像大小:
Size = width(rows) * height(lines) * width(bits/pixel)
8M摄像头的一张Raw12输出图像
Size = 3840 * 2160 * 12 = 99.5Mb
-
帧率(frames per second)
-
数据带宽
- 单路摄像头:Bandwidth = width(rows) * height(lines) * width(bits/pixel) * fps
- 3840 * 2160 * 12 * 30 = 2.99Gbps
- Link带宽: LinkSpeed >= bandwidth * 1.x
- MIPI速率: mipiclk >= bandall * 1.2
- 单路摄像头:Bandwidth = width(rows) * height(lines) * width(bits/pixel) * fps
2.3.3 Image
2.3.3.1 Image Data Type
-
GRB
三种颜色以不同的量进行叠加
RGB(0,0,0) | 黑色 | |
RGB(255,255,255) | 白色 |
-
YUV
YUV 色彩空间实际上是把一幅彩色的图片分成了一个表示暗亮程度的亮度信号(Luminance)Y,和两个表示颜色的色度信号(Chrominance)U 和 V。U,V通道分别是蓝色通道和红色通道,Y 通道表示亮度信息。U 通道数值越高,颜色就越接近蓝色,V 通道数值越高,颜色就越接近红色,Y 通道数值越高,图片则越亮。
2.3.3.2 Image Data Flow
在传感器传递图像数据流时,一般会填充Blacking Region,满足信号处理和传输的各种需求,一幅图像在传输数据流中包括水平空白(Horizontal Blanking)、垂直空白(Vertical Blanking)和有效数据。
Blacking Region是传感器在数据读出和传输过程中自动产生的,Blacking的大小一般由以下几个因素影响。
-
传感器设计和架构,不同传感器架构和读出电路,所需要的Blacking时间不同
-
时钟频率,时钟频率越快,数据传输和处理速度更快,用于同步的Blacking区域也越小
-
数据处理,后台如果需要对采集数据进行数据处理,则可能需要更多的时间为图像处理、存储、输出做准备
-
输出格式,输出数据的格式不同以及不同的接口协议对Blacking可能有不同的要求。
2.3.4 Screen
-
PPI(Pixel per Inch)像素密度
- 像素密度越大,屏幕显示效果越好
- PPI = 对角线分辨率/屏幕尺寸
- 视网膜屏幕,通常PPI > 300
-
屏幕
- 同样尺寸的屏幕(e.g. 27寸) 分辨率更高的显示器提供了更高的PPI
27寸4K屏和1080P屏的PPI
2.3.5 Vedio
-
Vedio
图像(Image/Frame)是视频的基础单元,一个视频由一组连续的静态图像组成,这些Frame按照FPS的速度连续播放形成视频。
-
Encoder/Decoder
在存储和传输上,为了有效的利用空间和带宽,视频一般需要压缩编码。而播放器需要在播放时将视频进行解码。视频编码方式就是指通过压缩技术,将原始视频格式的文件转换成另一种视频格式文件的方式。
- H.264
- H.265是H.264升级的编码协议
3 Summary
本文主要讨论了摄像头的系统组成以及镜头和图像传感器的基本概念,当图像传感器获取到像素的采样值后,通过串行器将数据发送到LVDS上,下一节我们聊一聊LVDS和Serdes。