基于轻量级目标检测网络的交通数字孪生系统的构建方法

文档序号:38035732发布日期:2024-05-17 13:20阅读:7来源:国知局
基于轻量级目标检测网络的交通数字孪生系统的构建方法

本发明属于目标检测车联网,具体涉及一种基于轻量级目标检测网络的交通数字孪生系统的构建方法。


背景技术:

1、利用数字孪生技术可以实现将物理空间中的道路、行人、车辆等交通要素全时空一致复现为信息空间中的数字模型(即数字孪生体),并通过观测、分析、推演、和操作数字孪生体来实现对道路交通的研究和控制,是解决智能网联汽车行驶安全问题的重要手段。

2、目前的道路状况感知,主要采用图像感知的方法,利用一系列计算机视觉算法与深度学习模型对道路目标进行检测。要实现对整条道路的感知和孪生,需要在道路上铺设大量边缘设备进行交通要素的图像检测。但目前的目标检测算法往往需要较高的算力,对计算设备的性能及功耗做出了较高的需求,难以实现大规模的道路端部署。

3、因此,在低算力、低功耗的嵌入式设备上进行目标检测模型的部署,实现对道路多种交通要素的感知,便显得极有意义。相比于目前动辄几百美金、功耗几十瓦的边缘计算模块,功耗只有几瓦,单片价格也仅需几美金的微处理器(mpu)在大规模部署中有着极强的成本以及能耗优势。近年来mpu的性能也在快速上升,已经达到了运行目标检测模型的门槛,通过模型剪枝、量化等模型压缩方法,能够尽可能在不牺牲精度的前提下,减小模型的内存消耗与计算量,使其能够在计算能力有限的mpu上进行部署,实现目标检测任务。同时,通过5g、wifi6等无线通讯技术,使检测结果能够及时上传到数字孪生服务器。数字孪生服务器基于开源交通模拟器以及三维建模软件,利用所接收到的实时结果,实现道路交通状况的数字孪生,帮助后续交通管理者实现对道路的态势预测与控制。

4、在交通数字孪生系统的构建过程中,对道路目标的低成本检测并在系统中进行实时映射便尤为重要,目前的交通数字孪生系统中,虽然有很多方法可以对道路目标进行实时映射,但均需要通过云服务器,利用高性能服务器机房对道路中所拍摄的视频信息进行统一集中处理,这种系统架构的服务器成本、网络带宽成本都相当高,难以在城市道路中大规模部署,限制了交通数字孪生系统在实际交通管理中的应用。


技术实现思路

1、为了克服上述现有技术存在的不足,本发明的目的在于提供一种基于轻量级目标检测网络的交通数字孪生系统的构建方法,该方法具有道路目标识别速度快、识别准确率高、消耗计算资源小且利于部署的特点。

2、为了实现上述目的,本发明采用的技术方案是:

3、基于轻量级目标检测网络的交通数字孪生系统的构建方法,包括以下步骤;

4、步骤1:针对交通场景,对行人与车辆进行检测已经能覆盖大部分情况,首先提取coco数据集中与交通相关的行人、车辆的类别;对所提取数据集进行数据增强后,使用fasternet网络替换yolov5n特征提取骨干后所得到的fasternet-yolov5n轻量化目标检测网络对数据集进行训练,得到目标检测模型文件,获得ai模型以便后续数字孪生系统的部署;

5、步骤2:对步骤1所训练得到的目标检测模型文件进行剪枝并部署到边缘计算设备中;

6、步骤3:针对步骤2中已经部署好目标检测模型的边缘计算设备所需检测的交通场景,使用roadrunner进行数字孪生建模并导入到数字孪生平台carla中,以实现该交通场景的数字孪生;

7、步骤4:步骤2中部署好目标检测模型的嵌入式边缘设备通过网络将其在实际道路中所检测到的道路目标回传到步骤3中carla已经实现的交通数字孪生场景中,实现真实道路中行人与车辆的数字孪生体在场景中的实时生成。

8、所述步骤1具体为:

9、步骤1.1:数据集提取

10、数据集为经类别提取后的coco数据集,原始的coco数据集中有80个类别,在原有的coco数据集的基础上,编写python脚本,针对原本coco数据集中的原图像及原图像的标签进行筛选,去掉多余标签,以实现对其中的车辆和人两种类别的数据进行提取,大大减小了目标检测模型需要训练的数据量,使得最终的模型更有针对性的同时训练成本大大降低;

11、步骤1.2:数据增强

12、为了增加最终训练得到模型的性能和鲁棒性,将步骤1.1所得到的行人和车辆图像进行一系列的变换和扩充,增加神经网络在训练中能够学习到的底层特征,使得最终训练得到的模型能够更好地用于后续步骤,数据增强方式为对图像的亮度、对比度、饱和度的颜色进行变换,以及对图像添加高斯噪声的方法。

13、步骤1.3:yolov5n模型改进及训练

14、对于yolov5n目标检测模型,利用开源的timm神经网络库对yolov5n的配置文件中骨干结构的配置进行修改,使用特征提取能力更强,且计算量更小的fasternet骨干网络替换其原有的骨干网络;在替换骨干网络后,使用步骤1.2中所得到的已实现图像增强的数据集进行训练,得到原始的格式为pt的目标检测模型文件,用于后续处理及部署。所述步骤1.1中,使用python程序对从官网下载的coco数据集中所有图像数据进行提取;

15、首先需要设置下载到本地的coco数据集源图像文件夹位置、源label文件夹位置、目的图像文件夹位置、目的label文件夹位置,程序开始运行后遍历label文件夹,获取label文件夹中每一个txt文件中所包含的所有类别,如果包含要保留的类别,则保留该类别数据,其他类别的数据将被删除;

16、保留后的数据需要将其类别序号进行修改以便后续计算,其中人的类别序号为0,不需要修改,车的类别序号为2,需要修改为1;

17、修改完毕后的txt文件将被复制到目的label文件夹,同时,根据txt文件的名称,程序将找到源图像文件夹中与.txt文件同名的.jpg图像文件,并将这些对应的图像文件复制到目的图像文件夹中,复制到目的文件夹目录后的图像文件及其所对应的txt格式的label文件即为提取完成的数据集。

18、所述步骤1.2中,对于对步骤1.1中已提取的数据集中的图像进行亮度变换和对比度变换,有如下公式,其中f(i,j)为源图像中特定坐标的像素值,g(i,j)为输出图像中特定坐标的像素值,α为图像增益,β为偏置参数,分别控制对比度和亮度:

19、g(i,j)=αf(i,j)+β

20、使用opencv所提供的cv2.multiply()函数,向原图像的像素设置图像增益值α,使用cv2.add()函数,设置图像的偏置参数β实现对图像亮度的修改;

21、针对数据集中图像饱和度的修改,需要先使用cv2.cvtcolor()函数将原图像的色彩模型由rgb转为hsv,进而对其s通道进行比例修改,实现对饱和度进行变换的效果;

22、对于在数据集中的图像上添加高斯噪声,需要对图像均匀地添加以高斯分布为概率密度函数的随机值,高斯分布的概率密度如下:

23、

24、要得到如上分布的随机噪声,需要使用np.random.normal()函数,获得一个与图像大小相同的高斯噪声,再使用cv2.add()函数将所有噪声的影响施加到原图像中。

25、所述步骤2具体为:

26、步骤2.1:基于lamp剪枝算法的模型文件剪枝

27、在实际部署之前需要使用lamp算法进行步骤1.3中所得到的格式为pt的目标检测模型文件的剪枝;

28、步骤1.3中已经训练得到的pt格式的目标检测模型文件中有许多参数,这些参数包括训练得到的模型中每个卷积神经网络节点的卷积核权重以及偏置常数;每个参数在神经网络的前向推理中都会参与到计算,但模型中不同节点的参数对最终计算得到的推理结果的重要程度是不一样的,有一些参数甚至会带来一些错误的影响,使用lamp剪枝算法,对模型文件中每个节点的参数进行评估,将剪枝后损失函数更小或者损失函数值相差不大的节点参数进行剪枝,能够实现在基本不损失精度的情况下让模型整体的计算量变得更小,剪枝后的模型文件同样为pt格式;

29、步骤2.2:模型格式转换

30、为了方便后续在嵌入式设备上对训练好的目标检测模型进行部署,需要将经过步骤2.1剪枝后的pt格式的模型文件进行转换,使得其可以在嵌入式设备上进行部署。

31、对于模型文件的转换,首先需要使用python库onnx,将pytorch训练得到的pt文件转换为深度学习标准模型格式onnx,再利用嵌入式深度学习后端推理框架ncnn中所提供的onnx2ncnn这一工具,将onnx格式的模型文件转换为param和bin格式,最终得到的param文件和bin文件即可编写代码,在嵌入式设备上进行部署;步骤2.3:模型部署及推理

32、针对模型部署及实际推理,使用ncnn深度学习后端推理框架将步骤2.2中所得到的param及bin格式的模型文件部署在嵌入式设备树莓派4b中,树莓派4b通过usb连接摄像头以获得道路中的图像数据,所得到的道路图像数据通过目标检测模型进行检测,获得道路上的行人、车辆信息以获得数字孪生体。

33、所述步骤2.1中,lamp算法的剪枝过程为:

34、1.从步骤1.3中所得到的模型文件中决策树的叶子节点开始,逐层向上对节点进行评估和剪枝;

35、2.对每个节点,计算剪枝前后的损失函数值;

36、3.根据损失函数值的变化来决定是否进行剪枝;如果剪枝后的模型的损失函数值更小或者两者的损失函数值相差不大,那么进行剪枝,反之,如果剪枝后的模型的损失函数值更大,那么不进行剪枝;

37、4.重复步骤2和步骤3,直到所有节点都被评估和剪枝,得到剪枝完成的模型文件,其格式同样为pt。

38、所述步骤2.2具体的转换过程如下:

39、对于模型文件的转换,首先需要使用python库onnx,将pytorch训练得到的pt文件转换为深度学习标准模型格式onnx,再利用嵌入式深度学习后端推理框架ncnn中所提供的onnx2ncnn这一工具,将onnx格式的模型文件转换为param和bin格式,最终得到的param文件和bin文件即可编写代码,在嵌入式设备上进行部署。

40、所述步骤3具体为:

41、步骤3.1:使用roadrunner对道路场景进行建模

42、针对步骤2中已部署目标检测模型并能够实现检测的边缘计算设备所真正需要检测的道路场景,需要对其进行数字孪生场景的搭建。使用道路建模软件roadrunner进行道路本身及道路周边场景的道路建模工作。使用roadrunner建模后的交通道路场景的数字孪生体3d模型符合opendrive标准,导出后为carla所支持的xodr格式文件及fbx格式文件;

43、步骤3.2:将建模后的文件导入carla服务器,完成道路交通场景的数字孪生

44、将步骤3.1中建模并导出的xodr、fbx文件放到软件carla的资源目录下,使用交通数字孪生软件carla对地图进行构建,构建后,步骤3.1中所使用roadrunner建模的交通场景的数字孪生体在carla中进行调用并展示。

45、运行所述数字孪生软件carla的服务器为x86架构,搭载高性能英伟达显卡,具有较强的性能。

46、所述步骤4具体为:

47、步骤4.1:将嵌入式设备与运行carla的服务器进行组网:

48、在步骤2.3中已部署目标检测模型的嵌入式设备与步骤3.2中运行数字孪生软件的carla服务器进行信息传输之前,需要在wlan环境下使用ros进行组网,组网所使用的ros版本为ros melodic,将carla服务器作为master主节点,其他嵌入式设备则作为ros的从节点,负责上传检测到的消息;

49、步骤4.2:利用步骤2.3中已经部署好目标检测模型的嵌入式边缘设备对道路信息进行检测,并将检测结果上传到carla服务器;

50、步骤4.3:carla服务器对接受到的话题信息进行解析,并在数字孪生场景中生成相应检测到的物体。

51、所述嵌入式设备与服务器组网的步骤如下:

52、在嵌入式设备和服务器中都安装好ros melodic,同时,需要确保嵌入式设备和服务器处于同一个无线ap中;

53、对嵌入式设备和服务器的.bashrc文件进行配置,将ros master的ip设置为服务器的ip地址,配置完后需要运行source.bashrc应用配置文件;

54、在服务器端使用roscore运行ros核心,核心运行成功后,嵌入式设备便与carla服务器组网成功;

55、所述步骤4.2中,部署在道路上的边缘嵌入式设备在检测到车辆或者行人后,会将其打包为dw.msg格式的ros话题,并通过ros话题通信,将信息发布到carla服务器中。所述carla服务器以每秒100次的频率对话题进行接收,以确保能够及时获取到嵌入式设备回传的目标信息,嵌入式设备回传的信息中存在车辆和人的信息时,carla服务器将在数字孪生场景中实时创造该目标的数字孪生体,最终便实现了真实道路场景到数字孪生场景的实时映射。

56、本发明的有益效果:

57、本发明利用了现有的数据集,对其中交通相关的部分进行了提取,减小了数据集收集的工作量,并进行了数据增强,使得目标检测模型能够学习到的特征更多,检测的准确度更高。对于已经较为轻量化fasternet-yolov5n模型,本发明将其骨干网络进行了修改,并在训练后进行了剪枝,使得其能够在性能下降不多的前提下部署到算力更弱、成本更低的嵌入式设备上。在嵌入式设备上部署轻量化目标检测模型后,可以通过ros与已进行城市道路建模的carla服务器进行数据交互,实现城市道路的数字孪生。本发明所提出的数字孪生系统,由于采用了低成本的嵌入式边缘设备形成分布式的系统架构,可以大大减少系统的设备成本。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1