1. 课程导入与Mobileye EyeQ系统总览
在高级驾驶辅助系统(ADAS)与自动驾驶的感知链路中,Mobileye EyeQ 系列芯片长期扮演着“视觉感知计算底座”的角色。它并不是一颗通用 GPU,而是一颗面向视觉感知任务深度定制的 SoC:内部集成了专用视觉加速器、多核 CPU、图像信号处理器(ISP)、内存子系统以及丰富的车载接口。理解 EyeQ 的定位,是理解整个车道与目标感知系统工程的前提——它决定了我们能拿到什么数据、以什么时序拿到、以及这些数据在系统层面如何被消费。
本课程聚焦“车道与目标感知”这一具体工程方向,而不是泛泛介绍芯片架构。所谓车道感知,是指从图像中提取车道线、道路边界、可行驶区域等结构化信息;目标感知则是指检测、分类并跟踪车辆、行人、两轮车等交通参与者。这两类任务共享同一套图像输入与时间同步机制,但在输出语义、精度要求和后处理方式上差异明显。EyeQ 的价值在于:它把这两类任务所需的卷积、特征提取、光流、聚类等运算固化到硬件流水线中,使感知算法能在有限功耗下实时运行。
为了把“芯片能力”与“工程目标”对应起来,先看一张系统总览图。下图从传感器输入出发,经过 EyeQ 内部的处理链,最终输出到下游融合与决策模块,同时标出了本课程重点关注的可观测点与可配置点。
从图中可以看到,摄像头原始数据先经过 ISP 完成基础图像质量处理,再进入 EyeQ 内部的车道与目标感知流水线。流水线的输出并不是“一张画好框的图”,而是一组带有时间戳和置信度的结构化数据。下游融合模块消费这些数据时,最关心的是时间对齐与坐标一致性。因此,本课程在讲解算法之前,会先建立“数据从哪来、经过什么变换、以什么形式出去”的完整链路认知。
课程学习路径与实战项目说明
课程按“先建立系统观,再深入单任务,最后回到系统集成”的顺序组织。前四章集中解决芯片与工具链的认知问题:EyeQ 各代芯片的算力分配、内存布局、开发环境与数据回放工具。从第五章开始进入车道感知,重点包括车道线特征提取、拟合模型选择、曲率与航向角估计,以及在不同光照和道路材质下的鲁棒性处理。中段章节转向目标感知,覆盖检测网络在 EyeQ 上的部署约束、多目标跟踪的 ID 管理、以及遮挡与截断场景下的状态维持。后段章节回到系统层面,讨论多任务并行时的资源竞争、时间同步、输出接口定义与故障诊断。
实战项目贯穿始终,最终交付一个可运行的“车道与目标感知回放系统”。该项目不依赖实车,而是使用预录制的图像序列和对应的车辆总线数据,在开发板上完成感知流水线的配置、运行与结果评估。项目分为三个可独立验证的阶段:第一阶段只跑车道感知,要求输出连续帧的车道线参数并绘制到回放画面上;第二阶段加入目标检测与跟踪,要求输出目标 ID、位置和速度估计;第三阶段进行系统级调优,要求在多任务同时开启时,端到端延迟不超过设定阈值,且目标 ID 切换次数低于给定上限。
需要特别说明的是,EyeQ 的感知输出带有明确的坐标系约定。本课程统一采用“车辆坐标系”:原点位于后轴中心地面投影点,X 轴指向车辆正前方,Y 轴指向车辆左侧,Z 轴指向天空。图像坐标系则采用像素单位,原点在图像左上角。所有涉及距离、角度和位置的讨论,都会明确标注当前使用的是哪套坐标系。在后续章节中,当需要从图像坐标转换到车辆坐标时,会给出具体的相机内参、外参和地面假设,而不是笼统地说“进行坐标变换”。
学习本课程不需要提前掌握 EyeQ 的专有指令集,但需要具备基本的图像处理概念(卷积、特征图、感兴趣区域)和 C/C++ 阅读能力。课程中出现的配置片段和参数表,都会以可直接对照的形式给出,便于在开发环境中复现。每章末尾的检查点用于确认关键概念是否理解到位,而不是重复正文内容。完成全部章节后,读者应当能够独立完成一条从图像输入到结构化感知输出的最小可用链路,并能定位常见的时序错位、ID 跳变和输出频率不匹配问题。