深度解读特斯拉 AI DAY(2)—多任务神经网络 HydraNet

2,263 阅读4分钟

这是我参与8月更文挑战的第22天,活动详情查看:8月更文挑战

上面介绍了如何基于主干网络(backbone) 提取不同尺度(scale) 特征在 BiFPN 网络进行跨缩放尺度的特征融合,随后将这些特征输入到类似 YOLO 的 one-stage 目标检测网络中进行单目标检测。当然对于特斯拉来说首先要读取

055.png

通过语义分割读取图片语义一方面用于FSD 控制的决策一方面呈现给用户来增强用户对 Tesla 的信任

056.jpeg

从原始图像上经过一系列网络得到多尺度特征图会用于不同检测任务、例如检查车辆、检查交通信号灯和车道线等等任务上,这就是一个多任务学习的网络。每一个任务就是基于一个主干网络结构,他们共享同一套特征,每个任务为看是从主干网络上生长出的一个分支。

008.png

接下来聊一聊这样网络结构给我们带来什么样的好处

特征共享

首先是特征共享,也就是不同任务都采用主干网络前向传播推理过程,这样从侧面节省了测试时间,有效将地测试时间均摊到不同任务,在 Tesla 中,要识别种类有上千种目标需要识别,因为共享主干网络的特征这样大大节省了时间。

016.png

任务之间的低耦合

不同任务之间虽然共享主干特征,对比不同任务的调整,只需要任务头对该任务单独记性进行 Fine-Tune 头部网络结构。这样调整不会影响到其他任务,从而实现任务之间的低耦合。

009.png

缓存瓶颈层

在每次更新数据对网络结构进行更新时,会将训练好的主干网络提取多尺度特征缓存到磁盘,也就是做 fine-tune 时候是通过数据更新这个多任务网络特征和参数,也就是将主干网络的特征不会参与到 fine-tune 优化学习中。而且训练是一个联合训练

018.png

在之前神经网络中,通过单个摄像头进行收集图像,hydraNet 对单个图像进行处理,大量的预测任务,如车道线、路面上行驶的车辆以及交通标识等, 都是基于对单张图像提供的信息

019.png

022.png

028.png

这是 Tesla 一个新功能召唤 Tesla,这种可以召回停放在停车场的 Tesla 自行移动到车主面前,这是一个完全的无人驾驶功能,也是特斯拉朝着完全无人驾驶试探地迈出一步。现在摆在 Tesla 的一个问题就是如何对自己进行定位,今天根据这些视图车辆无法找完成对车辆控制来找到车主。

039.png

027.png

上图中表示了如何通过跨摄像头检测出道路的边线来实时拼接出上面的鸟瞰图。有关图像边缘检测其实有学多算法例如之前介绍 canny 算法和霍夫变换就可以用于车道线和道路边缘线检测,如果对不同图像中边缘线进行缝合得到一个鸟瞰图,不过要同步地通过算法去实现这样效果并非易事。所以希望这一切可以交给神经网络内部完成,这样不会不同模型间交换数据问题,保证网络的一致性 end-to-end 网络。

037.png

缝合每台摄像机的路缘预测,跨越摄像机和时间。

难点 1

跨镜头融合和跟踪器是很难写清楚的

难点 2

图像空间不是正确的输出空间

030.png

图像通过神经网络得到很好的对出车道线和边缘线检测结果,在图像用红色和蓝色线将这些边缘表示出来,但是当这些线映射到向量空间,就变得一团糟。出现问题主要原因也就是这里缺少了每个像素的在空间深度信息。

050.png

有关目标检测,跨不同的摄像也帮助解决一个问题,这个问题路面上的卡车出现在 5 摄像头头中,但是问题是没有一个摄像头中出现的卡车是完整的。如何通过跨摄像头得到通过融合(fusion)得到完整的的卡车识别。

051.png

052.png

这里还是给大家抛出两个问题

  • 第一个问题就是特斯拉如何通过神经网络来引入深度信息,来将多个图像的信息融合后到一个向量空间-
  • 如何通过摄像头来进行更准确的目标识别

有关这些信息下次分享给出答案。