您好,
魅蓝note的性价比高,性能更好、拍照也更佳出色。
魅蓝note产品介绍:>
环境感知是自动驾驶的第一环,是车辆和环境交互的纽带。一个自动驾驶系统整体表现的好坏,很大程度上都取决于感知系统的好坏。目前,环境感知技术有两大主流技术路线:
①以视觉为主导的多传感器融合方案,典型代表是特斯拉;
②以激光雷达为主导,其他传感器为辅助的技术方案,典型代表如谷歌、百度等。
我们将围绕着环境感知中关键的视觉感知算法进行介绍,其任务涵盖范围及其所属技术领域如下图所示。我们在下文分别梳理了2D和3D视觉感知算法的脉络和方向。
2D视觉感知
本节我们先从广泛应用于自动驾驶的几个任务出发介绍2D视觉感知算法,包括基于图像或视频的2D目标检测和跟踪,以及2D场景的语义分割。近些年,深度学习渗透到视觉感知的各个领域,取得不错的成绩,因此,我们梳理了一些经典的深度学习算法。
1目标检测
11 两阶段检测
两阶段指的是实现检测的方式有先后两个过程,一是提取物体区域;二是对区域进行CNN分类识别;因此,“两阶段”又称基于候选区域(Region proposal)的目标检测。代表性算法有R-CNN系列(R-CNN、Fast R-CNN、Faster R-CNN)等。
Faster R-CNN是第一个端到端的检测网络。第一阶段利用一个区域候选网络(RPN)在特征图的基础上生成候选框,使用ROIPooling对齐候选特征的大小;第二阶段用全连接层做细化分类和回归。这里提出了Anchor的思想,减少运算难度,提高速度。特征图的每个位置会生成不同大小、长宽比的Anchor,用来作为物体框回归的参考。Anchor的引入使得回归任务只用处理相对较小的变化,因此网络的学习会更加容易。下图是Faster R-CNN的网络结构图。
CascadeRCNN第一阶段和Faster R-CNN完全一样,第二阶段使用多个RoiHead层进行级联。后续的一些工作多是围绕着上述网络的一些改进或者前人工作的杂烩,罕有突破性提升。
12 单阶段检测
相较于两阶段算法,单阶段算法只需一次提取特征即可实现目标检测,其速度算法更快,一般精度稍微低一些。这类算法的开山之作是YOLO,随后SSD、Retinanet依次对其进行了改进,提出YOLO的团队将这些有助于提升性能的trick融入到YOLO算法中,后续又提出了4个改进版本YOLOv2~YOLOv5。尽管预测准确率不如双阶段目标检测算法,由于较快的运行速度,YOLO成为了工业界的主流。下图是YOLO v3的网络结构图。
13 Anchor-free检测(无Anchor检测)
这类方法一般是将物体表示为一些关键点,CNN被用来回归这些关键点的位置。关键点可以是物体框的中心点(CenterNet)、角点(CornerNet)或者代表点(RepPoints)。CenterNet将目标检测问题转换成中心点预测问题,即用目标的中心点来表示该目标,并通过预测目标中心点的偏移量与宽高来获取目标的矩形框。Heatmap表示分类信息,每一个类别将会产生一个单独的Heatmap图。对于每张Heatmap图而言,当某个坐标处包含目标的中心点时,则会在该目标处产生一个关键点,我们利用高斯圆来表示整个关键点,下图展示了具体的细节。
RepPoints提出将物体表示为一个代表性点集,并且通过可变形卷积来适应物体的形状变化。点集最后被转换为物体框,用于计算与手工标注的差异。
14 Transformer检测
无论是单阶段还是两阶段目标检测,无论采用Anchor与否,都没有很好地利用到注意力机制。针对这种情况,Relation Net和DETR利用Transformer将注意力机制引入到目标检测领域。Relation Net利用Transformer对不同目标之间的关系建模,在特征之中融入了关系信息,实现了特征增强。DETR则是基于Transformer提出了全新的目标检测架构,开启了目标检测的新时代,下图是DETR的算法流程,先采用CNN提取图像特征,然后用Transformer对全局的空间关系进行建模,最后得到的输出通过二分图匹配算法与手工标注进行匹配。
下表中的准确度采用MS COCO数据库上的mAP作为指标,而速度则采用FPS来衡量,对比了上述部分算法,由于网络的结构设计中存在很多不同的选择(比如不同的输入大小,不同的Backbone网络等),各个算法的实现硬件平台也不同,因此准确率和速度并不完全可比,这里只列出来一个粗略的结果供大家参考。
2目标跟踪
在自动驾驶应用中,输入的是视频数据,需要关注的目标有很多,比如车辆,行人,自行车等等。因此,这是一个典型的多物体跟踪任务(MOT)。对于MOT任务来说,目前最流行的框架是Tracking-by-Detection,其流程如下:
①由目标检测器在单帧图像上得到目标框输出;
②提取每个检测目标的特征,通常包括视觉特征和运动特征;
③根据特征计算来自相邻帧的目标检测之间的相似度,以判断其来自同一个目标的概率;
④将相邻帧的目标检测进行匹配,给来自同一个目标的物体分配相同的ID。
深度学习在以上这四个步骤中都有应用,但是以前两个步骤为主。在步骤1中,深度学习的应用主要在于提供高质量的目标检测器,因此一般都选择准确率较高的方法。SORT是基于Faster R-CNN的目标检测方法,并利用卡尔曼滤波算法+匈牙利算法,极大提高了多目标跟踪的速度,同时达到了SOTA的准确率,也是在实际应用中使用较为广泛的一个算法。在步骤2中,深度学习的应用主要在于利用CNN提取物体的视觉特征。DeepSORT最大的特点是加入外观信息,借用了ReID模块来提取深度学习特征,减少了ID switch的次数。整体流程图如下:
此外,还有一种框架Simultaneous Detection and Tracking。如代表性的CenterTrack,它起源于之前介绍过的单阶段无Anchor的检测算法CenterNet。与CenterNet相比,CenterTrack增加了前一帧的RGB图像和物体中心Heatmap作为额外输入,增加了一个Offset分支用来进行前后帧的Association。与多个阶段的Tracking-by-Detection相比,CenterTrack将检测和匹配阶段用一个网络来实现,提高了MOT的速度。
3语义分割
在自动驾驶的车道线检测和可行驶区域检测任务中均用到了语义分割。代表性的算法有FCN、U-Net、DeepLab系列等。DeepLab使用扩张卷积和ASPP(Atrous Spatial Pyramid Pooling )结构,对输入图像进行多尺度处理。最后采用传统语义分割方法中常用的条件随机场(CRF)来优化分割结果。下图是DeepLab v3+的网络结构。
近些年的STDC算法采用了类似FCN算法的结构,去掉了U-Net算法复杂的decoder结构。但同时在网络下采样的过程中,利用ARM模块不断地去融合来自不同层特征图的信息,因此也避免了FCN算法只考虑单个像素关系的缺点。可以说,STDC算法很好的做到了速度与精度的平衡,其可以满足自动驾驶系统实时性的要求。算法流程如下图所示。
3D视觉感知
本节我们将介绍自动驾驶中必不可少的3D场景感知。因为深度信息、目标三维尺寸等在2D感知中是无法获得的,而这些信息才是自动驾驶系统对周围环境作出正确判断的关键。想得到3D信息,最直接的方法就是采用激光雷达(LiDAR)。但是,LiDAR也有其缺点,比如成本较高,车规级产品量产困难,受天气影响较大等等。因此,单纯基于摄像头的3D感知仍然是一个非常有意义和价值的研究方向,接下来我们梳理了一些基于单目和双目的3D感知算法。
1单目3D感知
基于单摄像头图像来感知3D环境是一个不适定问题,但是可以通过几何假设(比如像素位于地面)、先验知识或者一些额外信息(比如深度估计)来辅助解决。本次将从实现自动驾驶的两个基本任务(3D目标检测和深度估计)出发进行相关算法介绍。
11 3D目标检测
表示转换(伪激光雷达):视觉传感器对周围其他车辆等的检测通常会遇到遮挡、无法度量距离等问题,可以将透视图转换成鸟瞰图表示。这里介绍两种变换方法。一是逆透视图映射(IPM),它假定所有像素都在地面上,并且相机外参准确,此时可以采用Homography变换将图像转换到BEV,后续再采用基于YOLO网络的方法检测目标的接地框。二是正交特征变换(OFT),利用ResNet-18提取透视图图像特征。然后,通过在投影的体素区域上累积基于图像的特征来生成基于体素的特征。然后将体素特征沿垂直方向折叠以产生正交的地平面特征。最后,用另一个类似于ResNet的自上而下的网络进行3D目标检测。这些方法只适应于车辆、行人这类贴地的目标。对于交通标志牌、红绿灯这类非贴地目标来说,可以通过深度估计来生成伪点云,进而进行3D检测。Pseudo-LiDAR先利用深度估计的结果生成点云,再直接应用基于激光雷达的3D目标检测器生成3D目标框,其算法流程如下图所示,
关键点和3D模型:待检测目标如车辆、行人等其大小和形状相对固定且已知,这些可以被用作估计目标3D信息的先验知识。DeepMANTA是这个方向的开创性工作之一。首先,采用一些目标检测算法比如Faster RNN来得到2D目标框,同时也检测目标的关键点。然后,将这些2D目标框和关键点与数据库中的多种3D车辆CAD模型分别进行匹配,选择相似度最高的模型作为3D目标检测的输出。MonoGRNet则提出将单目3D目标检测分成四个步骤:2D目标检测、实例级深度估计、投影3D中心估计和局部角点回归,算法流程如下图所示。这类方法都假设目标有相对固定的形状模型,对于车辆来说一般是满足的,对于行人来说就相对困难一些。
2D/3D几何约束:对3D中心和粗略实例深度的投影进行回归,并使用这二者估算粗略的3D位置。开创性的工作是Deep3DBox,首先用2D目标框内的图像特征来估计目标大小和朝向。然后,通过一个2D/3D的几何约束来求解中心点3D位置。这个约束就是3D目标框在图像上的投影是被2D目标框紧密包围的,即2D目标框的每条边上都至少能找到一个3D目标框的角点。通过之前已经预测的大小和朝向,再配合上相机的标定参数,可以求解出中心点的3D位置。2D和3D目标框之间的几何约束如下图所示。Shift R-CNN在Deep3DBox的基础上将之前得到的2D目标框、3D目标框以及相机参数合并起来作为输入,采用全连接网络预测更为精确的3D位置。
直接生成3DBox:这类方法从稠密的3D目标候选框出发,通过2D图像上的特征对所有的候选框进行评分,评分高的候选框即是最终的输出。有些类似目标检测中传统的滑动窗口方法。代表性的Mono3D算法首先基于目标先验位置(z坐标位于地面)和大小来生成稠密的3D候选框。这些3D候选框投影到图像坐标后,通过综合2D图像上的特征对其进行评分,再通过CNN再进行二轮评分得到最终的3D目标框。M3D-RPN是一种基于Anchor的方法,定义了2D和3D的Anchor。2D Anchor通过图像上稠密采样得到,3D Anchor是通过训练集数据的先验知识(如目标实际大小的均值)确定的。M3D-RPN还同时采用了标准卷积和Depth-Aware卷积。前者具有空间不变性,后者将图像的行(Y坐标)分成多个组,每个组对应不同的场景深度,采用不同的卷积核来处理。上述这些稠密采样方法计算量非常大。SS3D则采用更为高效的单阶段检测,包括用于输出图像中每个相关目标的冗余表示以及相应的不确定性估计的CNN,以及3D边框优化器。FCOS3D也是一个单阶段的检测方法,回归目标额外增加了一个由3D目标框中心投影到2D图像得到的25D中心(X,Y,Depth)。
12 深度估计
不管是上述的3D目标检测还是自动驾驶感知的另一项重要任务——语义分割,从2D扩展到3D,都或多或少得应用到了稀疏或稠密的深度信息。单目深度估计的重要性不言而喻,其输入是一张图像,输出是相同大小的一张由每个像素对应的场景深度值组成的图像。输入也可以是视频序列,利用相机或者物体运动带来的额外信息来提高深度估计的准确度。
相比于监督学习,单目深度估计的无监督方法无需构建极具挑战性的真值数据集,实现难度更小。单目深度估计的无监督方法可分为基于单目视频序列和基于同步立体图像对两种。前者是建立在运动相机和静止场景的假设之上的。在后者的方法中,Garg等人首次尝试使用同一时刻立体校正后的双目图像对进行图像重建,左右视图的位姿关系通过双目标定得到,获得了较为理想的效果。在此基础上,Godard等人用左右一致性约束进一步地提升了精度,但是,在逐层下采样提取高级特征来增大感受野的同时,特征分辨率也在不断下降,粒度不断丢失,影响了深度的细节处理效果和边界清晰度。为缓解这一问题,Godard等人引入了全分辨率多尺度的损失,有效减少了低纹理区域的黑洞和纹理复制带来的伪影。但是,这对精度的提升效果仍是有限的。
最近,一些基于Transformer的模型层出不穷,旨于获得全阶段的全局感受野,这也非常适用于密集的深度估计任务。有监督的DPT中就提出采用Transformer和多尺度结构来同时保证预测的局部精确性和全局一致性,下图是网络结构图。
2双目3D感知
双目视觉可以解决透视变换带来的歧义性,因此从理论上来说可以提高3D感知的准确度。但是双目系统在硬件和软件上要求都比较高。硬件上来说需要两个精确配准的摄像头,而且需要保证在车辆运行过程中始终保持配准的正确性。软件上来说算法需要同时处理来自两个摄像头的数据,计算复杂度较高,算法的实时性难以保证。与单目相比,双目的工作相对较少。接下来也同样从3D目标检测和深度估计两方面进行简单介绍。
21 3D目标检测
3DOP是一个两阶段的检测方法,是Fast R-CNN方法在3D领域的拓展。首先利用双目图像生成深度图,将深度图转化为点云后再将其量化为网格数据结构,再以此为输入来生成3D目标的候选框。与之前介绍的Pseudo-LiDAR类似,都是将稠密的深度图(来自单目、双目甚至低线数LiDAR)转换为点云,然后再应用点云目标检测领域的算法。DSGN利用立体匹配构建平面扫描体,并将其转换成3D几何体,以便编码3D几何形状和语义信息,是一个端到端的框架,可提取用于立体匹配的像素级特征和用于目标识别的高级特征,并且能同时估计场景深度和检测3D目标。Stereo R-CNN扩展了 Faster R-CNN 用于立体输入,以同时检测和关联左右视图中的目标。在RPN之后增加额外的分支来预测稀疏的关键点、视点和目标尺寸,并结合左右视图中的2D边界框来计算粗略的3D目标边界框。然后,通过使用左右感兴趣区域的基于区域的光度对齐来恢复准确的3D边界框,下图是它的网络结构。
22 深度估计
双目深度估计的原理很简单,就是根据左右视图上同一个3D点之间的像素距离d(假设两个相机保持同一高度,因此只考虑水平方向的距离)即视差,相机的焦距f,以及两个相机之间的距离B(基线长度),来估计3D点的深度,公式如下,估计出视差就可以计算出深度。那么,需要做的就是为每个像素点在另一张图像上找出与之匹配的点。
对于每一个可能的d,都可以计算每个像素点处的匹配误差,因此就得到了一个三维的误差数据Cost Volume。通过Cost Volume,我们可以很容易得到每个像素处的视差(对应最小匹配误差的d),从而得到深度值。MC-CNN用一个卷积神经网络来预测两个图像块的匹配程度,并用它来计算立体匹配成本。通过基于交叉的成本汇总和半全局匹配来细化成本,然后进行左右一致性检查以消除被遮挡区域中的错误。PSMNet提出了一个不需要任何后处理的立体匹配的端到端学习框架,引入金字塔池模块,将全局上下文信息纳入图像特征,并提供了一个堆叠沙漏3D CNN进一步强化全局信息。下图是其网络结构。
转载自智车科技,文中观点仅供分享交流,不代表本公众号立场,如涉及版权等问题,请您告知,我们将及时处理。
-- END --
一、 程明明等人的论文:Salient Object Detection: A Surve(简单归纳了文章中的我认为比较重要的部分)
该论文旨在全面回顾突出显示目标检测的最新进展,并将其与其他密切相关领域(如通用场景分割,目标建议生成以及固定预测的显著性)相关联。主要内容涉及i)根源,关键概念和任务,ii)核心技术和主要建模趋势,以及iii)显著性物体检测中的数据集和评估指标。讨论并提出了未来的研究反向等开放性问题。
1介绍
1.1 什么是显著性物体
提到一般认为,良好的显著性检测模型应至少满足以下三个标准:1)良好的检测:丢失实际显著区域的可能性以及将背景错误地标记为显著区域应该是低的;2)高分辨率:显著图应该具有高分辨率或全分辨率以准确定位突出物体并保留原始图像信息;3)计算效率:作为其他复杂过程的前端,这些模型应该快速检测显著区域。
13显著物体检测历史
(1)Itti等人提出的最早、经典的的显著模型。例如[24]一文掀起了跨认知心理学、神经科学和计算机视觉等多个学科的第一波热潮。
(2)第二波热潮由刘等人的[25],[55]和Achanta等人的[56]掀起,他们将显著性检测定义为二元分割问题,自此出现了大量的显著性检测模型。
(3)最近出现了第三波热潮,卷积神经网络(CNN)[69],特别是引入完全卷积神经网络[70]。与基于对比线索的大多数经典方法不同[1],基于CNN的方法消除了对手工特征的需求减轻了对中心偏见知识的依赖,因此被许多科研人员所采用。基于CNN的模型通常包含数十万个可调参数和具有可变感受野大小的神经元。神经元具有较大的接受范围提供全局信息,可以帮助更好地识别图像中最显著的区域。CNN所能实现前所未有的性能使其逐渐成为显著性物体检测的主流方向。
2 现状调查
本节主要回顾三部分内容:1)显著性物体检测模型;2)应用;3)数据集。
21 经典模型(非常详细)
211 具有内在线索的基于块的模型
有两个缺点:1)高对比度边缘通常突出而不是突出物体;2)凸显物体的边界不能很好地保存。为了克服这些问题,一些方法提出基于区域来计算显著性。两个主要优点:1)区域的数量远少于区块的数量,这意味着开发高效和快速算法的潜力;2)更多的信息功能可以从区域中提取,领先以更好的表现。
212 具有内在线索的基于区域的模型(图4)
基于区域的显著性模型的主要优势:1)采用互补先验,以提高整体性能,这是主要优势;2)与像素和色块相比,区域提供更复杂的线索(如颜色直方图),以更好地捕捉场景的显著对象;3)由于图像中的区域数量远小于像素数量,因此在生成全分辨率显著图时,区域级别的计算显著性可以显著降低计算成本。
213 具有外部线索的模型(图5)
214 其他经典模型(图6)
局部化模型、分割模型、监督模式与无监督模式、聚合和优化模型
22 基于深度学习的模型
221 基于CNN(经典卷积网络)的模型
CNN大大降低了计算成本,多级特征允许CNN更好地定位检测到显著区域的边界,即使存在阴影或反射。但CNN特征的空间信息因为使用了MLP(多层感知器)而无法保留。
222 基于FCN(完全卷积网络)的模型
该模型具有保存空间信息的能力,可实现点对点学习和端到端训练策略,与CNN相比大大降低了时间成本。但在具有透明物体的场景、前景和背景之间的相同对比度以及复杂的背景等情况无法检测显著物体。
元素: PI=像素,PA=补丁,PE=区域,前缀m和h分别表示多尺度和分层版本。
假设: CP=中心先验,G=全局对比度,L=局部对比度,ED=边缘密度,B=背景先验,F=先验焦点,O=先验物体,CV=先验凸度,CS=中心环绕对比度,CLP=先验颜色,SD空间分布,BC=边界连通之前,SPS=稀疏噪声。
聚合/优化: LN=线性,NL=非线性,AD=自适应,RI=分层,BA=贝叶斯,GMRF=高斯MRF,EM=能量最小化,LS=最小二乘解
线索 :GT=地面真值注释,SI=相似图像,TC=时间线索,SCO=显著性实现,DP=深度,LF=光场。
对于显著性假设 : P=通用属性,PRA=预注意线索,HD=高维特征空间中的判别性,SS=显著性相似性,CMP=显著性提示的互补,SP=采样概率,MCO=运动相干性,RP=重复性,RS=区域相似度,C=相应,DK=领域知识。
其他 : CRF=条件随机场,SVM=支持向量机,BDT=提升决策树,RF=随机森林
4 数据集和评估措施
41 显著对象检测数据集
早期的带有包围框的突出物体图像:MSRA-A和MSRA-B
使用像素方式的二进制掩码来注释显著对象:ASD和DUT-OMRON
具有复杂和杂乱背景中的多个对象的数据集:[22]、[23]、[26]
42 评估措施(5个)
用S表示归一化为[0,255]的预测显著图,G是显著对象的地面正式二进制掩模
(1) 精确召回(PR)。首先将显著图S转化为二进制掩码M,然后通过将M与地面真值G进行比较来计算Precission和Recall:
(2) F值:通常Precission和Recall都不能完全评估显著图的质量,为此提出F值作为Precission和Recall的非负权重的集权跳河平均:
(3) ROC(Receiver Operating Characteristic)曲线:是以假正率(FP_rate)和假负率(TP_rate)为轴的曲线
(4)ROC曲线下面积(AUC):AUC越大性能越好
(5) 平均绝对误差(MAE):进行更全面的比较。
图12,比较流行的显著性对象检测数据集:
二、 传统显著性检测内容补充(论文中的分类和自己平时习惯不一致,所以重新收集资料整理了一下)
常用显著性检测方法:
1 认知模型
几乎所有模型都直接或间接地受认知模型启发而来,其一大特点是与心理学和神经学相结合。Itti模型(使用三个特征通道:颜色、属性、方向)是这一类模型的代表,也是后来很多衍生模型的基础
2 信息论模型
本质是最大化来自所处视觉环境的信息,其中最有影响力的模型是AIM模型。
3 图论模型
基于图轮的显著性模型把眼动数据看成时间序列,使用了隐马尔科夫模型、动态贝叶斯网和条件随机场等方法。图模型可以对复杂的注意机制建模,因此能取得较好的预测能力,缺点在于模型的高复杂度,尤其涉及训练和可读性时。典型模型有:GBVS等
4 频域模型
基于频谱分析的显著性模型,形式简洁,易于解释和实现,并且在注意焦点预测和显著区域检测方面取得了很大的成功,但其生物合理性不是非常清楚。经典模型有:频谱残差的显著性检测模型(纯数学计算方法)。
参考资料链接:
>
感受野是卷积神经网络里面最重要的概念之一,为了更好地理解卷积神经网络结构,甚至自己设计卷积神经网络,对于感受野的理解必不可少。
一、定义
感受野被定义为卷积神经网络特征所能看到输入图像的区域,换句话说特征输出受感受野区域内的像素点的影响。
比如下图(该图为了方便,将二维简化为一维),这个三层的神经卷积神经网络,每一层卷积核的
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)