接上一期。Karpathy在ScaledML2020会议上的主题演讲专题>>
关于神经网络在实际自动驾驶过程中的应用,以一个执行流程的方式,也在这次演讲当中涉及。关心过我们之前专题的读者,应该知道,Tesla的Autopilot在神经网络(识别功能)上,所坚持Multi-Tasks并行的方式,如下:
以Backbone为核心架构的神经网络,可以并行处理多路摄像机所送来的视觉信号数据,并根据不同的任务/Task的需求,得出识别结果。比如上图中,我们可以看到一个实际的例子:通过对于右侧肩部的摄像头获取的视觉信号,在这些画幅的像素级别信息内,Backbone并行执行了对于Moving Objects动目标、Road Lines道路线型标识和Road Edges道路边界的识别功能。如果考虑对车身四周8个摄像机数据的联合处理,则理论上可以得出车身附近摄像头可以覆盖范围内的连续道路和交通目标信息。
再举一个实际的案例:
上图是一辆处于Smart Summon状态的无人驾驶的Tesla车辆,属于在特定环境下(停车场)的低速自动驾驶,但其自动驾驶的技术实现难度也不低。上图左上角的信号为黑,应该是在Smart Summon上没有用到这路视频信号,这路视频信号应该是超向前方的那路长焦(远视)镜头,停车场内的智能召唤应用无需这个视觉信号。
在上图中,红色标记的为Road Edge目标识别,由Autopilot的Backbone网络完成识别并被红色线标出。Karpathy指出道路边界识别是借助标准的Binary Segmentation算法完成,并没什么特别之处。正是对于这些道路边界的识别(当然在实际的停车场环境下,还必须得识别各种正常和非正常停放的车辆),才有可能告诉车辆那里可以驾驶,哪里不可以。但需要关注的是,Smart Summon背后的自动驾驶算法(路径规划/驱动)不可能仅仅按照这些支离破碎的方向视图和道路边界就能完成,因此需要在这些图像的基础上,再做加工。
我们之前在那个针对LKAS道路保持系统攻击行为分析的那篇文章里,实际也谈到过这个技术处理,就是将第一视觉角度的视觉信号,转化为Bird-view俯瞰视觉信号,在Bird-view角度下,车辆的自动驾驶算法会在更直接/清晰的视觉态势下,完成路径规划和障碍物避让等自动驾驶算法。
如上图所示,车身周围参与Smart summon动作的七个摄像头(推测)数据,通过一定的投射算法,被组合到同一个Bird-view视图内,左上角。并将道路边界信息也整合到Bird-view图中,这个就是自动驾驶所需要的全局信息。Karpathy把它称作Occupancy Tracker。
对比以上两张图,车辆在运动过程中,OccupancyTracker得到连续的更新,看起来效果似乎和Lidar的2D成像图有点类似,但也仅此而已。因为Autopilot即便在简化的自动驾驶场景Smart Summon里,其的主要外部信息来源也不仅仅依赖左上角的Occupancy Tracker,它仅仅负责导航,其他关键的目标识别信息(比如动静目标和道路线/标识的识别)还必须依赖视觉信息。
实际的Bird-view视角转换工作量很大,因为车载摄像头(7个)所摄角度各不相同,画面frame的变化趋势差异很大,因此将7个摄像头内所拍摄和识别的Raw edge道路边缘信息在Bird-view视角下拼凑出一个完整的、连续的和实时更新的Occupancy tracker,计算量就很大,而且容易出错。你可以想象这种场景,可能会出现Bird-view视角下,可行驶区域会发生类似错乱的情景。这就是Autopilot团队所必须要克服的。
一家之言,欢迎讨论。下期我们继续讨论Autopilot的技术现状。
车右智能
info@co-driver.ai
备注:
1 题图1/2/3/4来自于Karpathy在ScaledML会议上的演讲“AI forAuto-Driving”,https://www.youtube.com/watch?v=hx7BXih7zx8&t=1240s;
2 题图来自互联网。
相关专题:
特斯拉Autopilot机制的最新介绍 ——Karpathy在ScaledML2020会议上的主题演讲 (1)