详细拆解一个典型的ADAS视觉感知模块(以前向单目摄像头系统为例),涵盖结构原理、算法处理流程和各电路板的作用。这类系统广泛应用于AEB(自动紧急制动)、FCW(前向碰撞预警)、LDW(车道偏离预警)、TSR(交通标志识别)、LKA(车道保持辅助)等核心功能。
核心目标: 通过摄像头捕获前方场景图像,利用计算机视觉和深度学习算法,实时理解环境(检测车道线、车辆、行人、交通标志等),并将结构化感知结果输出给ADAS控制器或域控制器进行决策。
一、 结构原理 (整体架构)
一个典型的ADAS视觉感知模块可以抽象为以下几个核心部分:
光学镜头与外壳:
- 作用: 收集光线,聚焦在图像传感器上。通常包含滤光片(如红外截止滤光片IR-Cut)、保护玻璃、可能包含偏振片(减少眩光)。
- 关键参数: 焦距(决定视场角FOV)、光圈(决定进光量)、畸变控制、耐候性(防水防尘防雾)。
图像传感器:
- 作用: 将光信号转换为电信号(模拟)。通常是CMOS图像传感器 (CIS)。
- 关键特性:
- 分辨率: 常见的有1MP (1280x720), 2MP (1920x1080), 甚至8MP (3840x2160) 或更高。更高分辨率能提供更远的探测距离和更精确的检测。
- 动态范围 (HDR): 至关重要!道路环境光照变化巨大(隧道出口、逆光)。传感器本身需支持高动态范围(如Staggered HDR, DCG)或通过多帧曝光合成实现系统级HDR。
- 帧率: 通常为30fps或60fps,保证实时性。
- 快门类型: 全局快门优于卷帘快门(减少运动模糊)。
- 感光度 (Low Light Performance): 在黄昏、黎明或隧道内表现至关重要。
图像信号处理器:
- 作用: 接收图像传感器的原始模拟或数字信号(RAW Data),进行一系列关键的预处理操作,输出质量良好的YUV或RGB图像给主处理器。
- 处理流程 (ISP Pipeline):
- 黑电平校正
- 镜头阴影校正
- 坏点校正
- 去马赛克 (Demosaicing - 将Bayer Pattern RAW数据转为全彩RGB)
- 自动白平衡
- 自动曝光控制
- 自动对焦控制
- 色彩空间转换
- HDR合成与色调映射 (Tone Mapping) - 核心!
- 锐化
- 降噪
- 伽马校正
- 输出格式转换 (如YUV422, RGB888)
主处理器 (SoC - System on Chip):
- 作用: 这是整个模块的“大脑”。运行复杂的计算机视觉和深度学习算法,执行核心的感知任务(目标检测、分割、分类、跟踪)。
- 核心特性:
- 强大的CPU: 运行操作系统、任务调度、部分传统CV算法。
- 高性能GPU/NPU: 核心! 专为并行计算设计,高效运行深度学习模型(卷积神经网络CNN)。NPU是专门为神经网络推理优化的硬件加速器,能效比极高。
- 专用CV加速器: 可能包含硬件模块加速特定操作(如光流计算、特征提取)。
- 充足的内存: DDR4/LPDDR4/LPDDR5,容量需满足操作系统、算法模型和数据缓存需求。
- 丰富的外设接口: 连接ISP、外部存储器、MCU、通信接口等。
微控制器:
- 作用:
- 系统管理与监控: 负责模块的上电时序、看门狗、温度监控、电源管理、故障诊断。
- 安全功能: 监控主处理器SoC的状态(心跳、功能安全岛状态),在检测到严重故障时触发安全机制(如进入安全状态、报告错误)。
- 接口处理: 可能处理低速通信(如CAN/LIN)或与车辆其他ECU的简单交互。
- 传感器融合预处理: 有时会处理简单的传感器数据(如来自加速度计/陀螺仪的车辆运动信息)并进行初步融合。
- 关键要求: 通常需要满足ASIL-B (ISO 26262) 或更高等级的功能安全要求。
- 作用:
电源管理单元:
- 作用: 将车载电池电压(如12V/24V)转换为模块内各组件所需的各种稳定电压(如1.8V, 3.3V, 5V, 核心电压等)。提供过压、过流、过温保护。
通信接口:
- 作用: 将感知结果(目标列表、车道线参数、交通标志信息、原始特征图等)高效可靠地传输给ADAS域控制器或中央计算单元。
- 常见接口:
- CAN / CAN FD: 传统可靠,带宽较低(< 8 Mbps),适合传输结构化结果数据。
- FlexRay: 高可靠性,确定性带宽,但成本较高,应用逐渐减少。
- 以太网 (100BASE-T1 / 1000BASE-T1): 日益主流! 提供高带宽(100Mbps/1Gbps),支持更丰富的数据传输(如图像片段、点云片段)。支持时间敏感网络更佳。
- LVDS / FPD-Link III: 常用于摄像头模组内部ISP到主处理器的原始图像数据传输。
辅助传感器 (可选但常见):
- 作用: 为主视觉感知提供辅助信息。
- 类型:
- 惯性测量单元: 提供车辆的加速度、角速度信息,用于补偿车辆运动引起的图像抖动(Ego-Motion Compensation),提高感知稳定性。
- 温度传感器: 监控模块温度,用于温度补偿(镜头焦距、传感器性能)和过热保护。
二、 算法处理过程 (以单帧处理为例)
假设输入是ISP处理后的高质量RGB图像(可能还包含时间戳和来自IMU的运动信息):
图像预处理 (可选,可能在ISP或SoC进行):
- 尺寸缩放 (适应网络输入尺寸)
- 色彩/对比度微调
- 畸变校正 (根据镜头标定参数)
- 基于IMU的运动补偿: 利用车辆运动信息,补偿图像序列中的平移/旋转,稳定感知结果。
特征提取 (核心):
- 使用预训练的深度卷积神经网络作为骨干网络提取图像的多层次特征。
- 骨干网络例子: ResNet, EfficientNet, MobileNetV3 (追求轻量化和速度)。这些网络在大型数据集(如ImageNet, COCO)上预训练,学习到了强大的通用特征表示能力。
目标检测与分类:
- 在提取的特征图上,应用检测头网络。
- 检测头例子: YOLO (You Only Look Once) 系列是ADAS中非常流行的单阶段检测器。
- 原理: 将图像划分为网格,每个网格单元预测若干个边界框及其置信度和类别概率。YOLOv5/v7/v8在速度和精度上取得了很好的平衡。
- 输出: 检测到的目标列表(车辆、行人、骑行者、交通锥等),包含每个目标的:
- 边界框坐标 (x, y, width, height)
- 目标类别置信度
- 目标存在的置信度
- 其他选项: SSD (Single Shot MultiBox Detector), Faster R-CNN (两阶段,精度高但慢)。
语义分割 (可选但重要):
- 目的: 对图像中的每个像素进行分类(如:道路、天空、车辆、行人、车道线、可行驶区域)。
- 网络例子: DeepLabv3+ 在精度和效率上表现良好,使用空洞卷积和编码器-解码器结构。
- 输出: 一个与输入图像同尺寸(或下采样)的掩码图,每个像素值代表其类别。
- 应用: 精确识别车道线轮廓、可行驶区域边界、场景理解。
车道线检测 (关键):
- 方法1 (基于分割): 利用语义分割的“车道线”类别结果,进行后处理(如曲线拟合)得到车道线参数(多项式系数)。
- 方法2 (基于关键点/实例): 使用特定网络直接预测车道线的关键点或实例掩码(区分左右车道线),再拟合曲线。
- 输出: 当前车道线的模型参数(如三次多项式系数)、类型(实线、虚线)、置信度、相对于车辆的位置(横向偏移Lateral Offset)。
交通标志识别:
- 通常结合目标检测和分类。
- 检测头先检测出“交通标志”目标框。
- 然后对目标框内的图像区域(ROI)进行精细分类,识别具体的标志类型(限速、停车、禁止通行等)。可能使用一个专门的分类网络或直接在检测网络的多任务头中完成。
目标跟踪:
- 目的: 对连续帧中检测到的目标进行关联,赋予唯一ID,估计运动状态(速度、加速度)。
- 算法例子: SORT (Simple Online and Realtime Tracking), DeepSORT (融合外观特征)。利用卡尔曼滤波预测位置,匈牙利算法进行数据关联。
距离估计 (单目):
- 挑战: 单目摄像头缺乏深度信息。
- 方法:
- 基于几何约束: 假设地面是平面,利用相机标定参数(内参、外参)和目标在图像中的位置(底部接触点)估算距离。适用于车辆等底部接触地面的目标。
- 基于目标尺寸先验: 利用已知目标类别(如轿车)的平均尺寸,结合其在图像中的像素大小和相机焦距估算距离。
- 基于深度学习: 训练一个网络直接预测每个像素或目标框的深度值(单目深度估计)。精度相对较低,但对非地面目标有效。
- 输出: 主要目标的纵向距离。
结果融合与后处理:
- 融合不同感知任务的结果(如检测到的车辆位置和跟踪ID)。
- 应用时间滤波器(如移动平均、卡尔曼滤波)平滑检测结果(位置、距离),减少抖动。
- 进行合理性检查(如车辆不会突然瞬移)。
结构化输出:
- 将最终的感知结果封装成预定义的结构化数据格式。
- 内容示例:
- 自车状态 (速度 - 通常从CAN获取,偏航率 - 来自IMU)
- 目标列表 (ID, 类型, 位置(2D/3D), 速度, 加速度, 尺寸, 置信度, 跟踪状态)
- 车道线信息 (左右线参数, 类型, 置信度, 车道宽度, 横向偏移, 曲率)
- 可行驶区域边界
- 交通标志列表 (类型, 位置, 置信度, 附加信息如限速值)
- 时间戳
- 系统状态 (健康状态, 置信度水平)
- 通过通信接口(如以太网)发送给下游系统。
三、 各电路板的作用 (以典型双板结构为例)
一个常见的ADAS摄像头模块内部可能包含两块主要电路板:
摄像头模组板 (Sensor Board / Head Board):
- 主要组件:
- CMOS图像传感器: 光电转换核心。
- 镜头座/调焦机构: 固定镜头,可能包含自动对焦马达驱动电路。
- 镜头驱动器: 控制自动对焦和自动光圈(如果镜头支持)。
- 简单的模拟前端: 可能包含传感器供电LDO、时钟驱动、模拟信号调理电路(如果传感器输出模拟信号)。
- 串行器: 关键! 将传感器输出的高速并行数字图像数据(或ISP处理后的数据)转换为串行差分信号(如MIPI CSI-2 over LVDS 或 FPD-Link III),通过柔性电路板或同轴线缆传输给主板。减少线缆数量和干扰。
- 温度传感器: 靠近传感器,监测核心温度。
- 局部电源管理: 为传感器、串行器等提供精确稳定的电压。
- 作用: 专注于高质量图像的采集和初步信号转换/传输。物理上靠近镜头,安装在模块前端。
- 主要组件:
主板 (Main Board / Processing Board):
- 主要组件:
- 主处理器 (SoC): 执行所有核心算法处理。
- 微控制器: 负责系统管理、安全监控、电源时序控制、低速通信。
- 解串器: 接收来自摄像头模组板的串行差分信号,还原为并行图像数据,输入给SoC(或ISP,如果ISP在主板上)。
- 图像信号处理器: 如果ISP是独立芯片或集成在SoC内,其接口和外围电路在此板上。
- 内存: DDR/LPDDR RAM芯片,为SoC提供运行内存。
- 存储: eMMC或SPI NOR/NAND Flash,存储操作系统、应用程序、算法模型、标定参数、日志。
- 电源管理单元: 整个模块的电源枢纽。接收车载电源,产生并分配所有所需电压给各组件(摄像头模组板、SoC、MCU、内存、接口等),包含保护电路。
- 通信接口控制器: 以太网PHY芯片、CAN/CAN FD收发器芯片等。
- 辅助传感器接口: 连接IMU(I2C/SPI)。
- 时钟电路: 提供系统主时钟和各组件所需时钟。
- 调试接口: JTAG, UART等。
- 作用: 这是模块的计算、控制、通信和电源中心。承载最复杂的处理任务和系统功能。
- 主要组件:
板间连接:
- 摄像头模组板和主板之间通常通过柔性电路板或细同轴线缆连接,传输高速串行图像数据、控制信号(I2C/SPI用于配置传感器/镜头)、电源。
总结
ADAS视觉感知模块是一个高度集成的复杂系统,其核心在于:
- 高质量的图像获取: 依赖镜头、CMOS传感器和强大的ISP处理(尤其是HDR)。
- 强大的实时计算: 依靠集成CPU、GPU/NPU/CV加速器的SoC运行深度学习算法。
- 精准的环境感知: 通过目标检测、分割、车道线检测、距离估计等算法理解场景。
- 可靠的数据输出: 通过高速通信接口(特别是车载以太网)输出结构化感知结果。
- 功能安全与可靠性: MCU负责监控、管理,确保系统在故障时进入安全状态,符合ISO 26262要求。
- 稳健的电源与热管理: 确保在恶劣的车规环境下稳定工作。