2.2 环境认知技术
自动驾驶的核心不在车而在人,是物化驾驶员在长期驾驶实践中,对“环境感知-决策规划-控制执行”过程的理解、学习和记忆。环境感知系统作为基础,是自动驾驶汽车与外界环境进行信息交互的关键,也是规划与决策系统的前提,其关键在于利用传感器技术对外部环境进行感知,并对传感器传来的感知信息应用计算机技术进行分析处理,转换为场景理解所需的语义信息,从而帮助自动驾驶汽车感知周围环境和周边智能体的运动态势,获得等价甚至超越人类驾驶员的信息感知能力,准确感知、理解周边环境。
对于自动驾驶汽车来说,感知信息的获取不仅包括车载传感器所感知的环境信息,还包括一些辅助系统,如高精度地图和V2X网联通信所传递的信息;不同感知信息源,其感知范围、适用情况、可靠度均不相同,因此可以为自动驾驶汽车提供丰富的语义信息,以保证其可以安全驾驶。
2.2.1 车载感知与目标检测技术
传感器是自动驾驶汽车的“五官”,不同传感器会采集汽车周边环境中的不同信息,从而帮助汽车建立对于周边环境的立体感知。目前应用于自动驾驶汽车的传感器主要有摄像头、激光雷达、毫米波雷达、超声波雷达。
自动驾驶汽车对于外界和自身的感知依赖于传感器,然而任何传感器要精确捕获感知信息,必须在制造、装配完毕后通过实验进行标定,给出自身的内参数使得量值可以准确传递;而在传感器使用过程中,由于震动等原因,会导致传感器位置与原位置产生偏离,因此需要每隔一定时间对传感器进行校准,避免累计误差导致的安全隐患。同时,各传感器适用场景、感知视角和捕获的信息不尽相同,对于复杂的环境感知任务,单一的传感器难以达到准确感知的目的,需要不同特定视角的传感器配合工作,才可以更准确地捕获环境信息;且为避免某传感器由于某些原因失效,必须配备冗余传感器,保证自动驾驶汽车严格的安全性要求,故需要对于不同安装位置、不同种类的传感器进行标定,故不同传感器之间的标定也是传感器标定的重要内容。
2.2.1.1 车载传感器
1)图像传感器
摄像头可以采集汽车周边图像信息,与人类视觉最为接近,其拥有较广的垂直视场角和较高的纵向分辨率,而且可以提供颜色和纹理等信息。采集到的这些信息经过计算机的处理分析,能够识别丰富的环境语义信息,如行人、自行车、机动车、道路轨道线、路牙、交通标志、信号灯等,同时还可以进一步实现对象轨迹追踪、车距测量、道路循迹等更高的视觉任务,从而实现前车碰撞预警(FCW)和车道偏离预警(LDW)。依据不同的图像检测原理,摄像头可分为单目摄像头和双目摄像头,根据芯片类型,摄像头又可分为CCD摄像头和CMOS摄像头。
视觉传感系统的大致原理如下:图像处理,将摄像头采集的原始数据转化为二维数据;模式识别,使用计算机视觉算法,对二维图像数据进行识别和追踪,检测兴趣对象,如车辆、行人、车道线、交通标志等;距离测量,利用物体运动模式或双目定位,估算目标物体与车的相对距离和相对速度,实现测距,在距离测量方面,双目摄像头相对于单目摄像头结果更为准确。
摄像头的优点十分明显,计算机视觉发展迅速,识别、追踪、测距算法均较为成熟;且摄像头成本低,分辨率高,所采集到的信息十分丰富。而其缺点主要在于三方面,首先是其对于光照变化和天气状况较为敏感,在逆光、光影复杂、夜间、雨雪、大雾能见度低的情况下难以使用;其次摄像头对象识别受限于训练样本,样本未覆盖的物体将无法辨别,例如,在中国道路上应用Mobileye,识别超载运货车的成功率不超过80%;最后车载摄像头缺乏精确的三维信息,尽管计算机视觉三维测距算法已经有了很好的发展,但是自动驾驶场景由于安全性的限制,对于距离测量的要求较高,为厘米级精度,而当前的算法难以达到该要求。
2)激光雷达
LiDAR(Light Detection and Ranging,激光雷达),工作在红外和可见光波段,以激光为工作光束,探测目标的位置、速度等特征量,一般由激光发射器、接收器、时间计数器、微计算机等组成。激光测距精确程度高,可达厘米级。而随着商用GPS和IMU的发展,通过激光雷达从移动平台上获得高精度的数据已被广泛应用。目前,许多自动驾驶汽车的激光雷达安装在车顶,通过高速旋转对周围进行360°扫描,获得周围空间的点云数据,实时绘制出车辆周边的三维空间地图,为下一步的车辆操控建立决策依据。
激光雷达的工作原理如下:周期地向目标发射探测信号(激光束);由接收透镜接收目标反射信号(目标回波),产生接收信号;信息处理,利用稳定的石英时钟计算发射与接收时间差,内部微处理测量结果,显示或存储、输出距离和角度等特征量,并与距离传感器获取的数据进行比对,最后经过相应的系统软件,获取目标三维坐标数据,从而建立目标的立体模型,如距离、方位、高度、速度,甚至形状等模型参数,从而对障碍物、移动目标进行探测、追踪和识别。
与普通微波雷达相比,激光雷达由于使用的是激光束,工作频率较微波高了许多,因此有很多优点,首先是其可以获得极高的角度、距离分辨率(角分辨率可以达到0.1°,距离分辨率可达0.1m),这是微波雷达无法实现的,并可同时跟踪多个目标;同时,由于其使用的是激光束,具有抗有源干扰能力强的特点,自然界中能对激光雷达起干扰作用的信号源不多;且获取的信息量丰富,可直接获得目标的距离、角度、反射强度、速度等信息从而生成目标的多维图像。但是,激光雷达也有明显的缺点。由于激光本身的特性,对于光线、天气状况敏感,因此工作时受天气状况影响大,晴朗的天气里衰减较小,传播距离较远,而在大雨、浓雾等恶劣天气里,衰减加大,传播距离受到影响。同时,由于激光雷达接收的是光信号,因此也容易受太阳光、其他车辆的激光雷达等光线影响。其次激光雷达相比于摄像机,难以获取颜色、纹理信息,导致分辨交通标志的含义和红绿灯颜色等任务必须由其他传感器来完成。
3)毫米波雷达
毫米波雷达是工作在毫米波波段(Millimeter Wave)的雷达,与普通雷达相似,通过发射无线电信号并接收反射信号来测定与物体间的距离。毫米波频率通常在30Hz~300GHz(波长为1~10mm),波长介于厘米波和光波之间,因此毫米波雷达兼有微波雷达和光电雷达的一些优点,非常适合于自动驾驶汽车领域的应用。因为毫米波雷达具有较强的穿透性,能够轻松地穿透保险杠上的塑料,所以常被安装在汽车的保险杠内。毫米波雷达的优点使其能够准确地测量自动驾驶汽车与周边车辆之间的距离,从而提供变道辅助、自主控制车速、碰撞预警等帮助,实现自适应巡航功能,提高驾驶舒适度,降低事故发生率。与激光雷达相比,毫米波雷达成本很低,是一种相对容易大范围应用的传感器。
毫米波雷达的工作原理如下:在汽车雷达领域,常应用调频连续波(FMCW),工作时振荡器会产生一个频率随时间增加的信号(Chirp),这个信号遇到障碍物反弹,来回的时延就为2倍的距离除以光速。来回波形之间有频率差,这个频率差呈线性,物体越远,回波收到的时间越晚,它与入射波的频率差就越大。将这两个频率相减,得到二者频率的差拍频率,通过差拍频率高低就可以计算障碍物的距离。基于Chirp间的多普勒效应,可以快速准确地得到汽车周围的物理环境信息(如汽车与其他物体的相对距离、相对速度、角度、运动方向等),然后根据所探知的物体信息可以进行追踪,识别和分类,进而与车身动态信息融合,最终通过电子控制单元(ECU)进行智能处理。值得注意的一点是,毫米波雷达采集的原始数据是基于极坐标系的。
毫米波雷达的天线和其他微波元器件的尺寸与频率有关,因此天线和微波元器件较小,可获得较窄的波束;与红外、激光、电视等光学导引头相比,毫米波导引头穿透烟尘雾的能力强,精度受天气和环境因素影响较小,可以基本保证在各种日常天气正常运行。毫米波雷达缺点如下,首先相比微波雷达,毫米波雷达发射机功率低,波导器件的损耗大,同时由于行人的后向散射截面较弱,如果需要探测行人,雷达的探测阈值需要设低,其负面效应可能会有更多虚报物体出现,而且毫米波器件昂贵,现阶段不能大批量生产装备。
4)超声波雷达
超声波雷达是通过发射并接收40kHz的超声波,根据时间差算出障碍物距离的,其测距精度大约是1~3cm。超声波的指向性强,能量消耗缓慢,遇到障碍物后反射效率高,是测距的良好载体。其构造一般分为等方性传感器和异方性传感器,其中等方性传感器为水平角度与垂直角度相同,而异方性传感器水平角度与垂直角度不同。等方性传感器的缺点在于垂直照射角度过大,容易探测到地,无法侦测较远的距离。异方性超声波的缺点在于其探头产生的超声波波形强弱较不稳定,而容易产生误报警的情况。常见的超声波雷达有两种:第一种是安装在汽车前后保险杠上的倒车雷达,称为UPA(Ultrasonic Parking Assistant,超声波驻车辅助传感器);第二种是安装在汽车侧面的超声波雷达,用于测量侧方障碍物距离,称为APA(Automatic Parking Assistant,自动泊车辅助传感器)。
超声波雷达工作原理如下:由发射器向特定方向发射超声波,同时启动计时器;接受反射波,当接收器收到反射波后,记录下往返传播经历的时间;计算距离,由于常温下超声波在空气中的传播速度约340m/s,通过超声波往返时间测算发射点和障碍物之间的距离。
超声波雷达主要有以下优点,适用场景广泛,在实际使用中,超声波能量消耗较为缓慢,防水、防尘,即使有少量的泥沙遮挡也不影响,在介质中的传播距离较远,穿透性强,测距方法简单,成本低,且不受光线条件的影响,有着众多的优点,在短距离测量中,超声波雷达测距有着非常大的优势。但是,超声波是一种机械波,使得超声波雷达有着以下几种局限性。首先是由于超声波波速受温度影响,因此其对温度较为敏感,测量的精度也与温度直接相关。对于超声波测距精度要求达到1mm时,就必须把超声波传播的环境温度考虑进去。其次超声波收射角大,方向性较差,无法精确描述障碍物位置。在测量较远距离的目标时,其回波信号较弱,影响测量精度。
2.2.1.2 车载传感器标定
1)摄像头标定
在图像测量过程以及机器视觉应用中,需要建立摄像头成像的几何模型来确定空间物体某点的三维几何位置与其在图像中对应点之间的关系;同时由于每个镜头的畸变程度各不相同,通过摄像头标定可以校正镜头畸变,生成矫正后的图像,因此摄像头的参数标定十分关键,其标定结果的精度及算法的稳定性直接影响摄像机结果的准确性。而对于自动驾驶汽车来说,通常会有多个车载摄像机以一定角度和位置安装在车辆上,为了将不同摄像头捕获的数据与真实场景联合对应起来,还必须对多个摄像机进行外参数的标定。摄像头的标定方法分为内参数标定和外参数标定。
在计算机视觉中,常使用摄像头成像模型建立三维空间点与二维像素点的关联,摄像头成像模型包括线性模型与非线性模型。其中线性模型基于光的直线传播特性,利用小孔成像原理得到;然而在实际的成像过程中,考虑到镜头失真,一般都存在非线性畸变,因此线性模型不能准确描述成像几何模型,因此通常使用非线性模型来进一步标定。在关联建立的过程中,与摄像机的焦距、主点以及传感器等设计技术指标有关,而与外部因素(如周边环境、摄像机位置)无关,因此称为摄像头的内参。内参在摄像头出厂时就是确定的,然而由于制作工艺等问题,即使是同一生产线生产的摄像头,内参都有着些许差别,因此往往需要通过实验的方式来确定摄像头的内参。
自动驾驶汽车为减少视野盲区,通常会采用多摄像头捕捉各视角的视觉信息,为了综合多视角信息,需要确定它们之间的相对位置关系,这个过程即摄像机的外参标定。两个摄像头之间相对位姿(R,t)有六个自由度,即空间位置(x,y,z)与旋转关系(a,p,y),理论上只要两个摄像头同时获取空间中3个点即可恢复二者之间的相对姿态。从3对对应点恢复摄像头之间的相对姿态的问题,称为P3P(Perspective 3 Point Problem,透视三点问题)。在现实中,常常使用3个以上的点来恢复相对姿态以提高健壮性,P3P问题被推广为PnP问题。最初研究者使用直接线性法(Direct Linear Transform,DLT)解决PnP问题,之后为了提升精度,研究者们提出了健壮线性化的重投影误差,开始采用迭代的方法求解PnP问题,并由此提出了著名的BA(Bundle Adjustment,光束平差法)以估计姿态。
在自动驾驶汽车中,典型的外参标定有双目摄像头的外参标定、长焦摄像头与广角摄像头的外参标定。其中双目立体视觉(Binocular Stereo Vision)是机器视觉中的一个重要分支,自20世纪60年代中期开创以来,经过几十年的发展,如今在机器人视觉、航空测绘、军事应及医学成像、工业检测上应用极其广泛。双目立体视觉基于视差原理,并利用成像设备从不同的位置获取被测物体的左右两幅图像,然后根据三角测量原理计算空间点在二维图像的位置偏差,最后再利用位置偏差进行三维重建来获取被测物体的三维几何信息。
2)激光雷达标定
激光雷达与摄像机同样作为自动驾驶汽车的感知传感器,拥有高于摄像机的深度信息,因此也是自动驾驶汽车不可或缺的传感器。激光雷达在使用之前也需要对其内外参数进行标定,即内部激光发射器坐标系与雷达自身坐标系的转换关系,这通常在生产厂商交付产品时已经标定完成,可以直接使用。而自动驾驶汽车系统需要的是外参的标定,即激光雷达自身坐标系与车辆坐标系的转换关系,以及多个激光雷达之间的转换关系。激光雷达与车辆坐标系间是刚性连接,因此仅需在激光雷达安装时进行标定,使激光雷达数据正确从激光雷达坐标系统转换至车辆坐标系上;而多个激光雷达的联合标定通常会通过各激光雷达与车辆坐标系标定结果推导得到,下面就激光雷达与车辆坐标系标定过程进行介绍。
以Velodyne VLP 16激光雷达为例,该激光雷达以正上方为z轴,电缆线接口方向为y轴的负方向,通过右手法则来确定x轴方向,激光雷达坐标系如图2-2所示。车辆后轴中心为车体坐标系的坐标原点。垂直地面向上为z轴、朝前为y轴,按照右手法则确定x轴方向。两个三维空间直角坐标系之间的转换关系可以用旋转矩阵R加平移向量t来表示,通过实验采集同一点在两个坐标系下的真实坐标,即可建立一系列方程组求得这两个矩阵,从而实现外参数标定。
图2-2 激光雷达坐标系
如图2-3所示,P点在Oxyz坐标系下的坐标为P(x,y,z),在O′x′y′z′坐标系下的坐标为P′(x′,y′,z′)。P′点和P点的坐标转换关系可以表示为
图2-3 车体坐标系与激光雷达坐标系
3)联合标定
在自动驾驶汽车上,激光雷达与无人驾驶汽车间是刚性连接,相对姿态和位移固定不变,激光雷达扫描的数据点在环境坐标系中有唯一的位置坐标与之对应。同样,在环境坐标系中,摄像机也有一个固定的位置坐标,因此激光雷达与摄像机之间存在着固定的坐标变换。激光雷达与摄像机联合标定是通过提取标定对象在单线激光雷达和图像上的对应特征点,实现单线激光雷达坐标、摄像机坐标、图像像素坐标等多个传感器坐标的统一,实现激光雷达与摄像机的空间校准。对摄像机外参标定、激光雷达外参标定后,可以完全确定二者之间的关系,并将激光雷达扫描点投影到图像像素坐标系中。
环境感知与识别的信息来源主要通过自动驾驶汽车上的各种传感器捕捉,而传感器捕获的原始数据并不具有显而易见的语义信息,规划与决策系统难以直接使用,因此通常采用计算机视觉的方法,对传感器捕获的原始信息进行分析处理,得到该系统可以使用的语义信息。自动驾驶汽车的环境感知对象主要包括道路、周边物体及交通标志。其中道路分为结构化道路和非结构化道路两种,结构化道路包括车道线、道路边缘、道路隔离物、不良路况标识,非结构化道路包括可行路径识别和道路环境识别。周边物体主要包括车辆、行人、以及地面上其他可能影响车辆行驶的障碍物。交通标志识别的对象包括红绿灯检测、限速标志等的检测。下面主要介绍现有的感知算法。
自动驾驶汽车行驶在道路上,必须具有识别障碍物目标并避开障碍物的能力才能保证行驶过程的安全性。因此目标检测是自动驾驶汽车环境感知中非常重要的部分,其目的是判断输入信息帧(图像帧或激光雷达帧)中存在的物体类别、位置及其尺寸,高精度的检测结果是安全性驾驶的必然要求,会影响到自动驾驶汽车能否快速落地。而自动驾驶汽车上搭载的摄像头和激光雷达是这部分感知的重要来源,根据信息来源目前大致分为基于图像的目标检测方法、基于激光雷达的目标检测方法和图像与激光雷达联合目标检测方法。
2.2.1.3 基于图像的目标检测方法
近年来,基于图像的目标检测算法有很大的突破。目前流行的算法可以分为两类:一类是基于候选框的R-CNN系列算法,它们首先产生目标候选框,然后对目标候选框做分类与回归;另一类是基于YOLO、SSD等其他算法,这类方法可以仅使用一个卷积网络预测不同目标的类别和位置,而不使用两阶段的方法。两种方法相比,第一类方法对目标候选框提取了精细特征,具有更高的精度和较慢的速度。该类方法主要包括R-CNN、Fast R-CNN、Faster R-CNN、YOLO、SSD等,下面对这些算法进行简要介绍。
(1)R-CNN:在图像分类AlexNet网络结构的基础上,R-CNN将滑动窗口的思想用于解决目标定位问题,同时提出了利用预训练与微调来解决标注数据缺乏的问题,最终在Pascal Voc数据集上表现很好。该算法分为三个部分(见图2-4),第一个部分采用选择搜索(Selective Search)算法生成了类别独立的候选区域,这些候选区域中包含了最终定位的结果;第二个部分目的是提取候选区域的特征,其利用在大型目标分类数据集ImageNet上预训练的AlexNet网络,在Pascal Voc数据集进行了微调,从而解决了标注数据缺乏的问题;第三个部分利用一系列SVM分类器对候选区域进行分类识别,并产生置信度分数,由于候选区域很多,因此针对每个类,通过计算IoU(Intersection over Union)指标,采取非极大性抑制,以最高分的区域为基础,剔除掉那些重叠位置的区域,从而减少了分类识别的开销,同时用边框回归进行目标框的修正。
图2-4 R-CNN算法框架[5]
(2)Fast R-CNN:R-CNN颠覆了传统的目标检测方案,使得检测精度得到了大幅度提升,但是依然存在一些缺点:得到目标候选框后,需要对每一个目标候选框剪切出相应区域的图片,然后输入AlexNet网络中提取特征,其中涉及大量的硬盘读写问题,同时这些目标候选框通常有大幅度的重叠,独立抽取特征会导致大量的重复计算,大大增加了检测时间。针对该问题,Fast R-CNN将整张图像输入特征提取网络,增加了一个RoI(Region of Interest,兴趣区域)池化层,将特征提取网络的输出和兴趣区域作为输入,输出连接后的各个兴趣区域抽取的特征,避免重复的特征计算过程。同时,Fast R-CNN使用softmax去代替SVM进行多分类的预测,从而实现了端到端的训练。该网络的整体框架如图2-5所示。
图2-5 Fast R-CNN的网络结构示意图[7]
(3)Faster R-CNN:尽管Fast R-CNN对于R-CNN的性能瓶颈——特征提取部分已经做了改进,但是使用选择搜索方法产生兴趣区域建议阶段只能在CPU上运行,难以满足目标检测的实时性要求,因此Faster R-CNN在Fast R-CNN的基础上,提出了使用卷积神经网络来生成兴趣区域建议,从而提升目标检测的效率,该网络的整体框架如图2-6所示。
图2-6 Faster R-CNN整体框架[8]
(4)YOLO:YOLO(You Only Look Once)是一种基于深度神经网络的对象识别和定位算法,其最大的特点是运行速度快,可以支持实时系统。现在YOLO已经发展到了第五个版本YOLOv5。
YOLOv1是将整张图片作为特征提取网络的输入,但是不同于Fast R-CNN,其将特征提取网络的输出层划分为网格,在每个网格内执行BBox(物体的二维检测框,通常使用中心点二维坐标、物体长宽参数来表示)回归预测和物体分类任务,从而实现了一阶段的目标检测。YOLOv1由于其一阶段性,执行的速度较快,且通用性强。
YOLOv2相对YOLOv1,在保持处理速度的基础上,从预测更准确、速度更快、识别对象更多这三个方面进行了改进。首先其借鉴了VGG网络中使用多个小卷积核替代大卷积核的思想,并且使用1×1卷积核代替全连接层,使得特征图每个位置共享参数,参数数量更少,计算速度更快;同时,YOLOv2将dropout替换成了效果更好的批标准化(Batch Normalization),在每个卷积层计算之前利用批标准化进行批归一化;为了使网络可以适应输入分辨率差异,其在训练过程每经过10个batch就会随机选择一种分辨率输入,利用图像插值对图像进行缩放,从而达到适应不同分辨率的效果;最后,其在进行BBox预测时摒弃了锚点(Anchor)的概念,从直接预测目标相对网格区域的偏移量到预测Anchor Box的修正量,有了先验长宽比的约束,可以减少很多不规则的目标定位。
YOLOv3首先在基础的特征提取网络上进行了改进,在加深网络的同时引入了ResNet中的残差思想,从而使得特征提取能力更强,在此基础上还提取了多尺度的特征使得网络可以适应不同尺寸物体的特征提取;在损失函数上,取消了对于分类概率的联合分布softmax,而是采用了logistic函数,因为有一些数据集中的目标存在多标签,而softmax函数会让各个标签相互抑制。
YOLOv4使用了多种数据增强技术的组合,对于单一图片,除经典的几何畸变与光照畸变外,还使用了图像遮挡(Random Erase、Cutout、Hide and Seek、Grid Mask、MixUp)技术。对于多图组合,混合使用了CutMix与Mosaic技术。除此之外,还使用了SAT(Self-Adversarial Training,自对抗训练)来增强训练样本的多样性,其整体框架如图2-7所示。
图2-7 YOLOv4整体框架[12]
(5)SSD:SSD提出了一种针对多个类别的单阶段检测器,比先前的单阶段检测器(YOLO)更快,检测精度与两阶段Faster R-CNN相同。其核心是使用应用于要素图的小卷积滤波器来预测固定的一组默认边界框的类别得分和框偏移。为了达到较高的检测精度,根据不同尺度的特征映射生成不同尺度的预测,并通过纵横比明确地分开预测。这些特征使得即使在低分辨率输入图像上也能实现简单的端到端训练和高精度,从而进一步提高速度与精度之间的权衡,SSD整体框架如图2-8所示。
图2-8 SSD整体框架[13]
上述目标检测方法的检测结果均为2D的,即仅标识出物体在图像上的二维位置和尺寸。然而现实场景是三维空间,且安全的驾驶不仅需要知道二维信息,还需要获得障碍物与自身较为精确的距离信息、长宽高尺寸信息、朝向信息、偏向角等指标,这对后续路径规划和控制至关重要。3D图像目标检测算法主要包括RGB-D、Deep Sliding Shapes、Stereo R-CNN,下面将分别进行简单介绍。
(1)RGB-D:RGB-D在R-CNN的基础上通过对每个像素点计算水平视差、高度、相对于中立倾斜角计算得到深度信息,并将深度信息编码为具有三个通道的2D彩色图像。在特征提取阶段,其利用预训练好的2D卷积神经网络进行特征提取,即分别利用Depth CNN和RGB CNN来学习特征,最后使用SVM进行分类,从而生成了2.5D的目标建议框(包含每个像素的视差、高度、倾斜角)。
(2)Deep Sliding Shapes:Deep Sliding Shapes生成深度信息的方式是TSDF(Truncated Signed Distance Function,截断有符号距离函数)方法,与RGB-D相比,其能够在3D中自然地编码几何形状,从而保留空间局部性,使得卷积神经网络能够从原始数据中学习到具有辨别力的特征。在检测模块设计了Deep Sliding Shapes检测器,它将RGB-D图像中的3D体积场景作为输入,以3D的形式运行滑动窗口,直接对每个3D窗口进行分类并输出3D对象边界框。其次,我们提出了第一个从几何形状中学习物体性的3D区域提议网络(RPN),以及第一个联合的对象识别网络(ORN)以提取3D的几何特征和2D的颜色特征。为检测尺度不同的目标物体,RPN网络设计成为多尺度3D RPN,以提取不同尺度的3D区域建议。
(3)Stereo R-CNN:不同于一般的基于RGB-D的3D目标检测算法,Stereo R-CNN将左右目RGB图像直接作为输入,而不显式地生成深度图(Depth Map),极大地缩短了目标检测的时延。在目标检测模块,该方法充分利用了立体图像中的稀疏、密集、语义和几何信息,并扩展了Faster R-CNN以用于立体图像输入,同时检测和关联左右图像中的对象。其在立体声区域提议网络之后添加额外的分支来预测稀疏关键点、视点和对象维度,这些关键点与2D左右框组合以计算粗略的3D对象边界框。然后,通过使用左、右RoI的基于区域的光度对准来恢复精确的3D边界框。
2.2.1.4 基于激光雷达的目标检测方法
激光雷达相较于图像来说,能够提供更加准确的三维信息,因此基于激光雷达进行目标检测的方法多数工作在3D场景下。尽管在图像领域可以利用双目视觉来重建三维场景,从而为基于图像的3D目标检测方法提供深度信息,但是所提供的深度信息本身具有一定的损失,因此为获得更加精确的三维信息,激光雷达传感器还是不可或缺的。目前基于激光雷达进行3D目标检测的方法,根据其数据表示方法可以分为基于体素的表示方法和基于原始点云的表示方法。
基于体素的表示方法的动机是将不规则点云转换为类似于图像的规则形式,以便利用3D卷积神经网络进行特征提取。体素化3D目标检测方法包括以下几种。
(1)PointPillar:基于立体柱(Pillar)形式的目标检测方法以PointPillar为代表,其将点云以立体柱的形式体素化,每个Pillar中随机保留固定数量的点云,并使用PointNet网络提取Pillar中点云全局特征,作为Pillar的特征。该体素化方式将整个三维点云空间压缩到了二维,并且使用二维的卷积神经网络实现了端到端的3D点云学习。
(2)VoxelNet:基于体素(Voxel)形式的目标检测方法以VoxelNet为代表,其将点云3D空间等间距分割成多个Voxel,经过点的随机采样以及归一化后,对每一个非空Voxel使用若干VFE(Voxel Feature Encoding,体素特征编码)层进行局部特征提取,得到体素级特征,然后经过3D卷积神经网络层进一步抽象得到全局的特征,最后使用RPN对物体进行分类检测与位置回归。其中VFE层,对于Voxel中N个采样点使用全连接网络抽象点级特征,再使用最大池化方式得到布局特征,这与PointNet的处理方式类似。此外,由于点云具有高度的稀疏性以及密度不均匀性,我们利用哈希表查询的方式,可以做到快速找到每一个Voxel中的点在三维点云中的具体位置。
(3)SECOND:SECOND同样使用了Voxel的表示形式,相比于VoxelNet来说,其创新点在于使用了3D稀疏卷积和子流形稀疏卷积来提升目标检测的速度。由于点云的稀疏性,其生成的体素网格同样具有很强的稀疏性,因此使用稀疏卷积极大地提高了检测的效率。此外,该方法在数据增强时使用了数据库采样操作,该操作将训练数据集中的所有的正样本的点云保存到数据库中,在训练过程中从数据库中随机选择对应类的正样本,加入到该帧训练数据中,从而增强了数据的多样性。
为了避免体素化过程中由于丢失精确的三维信息而导致识别结果不准确,可以基于原始点云进行表示。但是由于原始点云本身不规则,难以利用现有的神经网络方式进行特征提取,因此一直将不规则点云转换为类似于图像的规则形式,2017年Garcia-Garcia等人提出了PointNet,该方法通过解决特征提取过程中点云的无序性和变换不变性,奠定了基于原始点云进行特征提取的基础。基于原始点云进行3D目标检测的方法包括PointNet、PointNet++、PV-RCNN,我们在PV-RCNN的基础上提出了SAPV-RCNN,下面对这些算法进行介绍。
(1)PointNet:PointNet[20]是基于原始点云进行目标检测的开创性方法。在该方法之前,由于原始点云的无序性和不规则问题,传统的卷积神经网络算法难以在原始点云上进行特征提取。但是要在原始点云提取特征,必须解决点云的无序性和旋转不变性问题。原始点云的无序性即对于一个特定点集,其不会随点输入顺序改变而改变,因此模型需要对不同输入顺序的相同点集有相同的分类或语义分割结果。针对该问题,PointNet使用对称函数保证序列不变,这里用到了最大池化来做对称函数。原始点云的变换不变性,即旋转和平移不改变点云含义,因此模型需要对经过旋转或平移的相同点级有同样结果。我们增加了不依赖于数据的空间变化网络T-net来处理刚体或仿射变换,在输入网络前对点云数据进行规范化(Canonicalize)处理,消除旋转等变换带来的影响,其中空间变化网络是简化的PointNet,同样满足无序性。
(2)PointNet++:原始点云之间每个点都不是孤立的,因此模型需要可以提取点与相邻点的局部特征能力,PointNet++主要针对PointNet中无法提取局部点云特征做出了改进。我们在PointNet中利用多层感知机对每个点分别提取特征,然后使用对称性函数Max-Pooling来提取全局点云特征,没有考虑到局部特征。而在PointNet++中,我们设计了Set Abstraction模块来实现局部点云特征提取。该模块包含两个步骤,首先使用采样方法,选取全局关键点;然后使用Grouping聚合方法,使得每个关键点能够聚合本邻域内点的特征,从而使用这些关键点特征来表征点云全局特征,同时保留了各关键点所在区域的局部特征。
(3)PV-RCNN:PV-RCNN结合了体素化的表示形式和原始点云表示形式的优点,是一个两阶段的网络,从而在可控的内存消耗下提高了3D对象检测的性能。第一阶段是在基于体素化表示形式下,生成初步的3D检测框建议;由于第一阶段产生的检测框是由体素化特征得到的,因此其三维坐标准确度不足,因此在第二阶段对于每一个检测框提取了基于原始点云的特征,经过提议求精(Proposal Refinement)模块生成修正的目标检测结果。其中第二阶段巧妙地将PointNet++中Set Abstraction模块进行了改进,使其作为原始点云与体素化形式之间的桥梁连接了两阶段的网络。
(4)SAPV-RCNN:无论是体素法还是原始点云法,更多地都是关注单个类别目标检测效果的提升,尽管网络可以迁移到不同目标类别上完成不同目标检测任务,但是难以训练出统一的网络来对尺度差异较大的多类目标同时完成检测,因此这种方案的扩展性差,必须通过仔细调整模型设计、尝试不同的超参数才能完成新模型的训练,实现多类别高精度检测。因此,我们提出SAPV-RCNN(Shape-Adaptive PV-RCNN)方法,在模型构建时加入尺度自适应模块,通过自适应地学习潜在目标的尺度信息,来指导特征提取范围,从而保证小尺度的物体不会因为特征提取范围过大造成信息完全损失;同时,大尺度的物体不会由于特征提取范围过小导致无法提取物体整体信息,从而实现尺度自适应的三维目标检测。
考虑到我们提出的尺度自适应模块同时利用了基于原始点云的特点和基于体素化网络提取特征的特点,因此将PV-RCNN网络作为基线网络。如图2-9所示,SAPV-RCNN网络首先将原始点云空间ΩP划分为体素,利用PointNet网络来提取每一个体素内部特征,从而得到初始的体素化输入ΩV={V1,V2,V3,…,Vn}。随后将ΩV输入到3D稀疏卷积模块(3D Sparse Convolution Module)中提取点云的高层特征,并沿高度压缩映射至BEV(Bird's Eye View,鸟瞰图)平面,通过区域提议网络获取初始的检测框。第二阶段通过偏移产生模块(Shift Generation Module)提取自适应的尺度信息,并将该信息传递至特征聚合模块(SA-Voxel Set Abstraction)提取尺度自适应的特征,从而为第二阶段的RoI Pooling提供了丰富的信息,以提高多类别检测的准确度。
图2-9 SAPV-RCNN整体框架图
3D稀疏卷积模块
该模块接收体素化的点云信息,并通过四组稀疏卷积提取点云的高层特征。由于点云本身十分稀疏,故在产生的体素化三维网格中,多数网格并没有有效的特征信息,为降低存储资源消耗,我们采用稀疏矩阵的方式存储体素化后的点云信息,即将三维体素网格表示为{V1,V2,V3,…,Vn},其中Vi表示第i个非空体素,该体素以稀疏矩阵形式表示,即,其中={x,y,z}为非空体素Vi的体素中心位置坐标,为非空体素Vi经过PointNet提取的特征值。图2-9显示了3D稀疏卷积模块的整体框架。我们使用了四组SparseConvNet提取点云三维特征,其中每组SparseConvNet都由一个步长为2的卷积层和两个步长为1的稀疏卷积构成,以减少特征图大小并提取足够抽象的特征信息。
偏移产生模块
为了指导特征聚合模块,我们加入偏移产生模块来感知体素点处潜在的目标尺度信息。该模块包含偏移产生模块和基于偏移的轮廓监督模块。偏移产生模块是采用类似于3D稀疏卷积模块中的特征提取方式来产生偏移量。不同的是为避免尺度信息的损失,我们仅采用两组稀疏卷积网络来提取体素处潜在目标尺度信息相关特征,并修改最后一组的输出参数数量为16,来直接产生邻域点相对于体素中心位置的偏移量。最终,对于体素Vi,将产生16个偏移值Shifting={s1,s2,s3,...,s16},其中sj={Δxj,Δyj,Δzj};其邻域点可以表示为ΩVj={S1,S2,S3,...,S16},其中邻域点Si位置可以表示为。
为了加快邻域点位置偏移量的学习速度,我们额外增加了对偏移轮廓的监督任务Lshifting-box。对于体素Vi,偏移轮廓定义为体素16个邻域点的最小外接立方体,即。其中
监督任务Lshifting-box使用smooth L1损失进行计算,如式(2-3)所示,其中Cgt={xgt,ygt,zgt,lgt,wgt,hgt}为真实框值,
特征聚合模块
注意到PointNet++的Set Abstraction模块是通过关键点采样和邻域点特征聚合来抽象点云特征,其所使用的邻域查询方法为球邻域查询,自适应的球邻域半径即可达到尺度自适应的目的。然而由于球邻域在进行领域点筛选时仅仅作为阈值而并未真正参与到位置计算过程中,因此无法通过反向传播的方式对其进行学习。因此这里利用偏移产生模块生成的邻域点位置来自适应聚合邻域点特征,并通过三线性插值方法确定邻域点特征,并由此对邻域点偏移量进行反向传播进行迭代更新,如图2-10所示。
图2-10 特征聚合模块
由偏移量生成的邻域点并不一定存在于原始点云处,因此我们使用三线性插值方法获取其特征值,为避免高层特征信息丢失,插值特征直接使用了第一阶段网络中第二组稀疏卷积网络所产生的特征。首先,根据体素化规则将邻域点S映射至对应的网格Vi中。网格Vi周围的八个插值点用P1,P2,P3,…,P8表示,f(•)表示相应体素点的特征值。根据公式可计算出邻域点S处对应特征值:
其中,αx、αy、αz分别表示邻域点S处x、y、z坐标与其下取整值的差值。
根据邻域点S处特征计算公式,可以得到反向传播式(2-5)。通过最终损失函数的反向传播,可以对于偏移量进行更好的学习。此处由于实际参与运算的为偏移量的下取整差值,因此每次只能对偏移量在[0,1]之间更新,因此我们设置固定步长以使得收敛更加快速。
2.2.1.5 图像与激光雷达联合目标检测方法
随着低成本相机和高精度LiDAR的普及,利用具有互补特性的多种类型传感器融合目标检测方法来增强感知能力并降低成本,已经成为了热门研究方向,目前主要的方法集中于图像与激光雷达联合目标检测。但图像与激光雷达联合目标检测方法存在一些难点,其数据结构和类型不同,点云是不规则且无序的,图像是规则有序且离散的。已经有研究人员提出了多种方法来尝试进行联合检测,目前存在的一些方法可以主要分为前-中期融合和后期融合,其中大多数方法都使用前-中期融合的策略。
前-中期融合也可以称为特征级融合,是一种在数据层级或者特征层级进行融合交互的策略,常见的融合方式为对激光雷达和图像都采用各自的特征提取模块,然后在后续的网络中进行融合,达到特征融合的效果。
(1)3D-CVF是一种基于体素的融合方式,其对于激光雷达点云采用体素的方法做特征提取,然后将相机的像素转化到点云的BEV视图下,其中转化的大小是激光雷达特征图的两倍,包含了更多的细节信息。其设计了专门的转化模块,来完成将图像转化到BEV的过程。其主要过程可以描述为:投影过程得到一个相机平面,该平面是图像特征到BEV视图的稠密体素表达。将激光雷达划分的体素中心投影到相机平面上。采用近邻插值(以距离为权重),将最近的4个像素的图像特征插值LiDAR的体素。
(2)MV3D即多视点三维网络,是一个以激光雷达点云和RGB图像为输入,预测定向三维边界框的传感器融合框架。其使用紧凑的多视图表示对稀疏的3D点云进行编码。该网络由两个子网络组成:一个用于生成三维目标建议,另一个用于多视图特征融合。建议网络从三维点云的鸟瞰图中有效地生成三维候选框。该方法设计了一种深度融合方案结合来自多个视图的区域级特性,并支持不同路径的中间层之间的交互。
(3)PointPainting是一种基于点的融合方式,其融合过程是采用二维语义分割信息通过LiDAR信息和图像信息的变换矩阵融合到点上,再采用常见的3D目标检测方法进行检测。实际上该方法可以理解为对于语义分割出的物体多了一些信息作为引导,得到更好的检测精度。
(4)EPNet也是基于点的融合方式,其融合过程由三部分组成:Grid Generator、Image Sampler和LI-Fusion Layer。根据三维激光与图像的外参,Grid Generator将三维激光的每一个点投影到原始图像上。Image Sampler再利用图像特征图与原始图像的比例关系以及双线性插值得到对应的图像特征图特征。为了减少图像的遮挡以及深度不确定性对融合造成的影响,LI-Fusion Layer利用点云特征估计对应图像特征的重要程度并筛选,具体是将点云特征与图像特征经过若干操作学习得到权重值,权重值与图像特征相乘再与点云特征串联作为最后的融合特征。
后期融合是在决策层面的特征融合,这样融合的好处在于两种模态的网络结构之间互不干扰,可以独自训练和组合;但是也存在一定的缺点,在决策层做融合对原始数据信息融合最少。下面以CLOCs为例分析后期融合方法。
CLOCs经历了三个主要的阶段:第一阶段,2D和3D的目标检测器分别提出区域提议;第二阶段,将两种模态的区域提议编码成稀疏张量;第三阶段,对于非空的元素采用二维卷积做对应的特征融合。对于二维图像检测出来的二维检测结果,我们采用混合表示的方式表示两种模态的检测结果,其中第一项表示在图像中的第i个检测结果和点云中的第j个结果之间的几何一致性,第二项内容是二维检测的第i个检测到的物体的置信度分数,第三个为在点云场景下的置信度分数,最后一项表示在点云场景下检测到的第j个物体到地面的归一化距离。这样就可以把该结果表示为一个系数的四维张量。
鉴于上述分析前-中期融合的优势,我们提出了一种基于元学习的前期融合算法,该算法可自适应地估计图像和点云特征融合的程度,可以避免直接将图像和点云特征简单拼接在一起导致的问题。该方法首先使用图像流模块从图像中提取高级特征图,该特征图对基于图像的语义进行编码。然后,使用标定矩阵,将每个3D点投影到图像上,此时我们可以获取到一组对应的三维点云特征和二维图像特征。每个点云特征将会与二维图像特征经过元学习模块,本方法使用二维图像特征学习得到一组1×1卷积的参数,并将其点云特征进行交互。在这个过程中,点云特征可以间接融合图像领域的知识和信息。
对于3D检测,本方法的主干网络为点云流模块。就点云表示而言,现在有两种常见的方法,即基于点的方法和基于体素的方法。在这项工作中,我们选择基于体素的方法,该方法将点云变为易于处理的规则形状,并且基于体素的方法具有更高的计算效率。但是大多数原始的基于体素的方法在其体素特征编码层中都使用硬体素化。在本方法中,使用动态体素化来避免信息丢失。我们的点云流模块主要包括三个模块:体素特征编码层、稀疏卷积编码层、区域提议网络。
体素特征编码层的主要目的是以体素方式对原始点云进行编码。体素化将点云划分为体素网格,并建立点云和体素之间的对应关系。在常见的硬体素化方法中,P={p1,p2,...,pN}中的每个点将被以K×M大小划分为体素,其中K是体素数,而M是每个体素中的最大点数。如果与体素相对应的点数没有达到最大数M,则剩余部分将补零。否则,超出M的点数将对体素重新采样。硬体素化操作会对原始点进行丢弃或者重新采样,会带来信息损失。本方法使用动态体素化来解决此问题,消除了对体素数量和最大点数的限制,并建立了点和体素的完整投影。此外,动态体素化在每个点和体素之间建立直接对应关系,对后续的点层级多模态融合也有帮助。在体素化后,每个点将通过堆叠的体素特征编码层进行编码,该层由线性层、批处理规范化层和ReLU层组成。
由体素特征编码层提取的三维体素特征将作为稀疏卷积编码层的输入。稀疏卷积编码层将稀疏的3D数据转换为2D数据以供以后处理。其主要的作用是在z轴上汇总卷积信息,它由卷积层和稀疏卷积层组成,特征图被下采样到1层或2层。然后,将类似图像的特征图输入区域提议网络以生成3D建议。区域提议网络包含一个降采样的卷积层以及卷积层、BatchNorm层和ReLU层的几种组合。最后,我们将每个区域提议网络块的输出连接为最终特征图,用来预测类别并回归偏移和方向。
2.2.2 复杂场景语义理解技术
2.2.2.1 交通标识检测技术
交通标识检测是智能汽车辅助驾驶必不可少的环节,包括标牌、红绿灯、车道线等。
车道线是用来管制和引导交通的一种标线,包括标化于路面上的线条、箭头、文字、标记和轮廓标识。车道线识别能够使车辆正确地行驶在车道内,遵守车道的交通规则,并辅助车道偏离或轨迹规划决策。目前常用的车道线检测方案主要基于传统的特征检测方法,而近几年逐渐出现了基于深度学习的特征检测方法。传统基于计算机视觉的车道线检测方法依赖于高度定义化的手工特征提取和启发式的方法,目前主要分为基于道路特征和基于道路模型两种特征设计的方法。基于道路特征的检测方法,通常依据道路与车道线不同的物理特征的区别来设计特征计算方式,突出道路特征来实现车道线检测。基于道路模型的检测方法,即根据不同的道路几何模型(直线模型或曲线模型)实现道路的检测。传统的车道线检测方法由于需要人工进行特征提取和模型建立,难以适应繁多的车道线种类和复杂的道路结构,随着深度学习的兴起,CNN将计算机视觉推向了一个新的高度。当前基于深度学习的车道线检测方法,通常将车道线检测视为分割或分类问题,利用神经网络代替人工设计的特征。
(1)基于图像的检测方法:基于图像的检测方法有LaneNet和H-NET,它们将车道检测问题转换为实例分割问题,即每个车道线均形成一个属于车道线类别的实例。对于一张输入的图片,LaneNet负责输出实例分割的结果,每条车道线一个标识ID,H-NET输出一个转换矩阵对车道线像素点进行修正,并对修正后的结果拟合出一个三阶多项式作为预测的车道线。尽管CNN具有强大的特征提取能力,但没有充分地探索图像行、列空间关系的能力,而这些关系对于学习强先验形状的对象尤为重要。针对这一问题,Spatial CNN(SCNN)[29]将传统卷积的逐层(Layer-by-Layer)连接形式转换为特征图中的逐片(Slice-by-Slice)卷积形式,使图像中像素行列之间可以传递信息,这使得它对于长距离连续形状的目标有很好的检测效果。
(2)基于激光雷达的检测方法:基于图像的检测方法存在对光照敏感、依赖完整且较为统一的车道线标识、有效采样点不足以及车道线被水覆盖检测失效问题,因此越来越多的研究者开始思考如何使用激光雷达传感器做车道线检测。相对于传统的视觉传感器,激光雷达有效距离更远,且可以穿透水面,有效采样点多,基本解决了传统视觉中的大部分问题。基于激光雷达进行车道线检测的方法,通过提取激光雷达的集合或物理特征,利用离散数据拟合形成车道线。其中,Ibeo激光雷达具有三次回波技术,每个激光返回三个回波,返回的信息可以可靠地还原被检测的物体,同时能够精确分析相关物体的数据,由于路面和车道线材质不同,因此通过分析激光雷达数据能够将路面和车道线区分开来;其次还可以通过激光雷达反射强度值来做车道线的检测,从而分离出路面区域与车道线。最后,通过最小类内方差算法找到路面区域与车道线的分割阈值,利用误差分析原理剔除车道线集合范围内的离群值,提取车道线特征种子点,再通过最小二乘法等拟合算法,拟合车道线。
红绿灯控制交通路口的通信效率和安全,是一种极其特殊及重要的交通标识。红绿灯检测即获取红绿灯在图像中的坐标以及类别,这是自动驾驶中的一个关键问题,关系到自动驾驶汽车当前的决策。目前大多数检测方法都是基于Faster RCNN、YOLO和SSD算法的,但是由于红绿灯这种小目标在图像中占有少量像素,对于标准神经网络来说,小物体经过多层特征提取层可能仅表现为一个点,细节丢失严重;而删除某些层则会衰弱特征的语义信息,因此它们对于小目标检测效果均不理想。因此,针对红绿灯的检测,通常分为两阶段,首先定位出红绿灯的大概位置,然后采用一定技术对相关区域进行二次的识别。目前针对小目标检测算法的改进,主要是从特征提取网络入手,使特征提取网络更适合小目标检测,大致有如下几种方法。
(1)图像金字塔:针对训练图片进行上采样得到多尺度特征,从而增强小目标的细粒度特征,在理论上能够优化小目标检测的定位和识别效果。但是基于图像金字塔的方法对于计算机计算能力和内存都有很高的要求。
(2)逐层检测:对于卷积神经网络的每一层输出进行一次预测,最后综合考虑得到结果。但是该方法在浅层神经网络的效果并不好,因为浅层特征并没有充分的语义信息。
(3)特征金字塔:参考多尺度特征图的特征信息,同时兼顾了较强的语义特征和位置特征。较大的特征图负责较小物体的检测,而较小的特征图负责较大物体的检测。
(4)空洞卷积:利用空洞卷积代替传统卷积,在提升感受野的同时,不增加参数数量且不减小特征图大小,保留了更多的细节信息。
上述方法只是通过图像获取红绿灯在图像中的位置,而获取红绿灯坐标,并将红绿灯信号与车道对应起来则需要结合高精度地图。高精度地图是指高精度、精细化定义的地图,需要分米级的精度来区分各个车道。如今随着定位技术的发展,高精度定位已经成为可能,而精细化定义则需要格式化存储交通场景中的各种交通要素,包括传统地图的道路网数据、车路网数据、车道线和交通标志等。利用高精度地图获取到红绿灯位置后,红绿灯检测的准确度会有一定程度的提高。然而由于大气条件下的色调漂移和光环干扰、其他物体遮挡、不完整形状、其他灯源虚警等问题,红绿灯检测问题仍然存在挑战性。目前解决该问题的思路是通过V2X的方案获取红绿灯信号,而无须车辆进行检测,仅需车辆与红绿灯之间建立通信即可。这种方案能够使自动驾驶汽车更早、更准确地获取到红绿灯的信息,细节参考第3章中基于5G车路协同技术。
2.2.2.2 可行驶区域检测
车辆可行驶区域包括结构化路面、半结构化路面和非结构化路面。结构化路面往往有道路边缘线,且路面结构单一,如城市主干道、高速、国道、省道等。半结构化路面是指一般的非标准化的路面,路面的颜色和材质差异较大,如停车场、广场等,还有一些分支道路。对于自动驾驶汽车来说,可行驶区域检测是后续路径规划中不可缺少的辅助信息,其目的主要是实现道路路径规划和障碍物躲避,可以实现整个路面检测,也可以只提取出部分的道路信息。目前主要分为基于传统计算机视觉的可行驶区域检测方法和基于深度学习的可行驶区域检测方法。
基于传统计算机视觉的可行驶区域检测方法根据特征可以分为基于颜色、纹理和边缘的可行驶区域检测。对于结构化或半结构化路面,其颜色特征非常明显,因此在RGB空间利用颜色特征分离路面和非路面相对而言比较简单。常用的方法包括基于高斯模型分离背景路面与前景物体,除此之外,还可以通过手动标注数据以及利用监督学习方式学习区域分割。由于道路路面的连续性,纹理特征在同一路面上能够保持基本一致,利用该特点,可以实现可行驶区域的检测。纹理特征提取的最基本方法就是使用Gabor滤波器,Gabor特征对边缘信息比较敏感,可以提取出边缘的方向,且受光照影响较小。对于结构化和半结构路面,均有较明显的道路边缘分界,提取出这些道路的边缘分界,就可以实现可行驶区域检测。常用的边缘检测算子有Sobel、Prewitt等算子,使用算子来进行边缘检测的核心思想就是将一个待检测的像素与周围的像素关联起来,通过设定算子的水平、竖直方向的权重,计算待检测像素的左右、上下的像素差值的和,判断待检测像素的水平与竖直的像素差异性,判断该像素点是否为边缘点。Canny边缘检测算法结合了图像像素点与周围点的一阶导数和高斯二阶导数,得到更准确的边缘点信息。提取到边缘后,对道路边缘内部的噪点进行去除,提取出更加准确的路面区域。
除上述介绍的颜色、纹理和边缘的方法外,还有众多的可行驶区域检测方法,如Voronoi图法、占用栅格法、状态网格法,以及驾驶通道法,它们的优缺点对比总结如表2-1所示。
表2-1 基于传统计算机视觉的可行驶区域检测方法对比
近年来,语义分割已引起越来越多的关注,而可行驶区域检测可以抽象为对路面图像的语义分割任务,实际上已经有很多学者将语义分割思想应用到可行驶区域检测上。Long等提出了全卷积网络(FCN)方法,这是将深度卷积神经网络(DCNN)应用于语义分割任务的开创性工作,FCN用卷积层替换了DCNN的最后一个全连接层,以获取任意大小的输入。DeepLab将空洞(Atrous)卷积引入语义分割中,可以有效地扩展网络的接受域,而无须增加参数的总数和计算量。为了在多个尺度上分割对象,DeepLabv2进一步提出了Atrous空间金字塔池,利用具有不同采样率的过滤器的多个并行多孔原子卷积层,以多尺度捕获对象和上下文。
2.2.2.3 多目标追踪
城市交通场景下的动态目标跟踪对于自动驾驶技术的研究至关重要。尽管多目标检测可以完成对目标尺度及位置信息、类别信息的检测,但是在实际检测过程中,外界环境比较复杂,光照、遮挡、相机抖动等多种因素都会导致检测框的不稳定性;而通过目标追踪信息,可以弥补目标检测的不足,有效去除错误的检测,增加遗漏的检测。除此之外,通过跟踪系统识别同一目标,可以得到连续平滑的轨迹并预测目标的运动趋势。高智能化的驾驶决策(如避障、超车、跟车等)都依赖于对运动目标的识别与跟踪,对周围道路参与者的认知也是自动驾驶汽车友好融入交通环境的前提。目前,人们已使用各类传感器来实现动态场景下的多目标检测与跟踪,作为计算机视觉领域的一大核心分支,目标追踪技术一直是研究的热点和重点。其中,MOT(Multiple Object Tracking,多目标追踪)又因其技术的复杂性以及应用的广泛性成为重中之重,其在自动驾驶领域发挥着重要的作用。
1)传统多目标检测算法
多目标检测算法的输入通常为给定视频的原始帧,通过运行目标检测器来获得对象的边界框,然后对于每个检测到的物体,计算出不同的特征,通常是视觉和运动特征,之后,使用相似度计算步骤计算两个对象属于同一目标的概率;最后,关联步骤为每个对象分配对象唯一标识的ID。
SORT(Simple Online and Realtime Tracking)算法使用简单的卡尔曼滤波处理逐帧数据的关联性以及使用匈牙利指派算法进行关联度量,这种简单的算法在高帧速率下获得了良好的性能。利用卡尔曼滤波来估计随时间推移观测到的测量值,生成状态的估计值。使用匈牙利指派算法进行数据关联,使用的代价矩阵为原有目标在当前帧中的预测位置和当前帧目标检测框之间的IOU,小于指定IOU阈值的指派结果是无效的。我们发现使用IOU能够解决目标的短时被遮挡问题。这是因为目标被遮挡时,检测到了遮挡物,没有检测到原有目标,假设把遮挡物和原有目标进行了关联。那么在遮挡结束后,因为在相近大小的目标中IOU往往较大,因此很快就可以恢复正确的关联。
由于SORT忽略了被检测物体的表面特征,因此只有在物体状态估计不确定性较低时才会准确,DeepSORT中采用了一个简单的卷积神经网络来提取被检测物体的外观特征,并在每帧检测后分别计算其与前一帧目标的运动特征(由马氏距离计算获得)相似性和表观特征相似性,同时使用匈牙利指派算法进行目标的匹配。在每次检测及追踪后,需要对本次检测的物体外观特征进行保存。通过增加表观特征,大大减少了SORT中的ID切换,经实验证明减少了大约45%,在高速率视频流中也达到了很好的水准。
上述方法均通过检测器检测出物体所在的检测框,然后根据物体检测框中的运动特征和检测框中物体的外观特征来进行前后帧同一物体的匹配,从而实现多目标追踪。由于该方法是将物体检测和物体特征提取任务分开进行,因此检测速度较慢。
2)多目标特征提取与检测联合算法
考虑到该问题,文献[35]提出了JDE(Jointly Learns the Detector and Embedding Model)范式,即通过一个网络同时得到目标检测结果与物体特征提取结果,从而加速目标追踪任务。我们在进行目标检测任务时,加入了特征提取分支,并通过全连接层将特征信息转化为追踪ID的分类信息,从而确定该特征属于哪个物体;其次,我们采用多任务学习的方式同时对目标检测结果、特征提取结果、前背景点进行监督,从而实现了其所提出的JDE范式。
尽管上面提出的JDE范式在一定程度上加速了目标追踪速度,但目标检测任务和匹配任务本质上还是分开进行的。而CenterTrack在一阶段的网络中合并了目标检测和匹配任务,从而进一步加快了目标追踪系统整体的速度,且追踪和检测精度均达到了当前的先进水平。该方法的输入是前一帧图像、当前帧图像以及根据前一帧图像的检测结果渲染出热力特征图Heatmap;前一帧图像中的对象用单个点来表示,其信息包含在输入的Heatmap中,从而可以方便地提取对象的相关信息;同时该模型输出一个从当前对象中心到前一帧对象中心的偏移向量,并且这个偏移向量将作为中心点的一个附加属性来进行学习,从而只增加了很少的额外计算量。在有了中心点及偏移量以后,仅靠贪婪匹配策略即可将当前帧的对象与前一帧的相应对象建立起联系,从而简化了传统的追踪方案,实现了简单、在线、实时的目标追踪。
3)多目标拓扑特征提取与追踪算法
上述的多目标追踪模型仅基于目标物体之间的距离完成数据关联,虽然考虑到了时间和空间信息的数据关联,但是这些模型只使用了诸如加权平均的简单方法完成特征的聚合和数据的关联。这些方法无法充分聚合时间和空间维度的信息,无法提取丰富的特征信息。因此,我们提出一种新的多目标追踪算法,利用图卷积网络来聚合时间维度和空间维度的信息,以获得丰富鲁棒的特征,进行更好的数据关联,得到更完整的轨迹信息。
多目标追踪任务的目标是预测多个目标物体的轨迹,可以用表示,其中第i个目标物体的轨迹可以用一系列边界框表示,因此每条轨迹可以用和来表示,其中和分别表示第t帧的第i个目标物体的中心点位置,和分别表示目标物体i的宽度和高度。多目标追踪的主要目的是计算上一帧得到的轨迹和当前帧得到的目标物体之间的相似度分数,第t-1帧的第i条轨迹可以用来表示,当前帧t的所有目标物体可以用来表示,我们会对每个计算其相似度分数。
表观特征获取网络:给定第t帧的第i个目标物体或者第t-ti帧的第j个目标物体,需要得到其相应的表观特征和。在表观特征获取的过程中,先将目标检测器的识别结果从完整的图像上抠除出来,然后再将这些小的图像切片作为表观特征获取器的输入来得到最终的表观特征。我们使用经典的特征提取网络,如VGGNet或ResNet提取表观特征,最终得到每个目标物体的表观特征和作为时空图卷积模型的输入节点特征。
图的构建:获取到目标物体的表观特征之后,可以得到第t帧的第i个目标物体的表观特征和第t-ti帧的第j个目标物体的表观特征,然后将这些目标物体作为图的节点,将这些特征作为最基本的节点特征。下一步是构建节点之间的关联关系,最简单的方式是将所有的i+j个目标物体全部互相连接起来,但是先验知识表明,只在当前帧和上一帧之间存在关联关系,且只在同类目标之间存在关联关系。考虑到这一前提,可以减少很多不必要的连边,提高追踪效率。除此之外,在关联过程中还充分考虑了时间和空间维度的信息,分别搭建了时间图卷积模型和空间图卷积模型(也称为时空图卷积模型),如图2-11所示。
图2-11 时空图卷积模型
空间图卷积模型:空间图卷积模型主要利用目标物体之间的拓扑关系进行信息聚合,因为这些拓扑关系可以提供额外的空间信息,有助于缓解关联过程中由于遮挡等原因导致的漏检和误检问题。我们提出的空间图卷积模型的基本思想是:对每个目标物体,聚合本帧的其他目标物体的信息,信息聚合的过程是通过图卷积神经网络GCN来完成的。给定第t帧的所有目标物体,对第i个目标物体,首先使用ResNet获取其表观特征作为节点的特征。然后将和当前帧每个目标物体连边,然后再经过GCN网络得到经过空间聚合后的表观特征。聚合后的目标物体特征表示为,聚合过程可表示为
其中,N(i)表示第i个目标物体的所有邻居节点,σ表示GCN的线性层,不同的线性层有不同的权重。权重是一个相似性矩阵,代表每一条连边之间的相似性,该矩阵由每条连边的表观特征相似性组成,输入特征为每个节点的表观特征,通过一个简单的多层全连接网络MLP网络训练得到,其计算过程如下:
以上过程完成后就可以得到具有空间特征信息的节点特征。
时间图卷积模型:时间图卷积模型主要根据已得到的轨迹之间的连接关系进行信息聚合。该维度的特征聚合是按照时间顺序聚合相邻帧之间有连接关系的目标物体的特征。时间维度的信息可以帮助推测当前轨迹在下一时刻是否存在,因此时间上的聚合也有助于缓解数据关联过程中由于遮挡等原因导致的漏检和误检问题。出于内存和时间成本的考虑,这里提出的时间关联模型只聚合最近5帧的时间信息。时间图卷积模型的基本思想是按时间顺序依次聚合每相邻两帧的特征,与空间维度信息聚合一样,时间维度信息聚合的过程也是通过图卷积神经网络GCN来完成的。给定第t-τt(t=1,2,…,5)帧的所有目标物体以及第t-τt+1(t=1,2,…,5)帧的所有目标物体,对第t-τt帧的目标物体和第t-τt+1帧的目标物体,首先使用ResNet获取其表观特征作为节点的特征和。然后根据追踪得到的轨迹ID,将第t-τt帧与第t-τt+1帧中追踪ID相同的目标物体关联起来。对每相邻的两帧图像都构建一个这样的二部图,总共可以得到τ-1张二部图。然后根据时间顺序让这些二部图经过GCN网络,最终得到包括丰富时间维度信息的目标特征作为轨迹特征。聚合后的轨迹特征表示为,聚合过程可表示为
其中,N(i)表示第t-τt+1帧中与第t-τt帧中第i个目标物体相关联的目标物体,该集合要么为空,要么只有一个元素,σ表示GCN的线性层,不同的线性层有不同的权重。权重是一个相似性矩阵,代表每一条连边之间的相似性,该矩阵由每条连边的表观特征相似性组成,输入特征为每个节点的表观特征,通过一个简单的MLP网络训练得到,其计算过程如下:
以上过程完成后就可以得到具有时间特征信息的轨迹特征。接下来构建当前帧与上一帧的时间关联矩阵,即第t帧和第t-1帧的关联矩阵。由于此时没有历史轨迹作为参考信息,无法得到确定的关联关系,因此这里设定了一个阈值,将两帧之间距离不大于该阈值的目标物体进行关联以聚合时间维度的信息。在聚合过程中,将作为历史轨迹特征,ResNet获取的特征作为当前帧目标的表观特征,并将其节点特征经过与上述相同的MLP网络得到边的特征,再送入GCN中进行最终的特征聚合。在这里出于对运行时间的考虑,将这一步与上一节空间图卷积模型放到一起执行,最终得到的是具有丰富的时间和空间信息的表观特征。
数据关联:数据关联通过一个MLP网络计算上一步得到和的相似性得到相似度矩阵,计算过程如下:
然后将这一矩阵作为匈牙利指派算法的相似度完成数据关联,得到最终的追踪结果。
2.2.2.4 路径预测
为了在道路上安全高效地运行,自动驾驶汽车不仅应该了解其周围道路使用者的现有状态,同时需要了解道路共同使用者的未来行为,从而避免多道路使用者在未来时刻发生碰撞。而轨迹追踪是轨迹预测的前提,通过将物体之前的运动轨迹保存起来,然后进行分析预测,就能够大大提高路径预测的准确性。基于使用的预测模型将现有研究分为三类,即递归神经网络、卷积神经网络、图神经网络。
Vanilla RNN(Vanilla Recurrent Neural Network)可以视为对隐藏层具有反馈的两层全连接神经网络的扩展。在每个序列步骤中,Vanilla RNN都会处理来自当前步骤的输入数据以及过去步骤的存储数据,这些数据将存储在先前的隐藏神经元中。原则上,具有足够数量隐藏单元的Vanilla RNN可以学习将任何序列近似为序列映射[35]。然而,由于梯度消失或爆炸,实际上很难训练该网络学习长序列,这就是引入门控RNN的原因。在门控RNN的每个单元中,部署了门控体系结构,而不是简单的完全连接的隐藏层。LSTM(Long Short-Term Memory,长短期记忆)是最常用的门控RNN。在车辆行为预测中,LSTM是最常用的深度模型,可以使用LSTM作为序列分类器。在此任务中,一系列特征被馈送到LSTM的连续单元,然后将序列中最后一个单元格的隐藏状态映射到输出维度(即已定义类的数量)。文献[40]提出了Social-LSTM模型,该模型用于解决拥挤空间中的人体轨迹预测的问题。尽管LSTM具有学习和复制长序列的能力,但它们不捕获多个相关序列之间的相关性,而该模型引入了一个“社会”池化层,使得空间上最接近的序列的LSTM可以彼此共享它们的隐藏状态,从而自动学习在时间上一致的轨迹之间发生的典型交互。
卷积神经网络在车辆行为预测中很有价值,因为它们具有获取像图像一样的数据,生成像图像一样的输出以及在处理输入数据时保持其空间关系的功能。这些功能可以对车辆的交互和驾驶场景进行建模,并生成占用地图输出。但是,二维CNN缺乏一种对数据序列进行建模的机制,而在车辆行为预测中就需要使用这种机制对车辆状态随时间的时间依赖性进行建模。在文献[41]中,对体素化激光雷达数据4D表示的时间维度执行3D卷积以捕获时间特征,然后应用一系列2D卷积提取空间特征。最后,添加卷积层的两个分支,以针对当前帧和将来帧预测检测到的对象上的边界框,并分别估算出检测到的对象成为车辆的可能性。在文献[42]中,使用两个主干CNN分别处理BEV激光雷达输入数据和栅格化地图。所提取的特征被串联并馈送到三个不同的网络,以检测车辆、估计车辆的意图并预测其轨迹。
在多智能体交互场景中,不同个体之间会存在多种多样的关系,并且这些关系也会随着时间不断地演变。周围个体的状态会对当前智能体未来动作产生重要影响,因此忽略关系推理的传统轨迹预测方法难以在如此复杂系统之上取得很好的效果。而图神经网络,本身可以表示不同智能体之间的空间关系,因此有研究者将图神经网络应用于轨迹预测来增强不同智能体空间交互特征。文献[42]中提出了一种基于图神经网络的模型对关系进行推断,并基于这种推断进行对未来轨迹的预测。但该算法难以应对不断演变的关系,尤其是关系突然改变的情况,同时也无法处理智能体行为存在多模态的情况,然而上述两点在诸如自动驾驶等问题中十分关键。文献[43]提出了一种名为EvolveGraph动态演化关系图的算法,能够有效地捕捉和预测多个智能体之间关系的变化,并且根据此关系预测未来的运动轨迹,同时能有效体现物体轨迹的多模态特点,其在物理系统、自动驾驶场景、篮球运动员及行人数据集的结果证明了动态关系演进对于物体未来轨迹预测具有重要作用。
上述基于图卷积神经网络的方法虽然能够在一定程度上对交互关系进行推理学习,但是它无法捕捉异质多智能体的复杂交互关系以及环境对多智能体运动的影响。以交通路口为例,不仅有各种车辆,还有行人、非机动车等,这些目标在运动速度、运动意图以及可行驶区域方面差异巨大,呈现复杂的相互影响关系。为了解决这些问题,我们提出了基于异质图神经网络的多目标轨迹预测方法,通过将真实的交通场景建模为包含多种元素和关系的异质图结构,通过多头自注意力机制和自适应感受野学习运动物体间的空间交互和时间交互,从而进行轨迹预测。
1)交通场景异质图构建模型
在交通场景中,多群体目标中运动行为具有异质性和复杂耦合性。交通参与者,包括车辆、行人、自行车等,表现出异质行为,不同个体的运动属性、区域、意图都不相同,而不同群体之间呈现社交行为。同时,为躲避障碍物以及避免对可行驶区域的影响,交通参与者的轨迹受到环境的影响。为了充分建模上述问题,运动目标以及场景语义都被建模为节点,其关系建模为异质图Gt=(Vt,Et,A,R),如图2-12所示。其中,Vt表示节点集合,其包括运动物体以及场景语义。场景语义指将场景分割为多个类型的语义单元,如图2-12中所示的车道、人行道、斑马线、障碍物等。A表示节点的类型{Cp,Cb,Cc,Cs},分别表示行人、自行车、车辆以及场景。R表示节点之间的连接关系,例如,节点Cp到节点Cc的有向边表示行人对车辆的连接(影响)关系。图Gt上的节点和连接关系都是异质的,节点和其类型的映射可以表示为τt(v):Vt→A,边和其类型的映射关系可以表示为ϕt(e):Et→R。
同时,节点之间的影响关系具有局部连接性质,节点对相邻节点的影响关系较强,对相隔比较远的节点影响关系较小。因此,每个目标只与距离d0范围内的节点具有连接关系。构建的异质图需建模运动目标之间的相互影响,例如,在车行道上车辆对前后方向和左右方向车辆的关注程度不同,对自身的轨迹影响也不同;车辆需要关注前方道路上行人的运动趋势,提前做出反应。异质图也要建模运动目标和场景语义的影响关系,例如,行人更有可能走人行道和斑马线,车辆更有可能沿着车道行进,并在斑马线前减速。
图2-12 交通场景构建为异质图
多目标的轨迹预测是通过历史观测到的轨迹序列预测未来的运动序列,可以被形式化表示为:
其中,p和q分别表示历史和未来的序列长度,fθ表示神经网络的模型,θ是网络的可学习参数。
运动物体节点特征包括空间特征(当前时刻所处的位置)和时间特征(轨迹的相对时序编码)及运动物体的类型one-hot编码(行人、车辆、自行车)。对运动物体的特征进行编码,其中空间特征编码通过多层感知机MLP将二维坐标变换为向量。因此,节点i在t时刻的位置编码表示为:
时序编码N→Rd基于Transformer中的位置编码:
其中,频率wk定义为:
其中,d是时序编码的长度,k是一个任意整数。位置编码的每个维度会根据频率从2π到2Mπ的正弦波在时间上变化,从而确保最多M元素的序列具有唯一的时间戳。对运动物体的属性进行编码,我们采用one-hot编码运动物体的类型,然后通过线性层映射得到Fei。最终,运动物体的节点特征为空间特征、时间特征及属性特征的编码的拼接,表示如下:
场景语义节点特征包括语义的类型及区域的轮廓,其通过一个多层感知机映射到和运动目标节点相同的维度。每个不同节点的编码网络是不同的,从而可以捕捉节点的异质性。
2)基于多头注意力机制的空间信息聚合
在构建的图中存在两类异质关系,即节点的异质性和连接关系的异质性。同时,存在两种相关性,即时间上的相关性和空间上的相关性。为了提高多目标轨迹预测的准确性,必须有效地学习异质关系和相关性。基于多头注意力机制的信息聚合能够有效建模图中的异质关系。具体分为两步,首先计算当前节点与邻居节点的影响程度,然后将邻居节点的信息汇聚到目标节点。
第一步是计算目标节点vd对所有邻居节点集合Ω(Vd)的影响程度。由于邻居节点va∈Ω(Vd)属于不同的类型,针对每一种连接关系<τt(va),ϕt(ea,d),τt(vd)>,在计算它们的影响程度时,设置不同网络来学习连接关系的异质性。采用多头注意力机制进行注意力的计算。首先将目标节点vd的特征通过线性变换映射到查询向量Q(vd),将邻居节点va的特征通过线性变换映射到关键字向量K(va)和值向量V(va)。将目标节点的查询向量和邻居节点的关键字向量点积相乘,计算两个向量之间的相似性,点积越大相似性越强。再通过Softmax归一化得到邻居节点va对目标节点vd的关注程度。
通过多头注意力机制提取多重影响关系,第h组的注意力可以表示为
其中,d为向量的维度,、、为可学习的变量,它们是与连接关系<τt(va),ϕt(ea,d),τt(vd)>相关的,即每一种连接关系采取相同的可学习变量,从而捕捉连接关系的异构性。
由于使用多头注意力机制,因此邻居节点va对目标节点vd处的特征影响表示为:
同时,目标节点vd聚合所有邻居va∈Ω(Vd)的特征影响,其聚合的空间特征表示为:
3)图神经网络与Transformer结合的轨迹预测
Transformer结构可以处理序列数据,通过堆叠的注意力机制来决定关注序列的哪一部分。在经过异质图信息传递后,将运动物体每一帧的特征输入到Transfomer中可以预测未来的轨迹序列。Transformer模型主要分为两大部分,即编码器和解码器,编码器负责把异质图学习到的特征映射成为隐藏层,然后解码器把隐藏层再映射为轨迹序列。
算法总体结构如图2-13所示,首先将交通场景建模为异质图结构,通过图神经网络进行信息的聚合,使运动物体学习到周围运动物体和场景的特征,之后通过Transformer结构将时序特征通过编码器和解码器解码为未来轨迹序列。
图2-13 基于异质图神经网络的多目标轨迹预测方法
2.2.2.5 行人意图检测
安全的自动驾驶汽车不仅要准确识别周围静态、动态的障碍物,同时还需要对行人的意图进行预判,通过预估行人下一步的动向,可以确保自动驾驶汽车下一步的决策不会导致事故发生。而对于人群场景中行人的可靠轨迹预测,依赖于对他们社会行为的深刻了解,包括行人的意图、存在、属性、动作、周围环境里其他代理的社会关系和社会规范,以及环境的几何和语义信息等。尽管对这些行为已经有了大量的研究,但仍然难以完全通过手工规则来表达。目前常用的解决方案根据其网络结构可以分为基于RNN的行人意图预测、基于LSTM的行人意图预测、基于GAN的行人意图预测。
循环神经网络RNN是一类以序列数据为输入,在序列的演进方向进行递归且所有节点按链式连接的递归神经网络,其具有记忆性、参数共享并且图灵完备,因此在对序列的非线性特征进行学习时具有一定优势,因此很多研究者将RNN作为行人意图预测的基础网络。其中文献[45]提出了一种用于短期预测车辆前方行人行为的基于变分递归神经网络的模型,该模型用于特定目标跟踪和短期路径预测的框架,包含与动态的状态空间模型相对应的潜变量。
长短期记忆网络LSTM相对于RNN以及HMM(Hidden Markov Model,隐马尔可夫模型),更适合于处理和预测时间序列中间隔和时延比较长的重要事件,因此在行人意图预测领域也有广泛的应用。文献[46]认为人体导航行为主要受周围行人及其附近的静态障碍物的影响,提出基于LSTM神经网络模型从示范数据中学习人类的动作行为。文献[47]认为在拥挤环境中行人轨迹受场景中其他行人的运动和静态结构的影响,这种人与人、人与空间的交互导致轨迹的非线性特性,因此提出了一个基于时空图的LSTM网络以预测拥挤环境的行人轨迹,同时考虑了与场景中静态(物理目标)和动态元素(其他行人)的交互。文献[48]针对将上下文信息合并到轨迹预测中会增大计算开销,并会减少不同场景预测模型的泛化问题,提出了基于联合位置-速度注意力(Location-Velocity Attention)的LSTM方法预测轨迹,其设计一个模块来调整LSTM网络,并训练了注意力机制学习在预测过程中最佳地组合行人的位置和速度信息。针对通常的LSTM方法忽略邻居隐状态重要程度的问题,文献[49]提出了SR-LSTM(Data-Driven State Refinement Module for LSTM,LSTM网络数据驱动状态细化模块),该模块利用邻居当前意图并通过消息传递(Message Passing)机制联合地迭代细化人群所有参与者的当前状态。
GAN(Generative Adversarial Networks,生成对抗网络)中包含两个模块:生成模型(Generative Model)和判别模型(Discriminative Model),通过两个模块的互相博弈学习产生使判别器难以分辨的数据。在行人意图预测方向,预测的行人轨迹与历史轨迹达到难以区分的程度,即可获得较优的意图预测结果,因此GAN在预测领域应用较为广泛。文献[50]提出了一个结合序列预测和生成对抗网络的模型,该模型具有一个递归的序列到序列模型来观察运动历史并预测未来行为,使用一种池化机制来汇总行人的信息,并通过对抗性训练去对抗一个递归鉴别器,并以类型损失鼓励多样化的预测。为了预测行人意图,必须充分利用物理和社会信息,文献[51]提出了路径预测模型SoPhie,它是一个基于生成对抗网络的可解释框架,该框架从场景图像得到两个信息源,即场景中所有代理的历史路径和场景上下文信息,同时结合了社会注意力机制和物理注意力机制,帮助模型学习并提取与路径相关的最明显的图像部分。社会注意力组件汇总了不同代理的交互信息,并从周围的邻居提取了最重要的轨迹信息。SoPhie还利用GAN生成更真实的样本,并对其分布建模捕获未来路径的不确定性。
2.2.2.6 事故检测
拥堵检测也是智慧城市交通场景中一个非常重要的问题,及时的拥堵检测可以避免拥塞情况加重,并且能为驾驶员提供更加良好的驾驶体验,使其提前绕过拥堵路段。而目前常用的拥堵检测方法均是基于视频进行的,通过利用城市中已经较为完善的视频监控系统,可以方便地建立起全局的交通拥塞情况认识,并通过V2X等通信手段告知道路使用者,下面介绍两种相关方法。
文献[52]提出了一种基于图像纹理分析的道路交通拥堵检测算法。该算法以图像块为基本处理单元,通过分析块内图像纹理的空域和时域变化,计算出道路的空间及时间占有率,并综合二者的变化特性实现道路交通拥堵的自动和快速检测。直接将该方法利用于现场交通场景中进行分析,可以避免交通参数检测和交通建模的过程,具有计算效率高和检测延时小的优点。
文献[53]中针对城市道路的复杂情况,选取了基于非参数核密度的背景建模方法并提出了基于概率比较的目标去噪方法实现车辆目标的提取,然后通过卡尔曼滤波跟踪与虚拟检测线法获取交通特征参数。与传统的背景建模方法相比,基于非参数核密度的背景建模方法具有更好的建模效果,更适应复杂场景的建模。提出的基于概率比较的目标去噪方法能有效去除路边树叶抖动造成的干扰,较好地实现了车辆目标的检测提取,进而提高了车辆识别的精度。而在交通拥堵判别算法方面,改进了传统的基于模糊综合判别的交通拥堵判别模型,在分析交通特征参数变化特征的基础上,提出先根据速度进行道路交通拥堵预判别,建立不同预判别等级下的参数权重值集合,然后结合预判别结果、实际判别结果和历史数据获得最终的交通拥堵判别结果。该方法能较准确地提取交通特征参数,改进的拥堵判别模型比直接用模糊综合判别算法二级跳变率更低,能实时、高效地实现城市道路交通拥堵判别,具有较好的准确性及可行性。
除了感知拥堵时间,还需对道路上的事故进行实时的检测。通过建立一个实时的事故检测系统,可以降低由于救援不及时带来的人员伤亡和财产损失;同时可以在发生事故时引导车辆避开事故区域,降低由于事故导致的交通拥堵可能性。目前事故检测通常依赖于现有的道路监控系统,采样基于计算机视觉的方式来实现,下面介绍两种相关方法。
文献[54]提出了一种基于监控视频的事故检测框架,该框架直接从输入的监控视频中学习到事故的时空特征,而不是人工提取的特征(如速度变化,轨迹异常等)。同时考虑到事故的视频较少,而非事故的视频数量却要远超于事故视频的数量。该框架使用了一种时空自编码器(Auto-encoders)来进行事故特征的提取。并结合自编码器的重建损失以及视频段在浅层空间的向量异常得分(使用单分类SVM实现)进行事故/异常检测。作者在大量正常的监控视频中进行训练,并在大量事故视频的测试中验证了模型的有效性。而文献[55]所提出的框架利用Mask R-CNN进行精确的目标检测,然后设计基于有效质心的监控镜头目标跟踪算法,并根据与其他车辆重叠后车辆中的速度和轨迹异常确定事故发生的时间。所提出的框架提供了一种鲁棒的方法,可以在一般道路交通监控录像上实现高检测率和低虚警率。我们在各种条件下(例如,日光充足、能见度低、下雨、冰雹和下雪)对该框架进行了评估,为开发通用车辆事故检测算法铺平了道路。