这是我参与8月更文挑战的第24天,活动详情查看:8月更文挑战
在特斯拉车身周围一共安装了 8 个摄像头,在驾驶过程中通过安装车身周围 8 摄像头来收集图像信息,可能只会用到其中 7 个摄像头,因为其中一个安装车牌下摄像头使用用于泊车的倒车影像。
- 一颗前视三目摄像头,包括前视宽视野、主视野、窄视摄像头(narrow)各一颗,安装于挡风玻璃后。
- 柱子上有两个,基本上是向侧面和前面看,在 B柱位置安装两个摄像头,也就是是前门和后门之间的分隔在那个黑色部分上安装的摄像头
- 在车辆两侧转向灯上有两个摄像头用于观察车辆后方,实际上是在汽车前挡板的两侧
这些摄像头视野范围相互重叠,保证在车辆走没有盲区,除了前置三目摄像头以外,其他 4 个摄像头就基本保证了 Tesla 的 L3 级别的功能:变道、合流、出高速。从实景照片中可以看出,相邻左右车道确实是无死角的照顾到了。
自动驾驶系统不能仅仅使用 2D 图像空间的目标检测,还需要自上而下的鸟瞰图。传统的方法是创建占用跟踪器(occupancy tracker),将2D 图像投射到 3D 空间,这种拼合是不同时间点上来将不同图像进行拼接,这种跟踪器拼接过程没有考虑时间上图像的联系,只能创建一个小的局部地图,以帮助汽车在停车场中蜿蜒前行)。
然而,在进行拼接时有很多问题,因为这些摄像头指向任意的方向,而且很难在不同的摄像头之间对准这些图像。非常难以开发。这样问题自己也尝试过,是比较难做的任务。
提供车辆召唤的功能,需要车辆或者说神经网络给出一个车辆行驶所需要地图,车身周围的摄像中,没有一个摄像头可以看到车辆周围的所有情况,那么如何将这些摄像头的图像整合为一个图像,首先要看这样做会有什么好处,通过多个视图拼接可以得到车辆周围完整的信息,信息是连续的一致的,完整信息有利于给出正确的判断。还有就是便于目标预测更加准确。不过通过传统的特点和边缘提取,匹配对其来缝合图像还是有一定难度的。这里卡尔帕西采用神经网络来训练出一个这个网络,又是神经网络。这里为得到准确信息,缝合过程不仅是多个摄像头图像空间缝合和拼接,还有就是时间上,也就是上一秒看到什么,当前看到了什么,以及下一秒将要看到什么都是存在一定关系的。通过时间和空间多个图像信息融合,相信会得到更好的效果,不过关键是融合,怎么融合是关键。
通过 5 摄像头收集到图像信息后由主干网络提取特征后,对这些特征进行融合(fusion)
融合层做出统一的观点就是把所有的视图结合在一起。下一个阶段是临时性(temporal)的,在这个阶段中,会随着时间上连续的几帧画面,比如可能是 8 帧画面,所以你把这最近 8 帧图像拿出来进行分析,检查这些画面的一致性,所以你有一个网络,对所有这些画面进行交叉检查。这样一来现在就可以看到移动的物体,可以发现看到一辆汽车从一个画面移动到另一个画面,这个就是网络可以输出的有价值东西,不仅发现那里有一辆车,而且可以告诉你车辆移动的方向,以及车辆运动的速度。了解到之前图像的信息,就会给出哪里有行人,哪里有路标,哪里有路边的标志等等。
之前有关如何使用神经网络来训练出一个鸟瞰图(bird’s view) 还只是停留在 paper 上,感觉特斯拉成功就是知道如何将这些技术落地,这个和埃隆马斯克估计多少会有些关系,感觉埃隆马斯克是一个知道如何做减法的人,当然这和卡帕西这个大牛也是分不开的,感觉他把神经网络发挥到了极致。我觉得神经网络训练的难点在于如何设计网络结构已解决如何标准样本,也就是如何设计数据结构,这些数据结构设计决定训练过程的效果。
BEV net 网络可以关键找到合适训练集来训练整个网络,网络可以采用 Unet 来进行语义分割,对于 BEV net 输入的是多张图像经过语义分割后将这些结构融合输出是平面图。平面图上实现绘制道路边界,车道线以及移动目标在平面上的移动效果,这部分随后展开来看一看。