点云数据带有明确的空间位置信息,工程师们通常使用它来检测车辆、行人、路侧栏杆等物体。点云数据的检测可以依赖传统算法和深度学习网络。传统的障碍物点云检测算法,依靠点云的几何特征,通过分割聚类等方法输出障碍物;深度学习算法则是通过对标注的障碍物点云进行模型训练,再使用模型检测实际场景点云数据。实际工程中可以仅使用深度学习算法,也可以将传统算法和深度学习算法结合运用。图11. 点云检测 图片来源:waymo在CVPR 2020的报告对于图像数据,工程师们主要依靠深度学习的方法来处理。自动驾驶公司大都会选择自主开发检测模型,通过训练标注好数据的真值图像,调整神经网络的结构和参数,以达到最优的检测结果。图12. 图像检测 图片来源:Tesla AI Day 2021物体检测是最具工程挑战的部分之一。在车辆高速行驶的过程中,如果错误地检测了某个障碍物体,会导致错误的车辆控制,最终可能带来非常严重的后果。如何快速且准确地识别障碍物是一项极具挑战的任务。传统的计算机视觉算法(Harris角点检测、SIFT算法、SURF算法、ORB算法等)相比于深度学习算法,检测速度慢、准确率低,很难满足大多数场景下自动驾驶的需求。此外,这些传统的视觉算法都需要对图像提取特征,换句话说就是,对数据在更高、更多的维度上寻找特点,提取特征的过程通常比较复杂。相比于深度学习这种从端到端的算法,传统的视觉算法难以开发,不具优势。深度学习算法的应用,极大地加速了物体检测领域的发展,同时,这也对深度学习算法广泛应用于自动驾驶技术,起到了至关重要的作用。深度学习算法确实有很多优点,但同时其输出结果是概率分布式的,不能保证检测的完全准确性。在今天,这种端到端算法的中间过程仍然是不可解释的,大家无法解释为什么输入一张照片,就会在它的某个区域内检测到某个物体。而传统的视觉算法却具有成熟的理论支撑、透明的中间过程和稳定的性能。笔者比较看好传统计算机视觉算法和深度学习算法两者结合,可以充分利用两种方法的优势。图13. Tesla检测模型框架 图片来源:Tesla AI Day 2021自动驾驶公司一般都会花费大量力气投入到检测模型的开发中。同样,网上也有很多开源的图像检测模型和点云检测模型,为学者、工程师们提供一些开发支持。Lidar和Camera的物体检测,虽然数据输入端不同,但是通过神经网络后,输出的检测物体都具有同样的数据结构。其中主要包括被检测物体的类型、ID、包围框(bounding box,框顶点集合,2D或3D形式)、横纵向距离、速度、加速度、置信度等等。当然,不同类型的被检测物体也会存在不一样的描述特征,比如红绿灯类型的障碍物就需要颜色信息,车道线类型的物体不是输出包围框,而是输出若干个车道线上的关键点(通过连接这些点构成完整的车道线)。图14. 检测模块输出数据结构示例