首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

计算机视觉技术在无人驾驶中的目标检测、图像识别的未来:机遇与挑战并存

计算机视觉技术在无人驾驶中的目标检测

资料来源:清研车联

机器视觉只是无人驾驶感知系统中的一个部分,无人驾驶感知系统的构建还需要激光雷达、毫米波雷达、超声波雷达等其他传感器的共同作用,才能构建出一个可以识别交通标志、车道线、周围行人车辆的强大体系。只是不可置否,机器视觉是无人驾驶感知系统最为基础也最为关键的一个部分,它担负着交通标志、交通灯的检测,车道线的识别与偏航的计算,也在障碍物检测与定位中也是至关重要的一部分。

机器视觉的物体识别,多是依托多层卷积神经网络而构建的,通过对输入的RGB三通道数据进行池化和卷积计算的处理。

图像中的每个像素点都是由RGB(红绿蓝)三个颜色通道组成。为了方便描述RGB颜色模型,在计算机中约束了每个通道由暗到亮的范围是0~255。一幅彩色图像,其实就是由三幅单通道的图像叠加。

计算出当前锁定区域是某类物体的概率,再通过softmax函数对应上物体该有的标签,再通过minibox进行二维层面的物体最小方框回归计算,最终锁定目标物体在图像上的位置和类别。

目 标 检 测

分类、分类+定位、检测、分割

目标检测是在一幅图片中找到目标物体,给出目标的类别和位置。

在 2014 年以前,目标检测通常采用比较传统的方法,先想办法生成一些候选框,然后提取出每个框的特征,例如 HOG,最后通过一个分类器来确认这个框是否是目标物体。而生成候选框的方式也有很多种,比如用不同大小的预选框在图片中滑动,或者像 Selective Search 算法一样,可以根据图片本身的纹理等特征生成一些候选框。

目标检测方法分为 One-Stage 和 Two-Stage 两种。两步检测算法是把整个检测过程分为两个步骤,第一步提取一些可能包含目标的候选框,第二步再从这些候选框中找出具体的目标并微调候选框。而一步检测算法则是省略了这个过程,直接在原始图片中预测每个目标的类别和位置。两步检测最经典的就是 Faster-RCNN三部曲。R-CNN 是比较早期提出用深度学习解决检测的模型。

思路是先用 Selective Search 算法提取一定数量的候选区域,然后对于每个候选区域使用 CNN 提取特征,最后在提出的特征后面接一个回归和 SVM 分类,分别预测目标物体的位置和类别。

R-CNN 的优点是使用了 CNN 提出的特征,效果比较好。当然,缺点也很明显,整个过程分成了好几步,无法完整的训练,另外由于每个候选框提特征是独立计算的,整个过程包含了大量的冗余计算。

Fast-RCNN 是在此基础上的一个改进版本,主要解决了提取特征时冗余计算的问题。首先对整张图片做卷积,提取特征得到一层 Feature Map,然后再提取每个候选框的特征时直接在这个 Feature Map 上面提取特征。

但是每个候选框的尺寸是不一样的,而后面做分类和回归时要求特征必须定长。为了解决这个问题 Fast-RCNN 中提出了 Roi-Pooling 层,可以对不同大小的区域提取出固定维度的特征,使得后面的分类和回归可以正常运行。这个模型整体减少了大量的冗余计算,提高了整个模型的运行速度。

Faster-RCNN 是三部曲的最后一步。Fast-RCNN 存在的问题是:提取候选区域仍然是使用的 Selective Search 算法,打乱了整个模型的连续性。

Faster-RCNN 为了改进这点提出了 RPN 结构,RPN 可以在 Feature Map 的每个位置提取很多不同尺寸、不同形状的候选框,也叫 Anchor。每个 Anchor 后会跟一个二值分类,来判断这个 Anchor 是否是背景,并接一个回归对位置进行微调。具体的类别和位置在网络尾端还会进一步调整。至此,整个目标检测过程都可以实现端到端的进行训练。

在一步检测中,比较经典的是 YOLO和 SSD模型。这里介绍下 YOLO 算法。首先将图片划分为 NxN 的方格,每个方格预测 C 个类别概率,表示某类目标中心落在这个方格的概率,并且预测 B 组位置信息,包含 4 个坐标和 1 个置信度。整个网络输出 NxNx(5xB+C) 的 Tensor。YOLO 的优点是:省略两步检测中提区域的步骤,所以速度会比较快,但是它对于密集小物体的识别很不好。后续的 YOLOv2 和 YOLOv3 都对此做出了很多的改进。

分 割

语义分割、实例分割

分割,是一个对图片中的像素进行分类的问题。分割最初分为语义分割和实例分割。

语义分割是对图片中每一个像素都要给出一个类别,例如地面、树、车、人等。而实例分割则和目标检测比较像,但是实例分割是要给出每个目标的所有像素,并且同一种类别不同目标要给出不同的 ID,即可以将每个目标清晰的区分开。今年,有人研究将语义分割和实例分割统一在一起,称为全景分割,如下图所示:

在无人驾驶中应用比较多的是语义分割。例如路面分割、人行横道分割等等。语义分割比较早期和经典的模型是 FCN[。FCN 有几个比较经典的改进,首先是用全卷积层替换了全连接层,其次是卷积之后的小分辨率 Feature Map 经过上层采样,再得到原分辨率大小的结果,最后 FCN 使用了跨层连接的方式。跨层连接可以将高层的语义特征和底层的位置特征较好地结合在一起,使得分割的结果更为准确。FCN 结构图如下所示:

目前很多主流的分割模型准确率都比较高,但是帧率会比较低。而无人驾驶的应用场景中模型必须实时,尤其是高速场景下,对模型的速度要求更高。目前美团使用的是改进版的 ICNet,既保证了模型的运行速度,又保证了模型的准确率。下图是一些经典分割模型的时间和准确率对比图:

距 离 估 计

对于距离信息的计算有多种计算方式:

激光测距,原理是根据激光反射回的时间计算距离。这种方式计算出的距离是最准的,但是计算的输出频率依赖于激光本身的频率,一般激光是 10Hz。

单目深度估计,原理是输入是单目相机的图片,然后用深度估计的 CNN 模型进行预测,输出每个像素点的深度。这种方式优点是频率可以较高,缺点是估出的深度误差比较大。

结构光测距,原理是相机发出一种独特结构的结构光,根据返回的光的偏振等特点,计算每个像素点的距离。这种方式主要缺点是结构光受自然光影响较大,所以在室外难以使用。

双目测距,原理是根据两个镜头看到的微小差别,根据两个镜头之间的距离,计算物体的距离。这种方式缺点是计算远处物体的距离误差较大。

根据相机内参计算,原理跟小孔成像类似。图片中的每个点可以根据相机内参转化为空间中的一条线,所以对于固定高度的一个平面,可以求交点计算距离。通常应用时固定平面使用地面,即我们可以知道图片中每个地面上的点的精确距离。这种计算方式在相机内参准确的情况下精度极高,但是只能针对固定高度的平面。

图像识别的未来:机遇与挑战并存

序 言

在计算机视觉领域,图像识别这几年的发展突飞猛进。例如,在PASCAL VOC物体检测基准测试中,检测器的性能从平均准确率30%飙升到了今天的超过90%。对于图像分类,在极具挑战性的ImageNet数据集上,目前先进算法的表现甚至超过了人类。

图像识别技术的高价值应用就发生在你我身边,例如视频监控、自动驾驶和智能医疗等,而这些图像识别最新进展的背后推动力是深度学习。深度学习的成功主要得益于三个方面:大规模数据集的产生、强有力的模型的发展以及可用的大量计算资源。对于各种各样的图像识别任务,精心设计的深度神经网络已经远远超越了以前那些基于人工设计的图像特征的方法。

尽管到目前为止深度学习在图像识别方面已经取得了巨大成功,但在它进一步广泛应用之前,仍然有很多挑战需要我们去面对。与此同时,我们也看到了很多具有未来价值的研究方向。

挑战一:如何提高模型的泛化能力

图像识别技术在可以被广泛应用之前,一个重要的挑战是,怎样才能知道一个模型对未曾出现过的场景仍然具有很好的泛化能力。

在目前的实践中,数据集被随机划分为训练集和测试集,模型也相应地在这个数据集上被训练和评估。需要注意的是,在这种做法中,测试集拥有和训练集一样的数据分布,因为它们都是从具有相似场景内容和成像条件的数据中采样得到的。

然而,在实际应用中,测试图像或许会来自不同于训练时的数据分布。这些未曾出现过的数据可能会在视角、大小尺度、场景配置、相机属性等方面与训练数据不同。

一项研究表明,数据分布上的这种差异会导致各种深度网络模型的准确率产生明显的下降 。当前模型对数据分布自然变化的敏感性可能成为自动驾驶等关键应用的一个严重问题。

挑战二:如何利用小规模和超大规模数据

我们需要面对的另一个重要的挑战是如何更好地利用小规模训练数据。虽然深度学习通过利用大量标注数据在各种任务中都取得了巨大的成功,但现有的技术通常会因为只有很少的标记实例可用而在小数据情景中崩溃。这个情景通常被称为“少样本学习(few-shot learning)”,并需要在实际应用中仔细考虑。例如,一个家庭机器人被期望可以完成这样的任务:向它展示一个新物体,且只展示一次,之后它便可以识别这个物体。一个人可以很自然地完成这个任务,即使这个物体之后又被操作过了,例如一个毛毯被折叠起来了。如何赋予神经网络像人类这样的泛化能力是一个开放的研究问题。

另一个极端是如何利用超大规模数据有效地提高识别算法的性能。对于像自动驾驶这样的关键应用,图像识别的出错成本非常高。因此,研究者们创造出了非常庞大的数据集,这些数据集包含了数以亿计的带有丰富标注的图像,并且他们希望通过利用这些数据使模型的准确度得到显著提高。

然而,目前的算法并不能很好地利用这种超大规模数据 。在包含了3亿张标注图片的JFT数据集上,各种深度网络的性能随着训练数据量的增加,仅仅呈现出对数级的提高(图一)。在大规模数据的情况下,继续增加训练数据带来的收益会变得越来越不明显,这是一个有待解决的重要问题。

图一目标检测在JFT-300M数据集上的性能随训练样例的增多呈对数倍的提高。x轴是对数尺度下的数据大小。y轴是目标检测的性能。左图使用COCO minival测试集上的mAP@[0.5,0.95] 指标,右图使用PASCAL VOC 2007测试集上的mAP@0.5指标 。红蓝两条曲线分别代表两种不同的模型。

挑战三:全面的场景理解

除了这些与训练数据和泛化能力相关的问题外,还有一个重要的研究课题是全面的场景理解。除了识别和定位场景中的物体之外,人类还可以推断物体和物体之间的关系、部分到整体的层次、物体的属性和三维场景布局。

获得对场景的更广泛的理解将会帮助例如机器人交互这样的应用,因为这些应用通常需要物体标识和位置以外的信息。这个任务不仅涉及到对场景的感知,而且还需要对现实世界的认知理解。要实现这一目标,我们还有很长的路要走。全面的场景理解的一个例子为全景分割,见图二。

图二 (a)原图;(b)语义分割:识别天空、草地、道路等没有固定形状的不可数材质(stuff),标记方法通常是给每个像素加上标签 ;(c)实例分割:分割人、动物或工具等可数且独立的物体实例(object instance),通常用包围盒或分割掩码标记目标;(d)全景分割:生成统一的、全局的分割图像,既识别材质,也识别物体。

挑战四:自动化网络设计

最后一个值得一提的挑战是使网络设计自动化。近年来,图像识别这一领域的重心从设计更好的特征转向了设计更新的网络架构。然而,设计网络架构是一个冗长乏味的过程,它需要处理大量的超参数和设计选择。调优这些元素需要有经验的工程师花费大量的时间和精力。

更重要的是,一个任务的最优架构和另一个任务的最优架构可能是完全不同的。尽管我们对自动神经架构搜索的研究已经开始了,但它们仍然处于早期阶段并且仅适用于图像分类任务。当前方法的搜索空间非常狭窄,因为它们寻找的是现有网络模块的局部最优组合(例如深度可分离卷积和恒等连接),并且无法发现新的模块。目前还不清楚这些现有的方法是否足以胜任更复杂的任务。

图三 神经架构搜索算法的抽象图解。搜索策略首先从事先定义好的搜索空间中选择一个架构A,这个构架接着被评估策略进行评估,并将评估的A的性能传递给搜索策略 。

尽管在图像识别领域存在上述诸多挑战,但我们仍然相信深度学习在图像识别领域的巨大潜力。解决这些问题的机会比比皆是,下面我们看看这其中的几个研究方向:

方向一:整合常识

图像识别领域有一个重要的研究方向是将常识融入到深度学习中。目前,深度学习主要作为一种纯粹的数据驱动技术被使用。在深度学习中,神经网络利用训练集中的标注样本学习一个非线性函数,之后在测试时则将这个学习到的函数作用到图片像素上。训练集之外的信息则一点也没有被用到。

相比之下,人类识别物体不仅基于已经看到的样本,还基于他们有关真实世界的常识。人们能够对他们所看到的东西进行推理,以避免不合逻辑的识别结果。此外,当遇到新的或超出预期的东西时,人类可以迅速调整他们的知识来解释这次的新经历。如何在深度网络中获取、表示常识以及利用常识进行推理是一个挑战。

方向二:几何推理

联合执行图像识别和几何推理则是另一个有潜力的方向。图像识别的主要模型只考虑了二维外观,而人类可以感知三维场景布局以及推断其内在的语义类别。三维布局不仅可以从双目视觉中获得,还可以从二维输入的几何推理中得到,就像人们看照片时所做的那样。联合图像识别和几何推理为双方都提供了好处。

从几何推理中确定的三维布局可以帮助在看不见的视角、变形和外观的情况下引导识别。它还可以消除不合理的语义布局,并帮助识别由其三维形状或功能定义的类别。例如,沙发中存在着巨大的类内外观差异。然而,它们拥有共同的属性,可以帮助识别它们。比如它们都有一个水平面用来坐,一个背面用于支撑。另一方面,识别出来的语义可以规范化几何推理的解空间。例如,如果一只狗在一个场景中被识别,它相应的三维结构应该符合狗的三维形状模型。

图四 从视频的两个不同视角的帧重建出复杂动态场景的点云

方向三:对关系建模

关系建模也有很大的研究潜力。想要全面理解一个场景,对场景中存在的目标实体之间的关系和相互作用的建模非常重要(图四)。考虑两张图片,每个图片都包含一个人和一匹马。如果一张展示的是骑着马的人,另一张展示的是踩着人的马,显然这两张图片表达了完全不同的意思。此外,通过关系建模提取的底层场景结构可以帮助补偿当前深度学习方法因数据有限而出现的模糊不确定等问题。尽管人们已经在努力解决关系建模这个问题,但这项研究仍然是初步的,并且还有很大的探索空间。

图五 目标检测中的关系网络。表示物体的外表特征,表示物体的几何特征

方向四:学习如何学习

这里还有一个值得一提的方向是元学习,它的目标是学习学习过程。这个课题最近引起了相当多的关注,而且神经架构搜索也可以被认为是它的一种应用。

然而,由于目前对学习过程建模的机制、表示和算法还比较初级,元学习的研究仍处于早期阶段。以神经架构搜索为例,它只局限于现有网络模块的简单组合。元学习者无法捕捉到创作新网络模块所需的微妙的直觉和敏锐的洞察力。随着元学习的进步,自动架构设计的潜力可能会被完全释放出来,进而得到远超手工设计的网络结构。

图六 元学习近期的进展。自左至右分别为元学习的超参数优化 、神经架构搜索 、少样本图像分类 。

这是一个激动人心的从事图像识别的时代,一个充满了推动领域发展、影响未来应用的机会时代。我们热切盼望即将到来的进步,并期待这些新技术以深刻而神奇的方式改变我们的生活。

文章来源:大数据文摘

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190113B01J8500?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券