一直以来,苹果都以追求完美的文化和极度保密的风格著称。虽然外界一直努力捕风捉影,但苹果很少披露自动驾驶研发的进展或动态。
不过今年 11 月,苹果却发表了一篇《VoxelNet: End-to-End Learning for Point Cloud Based 3D Object Detection》论文。
论文中苹果将神经网络命名为 VoxelNet,苹果透过光学雷达点云训练它执行目标辨识工作。论文表明:苹果正在打造一种自动驾驶新方法,透过一名为“VoxelNet”的全新系统,帮助电脑更准确辨识三维物体。其透过光学雷达感测器读取资料,让自动驾驶汽车理解其他汽车、自行车和行人的精确地理位置。该项研究不仅表明苹果的自驾车研究的确属实,也显示苹果正与光学雷达相关公司合作。
透过光学雷达研究物体辨识的并不只有苹果。
2016 年,百度发表了一篇《Vehicle Detection from 3D Lidar Using Fully Convolutional Network》论文。更早的 2015 年,百度也发表过一篇《3D Fully Convolutional Network for Vehicle Detection in Point Cloud》论文。此外,清华与百度还有一篇论文:《Multi-View 3D Object Detection Network for Autonomous Driving》。
2015 年 9 月,卡内基美隆大学机器人学院的 Daniel Maturana 和 Sebastian Scherer 发表了《VoxNet: A 3D Convolutional Neural Network for Real-Time Object Recognition》一文。
2017 年 10 月德国弗莱堡大学机器视觉系发表《Orientation-boosted Voxel Nets for 3D Object Recognition》。欧洲机器视觉权威瑞士苏黎世理工学院则有《SEMANTIC3D.NET: A NEW LARGE-SCALE POINT CLOUD CLASSIFICATION BENCHMARK》。
上述论文都是研究光学雷达的物体辨识。
光学雷达物体辨识最大的优点是完全排除光线的干扰,无论白天还是黑夜,无论树影斑驳的林荫道,还是光线急剧变化的隧道出口,都没有问题。其次,光学雷达可轻易获得深度资讯,对镜头系统来说这非常困难。再来,光学雷达的有效距离远在镜头之上,更远的有效距离等于增加安全冗余。最后,光学雷达也可辨识色彩和车道线。
实际上,光学雷达与镜头没有本质区别,最大区别除了光学雷达是主动发射激光,是主动感测器,只是光电接收二极管不同,镜头可做到的,光学雷达都能做到,只是目前光学雷达的点云密集度还无法和 300 万画素级镜头相比。
对固态光学雷达来说,大部分固态光学雷达都提供 3D 影像,与其说是光学雷达,不如说是 3D 影像感测器更合适。
清华大学与百度的论文《Multi-View 3D Object Detection Network for Autonomous Driving》(2016 年 11 月)中,使用的便是镜头和光学雷达资料融合做物体探测与辨识。
但苹果认为这种做法没有提升,反而带来很多麻烦。因为镜头需要时间同步和与光学雷达做联合空间标定,镜头有效距离有限,效能则与距离关系密切。两者在中远距离难以融合,近距离效果会略好。
与镜头用画素(Pixel)这个词一样,光学雷达是 3D 的,因此有 Voxel(体素)这个词。Pixel 是二维电脑影像的最小单位,Voxel 则是三维资料在三维空间分割的最小单位,很早就应用于三维成像、医学影像(比如 CT)等领域。
辨识物体是机器理解人类社会环境的基本能力,人类文明主要用文字和语言承载,这是一种完全社会化的概念,因此机器不得不采用人类的学习方式,也就是深度学习。
光学雷达可用回波宽度或反射强度资讯轻易辨识某类物体,如车道线、草地、建筑物、道路、树木,且是物理辨识,而不是镜头那样根据数学概率算法得出的辨识,物理辨识的准确度远高于概率推算。
但要具体辨识,比如物理方式,光学雷达只能辨识出行人,但是成年人、老人、小孩还是婴儿就无能为力。再比如,路边的交通辨识,光学雷达只能知道是一块金属牌或塑胶牌,但牌子内容就不知道了,这时深度学习就可以派上用场。
深度学习通俗的理解就像人类训练动物,比如教狗与你握手(爪),狗做对了,就给一点食物奖励或抚摸奖励,这就是一种强化学习的机制。假如狗没做对,就会被训。这就像神经网络的训练过程,辨识正确就增加这部分的权重值(食物奖励),辨识错误就减少权重值(被训)。
如此不断强化,最终你一伸手,狗也伸手(爪)跟你握手。
▲ 苹果 Voxel Net 架构。
目标侦测与辨识领域早期为 DPM,2013 年 11 月,目标侦测领域公认的大神 Ross Girshick 推出 R-CNN,2015 年 4 月进化为 Fast R-CNN,2015 年 6 月进化为 Faster R-CNN,成为今日目标侦测与辨识领域公认最好的方法,也是可完全达成端对端。
光学雷达的目标侦测与辨识自然也是要用 Faster R-CNN。Faster R-CNN 从 2015 年底至今已接近两年了,但依旧还是物体探测(Object Detection)领域的主流框架之一,虽然推出后续 R-FCN、Mask R-CNN 等改进框架,但基本架构变化不大。同时不乏 SSD、YOLO 等骨骼清奇之新作,但精准度依然以 Faster R-CNN 最好。
从 RCNN 到 fast RCNN,再到本文的 faster RCNN,目标侦测的 4 个基本步骤(候选区域生成、特征撷取、分类、位置精修)终于统一到深度网络框架内。所有计算没有重复,完全在 GPU 完成,大大提高了执行速度。
faster RCNN 可简单看做“区域生成网络+fast RCNN”的系统,用区域生成网络 RPN(Region Proposal Networks)代替 fast RCNN 的 Selective Search 方法。
不过 RPN 只能针对密集化的具备张量架构的资料,而光学雷达的云点颇稀疏,因此光学雷达深度学习辨识物体的关键,就是如何把点云资料转换成具备张量架构的密集影片或影像资料。
苹果提出一种叫 VFE(Voxel Feature Encoding)的方案(上图)。
首先将点云资料转换为体质数据,基本上点云的三维资料就是体素的三维资料。根据体素所在的位置分组点(点云),再把这些分组资料全部一层层堆叠起来,然后透过全卷积神经网络(FCN)形成有4(速度向量、X、Y、Z)张量的资料架构。
接下来看FCN,FCN 将传统 CNN 的全连线层转化成卷积层,对应 CNN 网络 FCN 把最后三层全连线层转换成为三层卷积层。
传统 CNN 架构中,前五层是卷积层,第六层和第七层分别是一个长度为 4096 的一维向量,第八层是长度为 1000 的一维向量,分别对应 1 千个不同类别的概率。
FCN 将这三层表示为卷积层,卷积核的大小(通道数、宽、高)分别为(4096,1,1)、(4096,1,1)、(1000,1,1)。看上去数字并没有什么差别,但卷积跟全连线是不一样的概念和计算过程,使用的是之前 CNN 已训练好的权值和偏置,不一样的在于权值和偏置有自己的范围,属于自己的卷积核。
因此 FCN 网络中所有层都是卷积层,故称全卷积网络。
经过多次卷积后,得到的影像越来越小,分辨率越来越低。其中影像到 H/32×W/32 时图片是最小一层时,产生的图叫热图(heatmap),热图就是最重要的高维特征图。
得到高维特征的热图之后就是最重要的一步也是最后一步:取样原影像(upsampling),把影像放大、放大、放大,到原影像的大小。这就可以看做是 RPN。
▲ 百度的云点转换 FCN 步骤图。
▲ 苹果的 RPN 架构图,可看出与百度相差无几。
最后无法免俗,苹果也得上 KITTI 测试一番,还不忘打击百度。
其中 22 号方案是百度早期方案,效果一般。5 号方案就是百度和清华合作的方案,BV 代表鸟瞰图,FV 代表前检视,RGB 代表镜头。HC-baseline 的方案也是清华和百度联合提出。鸟瞰侦测方面,苹果与百度几乎没太多差别,3D 侦测方面,苹果领先不少。
苹果使用的是一个 1.7GHz 的 CPU 和顶级显卡 TitanX 执行上述算法,Voxel 汇入特征计算费时大约 5 毫秒,特征学习网络费时大约 20 毫秒,卷积中间层费时 170 毫秒,RPN 网络费时 30 毫秒,合计 225 毫秒。
但苹果没有说这是 1 帧的推理(Inference)时间还是 30 帧的推理时间。如果是 1 帧,那就离实用还差很远,若做到每帧 25 毫秒才算比较接近实用。
(本文由 雷锋网 授权转载)