CAN/CANFD
CCP/UDS
Bootloader/OTA
ECU/VCU/FCU
Simulink/ECUCoder
Ethernet
Hardware
Download
上一篇
下一篇
一.视觉传感器简介
-1.1.摄像头硬件组成
-1.2.车载摄像头分类
-1.3.车载摄像头性能要求
二.车载摄像头的应用场景
-2.1.行车ADAS
-2.2.泊车ADAS
-2.3.其它应用场景
三.相机模型
-3.1.针孔相机模型
-3.2.相机畸变模型
-3.3.鱼眼相机模型
-3.4.双目相机模型
四.相机内外参数标定
-4.1.标定的核心目标
-4.2.标定前置准备
-4.3.标定完整流程
-4.4.车载场景的标定特殊要求
-4.5.虚拟投影实验
五.视觉2D目标检测
-5.1.目标检测简介
-5.2.传统视觉算法与深度学习
-5.3.2D目标检测算法
-5.4.单目测距的数学与物理基础
-5.5.几何测距方法
六.视觉3D目标检测
-6.1.传统方法的局限与深度学习
-6.2.视觉3D目标检测的意义与挑战
-6.3.SMOKE
-6.4.MonoFlex
-6.5.MonoDETR
-6.6.单目3D检测算法演进总结
回到顶部
视觉传感器
一.视觉传感器简介
-1.1.摄像头硬件组成
-1.2.车载摄像头分类
-1.3.车载摄像头性能要求
二.车载摄像头的应用场景
-2.1.行车ADAS
-2.2.泊车ADAS
-2.3.其它应用场景
三.相机模型
-3.1.针孔相机模型
-3.2.相机畸变模型
-3.3.鱼眼相机模型
-3.4.双目相机模型
四.相机内外参数标定
-4.1.标定的核心目标
-4.2.标定前置准备
-4.3.标定完整流程
-4.4.车载场景的标定特殊要求
-4.5.虚拟投影实验
五.视觉2D目标检测
-5.1.目标检测简介
-5.2.传统视觉算法与深度学习
-5.3.2D目标检测算法
-5.4.单目测距的数学与物理基础
-5.5.几何测距方法
六.视觉3D目标检测
-6.1.传统方法的局限与深度学习
-6.2.视觉3D目标检测的意义与挑战
-6.3.SMOKE
-6.4.MonoFlex
-6.5.MonoDETR
-6.6.单目3D检测算法演进总结
回到顶部
# 视觉传感器 ## 一.视觉传感器简介
视觉传感器即摄像头是自动驾驶最核心、不可替代的感知传感器,当前所有主流自动驾驶方案均无去摄像头的设计,仅存在去激光雷达/毫米波雷达的方案。 - 核心原理:通过镜头+图像传感器完成图像采集,经计算机视觉算法实现车道线、交通标识、行人、车辆等环境感知,是最接近人类视觉的传感器。 - 核心优势:分辨率高、色彩纹理信息丰富、物体类型识别能力突出。 - 短板:无源特性(不含深度相机、主动式红外相机)导致暗光环境成像表现一般。 车载摄像头的发展历程:从倒车影像、泊车环视、行车记录等基础功能,逐步延伸到ADAS预警辅助,最终成为高阶智能驾驶的核心感知硬件。 ### 1.1.摄像头硬件组成
车载摄像头硬件由三大核心组件构成,摄像头成像核心链路:光线→光学镜头→红外滤光片→图像传感器(光电转换)→ISP(信号处理)→串行器(可选)→域控制器。其中光学镜头、图像传感器、ISP是摄像头核心的三大组件。  **组件1:光学镜头** 光学镜头的核心功能是将视野内物体的光线聚焦投射到图像传感器感光面,车载场景优先采用多层玻璃镜片组合(耐高温、耐刮擦,适配车载恶劣工况)。 光学镜头的关键组件是红外滤光片,滤除人眼不可见光波段,仅保留320~760nm可见光,避免红外光对成像的干扰,保障画面稳定准确。 **组件2:图像传感器** 图像传感器的功能是通过光电二极管的光电效应,将光像转换为对应比例的电信号;每个像素仅采集红/绿/蓝单色色光,输出原始Raw数据。 两种主流图像传感器对比: | 传感器类型 | 原理特性 | 优势 | 车载是适配性 | | ------- | ---------------------- | --------------- | -------------- | | CMOS传感器 | 每个像素自带独立放大器与转换电路 | 集成度高、成本低、功耗控制优秀 | 车载场景主流选择 | | CCD传感器 | 电荷耦合转移至输出节点,依赖外部电路放大转换 | 成像质量高、噪声水平低 | 多用于专业摄影,车载极少使用 | **组件3:ISP(图像信号处理器)** ISP的功能是将图像传感器输出的Raw数据转换为RGB/YUV格式的标准图像信号,核心处理包括去马赛克、降噪、自动曝光、自动聚焦、自动白平衡、伽马校正、几何失真校正、图像锐化等。ISP是摄像头的“大脑”,直接决定最终成像质量。 除了上述三大组件之外,有些摄像头还包含串行器,串行器将ISP输出的并行信号转为串行信号,通过LVDS低压差分信号+同轴电缆,实现远距离高速数据传输至域控制器,与域控端的解串器配对使用。除了核心组件,摄像头还有外壳、连接器等非核心组件。 ### 1.2.车载摄像头分类
车载摄像头按安装位置分为4大类,高阶自动驾驶车型常规配置:前视摄像头,侧视摄像头、后视摄像头与车内摄像头。 1. 前视摄像头:前视摄像头可以细分为ADS摄像头(智驾核心)、行车记录仪摄像头、夜视摄像头、前环视摄像头等。主流方案有:单目摄像头;长焦+广角双目组合;双目立体摄像头等。 2. 侧视摄像头:分为侧前视、侧后视,作为角毫米波雷达的异构冗余传感器,实现盲点监测、横穿车辆碰撞预警。 3. 后视摄像头:分为行车后视ADAS摄像头、倒车后视摄像头,主要功能是弥补车辆后方感知盲区。 4. 车内摄像头:用于驾驶员监测、乘客监测等舱内场景。 ### 1.3.车载摄像头性能要求
评价车载摄像头的主要技术指标:分辨率、视场角(FOV)、信噪比、动态范围、帧率等。 相比消费级摄像头,车载场景需适配振动、高低温、雨雾、剧烈光线变化等极端工况,强制满足7大类性能要求:图像性能、电气性能、防尘防水性能、机械性能、环境耐候性能、电磁兼容性能、耐久性能。 当前车载摄像头一个明显的技术发展趋势是高分辨率高灵敏度,比如最新的车载前视摄像头分辨率已经达到8百万像素,但主流神经网络(如YOLO)输入通常为640×640或1280×1280。因此,必须进行智能缩放。 常见缩放方法对比: | 方法 | 原理 | 优点 | 缺点 | 适用场景 | | --- | --- | --- | --- | --- | | Letterbox(等比填充) | 保持长宽比,短边缩放后,四周用黑边填充至目标尺寸 | 不失真、保留目标比例 | 引入无效像素,浪费计算资源 | 通用目标检测 | | Resize(直接拉伸) | 强制拉伸至目标尺寸 | 简单高效 | 易导致目标形变(如圆形变椭圆) | 对形变不敏感任务 | | Crop + Resize | 先裁剪感兴趣区域(ROI),再缩放 | 聚焦关键区域,提升局部分辨率 | 可能丢失上下文信息 | 远距离目标增强检测 | | 多尺度输入 | 同一图像生成多个缩放版本并行推理 | 提升小目标召回率 | 计算开销大 | 高性能平台(如Orin-X) | ✅ 推荐策略:主流程使用Letterbox至640×640,对远距离目标区域单独裁剪并输入1280×1280模型进行二次检测,兼顾效率与精度。为了避免推理时精度额外损失,推荐训练阶段与推理阶段采用相同的缩放方法。 ## 二.车载摄像头的应用场景
### 2.1.行车ADAS
行车ADAS中摄像头的三种应用场景: 1. 前视ADAS感知:核心功能包括前向碰撞预警(FCW)、行人防碰撞预警(PCW)、车道偏离预警(LDW)、车道保持辅助(LKA)、自动紧急制动(AEB)、自适应巡航(ACC)。常规分辨率2MP~8MP,安装于前风挡玻璃,方案分为前视一体机、纯摄像头模组接入独立域控制器两类。 2. 侧视ADAS感知:侧前视摄像头安装于B柱/外后视镜,FOV 90°~100°,最远探测距离超80m,负责交通标志识别、路口车辆行人监测;侧后视摄像头安装于前翼子板,FOV同前,最远探测距离超100m,负责变道/高速汇入时侧后方车辆监测。 3. 后视ADAS感知:行车辅助专用,与倒车/环视后视摄像头区分,FOV 100°-120°,探测距离50~80m,核心弥补车辆正后方感知盲区,与前视、侧视摄像头组成360°中长距行车视觉感知覆盖。 ### 2.2.泊车ADAS
泊车ADAS中摄像头的两种应用场景: 1. 倒车后视(RVC):广角摄像头,水平FOV 120°-140°,垂直FOV≥130°,分辨率1MP~3MP,多用于低端车型,未来大概率被环视摄像头取代。 2. 360°全景环视:4颗鱼眼摄像头通过拼接算法生成鸟瞰图,水平FOV≥170°,垂直FOV≥140°,分辨率1MP~3MP,兼具成像与近距离感知能力(车道线识别、移动物体监测预警),是当前主流泊车辅助配置。 ### 2.3.其它应用场景
车载摄像头的其它应用场景包括:电子外后视镜系统(CMS)、行车记录仪(DVR)、驾驶员监测系统(DMS)、乘客监测系统(OMS)等。 车载摄像头应用广泛选型复杂,下表是车载摄像头选型参数对照表: | 摄像头类型 | 分辨率 | 帧率 | 视角(HFOV) | 数据格式 | 接口类型 | 典型应用场景 | | --- | --- | --- | --- | --- | --- | --- | | 前视高像素 | 8MP (3840×2160) | 30fps | 50°–70° | RAW10 | CSI-2 (4Lanes) | 车道线识别、交通标志检测 | | 前视宽角 | 8MP | 30fps | 100°-120° | RAW10 | CSI-2 (4Lanes) | 近距离障碍物识别、交叉路口感知 | | 前视长焦 | 5–8MP | 15–30fps | 20°–30° | RAW10 | CSI-2 (4Lanes) | 远距离车辆/红绿灯识别(>150m) | | 环视摄像头(SVM) | 2–3MP (1920×1080) | 30fps | 180°–200° | YUV/RAW10 | CSI-2 (2Lanes) | 360°环视拼接、自动泊车 | | 侧前/侧后视(BSD) | 3–5MP | 30fps | 100°–120° | YUV/RAW10 | CSI-2 (2Lanes) | 盲区监测、变道辅助 | | 后视摄像头(Rear View) | 2MP | 30fps | 120°–150° | YUV | LVDS / FPD-Link | 倒车影像、后方碰撞预警 | | 驾驶员监测(DMS) | 2.5–3MP | 30fps(白天)15fps(夜间) | 60°–90° | YUV422 / NIR | CSI-2 (2Lanes) | 疲劳检测、分心识别 | | 乘员监测(OMS) | 2.5–3MP | 30fps | 60°–90° | YUV422 / NIR | CSI-2 (2Lanes) | 儿童遗留检测、安全带识别 | | 电子后视镜(CMS) | 2.5–5MP | ≥30fps(白天)≥15fps(夜间) | 70°–100° | RAW10 | GMSL2 / FPD-Link | 替代传统后视镜,法规强制要求 | ## 三.相机模型
### 3.1.针孔相机模型
视觉传感器技术的底层核心是针孔相机模型,这个模型是计算机视觉的第一性原理:它用严谨的几何关系和线性代数,把真实三维世界的物体,与相机输出的二维图像像素,建立了精准的映射关系。 整个3D世界到2D像素的映射,分为两大核心阶段: 1. 全局→局部:世界坐标系 → 相机坐标系,由**外参矩阵**[R|t]描述 2. 3D→2D:相机坐标系 → 图像物理坐标系 → 像素坐标系,由**内参矩阵K**描述 将外参转换与内参转换结合,我们得到三维世界点到二维像素坐标的完整投影公式,这也是整个针孔相机模型的最终结论:  这个公式是智能驾驶视觉技术几乎所有算法的数学基础: - 相机标定:通过已知的3D-2D点对,求解内参K和外参[R|t] - 视觉定位:通过已知3D地图点和图像特征点,用PnP算法求解相机外参(位姿) - 单目测距:已知目标物理尺寸,通过像素坐标反推目标深度Zc - 3D目标检测:通过2D检测框,结合针孔模型反推目标三维尺寸与空间位置 - 环视拼接、BEV变换:基于针孔模型的逆投影,实现图像到鸟瞰图的转换 关于针孔相机模型的详细介绍可以参考:[智驾相机与图像:针孔相机模型详解 - 知乎](https://zhuanlan.zhihu.com/p/2009643512707162700)。 ### 3.2.相机畸变模型
理想针孔相机模型用严谨的线性代数建立了三维世界到二维像素的映射关系,是计算机视觉的理论基石。但在自动驾驶的真实工程场景中实际使用的车载相机并非理想小孔,而是由多片透镜组成的光学镜头,同时存在生产装配的公差——这些因素会导致实际成像的光线传播路径偏离理想直线,最终让像点在成像平面上的位置发生偏移,这种偏移就是镜头畸变。 工业界主流的车载相机,均采用Brown-Conrady畸变模型(OpenCV等智驾工具链默认模型),该模型将畸变分为两大类:径向畸变和切向畸变,二者的成因、分布特性完全不同,实际成像的畸变是径向畸变与切向畸变的叠加,其中径向畸变是车载相机的主要误差来源。 畸变校正的工业界标准方案是反向映射+重采样,从无畸变目标像素出发,反向求解原始畸变图像的对应位置,有解析解、计算效率高,适配车载实时场景。 相机标定是畸变校正的前提,需同步获取内参矩阵K和畸变系数组,FOV小于90°的车载相机仅用径向模型即可满足精度要求。FOV大于90°的车载相机需采用k1、k2、k3完整径向模型,同时加入p1、p2切向畸变系数,保证边缘校正精度。 关于相机畸变模型的详细介绍可以参考:[智驾相机与图像:畸变模型详解 - 知乎](https://zhuanlan.zhihu.com/p/2009645722274918405)。 ### 3.3.鱼眼相机模型
在自动驾驶的核心场景中,自动泊车、窄道通行、低速挪车等功能,必须实现车身周围360°无死角的环境覆盖,普通镜头完全无法满足需求——鱼眼相机正是为解决这个痛点而生。它打破了“畸变=缺陷”的固有认知,通过主动引入强径向畸变,实现了180°甚至360°的超大视场成像,是目前车载环视系统唯一的量产级解决方案。 鱼眼相机的投影函数与普通镜头的畸变模型本质完全同源,二者都是对成像平面径向距离的中心对称非线性变换,唯一区别是鱼眼的畸变系数绝对值更大,是主动设计的结果,而非生产误差。 鱼眼图像校正的核心,是将非线性的鱼眼投影逆变换为符合理想针孔模型的几何一致图像,工业界标准方案为反向映射+重采样,与普通畸变校正流程逻辑完全统一。 关于鱼眼相机模型的详细介绍可以参考:[智驾相机与图像:鱼眼相机模型 - 知乎](https://zhuanlan.zhihu.com/p/2009650367579853774)。 ### 3.4.双目相机模型
单目相机有一个无法突破的原生痛点:尺度不确定性——仅通过单张图像,我们无法确定三维点的绝对深度,只能得到射线方向,必须依赖车辆尺寸、车道线宽度等先验知识才能间接测距,而先验知识在异形障碍物、坡道、无标线道路等复杂场景中极易失效。双目相机模型正是为解决这个痛点而生。它通过两个空间位置固定的相机,同步采集同一场景的两幅图像,利用三角测量原理和视差信息,直接计算出场景中每个像素的绝对深度,无需任何先验知识,彻底解决了单目相机的尺度不确定性痛点。 实际工程落地中,需通过双目标定获取内外参与相对位姿,通过立体校正将实际双目转换为理想平行双目,再通过立体匹配计算视差图,最终转换为深度图,形成完整的工程流水线。 在自动驾驶中,双目视觉是纯视觉方案实现空间定位、3D环境感知的核心手段,可弥补单目丢失的深度信息,在中近距离障碍物检测、3D目标感知、弱GPS场景定位、功能安全冗余等场景中,具备不可替代的量产价值。 关于鱼眼相机模型的详细介绍可以参考:[智驾相机与图像:双目相机模型 - 知乎](https://zhuanlan.zhihu.com/p/2009651660503393267)。 ## 四.相机内外参数标定
所有相机模型的应用,都有一个绝对核心的前置条件:相机的内参矩阵K、外参[R|t]、畸变系数组是已知且精准的。 如果没有精准的标定参数,所有理论都是空中楼阁:内参误差会导致3D测距偏差,畸变系数误差会导致环视拼接错位,外参误差会导致多传感器融合失效——对于自动驾驶而言,标定精度直接决定了感知系统的可靠性,甚至影响功能安全。 本章我们将系统讲解工业界最通用的张正友标定法完整流程,手把手拆解如何获取相机的所有核心参数,并通过直观的虚拟投影实验,展示针孔与鱼眼相机参数变化对投影效果的影响,让读者真正理解“每个参数的物理意义”和“标定精度的重要性”。 张正友标定法(Zhang's Camera Calibration)是目前工业界、学术界最通用的相机标定方法,由张正友于1998年提出。它的核心优势在于不需要昂贵的三维标定物,仅需一张平面棋盘格标定板,操作简单、精度高,完全适配车载相机的量产标定与开发者学习场景。 ### 4.1.标定的核心目标
我们通过标定,最终要获取以下3组核心参数,完整覆盖所有相机模型需求: - **内参矩阵**:fx,fy(X/Y方向等效焦距)、u0,v0(主点像素坐标); - **畸变系数组**:径向畸变系数{k1,k2,k3}、切向畸变系数{p1,p2}; - **外参[R|t]**:每张标定图像对应的旋转矩阵R和平移向量t(描述相机相对于标定板的位姿)。 ### 4.2.标定前置准备
**1. 准备标定板** 张正友标定法仅需平面棋盘格标定板,车载场景常用规格如下: - 角点数量:推荐11×8(横向11个内角点,纵向8个内角点),角点数量越多,标定精度越高,但检测难度也会增加; - 单格尺寸:推荐30mm×30mm或50mm×50mm,尺寸需精准测量(误差≤0.1mm),否则会直接影响外参的尺度精度; - 材质与打印:建议采用哑光材质打印,贴在平整的硬质板(如铝板、亚克力板)上,避免反光和形变,保证角点检测的稳定性。 有专业厂家专门生产棋盘格标定板,通常直接选型并购买标定板使用即可,除了标定板以外,还需要准备标定板支架等辅助设备。 **2. 标定图像采集要求** 图像采集是标定精度的关键,必须严格遵循以下规则,车载场景尤其要注意覆盖鱼眼/广角相机的边缘视场: - 数量要求:至少采集15-20张标定图像,数量越多,标定结果越稳定。 - 姿态要求:标定板需在相机视场内呈现不同的姿态:俯仰、横滚、偏航角度均需变化,避免所有图像中标定板平行。 - 位置要求:标定板需覆盖相机的全视场,尤其是图像边缘区域(这是畸变最大的区域,也是车载环视拼接的核心区域),同时要有远、中、近不同距离的图像。 - 图像质量要求:图像需清晰、无模糊、无过曝/欠曝,角点完整可见,避免运动模糊和强光反光。 ### 4.3.标定完整流程(7步法)
我们以OpenCV标定工具箱为例,拆解完整的标定流程,数学原理尽量简化,重点讲工程可落地的步骤: **步骤1:棋盘格角点检测** 这是标定的基础,目标是从每张标定图像中,自动检测出所有内角点的像素坐标,并进行亚像素级优化,保证角点精度。 - 核心工具:OpenCV的`findChessboardCorners`(检测粗角点)和`cornerSubPix`(亚像素级优化); - 关键输出:每张图像的角点像素坐标列表{(uij,vij)},以及对应的世界坐标系三维坐标列表{(Xwij,Ywij,0)}(标定板平面设为Zw=0,简化计算)。 **步骤2:求解单应性矩阵(Homography)** 单应性矩阵H是描述平面标定板(世界坐标系)到图像平面的3×3映射矩阵,核心公式为:  其中s为尺度因子。 - 求解方法:通过每张图像的角点对应对,利用直接线性变换(DLT)求解单应性矩阵H; - 物理意义:H包含了内参和外参的混合信息,是连接世界坐标与像素坐标的桥梁。 **步骤3:求解初始内参矩阵K** 利用多张标定图像的单应性矩阵H,通过约束条件(旋转矩阵的正交性),求解出初始的内参矩阵K,得到fx,fy,u0,v0的初始值。 **步骤4:求解初始外参[R|t]** 有了初始内参K,就可以从每张图像的单应性矩阵H中,分解出对应的初始旋转矩阵R和平移向量t。 **步骤5:加入畸变系数,建立非线性优化目标** 前4步的求解都是基于无畸变的理想针孔模型,实际相机存在畸变,因此需要加入畸变系数,建立重投影误差最小化的非线性优化目标:  - 核心概念:重投影误差——将世界坐标系的角点,通过当前的标定参数重新投影到图像平面,得到的投影坐标与实际检测到的角点坐标的欧氏距离。 - 优化算法:Levenberg-Marquardt(L-M)算法,这是工业界非线性优化的标准算法。 - 优化变量:内参K、畸变系数{k1,k2,p1,p2}、每张图像的外参Ri,ti。 **步骤6:执行非线性优化,得到最终标定参数** 通过L-M算法迭代优化,最小化重投影误差,最终得到所有标定参数的最优解。 **步骤7:标定结果验证与评估** 这是标定的最后一步,也是判断标定是否合格的关键,车载场景的核心评估指标如下(参数指标基于1MP相机): 1. **平均重投影误差**:这是最核心的指标,计算所有角点的重投影误差的平均值,单位为像素; - 合格标准:普通车载相机≤0.1像素,鱼眼相机≤0.15像素; - 意义:重投影误差越小,说明标定参数越精准,投影效果越贴合真实成像。 2. **参数合理性检查**: - 主点应接近图像中心(误差≤50像素),否则可能是标定板覆盖范围不足; - 焦距应接近,且与镜头规格匹配; - 径向畸变系数的符号应与镜头类型匹配(桶形畸变为负,枕形畸变为正)。 3. **可视化验证**:将标定板角点重新投影到图像上,观察投影点与实际角点的重合度,尤其是图像边缘区域,若边缘重合度差,说明边缘视场的标定图像不足。 ### 4.4.车载场景的标定特殊要求
针对自动驾驶的车载相机,标定还有以下3个特殊要求,是量产落地的关键: 1. 多相机联合标定:对于环视4鱼眼相机、双目相机,除了单目标定,还需完成多相机之间的外参联合标定,获取相机之间的相对位姿,这是环视拼接、双目深度估计的基础。 2. 车身坐标系全局标定:将所有相机的坐标系,统一标定到车辆后轴中心的车身坐标系,这是多传感器融合(相机+激光雷达+毫米波雷达)的前提。 3. 全生命周期稳定性验证:车载场景高低温变化大、振动强,需完成高低温标定补偿、振动稳定性测试,保证标定参数在全生命周期内的精度达标。 ### 4.5.虚拟投影实验
标定参数的微小变化,会对投影效果产生巨大影响。为了让读者直观理解每个参数的物理意义,我们设计了一组虚拟投影实验,展示参数变化对投影的影响。 **实验准备** 我们定义一个统一的虚拟实验环境,保证所有实验的可比性: - 虚拟三维场景:一个9×6内角点的棋盘格,世界坐标系原点在棋盘格左下角,单格尺寸50mm,棋盘格平面为Zw=0; - 虚拟相机初始参数(1920×1080分辨率): - 内参:fx=1000,fy=1000,u0=960,v0=540 - 畸变系数:k1=0,k2=0,p1=0,p2=0(无畸变) - 外参:相机在棋盘格正前方1米处(Zc=1000mm),光轴垂直于棋盘格中心,无旋转。 **实验1:焦距fxfy变化的影响** 实验设置:保持其他参数不变,仅改变fx,从500像素变到1500像素。核心结论: - fx越小,视场角(FOV)越大,图像越“广角”,棋盘格在图像中越小,边缘角点越靠近图像边缘; - fx越大,视场角越小,图像越“长焦”,棋盘格在图像中越大,边缘角点越靠近图像中心; - 物理意义:焦距决定了相机的“望远能力”和“视场覆盖能力”,二者不可兼得。 具体数值示例: - 棋盘格右上角角点的世界坐标为(400,250,0)mm; - 当fx=500时,投影像素坐标为(1160,665); - 当fx=1000时,投影像素坐标为(1360,790); - 当fx=1500时,投影像素坐标为(1560,915)。 **实验2:主点u0v0偏移的影响** 实验设置:保持其他参数不变,仅改变主点坐标,从初始的(960,540)偏移到(800,400)。核心结论: - 主点是光轴与成像平面的交点,主点偏移会导致整个投影图像向相反方向平移; - u0减小,图像向右平移;v0减小,图像向下平移; - 物理意义:主点决定了图像的“中心位置”,车载场景中主点偏移会直接影响3D测距的精度。 具体数值示例: - 棋盘格中心角点的世界坐标为(200,125,0)mm; - 初始主点(960,540)时,投影像素坐标为(1160,665); - 主点偏移到(800,400)时,投影像素坐标为(1000,525),整体向右下平移。 **实验3:径向畸变系数k1变化的影响** 实验设置:保持其他参数不变,仅改变径向畸变系数k1,从-0.3(桶形畸变)变到0.3(枕形畸变)。核心结论: - k1为负值时,图像边缘向中心收缩,呈现桶形畸变,真实世界的直线向主点方向弯曲; - k1为正值时,图像边缘向外拉伸,呈现枕形畸变,真实世界的直线向远离主点的方向弯曲; - k1的绝对值越大,畸变越剧烈; - 物理意义:径向畸变系数描述了镜头对边缘光线的折射能力,是畸变校正的核心参数。 具体数值示例: - 棋盘格右上角角点的世界坐标为(400,250,0)mm; - 无畸变时(k1=0),投影像素坐标为(1360,790); - 桶形畸变(k1=-0.3)时,投影像素坐标为(1280,740),向中心收缩; - 枕形畸变(k1=0.3)时,投影像素坐标为(1480,860),向外拉伸。 ## 五.视觉2D目标检测
### 5.1.目标检测简介
目标检测是计算机视觉中的一项重要任务。通俗地说,目标检测可以定义为“目标定位 + 目标分类”。其中,目标定位是指使用边界框在图像中找到目标的位置;目标分类则是识别边界框内的对象具体是什么。 目标检测在现实生活中有诸多应用。例如,在自动驾驶领域,它用于检测车辆、行人、车道边界预测、高精度地图(HD-Map)生成、交通信号灯和交通标志等。在安防监控中,它可用于检测入侵者、车牌、人脸口罩识别、武器检测等。在生物识别考勤系统中也有应用。在医学影像中,目标检测可用于检测特定细胞、癌症、肿瘤等。实际上,目标检测的应用场景非常广泛,远不止上述列举的这些。 ### 5.2.传统视觉算法与深度学习
早期的检测算法主要基于经典计算机视觉技术,例如模板匹配(Template Matching)、Haar 级联(Haar Cascade)、基于 SIFT 或 SURF 的特征检测与匹配、HOG 检测器(HOG Detector)、可变形部件模型(Deformable Part-based Model, DPM)等。然而,这些方法大多对特定应用场景高度依赖,缺乏通用性,这促使研究者转向基于深度学习的方法。 Overfeat论文在深度学习目标检测领域开创了先河,它采用单一网络模型,同时执行目标分类和定位任务。Overfeat的网络结构与AlexNet非常相似。它通过滑动窗口的方式在不同尺度上进行图像分类,并在同一卷积层上执行边界框回归。随后,RCNN、FastRCNN、YOLO等模型相继出现,推动了目标检测的发展。 ### 5.3.2D目标检测算法
初期基于深度学习的目标检测算法模型是双阶段检测器,即先进行区域候选(Region Proposal),确定感兴趣区域(ROI),再在候选区域上预测边界框坐标和类别。这种方法虽然创新,但对计算资源要求高,并且推理阶段延迟较大。后来,YOLO的作者提出了单阶段策略,省略了区域候选步骤,直接在整张图像上进行检测。这不仅加快了训练和推理速度,还能保留全局上下文信息,同时保持检测精度。 经典的R-CNN & Fast RCNN & Faster RCNN系列算法属于双阶段检测器。而YOLO系列算法算法则属于单阶段检测器。还有一类不需要锚框的目标检测算法,被称为Anchor-Free方法,比如CenterNet系列算法就属于Anchor-Free方法。 ### 5.4.单目测距的数学与物理基础
单目检测的核心痛点,是单张图像天生丢失了深度维度,而单目测距正是解决这个痛点的基础——所有单目测距算法,本质上都是在解决“如何从2D图像中精准估计深度”的问题。 单目测距的本质,是建立2D像素坐标与3D世界坐标的映射关系,而这个映射的核心,就是针孔相机模型与四大坐标系的转换关系。车载场景中,我们需要把图像中的像素点,转换到车辆所在的世界坐标系(或车体坐标系)中,才能得到物体的真实距离,因此必须先搞懂四个坐标系的定义与转换逻辑。 **四大坐标系(从2D像素到3D世界)** 一. 像素坐标系(u,v)定义:图像的二维坐标系,原点在图像左上角,u轴向右,v轴向下,单位是像素。摄像头输出的原始图像,每个点的坐标就是(u,v),是我们能直接获取的最底层数据。 二. 图像坐标系(x,y)定义:也叫成像平面坐标系,原点在相机光轴与成像平面的交点(图像主点),x轴向右,y轴向上,单位是毫米。核心作用是把像素坐标转换为以主点为中心的物理坐标,消除像素坐标系的原点偏移。 像素坐标系到图像坐标系的转换,依赖相机内参:主点坐标(cx, cy)(主点在像素坐标系的位置)、像素物理尺寸(dx, dy)(每个像素在x/y方向的毫米数),转换公式如下:  三. 相机坐标系(Xc,Yc,Zc)定义:以相机光心为原点,光轴为Zc轴(向前为正),Xc轴向右,Yc轴向上,单位是米。这是3D测距的核心坐标系——Zc就是我们要求的深度值,即物体到相机光心的垂直距离,是单目测距的核心目标。 图像坐标系到相机坐标系的转换,核心是针孔相机的透视投影原理(相似三角形),相机焦距f(光心到成像平面的距离,单位毫米)是核心内参,公式如下:  变形后得到相机坐标系坐标:  这里能看到单目视觉的核心痛点:单张图像中,我们只能得到(u,v),但Xc、Yc、Zc三个未知数无法直接求解,这就是单目深度的尺度歧义性,也是所有单目测距方法需要解决的核心问题。 四. 世界坐标系(Xw,Yw,Zw)定义:车载场景中通常为车体坐标系(原点在后轴中心,X轴向前,Y轴向左,Z轴向上),是真实物理世界的坐标系,单位是米。我们最终需要的物体距离、位置,均需转换到该坐标系下。 相机坐标系到世界坐标系的转换,是刚体变换,由相机外参决定——旋转矩阵R(3×3)和平移向量t(3×1),公式如下:  外参由相机安装标定时确定,固定了相机相对于车体的位置和角度,是车载单目测距的核心前提。 **相机内参与完整投影矩阵** 把上述转换关系整合,就能得到像素坐标系到世界坐标系的完整投影公式,即相机投影矩阵P(3×4):  其中K是相机内参矩阵(3×3),为相机出厂标定的固定参数,工程中常用像素单位的等效焦距fx=f/dx、fy=f/dy:  至此,我们就明确了单目测距的核心数学逻辑:所有单目测距方法,本质上都是通过额外的约束条件(几何线索、尺寸先验、深度学习等),求解出像素点对应的Zc深度值,再通过投影矩阵得到物体在世界坐标系下的3D位置。 ### 5.5.几何测距方法
几何测距方法是“2D检测+深度后处理”的两阶段方案,首先利用2D目标检测算法获取目标类别,然后通过额外的约束条件(几何线索、尺寸先验、深度学习等),求解出像素点对应的深度值即目标物体相对于相机的距离。 针对单目深度的尺度歧义性,几何测距方法通过引入车载场景的先验约束实现深度估计,这些方法也是目前入门级L2智驾AEB功能的核心基础,常用的3种方案: **1.基于物体尺寸先验的相似三角形测距** 这是最基础、最易实现的单目测距方法,核心原理是:已知物体在真实世界中的物理尺寸(先验),以及物体在图像中的像素尺寸,通过相似三角形原理直接求解深度,公式:  其中: - Hreal:物体的真实物理高度(如轿车高度约1.5米,行人高度约1.7米); - Hpixel:物体在图像中的像素高度(2D检测框的高度); - fx:相机x方向的等效焦距(像素)。 车载实现流程: 1. 通过2D目标检测算法,获取车辆、行人等物体的2D检测框,提取框的像素高度H_pixel; 2. 针对不同类别物体,预设对应的真实物理高度先验; 3. 代入公式计算深度Zc,再通过外参转换为车体坐标系下的距离。 ✅优点:原理简单、计算量极小、无需复杂标定,可在低端MCU上实时运行。 ❌缺点:精度完全依赖尺寸先验的准确性,同类别物体尺寸差异会导致严重误差;对截断物体、俯仰角变化场景鲁棒性较差;远距离物体像素高度误差大,深度精度呈指数级下降。 **2.基于地面平面约束的测距** 这是车载场景落地最广的传统单目测距方法,核心原理是:车载场景中,车辆、行人等交通参与者的底部均接触地面,可通过相机标定得到地面平面方程,利用物体底部的像素坐标求解3D位置与深度,完全不需要物体尺寸先验。 前提条件: - 相机外参已标定,获取相机相对于地面的安装高度h(相机光心到地面的垂直距离)、俯仰角θ; - 地面为平坦平面,物体底部与地面接触,且底部像素坐标(v)已知。 公式推导: 物体底部在相机坐标系下的Yc坐标固定为Yc = -h(相机光心在地面上方h处,地面的Yc坐标为-h),如下图所示。  代入透视投影公式(相似三角形)变形可得深度:  **车载实现流程**: 1. 相机标定获取内参与外参(安装高度h、俯仰角、横滚角); 2. 2D检测获取物体2D框,取框的底部中点作为物体与地面的接触点,得到像素坐标(u, v); 3. 代入公式计算深度Zc,再通过投影矩阵得到车体坐标系下的3D位置。 ✅优点:无需物体尺寸先验,对不同尺寸物体适配性好,精度远高于尺寸先验法;计算量极小,实时性极强,是入门级AEB、ACC功能的标配算法。 ❌缺点:对地面平坦度要求高,颠簸路面、坡道、减速带会导致严重误差;对相机标定精度要求高,车辆振动导致的外参偏移会直接影响测距精度;仅能检测与地面接触的物体,无法检测悬空目标。 **3.基于消失点与几何结构的测距** 核心原理是利用道路的平行结构(车道线、路沿)生成消失点,结合相机内参求解相机的俯仰角、横滚角,再配合地面平面约束实现更鲁棒的测距,同时可估计物体的宽度、距离等信息。 该方法通常作为地面平面约束法的补充,通过实时检测车道线消失点动态修正相机俯仰角,解决车辆颠簸导致的外参偏移问题,在高速场景应用广泛。 ## 六.视觉3D目标检测
在自动驾驶、机器人、AR/VR等需要与真实3D世界交互的场景中,传统2D目标检测逐渐无法满足需求,3D目标检测正成为智能系统感知物理世界的核心能力。 ### 6.1.传统方法的局限与深度学习的必要性
传统几何线索测距方法,解决了单目测距从0到1的问题,但在车载复杂场景中,存在无法突破的固有局限: 1. 强依赖先验约束与标定精度,场景适应性差,地面不平、标定偏移、物体截断等场景都会导致精度严重下降; 2. 只能得到物体底部的单点深度,无法获取物体完整的3D尺寸与朝向,无法满足3D目标检测的7自由度输出要求; 3. 对遮挡、多物体、复杂城市场景的鲁棒性较差,无法应对高阶智驾的场景需求。 而深度学习的单目3D检测算法,正是为了解决这些问题而生——通过神经网络学习图像中深度、尺寸、朝向的隐含特征,端到端回归3D边界框,同时补齐2D检测缺失的深度与方向信息,实现复杂场景下的鲁棒3D感知。 单目3D检测的核心任务,是从单张RGB图像中,端到端回归出目标物体的7自由度3D边界框(3D中心坐标(x,y,z)、长宽高(l,w,h)、偏航角yaw),同时输出物体类别。 经过多年发展,单目3D检测算法从早期“2D检测+深度后处理”的两阶段方案,演进到端到端单阶段方案,再到基于Transformer的无锚框方案,精度和鲁棒性持续提升。车载场景最具代表性的3个经典算法:SMOKE、MonoFlex、MonoDETR。 ### 6.2.视觉3D目标检测的意义与挑战
传统2D目标检测的输出,仅包含图像坐标系下的2D bounding box(左上、右下像素坐标)、物体类别与置信度,只能回答“画面里有什么、在哪个像素位置”,但无法解决自动驾驶最核心的问题:这个物体离我们有多远?有多大?朝哪个方向运动? 而3D目标检测,输出的是与真实物理世界对齐的3D bounding box,核心包含7个自由度的关键信息:车体/世界坐标系下的3D中心坐标(x,y,z)、物体长宽高(l,w,h)、偏航角yaw(物体的朝向),部分场景还会输出俯仰角pitch与横滚角roll。这些信息,是自动驾驶规划、决策、控制模块的核心输入,也是智驾系统实现安全行驶的基础。 具体来说,3D目标检测对自动驾驶的核心意义体现在4个方面: 1. 精准测距与空间感知:只有3D检测能给出物体在真实物理空间的绝对位置,比如前车的跟车距离、侧向车辆的横向间距,是ACC自适应巡航、LCC车道居中、自动变道等功能的核心基础。 2. 运动趋势与风险预判:偏航角能精准识别物体的朝向,比如前车是正常直行还是即将变道、行人是朝向马路还是路边行走,这些信息是智驾系统做风险预判和紧急避让的关键。 3. 复杂场景的通行能力:自动泊车需要精准识别车位的3D位置与尺寸,乡村道路需要识别路边的沟坎与障碍物,地库、隧道等GPS弱信号场景,3D检测结果还能辅助车辆定位。 4. 功能安全冗余保障:高阶自动驾驶需要满足严苛的功能安全要求,3D检测能提供完整的物理空间信息,避免2D检测把广告牌中的车辆、地面涂鸦误判为真实障碍物,大幅降低误检、漏检风险。 视觉3D目标检测用于自动驾驶面临众多挑战,也是区分不同技术路线优劣的核心标尺: 1. 深度信息的固有缺失与估计难题:图像是3D世界到2D平面的透视投影,天生丢失了深度维度。单目图像无物理尺度约束,存在天然的尺度歧义——近的小物体和远的大物体,在图像上的像素尺寸可能完全一致;双目图像虽能通过三角测量计算深度,但车载相机基线有限,100米以上的远距离场景,深度误差会呈指数级增长,无法满足高速场景需求。 2. 极端环境的鲁棒性挑战:车载场景需要应对全天候、全场景的考验。夜晚、逆光、强光会导致摄像头过曝/欠曝,图像纹理信息丢失;雨天、雾天、雪天会造成摄像头画面模糊;地库、隧道等光照突变场景,更是对单模态检测算法的极限考验。 3. 多模态数据的对齐与融合难题:图像与点云是完全异构的两类数据——图像是稠密、规则的2D网格,包含丰富的纹理与语义信息;点云是稀疏、无序的3D点,包含精准的几何与深度信息。要实现有效融合,首先要解决空间标定与时间同步问题,车载传感器的安装误差、振动导致的标定偏移、采样时间差,都会造成融合错位;其次要解决异构特征的互补问题,避免两种模态的特征互相干扰。 4. 车规级实时性与精度的平衡:车载场景对检测延迟有严格要求,通常需要实现100ms以内的端到端延迟,才能保证智驾系统的及时响应。但很多高精度3D检测模型参数量大、计算复杂度高,无法在车载边缘芯片上实时运行,如何在有限算力下平衡精度与速度,是技术落地的核心门槛。 5. 长尾场景与小目标检测难题:车载场景会遇到大量异形工程车、掉落货物、交通锥等长尾物体,样本数量少,模型难以学习到足够的特征;同时高速场景下200米外的车辆,在图像上仅有几十个像素,点云上仅有几个点,检测难度极大,而这些小目标恰恰是智驾系统需要提前识别的关键对象。 ### 6.3.SMOKE:单阶段无锚框单目3D检测的落地标杆
SMOKE(Single-Stage Monocular 3D Object Detection via Keypoint Estimation)是2020年提出的单阶段单目3D检测算法,核心创新是彻底摒弃传统2D检测分支,仅通过单个关键点分支+3D参数回归分支,实现端到端3D检测,结构极简、推理速度快、易于部署,是目前车载落地最广泛的单目3D检测算法之一。 **设计思路** SMOKE的核心洞察是:单目3D检测中,2D检测框与3D检测框的耦合度极低,额外的2D检测分支不仅增加计算量,还会引入误差;而物体3D中心在图像上的投影点(关键点),是连接2D像素与3D空间的核心锚点,仅通过该关键点,就能解耦回归出3D框的所有参数。 **网络结构与推理流程** SMOKE的整体结构极其简洁,仅由3个部分组成:Backbone骨干网络、Keypoint Head关键点分支、Regression Head回归分支,端到端输出3D检测结果,无需NMS以外的任何后处理。 1. Backbone骨干网络采用轻量化的ResNet-34/DLA-34作为骨干网络,对输入的单张RGB图像提取多尺度特征,最终输出1/8下采样的特征图,兼顾特征提取能力与推理速度。 2. Keypoint Head关键点分支核心任务是预测物体3D中心在图像上的投影点(关键点),采用高斯热图的方式,预测每个类别物体的关键点位置。 - 训练时,将物体3D中心通过相机投影矩阵投影到图像上,作为高斯热图的中心,监督网络学习; - 推理时,取热图中的局部峰值作为物体的关键点,得到投影点的像素坐标(u_proj, v_proj),作为后续3D参数回归的核心锚点。 3. Regression Head回归分支核心任务是针对每个关键点,回归出3D框的剩余6个自由度参数与深度偏移量,核心创新是对3D参数进行解耦回归,大幅降低学习难度,回归参数分为4组: - 深度偏移与深度值:直接回归物体3D中心的深度值Zc,同时回归关键点的像素偏移量,修正投影点坐标,解决下采样导致的像素量化误差; - 物体尺寸:回归物体的长宽高(l,w,h),网络不直接回归绝对值,而是回归相对于该类别物体平均尺寸的残差,大幅降低学习难度,提升收敛速度; - 偏航角(朝向):采用多-bin分类+残差回归的方式,将360°偏航角划分为多个区间,先分类预测物体所在区间,再回归区间内的残差角度,解决角度的周期性问题; - 3D中心偏移:回归物体3D中心在Xc、Yc方向的偏移量,结合深度值Zc,得到完整的相机坐标系3D中心坐标(Xc,Yc,Zc)。 **实现细节与创新点** 1. 解耦式参数回归:将3D框的7个自由度拆分为关键点、深度、尺寸、朝向、偏移,每个分支独立监督,避免参数之间的耦合干扰,大幅提升训练稳定性与精度; 2. 无锚框设计:摒弃传统anchor-based方案手动设计anchor的繁琐流程,减少超参数,适配不同尺寸的物体,泛化能力更强; 3. 轻量化结构:去掉2D检测分支,仅用两个检测头,计算量极小,可在车载边缘芯片上实时运行,部署门槛极低; 4. 针对性损失函数设计:采用Focal Loss监督关键点热图,L1 Loss监督3D参数回归,同时加入3D IoU Loss直接优化3D框重合度,大幅提升检测精度。 **优缺点与落地场景** ✅优点:结构简单、推理速度快、部署难度低,是车载入门级单目3D检测的首选方案;无锚框设计泛化能力强,对不同类别物体适配性好。 ❌缺点:对截断物体、遮挡物体的检测精度较差;深度估计直接回归单点深度,对远距离物体的深度精度不足;无显式深度估计分支,无法利用深度信息优化特征。 ### 6.4.MonoFlex:解决截断与深度歧义的单目3D检测优化方案
MonoFlex(Monocular 3D Object Detection with Flexible Depth Estimation)是2021年提出的单目3D检测算法,核心是解决SMOKE等传统单目3D检测算法的两大痛点:图像边缘截断物体的检测精度差、深度估计的多峰歧义问题,在KITTI、nuScenes等数据集上实现了SOTA级精度,是目前工业界优化单目3D检测的核心参考方案。 **核心设计思路** MonoFlex的核心洞察有两点: 1. 截断物体的3D中心投影点落在图像外,传统算法无法提取有效的中心特征,导致检测精度极差; 2. 单目深度估计存在天然的多峰歧义性,同一物体的深度可能有多个合理值,直接回归单点深度会导致严重误差,需要柔性的深度估计方式。 基于这两点,MonoFlex提出了边缘感知的特征对齐模块和**柔性深度估计分支,针对性解决上述痛点。 **网络结构与核心实现细节** MonoFlex在SMOKE的基础上进行核心优化,整体结构分为:Backbone骨干网络、边缘感知特征提取模块、关键点分支、柔性深度回归分支、3D参数回归分支,我们重点讲解其核心创新模块: 1. 边缘感知的特征对齐模块(Edge-aware Feature Alignment)专门解决截断物体的检测问题,核心逻辑是:对于截断物体,其3D中心投影点落在图像外,无法从投影点位置提取特征,因此需要自适应地从物体可见区域提取特征,对齐到3D中心投影点。 - 首先通过2D检测分支,得到物体的2D可见框,判断物体是否被图像边缘截断; - 对于截断物体,计算其3D中心投影点的位置,通过可变形卷积,自适应地从物体的可见区域采样特征,聚合到投影点位置,生成截断物体的有效特征; - 对于非截断物体,直接从投影点位置提取特征,与传统方案一致。 该模块彻底解决了截断物体特征缺失的问题,大幅提升了城市场景中近距离截断车辆、行人的检测精度。 2. 柔性深度估计分支(Flexible Depth Estimation)解决单目深度的多峰歧义问题,核心是:不直接回归单点深度值,而是预测深度的概率分布,同时结合几何约束,得到最优的深度估计值。 - 首先,网络预测深度的高斯分布,输出深度的均值和方差,同时结合物体的尺寸先验、2D框约束,生成深度的几何先验分布; - 然后,将网络预测的深度分布与几何先验分布融合,得到最终的深度概率分布,取分布的均值作为最终深度值; - 训练时,采用负对数似然损失(NLL Loss)监督深度分布,而非传统的L1 Loss,让网络能学习到深度的不确定性,提升深度估计的鲁棒性。 3. 解耦式朝向估计针对偏航角的周期性问题,MonoFlex提出了局部与全局解耦的朝向估计方法,将偏航角拆分为“相对于相机的全局角度”和“相对于物体2D框的局部角度”分别回归,解决了物体朝向与视角耦合的问题,提升了不同视角下的朝向估计精度。 **优缺点与落地场景** ✅优点:针对性解决了截断物体、遮挡物体的检测痛点,城市场景鲁棒性远优于SMOKE;柔性深度估计大幅提升了深度估计精度,尤其是远距离物体;整体结构基于SMOKE优化,易于工程落地与部署。 ❌缺点:增加了2D检测分支与可变形卷积模块,计算量大于SMOKE,对车载芯片算力要求更高;训练复杂度更高,需要更多的标注数据。 ### 6.5.MonoDETR:端到端Transformer单目3D检测的里程碑
MonoDETR是2022年提出的首个完全端到端的单目3D检测Transformer算法,核心是摒弃了传统CNN方案的锚框、关键点、NMS后处理等操作,基于DETR的编码器-解码器结构,实现了单目3D检测的端到端推理,同时通过深度感知的注意力机制,解决了Transformer在单目3D检测中收敛慢、精度低的问题,是单目3D检测从CNN时代迈向Transformer时代的核心里程碑。 **设计思路** 传统DETR算法在2D检测中表现优异,但直接迁移到单目3D检测中,会遇到两大核心问题: 1. 单目图像缺乏深度信息,Transformer的自注意力机制无法区分不同深度的物体,特征学习效率极低,收敛极慢; 2. 3D检测的7自由度回归难度远大于2D检测,传统DETR的object query无法有效编码3D空间信息。 MonoDETR的核心创新,是将深度信息完全融入Transformer的注意力机制中,让网络在特征学习阶段就建立起2D像素与3D空间的映射关系,同时设计了3D感知的object query,实现端到端的3D框回归。 **网络结构与核心实现细节** MonoDETR的整体结构基于DETR的编码器-解码器架构,核心分为4个部分:Backbone骨干网络、深度感知编码器、3D感知解码器、预测头,全程无锚框、无关键点、无需NMS后处理,端到端输出3D检测结果。 1. Backbone骨干网络采用ResNet-50作为骨干网络,提取输入图像的多尺度特征,输出1/32下采样的特征图,同时通过一个轻量级的深度估计头,预测每个像素的深度概率分布,生成深度引导特征,为后续Transformer模块提供深度先验。 2. 深度感知编码器(Depth-aware Encoder)核心是将深度信息融入自注意力机制,让网络在编码阶段就能学习到3D空间特征,解决传统DETR收敛慢的问题。 - 首先,将图像特征与深度引导特征融合,生成带深度信息的token序列; - 然后,设计了深度分解的自注意力机制,将传统的自注意力权重拆分为“外观相似度权重”和“深度相似度权重”,让网络不仅关注像素之间的纹理相似性,还关注像素之间的深度相似性,把同一深度的物体特征聚合在一起,建立起3D空间的特征关联; - 编码器通过多层自注意力,最终输出编码了深度与外观信息的全局特征。 3. 3D感知解码器(3D-aware Decoder)核心是设计了3D感知的object query,让query能学习到3D空间的先验信息,同时通过交叉注意力机制,从编码器的特征中采样对应3D位置的特征,回归3D框参数。 - 传统DETR的query是可学习的一维向量,而MonoDETR的query编码了3D空间的位置、尺寸、朝向先验,每个query对应3D空间中的一个潜在目标; - 解码器通过多层交叉注意力,让query自适应地从编码器特征中采样对应3D位置的特征,不断迭代优化3D框的参数; - 训练时,采用匈牙利匹配算法,将query与真实3D框进行匹配,实现端到端的监督,无需手动设计锚框。 4. 预测头针对每个query,直接回归出物体的类别、3D中心坐标、长宽高、偏航角,全程无需NMS后处理,端到端输出最终的3D检测结果。 **优缺点与落地场景** ✅优点:完全端到端的设计,无锚框、无关键点、无需NMS后处理,pipeline极简,避免了人工设计模块带来的误差;深度感知注意力机制大幅提升了特征学习效率,收敛速度与精度远超传统DETR方案;对遮挡、截断、远距离物体的鲁棒性更强。 ❌缺点:计算量与参数量远大于CNN方案,对车载芯片算力要求极高,目前仅能在高端域控制器上部署;训练数据需求量大,收敛周期长,工程落地难度高于SMOKE等CNN方案。 ### 6.6.单目3D检测算法演进总结
我们可以清晰地看到单目3D检测算法的演进路线,核心都是围绕解决单目视觉的两大固有痛点:深度歧义性与场景鲁棒性。 1. 从两阶段到单阶段:去掉冗余的2D检测分支,实现端到端3D检测,提升速度,代表是SMOKE。 2. 从通用方案到场景针对性优化:针对截断、遮挡、远距离等车载核心痛点,设计专用模块,提升城市场景鲁棒性,代表是MonoFlex。 3. 从CNN到Transformer:通过深度感知的注意力机制,建立2D像素与3D空间的全局关联,实现完全端到端的检测,代表是MonoDETR。