此外,独立的图像处理网络很烧钱,因为它需要大量的训练、海量的数据库和一个规模庞大的神经网络
媒体上关于 Autopilot V9 的溢美之词不绝于耳,但却没人能从技术角度说说这次的 V9 到底牛在哪里。好在民间有大神,在特斯拉论坛上,就有一位神经网络从业者对 V9 进行了深入剖析。看完他的分析,你对 Musk 的崇拜恐怕要再多几分。。
雷锋网新智驾对神经网络工程师 jimmy-d 的论坛发言进行了整理和编译,各位读者可千万别错过这份营养满满的技术大餐。
统一的摄像头网络让 8 颗摄像头火力全开
与前一个版本的 V8 类似,我认为 V9 的神经网络中也用到了“摄像头网络”,它能直接处理来自摄像头的输出。当然这还不够,特斯拉还准备了一套“后置处理网络”,它能将“摄像头网络”生成的数据变成更高级别的抽象,而且已经拥有了可操作性。与 V8 相比,V9 有了巨大的跃升。
这个“摄像头网络”到底强大到什么地步呢?
它能一次控制 8 颗摄像头。需要注意的是,V9 上所有摄像头采集的图片和视频权重都是一样的(V8 有所不同,不同摄像头采集的数据重要程度不同)。
具体来说特斯拉这 8 颗摄像头:
前置的 3 颗与后置的 1 颗处理分辨率均为 1280x960(释放了摄像头的最高分辨率);
剩下的 4 颗摄像头则用了 640x480 的处理分辨率(其实这 4 颗摄像头与前后那 4 颗最高分辨率相同,但在这里只用到了其分辨率的四分之一)。
*注:特斯拉的 8 颗摄像头包括 3 颗前置摄像头,它们中有一颗是窄视角摄像头,覆盖范围可达 250 米,一颗是中程摄像头(主摄像头),能看 150 米远,另一颗则是广角摄像头,但覆盖范围仅 60 米。另外车尾还有 1 颗摄像头,剩下 4 颗则对称安装在车辆转向灯下放和 B 柱上。
除此之外,这 8 颗摄像头均升级到了 3 条色彩通道(红绿蓝 3 条色彩通道),且用上了双层架构设计。与其相比,V8 上的 2 条色彩通道(红绿 2 条色彩通道)+单层架构设计就寒酸多了。而且别忘了,V8 的摄像头分辨率只有 640x416,且只有主摄像头和窄视角摄像头有这“待遇”。
传闻称 V8 的多个版本也给那 4 颗比较“闲”的摄像头配备了神经网络,但它到底派没派上用场恐怕只有特斯拉内部人员才知道。
可以肯定的是,V8 时代 Autopilot 驾驶时只用到了主摄像头和窄视角摄像头,而那颗前置广角摄像头是用来感应雨水的。不过在 V9 上,这 8 颗摄像头确实是火力全开。
除了摆脱摄像头“闲置”的骂名,V9 的神经网络处理能力还大幅提升。拿主摄像头来说,1280x960 的分辨率与 3 条色彩通道和双层架构设计叠加,每帧文件大小就能达到 1280x960x3x2 字节,换算过来就是 7.3 M。反观 V8 的主摄像头,每帧输入只有 0.5 M,数据量是 V9 的1/13。
与谷歌的 Inception V1 神经网络相比(两者用了类似的底层架构概念),V9 的摄像头网络规模要大上 10 倍,算力更是提升了 200 倍。
虽然侧方的 4 颗摄像头分辨率只有主摄像头的1/4,但 8 颗摄像头火力全开,13 倍的数据输入量虽然加大了 ECU 的压力,但也能提供更为精细的物体细节。
更为有趣的是,摄像头接口发生了改变,V9 上每一帧都是成对处理。不过,这些成对处理得画面还是有时间偏差的,延迟大致在 10-100 毫秒,这样才能呈现出动作,而动作能提供深度信息并将物体从背景中分离出来,帮助车辆识别并预测物体轨迹(包括车辆自己的轨迹)。
对系统的基础感知来说,这个升级至关重要。
图像处理网络效率大跃升
在 V8 上,主摄像头和窄视角摄像头用了相同的架构,但权重有差异。
这点并无问题,毕竟两颗摄像头有完全不同的视场。分别训练两颗摄像头会大大降低物体识别的难度,同时神经网络的规模和训练量也会有所下降。不过这也意味着你必须打造两个不同的训练数据集并分别对它们进行评估,而且在运行时两个不同的神经网络还要交替上线。
在 V9 上,特斯拉则用上了独立的图像处理网络(Camera Agnostic,意为独立于摄像头),它能在相同权重下处理任何摄像头的输出数据。同时也能解决 V8 上神经网络的问题并提升其稳定性。
这种解决方案也意味着神经网络必须更了解物体到底长什么样,无论镜头畸变有何不同(畸变无法用物理方式修复)。此外,独立的图像处理网络很烧钱,因为它需要大量的训练、海量的数据库和一个规模庞大的神经网络。
当然,特斯拉选择这样一个解决方案也不是为了给自己找麻烦。这套独立的图像处理网络在计算效率上有了较大提升。当它只需要依照一个权重时,就不用频繁在 GPU 中写入各种数据。更重要的是,你可以在一个数据集的框架下大批量处理各种摄像头采集的图像了。这样一来,同等的硬件就能获得性能加成。
我从来没想过有厂商愿意搞这种独立的图像处理网络,特斯拉真给力!
怪物级别的神经网络
如果要用一个词形容 V9 的神经网络,恐怕你脑海里第一个蹦出来的词是怪物,但事实上它比怪物还要强悍。当你将神经网络里的一个权重乘以 5,就会发现你得到的不只是 5 倍的能力提升。
在表达能力上,神经网络的提升服务更是几何级的。打个比方,如果 V8 的表达能力是 10,那么 V9 就是 100000,绝对是爆炸性的性能飞跃。不过,想用好这个性能飞跃,就需要训练数据也配合着增加,你“喂给”神经网络的数据量可能是原来的数百万倍。
(*注:其实数据方面特斯拉并不担心,毕竟和 Waymo 相比,它们奔跑在路上的车辆要多得多。数据显示,2016 年年底特斯拉售出车型的行驶里程已经高达 35 亿英里,随着大量 Model 3 入役,想必 Musk 的数据库都快塞不下这些数据了,而时不时就实现一个里程碑的 Waymo 才累积了 1000 万英里的路测历程。)
简单来说,这套神经网络比我见过的任何视觉神经网络都要庞大,只是想想它需要的学习数据我都感觉不可思议。为了万无一失我甚至算了很多遍,但最终我惊奇的发现,限制我的并非计算方法,而是我的想象力。
V9 神经网络上的变化让车辆有能力识别任何方向上的每个物体,其探测距离甚至能达到数百米。同时,它还能抓住这些物体的瞬间动作。如果考虑到摄像头视场的重叠,每出现一个物体,至少会被两颗摄像头发现,这就大大提升了车辆安全性。
在 V9 上,特斯拉是不是用了半监督学习?特斯拉使用的数据肯定有一部分不带标签,毕竟谁能找来这么多人给天量的数据加标签?
在我看来,特斯拉的模拟测试设计师们肯定打造了一台专门生成数据标签的机器,不过即使这样恐怕加了标签的数据也不够用。而且,特斯拉去哪找这么狂暴的数据中心来训练神经网络呢?难道 Musk 是谷歌背后的神秘人,能从 Larry Page 那弄来一整个仓库的 TPU?
总而言之,在 V9 上我看到了特斯拉的能力和野心。
特斯拉总是能实现业内专家都无法想象的进步,这种通过改进“放大”计算能力、训练数据和产业资源的能力是特斯拉的核心竞争力之一,同时也降低了未来研发路上的不确定性。
从这个角度来看,特斯拉的“视觉优先/全神经网络”模式确实前程远大。作为一名神经网络界的从业人员,我为特斯拉感到骄傲。
领取专属 10元无门槛券
私享最新 技术干货