化永星,程伟国,黄闽羚

(南京交通职业技术学院,江苏南京,211188)

0 引言

随着科技的发展,人工智能车辆已应用到各个行业,而提升智能车自动驾驶的安全性是一个急需解决的问题[1]。对环境的实时感知是自动驾驶的先决条件,目前大多数自动驾驶车辆采用毫米波雷达进行距离检测并结合摄像头进行物体识别的多传感器融合方案[2]。随着视觉感知技术的提升,基于深度相机的目标检测技术在一些场合可以代替传统毫米波雷达与机器视觉结合的方案[3],随着人工智能算法的发展,视觉感知技术日益成熟,因此本文提出了一种基于深度相机的智能车辅助决策系统,基于深度学习对识别与检测并计算实时距离,并根据检测物体的位置结合车辆自身模型进行辅助决策,防止发生危险。

1 系统框架

本文提出的辅助决策系统通过深度相机实现对周围环境感知,并结合原移动平台的参数指标及安全距离进行辅助决策,判断行进路线的障碍是否会造成危险,是否需要做出反应。视觉辅助决策系统总体框架如图1 所示,其中硬件包括微处理器,深度相机。通过深度相机进行图像采集并传输微处理器,在Ubuntu 18.04 环境中,基于PyTorch 框架下采用Yolov5 深度学习算法实现对智能车目标区域的实时检测,并基于双目相机对深度信息提取,并对检测到的物体进行定位。最后将检测的目标位置结合车辆的参数判断继续行驶是否会发生危险,并通过CAN 通讯方式,将物体位置信息与判断结果传输至车辆自动驾驶工控机,继而控制车辆制动。

图1 整体框架图

2 硬件平台

本系统的硬件主要包括采用英伟达公司Jetson Xavier Nx 核心板的开发套件,如图2所示,Jetson Xavier Nx 核心板配备了6 核Carmel ARM64 微处理器,搭配英伟达Volta架构GPU,集成384个CUDA 核心、配置了21TOPS 的加速计算能力,能够同时处理多个传感器的数据,开发板上配有UART、SPI、IIC及多个GPIO 接口,可通过多种方式与外部设备通讯。

图2 Jetson Xavier NX 开发套件

本系统图像采集设备选用Stereolabs公司生产的ZED 双目相机,如图3 所示,ZED 深度相机能够高分辨率传输图像,并且其深度范围0.3~25m 远大于普通相机,能够满足在保证移动平台有足够的时间在完成制动距离的前提下将图像数据实时输出。

图3 ZED 双目相机

3 软件实现

视觉辅助决策系统的软件实现部分流程如下:首先从深度相机中获取目标的深度数据,即使用双目相机进行数据采集。相机采集到的图像包含了左右两个视角的图像,因此可以使用双目视觉进行障碍物检测和距离测量。对于双目相机采集的图像,需要进行去畸变、立体匹配和像素对齐等工作。首先,会对图像进行去畸变处理以消除图像中的畸变影响;然后通过立体匹配算法,将左右视角图像上的像素一一对应,然后进行像素对齐操作使得左右像素点在同一水平线上。在预处理之后,使用Yolov5 目标检测算法对图像进行物体检测。Yolov5 使用卷积神经网络对图像进行处理,通过在图像中找到物体的边界框,从而得到物体的位置信息。通过立体匹配计算出左右视角中对应像素之间的距离,这项任务的关键是找到相对于左视图中的像素位置,对应的右视图像素位置,从而获取目标的中心坐标、宽度和高度。然后使用相机内参和深度数据将目标中心坐标转换为世界坐标系中的坐标。使用目标宽度和高度,以及深度数据和相机内参,计算出目标在世界坐标系中的尺寸。最后利用障碍位置信息结合车身结构数据和设置的安全区间对下一步运动决策进行提示。

■3.1 Yolov5 算法

自2015 年等人提出yolo 算法以来,yolo 系列算法以实时高效在深度学习物体检测得到了广泛的应用[4-5],其中Yolov5 算法能够很好的兼顾实时性与准确性,本文选用Yolov5s 作为检测算法,与之前的yolo 系列算法比具有更小的模型尺寸和更快的速度。其检测流程的结构主要包含以下几个部分:(1)数据预处理:在进行模型推断或训练之前,需要对输入数据进行预处理,采用Mosaic 数据增强方法图像进行数据增强操作,不仅使图片能丰富检测目标的背景,而且能够提高小目标的检测效果。(2)Backbone:骨干网路部分主要采用的是Focus 结构,用于处理输入的图片。(3)Neck:为了更好地提取融合特征,在Backbone和输出层插入采用FPN+PAN 结构的Neck 部分。(4)Predicetion:作为目标检测的输出层,Yolov5 采用GIOU_Loss 作为损失函数,其主体是3 个Detect 检测器。

本次研究的Yolov5s 目标检测算法是基于Python 和PyTorch 框架实现的。在实现过程中,需要先下载Yolov5的代码仓库,然后根据实际需要进行相关配置和修改。代码文件如下:

model.py:定义了YOLOv5的模型结构,包括主干网络、FPN、head、neck 等模块。

detect.py:实现了目标检测的主要流程,包括读取图像、预处理、前向推理、NMS 等。

utils 目录:包含了一些辅助函数,如非极大值抑制、数据增强、数据加载等。

在使用时,直接调用detect.py 中的detect 函数进行目标检测,该函数会返回目标框的预测结果。对于结果的后续处理,使用utils 中提供的函数进行NMS 操作、计算精度等。

■3.2 双目测距

双目立体视觉基于视差原理实现[6],由相似三角形进行三维信息的获取,即两个双目相机的图像坐标系平面与被测物体间形成一个三角形,依据左右两个摄像机间的位置关系,即基线距离以及相机的焦距信息便可以通过相似三角形原理实现公共视场范围内物体特征点的三维坐标的获取,具体原理如图4 中所示。

图4 双目测距原理

如图4 所示,将双目相机图像变换统一到同一坐标系,然后通过视差计算即可得到空间坐标位置。此时定义左侧右侧相机坐标系分别为Ol−Xl Yl和Or−Xr Yr,相机焦距为f,并且有Yl=Yr,则根据三角形相似关系有:

继而目标点的坐标即可获得:

本研究选用的ZED2 相机的双目测距需要使用OpenCV库进行图像处理和计算,同时安装了ZED SDK 并使用其提供的Python API 接口。ZED2 相机的双目测距代码实现主要分为以下几个步骤:

(1)初始化相机并设置参数,如相机分辨率、帧率、曝光等。

(2)读取相机图像并转换为灰度图像,提取图像中的特征点。

(3)计算左右图像中的对应点,并使用三角测量法计算距离。

(4)可视化结果并释放相机资源。

此外,双目测距的精度受到多种因素的影响,包括基线距离、相机分辨率、环境光照等,因此在使用前进行实际测试和调整参数以获得最优的距离估计效果。

■3.3 辅助决策

基于上文中计算机视觉技术对环境的感知,通过收集到的环境感知结果即被检测物体的目标位置及障碍物尺寸,通过结合车辆自身的参数及设置的安全阈值对车辆当前运动是否存在潜在的危险进行自主判断,并将结果输出,如图5所示。

图5 危险预警判断

本次研究智能车辆的长宽高参数为2.6m×1.1m×1.7m本文通过对比检测目标位置的欧氏距离与设定阈值范围来判断是否有物体靠近车辆造成危险,从而对车辆是否进行下一步动作进行判断。如公式3 所示,当Dr=1时表示前方存在危险,需要进行相应的避障操作。

其中:λ是设置的阈值范围,可根据当前车速、制动距离等条件进行相应设置;ρ是检测到的物体与车辆外轮廓之间的欧几里得度量(也称欧氏距离),表示在三维空间中二者的实际距离,其中定义如公式4 所示。

其中:W是车宽,Wl是车辆运动过程存在安全隐患的宽度范围,它是根据车身宽度及留出相应的安全距离相加得到。当检测到物体在车辆正前方时即y 方向的坐标距离小于Wl,输出车辆与检测物体间的距离为z 方向的距离,当检测到物体在车辆运动辐射范围外,其输出的距离是其与车辆最外侧轮廓的距离。

4 实验研究

本次实验所用智能车辅助系统应用平台如图6 所示,其中移动平台为自主研发的移动机器人,移动平台的核心控制元件包括自动驾驶工控机和整车控制器(VCU),通过VCU 控制器与电池控制系统(BCU)、车辆电机驱动(MCU)、电子驻车控制系统(EPB)、电控液压制动系统(EHB)及电子转向系统(EPS)进行通讯,对移动平台进行运动控制。整车硬件平台结构如图4 所示,辅助决策系统将决策信号发送到自动驾驶工控机,通过自动驾驶工控机向整车控制器发送信号控制车辆运动。

图6 视觉辅助驾驶系统实验验证

双目相机放置于车辆前部正上方,将采集的图像信号传输至Jetson Xavier NX 开发套件,通过CAN 通讯方式将本文所提出的辅助驾驶系统的信息传输至移动平台智能驾驶工控机部分,其中系统输出的辅助决策信息包括物体类别、坐标位置、与车之间的距离以及是否需要进行主动控制进行实时输出,并通过智能驾驶工控机向运动控制器(VCU)输入相应制动或减速的车辆运动信号,车辆控制器根据上述信息对运动运动状态进行调整。

本文共对人、椅子、汽车进行物体检测测试,在车辆行驶前进方向设置不同位置的障碍,车辆由远及近驶向被检测物体方向,设置安全距离为5 米。实验验证场景如图7 所示,移动平台由远及近靠近目标检测物体,距离较远时检测结果如图7(a)所示,可以看到能够检测出训练过的物体人和椅子,并将坐标位置输出,此时两个物体距离分别为6.85 米和4.91 米,此时输出Dr=0;当距离靠近时,如图7(b)所示,此时检测到人在车辆行驶方向的正前方,且距离4.24 米小于设置的阈值范围,此时Dr=1,由于椅子在小车前进方向的影响的轮廓外,所以Dr=0,而此时收到辅助决策系统输出的信号即可进行相应操作控制车辆运动状态。综上可以得出结论本文所提出的方法能够实现当在车辆即将发,危险前进行提示。

图7 实验验证场景

5 结束语

本文进行了基于深度相机的视觉辅助决策系统的研究,通过Yolov5 深度学习算法及双目测距原理实现智能车辆的环境感知,获取运动过程中行进路线上的障碍及障碍的相应位置,并根据车辆参数的安全距离及障碍坐标位置对下一步动作的实施提供参考信息。最后通过设置实验对所提出的方法进行验证,结果表明本文所提出的方法能够有效应用在智能车辆自动驾驶领域。