APP下载

轻量化车位识别网络与流畅泊车路径规划设计

2023-06-09王玉龙李景俊翁茂楠黄辉

汽车科技 2023年2期
关键词:路径规划深度学习

王玉龙 李景俊 翁茂楠 黄辉

摘  要:深度学习在自动驾驶开发中得到广泛应用,而在低算力嵌入式平台上部署高算力需求的车位识别网络及复杂的路径规划算法成为行业挑战,因此本文首先设计了轻量化车位识别网络结构,对不同场景下的车位关键点进行检测,其次基于深度搜索设计了快速泊车路径规划算法,然后基于OpenVX的框架将模型和算法部署在多核异构平台上,最终在实车平台上进行自动泊车功能验证。试验结果表明车位检出率大于98%,泊入成功率大于96%,泊车系统运行时间小于40ms,满足实时性要求。

关键词:车位识别;深度学习;自动泊车;路径规划

中图分类号:U463.3       文献标识码:A      文章编号:1005-2550(2023)02-0002-06

Lightweight Recognition Network for Parking Space and Smooth Parking Path Planning Algorithm Design

WANG Yu-long1,2, LI Jing-jun1, WENG Mao-nan1, HUANG Hui1

(1. Auto Engineering Research Institute of Guangzhou Automobile Group, Guangzhou 510641, China; 2. State Key Laboratory of Advanced Design and Manufacturing for Vehicle Body, Changsha 410082, China)

Abstract: Deep learning is widely used in the development of autonomous driving, however the deployment of parking space recognition network and complex path planning algorithm with high computing power requirements on low computational embedded platform has become an industry challenge. Therefore, this paper first designs a lightweight parking space recognition network structure to detect the key points of parking space in different scenarios, then designs a fast parking path planning algorithm based on deep-search algorithm, and then deploys the model and algorithm on a multi-core heterogeneous platform based on the OpenVX framework, and finally performs automatic parking function verification on the real vehicle platform. The test results show that the detection rate of parking space is more than 98%, and the parking success rate is more than 96%, and the parking system running time is less than 40ms, which meets the real-time requirements.

Key  Words: Parking Space Recognition; Deep Learning; Automatic Parking; Path Planning

王玉龍

毕业于湖南大学,博士学历,现就职于广州汽车集团股份有限公司汽车工程研究院,任主任研究员,研究方向为人工智能与自动驾驶。目前发表论文10余篇,专利20余篇,承担国家以及省部级课题5项,入选中国科学技术协会 “青年人才托举工程”。

基于深度学习的计算机视觉和数字图像处理是计算机应用领域的重要研究分支,特别近年来,计算机视觉在算法结构及应用上取得了重大的发展,在军事、医学、多媒体、汽车等领域都具有广泛的应用[1-3],而自动泊车系统也是其中一个应用方向。驾驶员在泊车的过程中,往往会受到汽车盲区的影响,进而造成操作失误而与其他车辆、行人或障碍物发生碰撞等不良后果。自动泊车系统是为了让驾驶员从复杂的泊车操作解放出来的一种驾驶辅助装置,但是自动泊车系统面临着许多挑战性问题:1)深度学习模型一般较大,算力需求高,而量产中采用的嵌入式平台算力较低,无法满足算力需求[3];2)泊车路径规划算法采用的搜索算法计算量大[4],无法满足实时性要求;3)在嵌入式平台上如何高效部署高算力需求的感知模型和路径规划算法以及其他模块[5]。本文通过对深度学习模型算法进行算法优化以及模型压缩和剪枝,快速对不同场景下的车位进行识别,基于深度搜索算法进行快速的泊车路径搜索,根据所规划的泊车路径,自动操控汽车控制器件,如刹车踏板、油门踏板、方向盘、换挡器等,将车辆泊入所指定的车位。本文以TI TDA4为开发平台,基于多核异构的应用框架,通过流水线方式进行自动泊车算法和模型部署,提高系统运行效率。

1    OpenVX介绍

OpenVX(Open Visual X)是Khronos组织建立机器视觉处理的基本层标准,是一个面向开发的,用于跨平台计算机视觉应用加速的标准[5]。OpenVX为常用的视觉函数以及其函数集合提供抽象接口来提高视觉应用程序的性能,尽可能地减少程序运行时间。该标准在基于嵌入式的实时性应用中起到了重要的作用,例如基于嵌入式平台的面部识别、肢体动作跟踪、场景重建、视觉检测、自动泊车辅助等。

OpenVX包含了五个组件: 上下文、内核、参数、节点以及图[6]。 上下文是作用域,所有数据对象和所有框架对接都存在于上下文中,上下文保存了所有对象的引用计数,并且在解构过程中进行垃圾收集以释放丢失的引用;内核封装了各种视觉函数接口,可以通过注册回调函数或者直接调用视觉函数的接口;参数是传递给函数的输入和输出;节点是运算节点,多个节点组成一个图以完成某个功能,其中节点仅从某个图创建并与单个图关联;图是以一组有向(仅单向)非循环方式连接的节点,节点之间通过数据依赖连接在一起。OpenVX的运行是基于节点来运行的,所有的节点会被链接到图中,最后由图统一运行。

基于OpenVX构建应用实例,首先需要创建图,作为上下文索引,其次通过创建不同的节点,负责不同的功能,从采集数据、图像预处理、模型推理、后处理、显示结果等,默认情况下,在图中依次创建的节点,就是链接的顺序。在检验创建的节点正常后,通过运行图,被链接进来的节点都会被执行一次。因为节点是相对独立的,所以在多核执行效率上,能充分发挥并发的作用,最大化芯片的使用效率。

2    深度学习的模型设计与部署

2.1   基于SSD车位检测模型设计

SSD(Single Shot MultiBox Detector)是基于前馈卷积神经网络,产生固定大小的边界框集合和边界框中对象类别的置信度,然后通过非极大抑制来产生最终检测结果。本文采用VGG16网络作为基础网络,用于特征提取,然后再向基础网络中添加辅助结构,产生特定的特征用于检测[7]。本文采用基于深度学习的目标检测算法SSD,对车位的关键点进行检测,通过采集车位数据和标注车位信息,在此基础上训练深度学习模型,基于OpenVX的框架将优化后的模型部署在多核异构处理器上。在模型训练阶段,利用收集到的图像数据与标签文件,制作训练与测试SSD模型的LMDB(轻量级内存映射型数据库)数据格式文件,以此作为模型的输入。模型总体損失由定位损失和分类损失函数的加权求和决定,SSD的网络结构如图1所示[7]。

SSD算法中使用了多个尺度下的特征图,选取的卷积层分别是:Conv4_3,Conv7,Conv8_2,Conv9_2,Conv10_2以及Pool11层的输出特征图,对于输入图片为300×300的图像,特征图尺度分别是:38×38×512、19×19×1024、10×10×512、5×5×256、3×3×256、1×1×256,然后在这些特征图上生成不同尺寸大小的预测框,数目分别是4、6、6、6、4、4,进行检测和分类生成多个候选框,可知每个特征图对应的候选框数目是5776、2166、600、15036、4,共8732个box,最后将不同尺度下的候选框结合起来,通过非极大值抑制算法选出最后的预测框。本文考虑部署到嵌入式平台的算力限制,以及识别准确率的要求,选择模型输入图像尺寸为1008×560的图像,预处理阶段进行数据增强,并设置训练步数20万步,学习率为0.00004进行模型训练。

2.2   多任务轻量化视觉感知模型设计

该多任务轻量化视觉感知模型是基于深度学习的卷积神经网络模型结构用于实现对摄像头视野范围内的车位检测和可行驶区域识别。模型的整体结构可以分为共享层、车位检测分支层、可行驶区域识别分支层等3个子模块组成。模型的输入为尺度为1008×560的3通道RGB图像;模型有两个输出,一个用于输出车位检测推理结果,另一个用于输出可行驶区域识别的推理结果。

(1)共享层结构设计

两个推理任务共用前20层,该前20层卷积层由2个10层的分支并联构成,前一个分支中的卷积核均采用3×3的卷积核,后一个分支中的卷积均采用空洞尺度为5的3×3的卷积核,两个分支给后续的推理带来了不同的感受野,能够提取出更加丰富的特征,每个卷积层后均使用修正线性单元激活函数Relu,在每个分支第2、4、6、8层卷积后使用下采样层,最后将两个分支的推理结果进行拼接。

(2)车位检测分支结构设计

车位检测分支层由4层卷积层构成,每层卷积层均采用3×3的卷积核,且每个卷积层后均使用修正线性单元激活函数Relu,最终输出的车位识别模型推理结果的尺度为40×30×6,可表示为:Output1=40×30×(cre1,x1,y1,cre2,x2,y2)。输出结果将原始图像分为30行40列的等大小矩形块,原始图像中第i行j列的矩形块对应的预测结果为车位识别模型推理结果的第i行j列的6位输出:(cre1,x1,y1,cre2,x2,y2),其中cre1、cre2分别表示该矩形块中含有车位角中心点、空车位中心点的概率,x1、y1、x2、y2分别表示就当前块而言归一化后的车位角中心点横坐标、车位角中心点纵坐标、空车位中心点横坐标、空车位中心点纵坐标。

2.3   模型和运行效率优化

2.3.1 模型优化

在设计多任务轻量化视觉感知模型早期,为了兼顾效率和精度问题,增加了一个分支,增加了空洞卷积,并且考虑到TI TIDL的量化精度下降问题,在每个Convolution后都添加BatchNorm,最后一层的Convolution不需要添加BatchNorm。通过对多任务轻量化视觉感知模型的试验,利用裁剪优化的方式,可将模型减小至8.4M,但是模型的精度损失在4个百分点左右。另外通过增加一个分支,增加空洞卷积,虽然模型大小增大至26M,模型的精度损失能控制在3个百分点以内。

2.3.2 运行效率优化

设计OpenVX应用场景,会首先创建图,一个场景中可以包含多个图,然后在图中调用节点。一般情况下,图都是以非流水线模式运行。以下通过流水线处理流程提升运行效率。非流水线处理流程如图2(a)所示,从图中可以看出,假设每个节点的处理时间都是33毫秒,則每一帧处理完成需要99毫秒,整个系统的图像吞吐量就比较低。

通过优化为流水线处理流程,每一帧处理的时间虽然不变,但是流水线处理模式除了开始的两帧,其他时刻系统都在同时处理三帧,整个系统吞吐量是按顺序处理的三倍。因此基于此模式设计OpenVX的图可以极大提高多核的执行效率。基于流水线技术,可以将OpenVX设计为三个阶段,如图2(b)所示,包括流水线流入阶段、流水线处理阶段和流水线流出阶段。按照OpenVX流程创建节点和图,设置自动调用模式,检查图的参数,调用图的队列管理接口来管理图参数的入队和出队。如此循环,通过管理节点和图的参数入队和出队来实现数据流的流转。基于流水线处理流程,每个节点创建都是独立的,节点的参数通过拷贝的形式存在多个备份,因此节点之间参数也是隔离的,保证了数据的安全性和完整性。

2.4   多核异构架构部署流程

本文是基于多核异构处理器TDA4探讨模型部署和嵌入式自动泊车系统。设计一个高效的数据流程是部署嵌入式自动泊车系统的关键。如图3所示,通过R5F核获取摄像头数据,然后由另一个R5F核做硬件缩放,C66X做图像预处理

(将YUV转BGR),C7X做深度学习算法推理,通过另外一个R5F后处理部分操作,将结果送入到A72核做路径规划,最后对车辆进行相应的控制。这个过程涉及到多个核心,可以做到硬件的流水线并行运行。

3    基于深度搜索的泊车路径规划

本文是通过深度学习算法识别车位、障碍物以及可行驶区域[8],通过环境重建和自定位,构建低维地图,在该地图下基于深度搜索算法进行路径规划并根据规划结果控制车辆。路径规划基于深度搜索算法[9-10],采用多段曲线组合的方式达到完整的路径,单段曲线的表达式是 Q=(θ, L)。其中θ表示车的前轮转角,L表示基于该转角的行车距离,以车辆后轴中心记作车辆坐标。单段曲线直接使用控制量来描述可以直接作为控制输出,因此不需要路径跟随环节,规划的结果即是控制量。

单段路径曲线采用将行车动作离散化后的90种动作曲线,分别对应9种前轮角度θ和10种行程距离L的组合,前轮转向角为该车的前轮的左右转极限角度平均等分,如θ=[-30,-24,-15,-6,0,6,15,24,30];行程选择有L=[-5,-3,-2,-1,-0.5,0.5,1,2,3,5],10种选择,单位m,负值表示倒车,正值为前进。一次行车轨迹的选择有9×10=90种选择,如Q=(θ(15), L(2)),表示该段轨迹曲线为前轮左转15度,向前走2米。其中这里面的动作数量及具体数值都可以调整。如图4所示,车辆在某个状态下可执行的动作离散为90种曲线。

路径搜索使用深度搜索算法[9],递归执行。车辆在状态S0下,尝试执行一种动作曲线,并判断执行该动作后的状态S10是否满足目标状态,而每个动作执行后的状态Sn都可以作为当前状态去重复执行该策略[9],递归执行直到到达目标。

车辆状态可以描述成如图5的搜索树:第一层搜索开始,车辆处于初始位置S0,当尝试执行动作Q0(θ=0,L=0.5)后(转角0,向前直走0.5米),车状态改变为S10,判断当前状态是否达到目标状态,未达到则改变动作为Q1(θ=0,L=1)做同样的判断,直到所有动作尝试完毕,仍为达到目标说明该状态S0下无法通过一段固定动作曲线达到目标;进入下一层搜索,首先以S10作为当前状态,同样执行以上步骤,对所有动作做尝试判断该状态下能否通过一个动作达到目的状态。重复以上步骤,即是基于深度搜索的路径规划。

4    试验验证

本文基于多核异构处理器TDA4部署神经网络模型,在软件架构上,本文利用软件中间件OpenVX抽象不同的核心,对上层提供模块层次的功能,并且通过OpenVX管理内存指针,实现多核之间数据交换。设计流水线场景中,首先通过创建图,定义图运行模式,设置为自动调用模式,校验图的完整性,同时创建多个节点,如图像采集节点、显示节点、预处理节点、后处理节点、图像信号处理节点、镜头矫正节点、图像缩放节点、路径规划节点等。根据节点的特点,对节点运行的核进行划分,如预处理节点和后处理节点运行在DSP C66核上,神经网络节点运行在C71核上,图像采集节点运行在R5核上。 通过入队和出队的形式来管理节点上数据流的进出。

嵌入式部署精度损失检测指标如表1所示。其中acc是车位角中心点和空车位识别结果中识别正确且其它区域无误识别的概率(32个像素等间隔划分区域,默认同一区域内只有一个目标点)。precise是车位角中心点和空车位识别结果中正确结果的比例(点的偏差小于16个像素点被当做同一识别点)。在嵌入式TDA4平台下,可达到25fps的帧率,满足实时性要求。

利用在多核异构嵌入式平台神经网络模型,结合深度搜索算法,完成嵌入式自动泊车系统搭建。测试场景包括垂直车位、平行车位、斜列车位以及窄车位泊车,如图6所示。测试过程中,以0.5秒为周期动态规划路径,单次路径规划用时小于40ms,满足实时性要求,保证泊车过程的流畅性。实测垂直车位、平行车位以及侧方位均可以自适应并较好泊车,测试结果如表2和表3所示,车位检出率98%以上,泊入成功率96%以上,优于行业内的量产产品。

5    结论

本文基于多核异构嵌入式平台提出了轻量化的深度学习卷积神经网络模型结构,并基于该模型和深度搜索算法设计了自动泊车系统。该轻量级神经网络模型结构可以高效地部署在多核异构处理器上,在鲁棒性、精度损失方面都表现良好。同时,通过深度搜索算法自动寻找多段轨迹曲线的最优组合,实现任意姿态泊车,可适应不同场景与车位,可以实现动态路径规划,降低了对其他泊车环节的精度依赖(感知和定位的精度等)。

参考文献:

[1]Gupta A,Anpalagan A,Guan L,et al. Deep Learning for Object Detection and Scene Perception in Self-Driving Cars: Survey,Challenges,and Open Issues[J]. Array,2021,10(10):100057.

[2]张新钰,高洪波,赵建辉,等. 基于深度学习的自动驾驶技术综述[J]. 清华大学学报(自然科学版), 2018,058(004):438-444.

[3]李升波,关阳,侯廉,等. 深度神经网络的关键技术及其在自动驾驶领域的应用[J]. 汽车安全与节能学报,2019,10(2):27.

[4]崔高健,陆柏霖,贺红春,等. 基于逆向Hybrid A*的自动泊车路径规划[J]. 长春工业大学学报,2022(004):043.

[5]张政馗,庞为光,谢文静,吕鸣松,等. 面向实时应用的深度学习研究综述[J]. 软件学报,2020(9):24.

[6]Giduthuri R,Pulli K. OpenVX: a framework for accelerating computer vision[C]. SIGGRAPH ASIA 2016 Courses ACM, 2016, 1-50.

[7]Berg A C,Fu C Y,Szegedy C,et al. SSD: Single Shot MultiBox Detector,10.1007/978-3-319-46448- 0_2[P]. 2015.

[8]黎海涛,张昊,王马成,等. 基于深度学习的智能停车车位检测[J]. 中国电子科学研究院学报,2021,16(12):1264-1269.

[9]费珂,秦小麟,迟贺宇,等. 面向动态路网的最优路径GCN深度搜索方法[J]. 计算机科学与探索,2023,17(1):116-126.

[10]刘庆宇.代价树深度优先搜索及优化[J]. 辽宁工业大学学报(自然科学版),2021,(041-005):322-324.

專家推荐语

张凡武

东风汽车公司技术中心

智能软件中心总师  高级工程师

深度学习目前在自动驾驶开发中得到广泛应用。本文基于多核异构嵌入式平台提出了轻量化的深度学习卷积神经网络模型结构,可以高效地部署在多核异构处理器上,并基于该模型和深度搜索算法设计了自动泊车系统。通过深度搜索算法自动寻找多段轨迹曲线的最优组合,实现动态路径规划,可适应不同场景与车位,降低了对其他泊车环节的精度依赖,在实车平台上实现了任意姿态泊车功能的验证,在鲁棒性、精度损失方面都表现良好,也满足实时性要求。

该轻量级神经网络模型结构较好的解决了在低算力嵌入式平台上部署高算力需求的车位识别网络及复杂的路径规划算法这一行业挑战,系统方案、算法模型设计与部署合理,试验验证较好,结论正确。本论文选题有较强的应用价值,车位识别网络与流畅泊车路径规划设计相关模型、方法可供同行学习参考。

猜你喜欢

路径规划深度学习
公铁联程运输和售票模式的研究和应用
基于数学运算的机器鱼比赛进攻策略
有体验的学习才是有意义的学习
清扫机器人的新型田埂式路径规划方法
自适应的智能搬运路径规划算法
电子商务中基于深度学习的虚假交易识别研究
MOOC与翻转课堂融合的深度学习场域建构
大数据技术在反恐怖主义中的应用展望
基于B样条曲线的无人车路径规划算法
深度学习算法应用于岩石图像处理的可行性研究