3. 视觉感知算法在EyeQ上的部署

EyeQ系列芯片(EyeQ3/EyeQ4/EyeQ5)是Mobileye视觉感知算法的专用载体,其核心设计思路是把深度神经网络推理、传统计算机视觉算子、以及多路视频流水线固化到专用加速器中。理解这五类感知任务在EyeQ上的部署方式,关键不是记住"用了什么网络",而是理解每类任务在芯片上占用的计算资源、输入输出形式、以及它们如何共享同一帧图像数据。

一、EyeQ的部署基础:从图像到感知结果

EyeQ的典型输入是单目或多目摄像头的YUV/RAW图像,分辨率常见为1280×960或1920×1080,帧率30fps。芯片内部由多个异构计算单元组成:VMP(Vector Microcode Processor)负责像素级预处理与光流、MPC(Multi-threaded Processing Cluster)负责多线程控制与后处理、PMA(Programmable Macro Array)负责卷积加速,以及专用的CNN加速器(EyeQ4起显著增强)。五类感知任务并非各自独立跑一遍完整网络,而是共享底层特征:前几层卷积提取的边缘、纹理、梯度信息被多个任务复用,这是EyeQ能在有限功耗(约3W)下同时运行多任务的关键。

部署的核心约束:EyeQ的算力(EyeQ4约2.5TOPS,EyeQ5约24TOPS)和内存带宽有限,因此每类任务都必须做模型量化(INT8/INT16)、感兴趣区域(ROI)裁剪和多尺度特征复用。忽略这些约束,直接移植PC端大模型,会导致帧率跌到个位数。

二、五类任务的部署要点

车道线检测:EyeQ上通常采用"语义分割+曲线拟合"的两段式。前端用轻量CNN对图像下半部分做逐像素分类,输出车道线、路缘、路面标记的概率图;后端在VMP上用RANSAC或三次多项式拟合出车道线方程,输出为y = a·x³ + b·x² + c·x + d的系数。部署时ROI通常限制在图像下方60%区域,分辨率可降采样到640×480,以降低PMA负载。

车辆检测:采用锚框(anchor)检测头,输出目标框、类别(轿车/卡车/巴士)和距离估计。EyeQ上常用单阶段检测器(类似SSD/YOLO的轻量变体),在特征图上直接回归。距离估计不依赖激光雷达,而是通过目标框底边在图像中的位置结合相机标定参数反推:Z = f·H / (y_bottom - y_horizon),其中f为焦距,H为相机高度,y_horizon为地平线像素行。

行人检测:与车辆检测共享主干网络,但增加高分辨率特征分支,因为行人目标更小、姿态变化更大。EyeQ上会针对行人做专门的ROI放大和难例挖掘训练。输出包括行人框、朝向和粗略的骨骼关键点(用于判断是否在行走)。

交通标志识别:分两步——先检测圆形/三角形/矩形标志区域,再对裁剪出的标志块做分类(限速、禁止、警告等)。EyeQ上分类网络非常小(输入32×32或48×48),因为标志类别有限且形状规整。部署时要注意颜色空间转换:标志检测对红色和蓝色敏感,通常在YUV空间直接做阈值分割,比RGB更省算力。

可行驶区域分割:这是最"重"的任务,需要对全图逐像素判断是否可行驶(路面、草地、障碍物)。EyeQ上采用编码器-解码器结构,编码器降采样提取语义,解码器上采样恢复分辨率。输出为二值或三值掩码(可行驶/不可行驶/未知)。部署时常用空洞卷积替代池化,以保持空间分辨率同时扩大感受野。

EyeQ视觉感知五任务部署架构与数据流 摄像头输入 1280×960 YUV 30fps VMP预处理 去噪/畸变校正 ROI裁剪/降采样 共享CNN主干 PMA卷积加速 INT8量化 多尺度特征图 车道线检测 分割+多项式拟合 车辆检测 锚框回归+距离估计 行人检测 高分辨率分支+关键点 交通标志识别 检测+小分类网络 可行驶区域分割 编码器-解码器 MPC后处理 目标跟踪 时序滤波 结果融合 部署关键参数(示例值,实际以具体项目标定为准): • 车道线ROI:图像下方60%,输入640×480,输出多项式系数4个 • 车辆检测:特征图80×60,锚框3种尺度×3种长宽比,距离估计误差约±10% • 行人检测:最小检测尺寸20×40像素,关键点5个(头、肩、髋) • 交通标志:分类输入32×32,类别约40类,颜色阈值在YUV空间执行

三、部署中的实际约束与调优

在EyeQ上部署这五类任务,最常遇到的瓶颈不是算法精度,而是内存带宽和功耗。以EyeQ4为例,同时运行五类任务时,DDR带宽占用可能接近上限。实际工程中会采取以下措施:

  • 特征图复用:车道线和可行驶区域共享编码器前几层,车辆和行人共享检测头前的特征图,避免重复计算。
  • ROI分级:车道线只处理图像下半部分,交通标志只处理图像上半部分,行人检测在车辆检测结果附近做二次精检。
  • 时序降频:交通标志识别不需要每帧运行,可每3帧或5帧执行一次;车道线在高速场景可降低到15fps。
  • 量化校准:INT8量化时,用真实道路数据做校准集,确保激活值动态范围不溢出。典型校准集需要500~1000帧。
一个实用的部署检查顺序:先确认单任务在目标EyeQ型号上的帧率和内存占用,再逐步叠加任务,观察带宽和功耗曲线。如果叠加到第三个任务时帧率骤降,说明特征复用没做好,应回头检查主干网络是否被重复调用。

四、结果输出与下游接口

五类任务的输出最终汇入MPC做时序融合。车道线输出为多项式系数和置信度;车辆和行人输出为目标列表(ID、位置、速度、类别);交通标志输出为标志类型和位置;可行驶区域输出为掩码图。这些结果通过EyeQ的CAN或以太网接口发送给域控制器或执行器。部署时要注意:输出数据结构必须与下游约定一致,例如目标ID的分配策略、坐标系定义(图像坐标系还是车辆坐标系)、时间戳对齐方式。这些接口细节往往比算法本身更容易在集成阶段出问题。

总结来说,EyeQ上的视觉感知部署是一个算力、带宽、精度三者的平衡过程。理解每类任务的输入输出、共享关系和资源占用,比单纯追求某个任务的精度更有工程价值。