一种用于城市工况下的智能汽车多目标跟踪方法与流程

文档序号:22968566发布日期:2020-11-19 21:45阅读:128来源:国知局
一种用于城市工况下的智能汽车多目标跟踪方法与流程

本发明属于智能汽车视觉技术领域,特别设计了一种用于城市工况下的智能汽车多目标跟踪方法。



背景技术:

多目标跟踪(multipleobjectstracking,mot)技术的主要任务是在给定视频中同时对多个感兴趣的目标进行定位,并且维持他们的身份、记录他们的轨迹。通过多目标跟踪技术可以让智能汽车更充分的了解其周围的环境信息从而做出更精确的控制决策。与单目标跟踪(singleobjecttracking,sot)不同的是多目标跟踪器不仅要设计复杂的外观模型/运动模式、解决尺度变化、平面旋转和光照变化,还要解决目标数量的变化导致的身份信息生成/消失处理问题以及如何维持各自身份信息不干扰问题。

目前多目标跟踪方法主要分为两类:基于检测的跟踪(trackingbasedetection,tsd),检测与跟踪并行的跟踪(tracking&detection,t&d)。基于检测的跟踪因为在检测任务与跟踪任务上各使用了一套模型,所以会导致跟踪过程中的实时性欠佳,因而无法满足智能车辆的实时跟踪的要求。检测与跟踪并行的跟踪因为仅使用一套网络模型,所以模型的实时性能满足智能车辆的跟踪需求,但是受限于传统网络模型的特征提取不充分的缘故,检测与跟踪并行的跟踪往往精度较低,这就限制了检测与跟踪并行的跟踪在智能车辆上的使用。

当前的车辆多目标跟踪常用于高速公路中的跟踪。与高速公路下的场景单一、路面信息明确不同的是,城市场景中的场景信息及其复杂,这就导致了车辆跟踪器在城市场景中的效果有所欠缺。



技术实现要素:

从目前国内外学者主要研究内容看,智能汽车如何在行驶中保持对前方行驶车辆的跟踪是研究的热点。本发明针对城市道路工况下智能汽车多目标跟踪精度低与速度慢的问题,基于检测与跟踪并行的跟踪方法,提出了一种用于城市工况下的智能汽车多目标跟踪方法。本发明的技术方案在下面具体实施方式部分作了详细叙述。

本发明的有益效果:

(1)本发明提出的复合特征提取网络模型(rfen,recombinationfeatureextractionnetwork),相较于现有的resnet、dla-34、hrenet、googlenet等特征提取网络,充分提取了目标信息,提高了跟踪算法的推理能力和抗干扰能力。既保留了检测与跟踪并行的跟踪策略的高速度优势,又大幅度提高了跟踪的精度。

(2)加入了重识别分支,提高了汽车的多目标跟踪精度。

(3)本发明的模型使用了模块化构建,从而可以在不同的算力工况下快速增减模型结构,保障了模型的复用性与维护性。

(4)本发明的模型继承了深度学习的端到端训练模式,使得模型的设置与训练较为轻松。

(5)本发明的模型网络在训练完成后,可在gpu型号:1080、相机像素:1920*1080等低配置条件下,即可达到较高的跟踪速度(25+fps),满足工程实用。

附图说明

图1.本发明的算法流程图

图2.本发明的基础卷积模块(based-conv)架构图

图3.本发明的直连接选择模块(direct-connection-choose)架构图

图4.本发明的基础结构模块(based-block)架构图

图5.本发明的上采样模块(upsample-block)架构图

图6.本发明的下采样模块(downsample-block)架构图

图7.本发明的含有n个结构体的层模块架构图

图8.本发明的复合特征提取网(rfen,recombinationfeatureextractionnetwork)结构图

图9.本发明的检测分支架构图

图10.本发明的重识别分支架构图

具体实施方式

下面结合附图对本发明作进一步说明。

如图1所示的本发明算法的总体运行流程。摄像头所拍到的车辆周围视频帧经复合特征提取网络提取特征信息后,将特征分别输入检测分支与重识别分支。将检测分支的检测结果与重识别分支结果输入至跟踪模块,完成跟踪。本发明的具体实施过程包括如下:

step1:设计基础卷积层(based-conv)

如图2所示,基础卷积层由一个卷积层(conv2d)构成。

其中,卷积层(conv2d)的卷积核尺寸默认为3*3,填充默认为1,步长默认为1。

step2:设计直连接选择模块(direct-connection-choose)

如图3所示,直连接选择模块由一个选择器,一个直连接层,一个基础卷积模块、一个批量归一化层(batchnormal)构成。

其中,基础卷积模块的卷积核尺寸为3*3,填充为1,步长为2。

step3:设计基础结构模块(based-block)

如图4所示,基础结构模块由两个基础卷积层(based-conv)、两个批量归一化层(batchnormal)、两个relu激活层和一个直连接选择模块构成。

其中,基础卷积层1(based-conv1)的输出通道数等于输入通道数。基础卷积层2(based-conv2)的输出通道数等于输入通道数。

step4:设计上采样(upsample-block)模块

如图5所示,上采样模块由可变形卷积核(dcn,deformableconvolution)、批量归一化层(batchnormal)、relu激活层、反卷积核(convtranspose2d)、批量归一化层(batchnormal)、relu激活层按序组成。

其中,可变形卷积核(dcn,deformableconvolution)的卷积核尺寸为3*3,步长为1,填充为1,输出通道数等于输入通道数。反卷积核的卷积核尺寸为4*4,步长为2,填充为2。

其中,所有的上采样模块的输出通道数均指反卷积核的输出通道数。

step5:设计下采样(downsample-block)模块

如图6所示,下采样模块由两个基础卷积层(based-conv)、两个批量归一化层(batchnormal)、两个relu激活层和一个直连接选择模块构成。

其中,基础卷积层2(based-conv2)的输出通道数等于输入通道数。

其中,所有的下采样模块的输出通道均指基础卷积层1(based-conv1)的输出通道。

step6:设计层模块与结构体

如图7所示,层模块由一个下采样模块与多个结构体串行构成。其中,结构体由两个基础结构模块串行构成。

step7:设计复合特征提取网(rfen,recombinationfeatureextractionnetwork)

如图8所示,复合特征提取网(rfen,recombinationfeatureextractionnetwork)由下采样模块、基础卷积模块、层模块、上采样模块构成。其中,表示将输入的多个值进行按位相加并输出。所述复合特征提取网的具体设计过程如下:

首先,构建一个输入模块,其由一个下采样模块与一个基础卷积模块串行构成。其中,下采样模块,其输出通道数为16,基础卷积模块,输出通道数为64。

之后,构建一个含有3个结构体的层模块1。其中,下采样模块的输出通道数为64。

之后,构建一个含有4个结构体的层模块2。其中,下采样模块的输出通道数为128。

之后,构建一个含有6个结构体的层模块3。其中,下采样模块的输出通道数为256。

之后,构建一个含有3个结构体的层模块4。其中,下采样模块的输出通道数为512。

之后,在层模块1后,另插入一个上采样模块1,其输出通道数为32。

之后,在层模块2后,另插入一个上采样模块2,其输出通道数为64。

之后,在层模块3后,另插入一个上采样模块3,其输出通道数为128。

之后,在层模块4后,另插入一个上采样模块4,其输出通道数为256。

之后,将上采样模块4与层模块3的输出相加并输入上采样模块5,其输出通道数为128。

之后,将上采样模块5与层模块2的输出相加并输入上采样模块6,其输出通道数为64。

之后,将上采样模块6与层模块1的输出相加并输入上采样模块7,其输出通道数为32。

之后,将上采样模块3与层模块2的输出相加并输入上采样模块8,其输出通道数为64。

之后,将上采样模块8与层模块1的输出相加并输入上采样模块9,其输出通道数为32。

之后,将上采样模块2与层模块1的输出相加并输入上采样模块10,其输出通道数为32。

最终,将上采样模块7、上采样模块9、上采样模块10、上采样模块1的输出相加并输出。

step8:设计检测分支

如图9所示,检测分支由中心点判断分支、尺寸判定分支并行组成。

其中中心点判断分支由一个基础卷积模块1、一个批量归一化(batchnormal)层、一个relu激活层、两组基础结构模块、一个基础卷积模块2串行构成。其中,基础卷积模块1的输出通道数为256。基础卷积模块2的卷积核尺寸为1*1,输出通道为1。

其中尺寸判定分支由一个基础卷积模块、一个批量归一化(batchnormal)层、一个relu激活层、一个基础卷积模块串行构成。其中,基础卷积模块1的输出通道数为256,基础卷积模块2的卷积核尺寸为1*1,输出通道为2。

step9:设计重识别分支

如图10所示,重识别分支由一个基础卷积模块1、一个批量归一化(batchnormal)层、一个relu激活层、一个基础卷积模块2串行构成。其中,基础卷积模块1的输出通道数为256,基础卷积模块2的卷积核尺寸为1*1,输出通道为256。

step10:复合特征提取网络的特征提取

假定在t时刻,视频输入图像帧i(i∈r3*h*w),h、w、3分别为输入矩阵的高、宽、通道数),将其输入复合特征提取网,从而获得图像的特征。

其中对于直连接选择模块,有计算公式:

其中,l表示为输入值,l∈rc*h*w,h、w、c分别为输入矩阵的高、宽、通道数。l'表示该模块的输出值,l'∈rc′*h′*w′为输出矩阵的通道数。dcc()表示为直连接选择模块的计算。bn()为批量归一化计算。conv()表示二维卷积计算。由此可计算出直连接选择模块的信号输出值。

其中,对于下采样模块,有计算公式:

d'=ds(d)=relu(bn(conv2(relu(bn(conv1(d)))))+dcc(d))

其中,d为输入值,d∈rc*h*w,h、w、c分别为输入矩阵的高、宽、通道数。d'表示该模块的输出值,y'∈rc′*h′*w′输出通道值为c’。ds()表示为下采样模块的计算。relu()表示relu激活函数,bn()为批量归一化计算。conv()表示二维卷积计算,其中conv1()表示为第一个卷积层的卷积计算,conv2()表示为第二个卷积层的卷积计算。dcc()为直连接选择模块的计算。由此可计算出下采样模块的信号输出值。

其中,对于基础结构模块,有计算公式:

b'=bs(b)=relu(bn(conv2(relu(bn(conv1(b)))))+dcc(b))

其中,b为输入值,b∈rc*h*w,h、w、c分别为输入矩阵的高、宽、通道数。b'表示该模块的输出值,b'∈rc′*h′*w′,h'=h,w'=w,输出通道值为c’。bs()表示为基础结构模块的计算。由此可计算出基础结构模块的信号输出值。

其中,对于上采样模块,有计算公式:

u'=ups(u)=relu(bn(convt(relu(bn(dcn(u))))))

其中,u为输入值,u∈rc*h*w,h、w、c分别为输入矩阵的高、宽、通道数。u'表示该模块的输出值,u'∈rc′*h′*w′,h'=2*h,w'=2*w,输出通道值为c’。ups()表示为上采样模块的计算。dcn()表示变形卷积。convt()表示反卷积计算。由此可计算出上采样模块的信号输出值。

其中,对于层模块,有计算公式:

其中,la为输入值,la∈rc*h*w,h、w、c分别为输入矩阵的高、宽、通道数。la'表示该模块的输出值,la'∈rc'*h'*w'输出通道值为c’。la()表示为层模块的计算。bs()为基础结构模块的计算,表示进行了n次基础结构模块的迭代计算。由此可计算出层模块的信号输出值。

从而,对于输入模块,有计算公式:

i'=conv(ds(i))

其中,i为输入图像,表示该模块的输出值,i'∈r64*h′*w′输出通道值为64。由此可以计算出输入模块的信号输出值。

从而,层模块1的输出为la1=la(i'),层模块2的输出为la2=la(la1),层模块3的输出为la3=la(la2),层模块4的输出为la4=la(la3)。其中,

从而上采样模块1的输出值为up1=ups(la1),上采样模块2的输出值为up2=ups(la2),上采样模块3的输出值为up3=ups(la3),上采样模块4的输出值为up4=ups(la4)。其中,

从而,可以得到上采样模块5的输出值up5=ups(up4+la3),上采样模块6的输出值up6=ups(up5+la2),上采样模块7的输出值up7=ups(up6+la1)。其中,

从而,可以得到上采样模块8的输出值up8=ups(up3+la2),上采样模块9的输出值up9=ups(up8+la1)。其中,

从而,可以得到上采样模块10的输出值up10=ups(up2+la1)。其中,

最终,由公式t=(up7+up9+up10+up1)可得复合特征提取网的输出特征。其中,t为复合特征提取网的输出特征值,up7、up9、up10、up1分别为上采样模块7、上采样模块9、上采样模块10、上采样模块1的输出值。

step11:分支信号的生成

将复合特征提取网的输出特征t复制成三份,得到t1=t2=t3=t,将t1、t2、t3分别输入中心点判断分支、尺寸判定分支、重识别分支得到各分支的信号。

其中,对于中心点判断分支,有计算公式:

hp=dp(t1)=conv2(bs(bs(relu(bn(conv1(t1))))))

其中,t1为输入值,hp表示该分支的输出值,dp()表示为中心点判断分支的计算。conv1()表示第一个基础卷积模块的卷积计算,relu()表示relu激活函数,bn()为批量归一化计算。bs()表示基础结构模块的计算。conv2()表示第二个基础卷积模块的卷积计算。由此可计算出中心点判断分支的信号输出值。

其中,对于尺寸判定分支,有计算公式:

box=wh(t2)=conv2(relu(bn(conv1(t2))))

其中,t2为输入值,box表示该分支的输出值,wh()表示为尺寸判定分支的计算。conv1()表示基础卷积模块1的卷积计算,relu()表示relu激活函数,bn()为批量归一化计算。conv2()表示基础卷积模块2的卷积计算。由此可计算出尺寸判定分支的信号输出值。

其中,对于重识别分支,有计算公式:

id=reid(t3)=conv2(relu(bn(conv1(t3))))

其中,t3为输入值,id表示该分支的输出值,reid()表示为重识别分支的计算。conv1()表示基础卷积模块1的卷积计算,relu()表示relu激活函数,bn()为批量归一化计算。conv2()表示基础卷积模块2的卷积计算。由此可计算出重识别分支的信号输出值。

step12:检测信号的生成

将中心点分支输出信号hp进行sigmoid激活,得到激活值hp’,即hp'=sigmoid(hp),其中,sigmoid()表示sigmoid激活函数。通过k项最大值算法(topk),得到hp’的前k个最大值topk_value、最大值所对应的索引topk_index。将最大值所对应的索引topk_index除以hp的第4维度的值即可得到中心点位于图片中的y轴坐标y={y1,y2…yn},n表示有n个物体。最大值所对应的索引topk_index除以hp的第4维度的值所得的余数即为中心点位于图片中的x轴坐标x={x1,x2…xn}。将y轴坐标y={y1,y2…yn}进行维度变换,尺寸变为(1,k,1);x轴坐标x={x1,x2…xn}进行维度变换,尺寸变为(1,k,1)。

将尺寸判定分支信号box按索引topk_index进行维度的交换与聚合得到box',将其进行维度变换,尺寸变为(1,k,2)。由以下公式,可得物体边界框的左上角(xl,yl)与右下角的坐标(xr,yr)。

将边界框进行第1维度聚合,可得边界框集合bbox。

最终,将边界框集合bbox与重识别分支信号按第4维度进行堆叠,即可得检测信号dec。

step13:目标的跟踪

读取保存在寄存单元中的在上一帧中未被关联的检测信号dec_loss。将上一帧的检测信号dec’与未被关联的检测信号dec_loss按第4维度进行堆叠,即可得到新的前序检测信号dec’。

将检测信号dec与前序检测信号dec’进行马氏距离计算,由计算公式:

可得前序检测信号与当前检测信号的物体相似度(设定阈值0.4)。其中由此可组成匹配矩阵。其中,s为协方差矩阵,可由计算公式可得:

其中,表示dec的平均值;表示dec'的平均值,k表示两个检测信号第4维度的最大值。

随后使用匈牙利算法,设定匹配权值的最小阈值0.7,完成跟踪的关联。其中,当匹配权值小于0.7时,不进行关联。将未被关联的检测信号保存进寄存单元。其中,为保证运行速度,若寄存单元中的某一检测信号连续30帧未被关联,则视为目标已经消失,则释放此寄存空间。

上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施方式的具体说明,它们并非用以限制本发明的保护范围,凡未脱离本发明技术所创的等效方式或变更均应包含在本发明的保护范围之内。

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