CVPR研讨会 | 余凯特邀报告:基于密集预测图的物体检测技术造就全球领先的ADAS系统
2015年5月我离开百度,创建地平线机器人技术,继续人工智能领域全新的探索。地平线在其成立之初就广受关注,去年9月完成了由晨兴、高瓴、金沙江、线性资本等众多国际知名投资机构支持的种子轮融资,今年又先后获得硅谷著名风险投资家Yuri Milner、双湖投资、青云创投和祥峰投资的重量级投资。
地平线成立至今,吸引了来自百度、谷歌、华为、Facebook等国际知名公司人工智能领域的精英100余人。并且先后20余次在ImageNet、Pascal VOC等专业的视觉、语音识别检测平台上的各类测试中取得第一名。地平线的愿景是打造人工智能的“大脑”系统和平台,计划花10年时间,让世界上1000种消费电子产品,例如家居、汽车、玩具和服务机器人,具有从感知、交互、理解到决策的智能,让人工智能真正来到每个人的身边。
作为世界第一大汽车市场,中国在交通领域面临着巨大挑战。人口众多、机动车保有量不断攀升的现实状况,以及各类复杂的路况、车辆信息,使得中国的交通安全面临巨大威胁。基于严峻的现实问题,地平线集中力量,倾力打造自动驾驶技术,在该领域取得了巨大成果。针对中国特有的复杂路况,我们专门设计了高性能的物体检测算法,让单目摄像头也能做到精确的环境感知。
我们使用的DenseBox算法在KITTI数据集上持续保持全球第一,虽然中间被其他算法刷过去,但是我们马上又追回来了。 今天我来给大家具体阐述一下Dense Box的技术思想。
ADAS的核心技术,即物体检测,对行驶车辆周边环境的监测,实现的途径即通过识别(Recognition)和定位(Localization)两个步骤实现。物体检测相对于物体分类来讲要困难很多。 物体检测除了需要判断物体是什么,还需要给出物体的精确位置,这本质上是个搜索问题。如果简单地去用扫描窗口判断图片所有的位置和可能物体大小,那么完成一张图的检测可能需要10^6这个数量级的分类操作——时间复杂度太高了! 从实用角度来讲,我们需要一个非常高效的检测方法。
目前的物体检测算法, 按照步骤可以可以分为两类: 1. 基于region-proposal的深度学习的物体检测算法; 2. 直接回归物体位置的检测算法。前者的典型代表就是R-CNN系列的检测算法。最初的R-CNN算法直接把检测问题分成Proposal Generation(候选区域提取)加上CNN做分类两个步骤。后来的Fast-R-CNN则进行了优化,共享了CNN分类步骤中特征提取这一操作,从而得到了好几倍的速度提升。 Faster-R-CNN则进一步优化,提出了Region Proposal Networks(RPNs)来直接生成候选区域,并且和后续的CNN 分类器共享特征, 从而使得检测速度上有了更快的提升。 Faster-R-CNN在PASCAL VOC检测数据集上,可以达到每秒几帧的速度。
不同于R-CNNs, 另一类方法尝试直接一步到位, 通过端到端的训练,直接输出物体的位置和类别, 即直接回归物体位置的检测算法。除了较早用CNN直接做检测的方法,例如overfeat,multi-box等等之外,最近比较成功的工作则是YOLO, SSD。 YOLO 和 SSD 尝试直接去输出maps, map中每个像素记录物体的类别和准确位置。 因为网络一步到位直接去回归物体的位置,所以速度会比基于region-proposal 的方法要快。 SSD在达到同等准确率的情况下, 在PASCAL VOC检测数据集上可以做到50帧每秒。 虽然R-CNNs, YOLO, SSD等通用类别的物体检测算法在PASCAL VOC 数据集上有很好的表现, 但是在现实场景中,例如智能驾驶中的车辆检测任务,它们的效果却不尽人意。以最接近智能驾驶场景的KITTI数据集为例, VOC上性能几乎可以算是最好的Faster-R-CNN,在KITTI上车辆检测的平均准确率有81.84%,只能排在准确率排行榜的第13位。实际上, 智能驾驶场景(KITTI)和通用类别物体检测场景(PASCAL VOC等) 是有极大不同的。首先, 物体大小范围是不同的。 后一类数据集中的物体以中等以及偏大的物体居多, 物体高度通常在50像素以上; 而前者则是以中小物体居多,最小需要检测到的车辆只有25像素高, 而且车辆的大小跨度很大,小的只有25像素,大的可以超过300像素。 其次,两类数据集的遮挡情况不同。 通用物体检测数据集中,物体的遮挡情况不及KITTI数据集复杂, 这无疑给检测带来了一定的难度。 最后,两个数据集对定位的准确度要求也不一样。KITTI要求检测框与真实的框交并比达到0.7以上才算检测对,而VOC对交并比的阈值要求是0.5。 对于真实的智能驾驶场景而言,物体定位的精度要求会苛刻。在基于视觉的感知系统中, 物体的位置会直接影响到物体距离的估计,几个像素的偏差可能就会导致预测的物体距离的错误估计,对最终结果造成致命的影响。
我们提出了一种叫DenseBox(V2)的算法,能够很好地处理以上提到的问题,并且在KITTI车辆检测数据集取得第一名。算法的核心思路很简单,就是直接去回归物体的类别和位置。不同于YOLO 和 SSD, 我们的输出是密集得多的maps(或者说更高分辨率的预测图), 从而可以精确区分和定位严重遮挡的物体。 为了得到高分辨率的预测结果,在网络中间引入了上采样层; 与此同时,为了保留图像低层的特征,保持对小物体的召回率,我们还在网络中融合了不同层的特征。为了能更好地处理检测目标的尺度,我们的网络有多个分支,可以同时检测不同大小的物体。在网络训练中,我们还使用了Hard Negative Mining的策略,能够更好地对训练样本进行筛选。
DenseBox同时是个伸缩性很强的算法,我们可以用更大的模型去取得更高的准确率,亦或是用小而快的模型,在不错的效果上优化速度。我们的大模型—DenseBox-Direwolf,目前是KITTI检测排行榜上的第一,在Easy类别的准确率远甩了其他算法,同时速度也不算慢,只需要0.5秒。第二名达到相似的性能则需要4.5秒。我们的小模型, DenseBox-Peregrine, 在K40上能达到30帧每秒的速度,同时性能比榜上比它慢几十倍的faster-R-CNN还要好。
在未来,人和汽车的交互方式将发生革命性的变化,按键或者触屏将会被淘汰,取而代之的是更为自然的交互方式。包括手势控制、自然语言命令与交流;如果你想换一个电台,听一首忽然想起来的老歌,或者需要临时更改导航目的地,你不需要冒险把视线移开,或者停车,而是像跟一位真人助理那样去用语言和手势沟通。
而这一切都依赖强大的人工智能,地平线正致力于开发完整的人工智能解决方案:包括语音识别、计算机视觉、自然语言理解,我们的目标是实现完整的认知、交互、决策、规划与控制的解决方案,与产业链上的合作伙伴深度合作研发,为汽车智能化提供创新的动力,共同创造前所未有的驾驶体验,做到真正的人车合一。