阅读约12分钟 | 关键词:2D检测、3D检测、YOLO、Anchor、NMS
从今天开始,我们进入智能驾驶的感知算法环节。传感器把原始数据传回来,算法要从中提取出有意义的信息:哪里有车?哪里有行人?车道线怎么走?这个“找东西”的过程,就是目标检测。
大家可能听说过YOLO、SSD、Faster R-CNN等名词,今天我们不讲复杂的数学公式,只讲清楚这些算法在做什么、为什么对自动驾驶至关重要。
🧩 一、目标检测要解决什么问题?
给定一张图像(或一帧点云),目标检测算法要输出:
· 有什么物体:类别(小轿车、卡车、行人、自行车……)
· 在哪里:通常用一个边界框(Bounding Box)标出物体的位置(矩形框的左上角和右下角坐标)。
· 置信度:算法对该检测结果的把握程度(0到1之间)。
听起来很简单,但实际挑战巨大:光照变化、遮挡、不同尺度(近处的车很大,远处的车很小)、不同角度、不同颜色……算法要在毫秒级内找出所有相关物体。
📷 二、2D目标检测:在平面图像上画框
这是最经典的视觉检测任务。输入是一张RGB图像,输出是2D矩形框。
主流方法演进(了解即可,不深究)
· 两阶段检测(如Faster R-CNN):先找出可能包含物体的候选区域(Region Proposal),再对这些区域进行分类和位置精修。精度高,但速度慢(几百毫秒),不适合实时自动驾驶。
· 单阶段检测(如YOLO、SSD):一步到位,同时预测类别和位置,速度极快(几十毫秒甚至几毫秒),精度略低但可接受。YOLO(You Only Look Once)是自动驾驶领域最常用的实时检测器。
YOLO的核心思想(非常简化的比喻)
想象把图像分割成网格(比如7×7)。每个网格负责预测:如果物体的中心落在这个网格内,就预测一个边界框和类别。所有网格同时预测,一次“看”完整个图像,所以叫“You Only Look Once”。
后处理:一个物体可能被多个网格或不同大小的框检测到,需要NMS(非极大值抑制)——保留置信度最高的框,抑制其他重叠的框。
2D检测在自动驾驶中的局限
2D框只告诉我们物体在图像中的像素位置,但不知道它离车有多远。对于刹车、变道等决策,我们需要3D信息(距离、高度、朝向)。因此,自动驾驶还需要3D目标检测。
🚗 三、3D目标检测:给物体加上深度信息
3D检测的输出通常是一个3D边界框(立方体),包含:
· 中心点坐标(x, y, z)
· 长、宽、高(l, w, h)
· 朝向角(yaw,绕垂直轴旋转的角度)
3D检测比2D检测难得多,因为需要从2D图像或稀疏点云中恢复3D几何。
从图像做3D检测(单目/双目)
· 单目3D检测:难度极高,依赖物体大小先验、地平线假设、甚至车轮接地点等技巧,精度差,不适合安全要求高的场景。
· 双目3D检测:通过视差图计算深度,精度尚可,但计算量大,且基线(两摄像头距离)固定,远距离精度下降。
主流自动驾驶很少单独依赖图像做3D检测,而是融合激光雷达或毫米波雷达。
基于激光雷达点云的3D检测
激光雷达直接输出3D点云,检测任务变成了在稀疏、无序的点集中找到物体。常用算法:
· PointNet系列:直接处理点云,学习每个点的特征,再聚合出物体信息。精度高,但计算量大。
· 体素方法(如VoxelNet、PointPillars):将点云划分成小的3D网格(体素),每个体素内提取特征,然后用类似2D卷积的方法处理。PointPillars将点云垂直方向压缩成“柱子”(pillar),效率极高,是目前量产的常用方案。
· Transformer方法:类似BEVFormer,通过注意力机制融合图像和点云特征。
🧪 四、目标检测中的关键挑战与工程技巧
1. 小目标检测
远处的车辆、行人只占几十个像素,容易漏检。解决方案:多尺度特征(在特征图的不同层级分别检测大小目标)。
2. 遮挡
部分物体被前车或建筑物挡住,算法需要依靠可见部分推断完整物体。训练时可以加入“部分遮挡”样本,或使用上下文信息(如车的下半身被挡住,但车顶还在)。
3. 类别不平衡
道路上的车远多于行人、骑车人。如果训练数据不平衡,算法会对少数类(行人)检测能力差。解决方案:过采样少数类、修改损失函数(给少数类更高权重)。
4. 实时性要求
感知模块必须在50毫秒内完成所有处理(因为规划控制需要100Hz甚至更高频率的更新)。这意味着模型必须足够轻量,同时不牺牲精度。典型的工程折中:YOLOv5/v8在嵌入式设备上可达到30-50fps。
🔁 五、目标检测的输出如何被后续模块使用?
感知模块输出的目标列表(每个带类别、3D位置、速度、置信度)会被发送到:
· 预测模块:预测这些目标未来的轨迹(是否变道、加减速)。
· 决策规划模块:根据目标位置和运动,决定自车该加速、刹车、变道还是等待。
· 融合模块:将多个传感器(不同摄像头、雷达)的检测结果合并,减少漏检和误检。
如果没有可靠的目标检测,整个智驾系统就失去了“视力”。
📌 今日思考题
1. 为什么2D目标检测不足以直接用于自动驾驶的刹车决策?它缺少了什么关键信息?
2. 激光雷达点云的3D检测比纯视觉3D检测精度高,但激光雷达并非所有车都标配。未来纯视觉3D检测可能达到可用水平吗?需要哪些突破?
关键词回顾
2D检测 3D检测 YOLO NMS PointPillars 小目标检测
🎯 明天预告(第12天 / 动态篇)
结合今天的目标检测知识,解读一则行业事件:某品牌AEB未能识别横穿马路的行人,分析是检测算法失败还是决策逻辑缺陷。
本系列为100天深度学习计划,每日1篇。欢迎随时提问。