CN113641875A - 一种基于自查询的用于无人车的多目标跟踪器及跟踪方法 - Google Patents
一种基于自查询的用于无人车的多目标跟踪器及跟踪方法 Download PDFInfo
- Publication number
- CN113641875A CN113641875A CN202110834691.5A CN202110834691A CN113641875A CN 113641875 A CN113641875 A CN 113641875A CN 202110834691 A CN202110834691 A CN 202110834691A CN 113641875 A CN113641875 A CN 113641875A
- Authority
- CN
- China
- Prior art keywords
- module
- input
- dimension
- convolution
- output
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/907—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
- G06F16/909—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using geographical or spatial information, e.g. location
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Abstract
本发明公开了一种基于自查询的用于无人车的多目标跟踪器及跟踪方法,摄像头所拍到的视频帧经ResNet‑50网络提取特征信息后,将特征分别输入检测分支与自查询分支。将检测分支的检测结果与自查询分支结果进行交并比计算,完成跟踪。本发明提出了一种基于热图响应的检测分支,大幅简化检测分支的后处理流程,有效提升了智能车辆的多目标跟踪速度;加入了自查询分支,提高了智能车辆的多目标跟踪精度;仅使用交并比匹配即可完成对象轨迹的关联,缩减了整个模型的后处理流程,有效提升了智能车辆多目标跟踪的实时性;本发明设计的跟踪器的结构均为模块化构建,可以根据实际使用中的工况的不同修改相应的模块数量,保证了本算法的复用性与维护性。
Description
技术领域
本发明属于智能汽车视觉技术领域,特别设计了一种基于自查询的用于无人车的多目标跟踪器及跟踪方法。
背景技术
智能汽车是一个包括感知、决策及控制的复杂系统,环境感知是路径规划和决策控制的重要前提,基于摄像头的多目标跟踪是环境感知的关键内容之一,对于车辆行驶、行人预判等ADAS系统开发以及自主驾驶的路径规划具有重要影响。多目标跟踪(multipleobjects tracking,MOT)技术的主要任务是在给定视频中同时对多个感兴趣的目标进行定位,并且维持他们的身份、记录他们的轨迹。通过多目标跟踪技术可以让智能汽车更充分的了解其周围的环境信息从而做出更精确的控制决策。现有的多目标跟踪算法往往存在后处理复杂的不足,往往导致难以部署于车载平台。
发明内容
从目前国内外学者主要研究内容看,智能车辆如何在行驶过程中保持对前方感兴趣物体(通常为行人与汽车)的跟踪对智能车辆的后续发展起到不可忽视的在影响。本发明针对城市路况下智能车辆难以对感兴趣物体实现实时跟踪的问题,解决了当前算法在后处理流程复杂的不足,提出了一种基于自查询机制的用于无人车的多目标跟踪器及跟踪方法,本发明的技术方案如下:
一种基于自查询的用于无人车的多目标跟踪器,包括:
特征提取网模块、检测分支模块、自查询分支模块;
所述特征提取网模块用于提取输入图像的特征,并产生四个层的输出;
所述检测分支模块包括:上采样模块、维度变换模块、热图模块、边界模块和矫正模块;该模块包括四个输入分支:
输入分支1,其用于融合特征提取网模块的Layer1的特征,该分支由单个维度变换模块构成,其输入通道为256,输出通道为256;
输入分支2,其用于融合特征提取网模块的Layer2的特征,该分支由一个上采样模块和一个维度变换模块构成,该分支的输入通道为512,输出通道为256;
输入分支3,其用于融合特征提取网模块的Layer3的特征,该分支由两个上采样模块和两个维度变换模块构成,该分支的输入通道为1024,输出通道为256;其中,第一维度变换模块的输出通道为512,第二维度变换模块的输出通道为256;
输入分支4,其用于融合特征提取网模块的Layer4的特征,该分支由两个上采样模块和两个维度变换模块构成,该分支的输入通道为2048,输出通道为256;其中,第一维度变换模块的输出通道为1024,第二维度变换模块的输出通道为512,第三维度变换模块的输出通道为256;
所述检测分支模块将输入分支1、2、3、4的输出结果堆叠并输出至热图模块、边界模块和矫正模块;
所述自查询分支模块包括维度变换模块、编码器、解码器、多层感知器;所述维度变换模块其输入通道为2048,输出通道为512;所述编码器基于Transformer结构构成,输入维度为512,堆叠层数为6层,其中,Transformer的多头注意力数量为8;所述解码器基于Transformer结构构成,输入维度为512,堆叠层数为6层;其中,Transformer的多头注意力数量为8;所述多层感知器输出生成最终的匹配结果。
进一步,所述上采样模块依次包括可变形卷积核、批量归一化层(Batchnormal)、Relu激活层、反卷积核(ConvTranspose2d)、批量归一化层(Batchnormal)、Relu激活层;单个上采样模块能够使得特征图分辨率扩大一倍(即宽、高的尺寸各变为原有尺寸的两倍);
其中,可变形卷积核的卷积核尺寸为3*3,步长为1,填充为1,输出通道数等于输入通道数;反卷积核的卷积核尺寸为4*4,步长为2,填充为2,输出通道数等于输入通道数。
进一步,维度变换模块包括一个卷积层(Conv2d),该卷积层(Conv2d)的卷积核尺寸为1*1,步长默认为1,输出通道数默认为256。
进一步,所述热图模块依次包括一个维度变换模块、一个批量归一化(Batchnormal)层、一个Relu激活层、一个卷积核尺寸为3*3的卷积层(Conv2d),其维度变换模块的输出通道数为256,3*3的卷积层的输出通道为2。
进一步,所述边界模块依次包括一个维度变换模块、一个批量归一化(Batchnormal)层、一个Relu激活层、一个卷积核尺寸为3*3的卷积层(Conv2d),其维度变换模块的输出通道数为256,3*3的卷积层的输出通道为4。
进一步,所述矫正模块依次包括一个维度变换模块、一个批量归一化(Batchnormal)层、一个Relu激活层、一个卷积核尺寸为3*3的卷积层(Conv2d),其维度变换模块的输出通道数为256,3*3的卷积层的输出通道为2。
进一步,所述多层感知器依次包括两个线性层、一个批量归一化(Batchnormal)层、两个Relu激活层构成,其中第一线性层的输入通道为512,输出通道为256,第二线性层2的输入通道为256,输出通道为4。
本发明还提出了根据上述一种基于自查询的用于无人车的多目标跟踪器的跟踪方法,包括:
S1:根据特征提取网模块生成特征;
假定在t时刻,视频输入图像帧I∈R1*3*H*W,H、W、3、1分别为输入矩阵的高、宽、通道数、图片数,将其输入ResNet-50特征提取网,获得图像的特征;
使用ResNet-50特征提取后,分别得到层1(Layer 1)、层2(Layer 2)、层3(Layer3)、层4(Layer 4)的输出特征,分别记为O1,O2,O3,O4;其中O1的尺寸为 其中, 另设当前时刻的历史身份特征为Ft-1∈R500*1*512;
S2:根据检测分支模块生成检测结果;
对于上采样模块,其计算公式如下:
upopt=up(upin)=Relu(cont(Relu(bn(DCN(upin)))))
其中,upin表示该模块的输入,upopt表示该模块的输出,up()表示本模块的计算,cont()表示反卷积计算,Relu()表示Relu激活函数,bn()为批量归一化计算,DCN()表示可变形卷积计算;
pre_do1=conv(O1)
其中,O1为输入值,pre_do1表示此部分的输出,conv表示二维卷积计算,其输入维度为256,输出维度为256,卷积核尺寸为1;
pre_do2=conv(up(O2))
其中,O2为输入值,pre_do2表示此部分的输出,conv表示二维卷积计算,其输入维度为512,输出维度为256,卷积核尺寸为1,up()表示上采样模块的计算;
pre_do3=conv2(up(conv1(up(O3))))
其中,O3为输入值,pre_do3表示此部分的输出,conv表示二维卷积计算,up()表示上采样模块的计算,其中conv1()表示第一个卷积层的卷积计算,即第一维度变换模块的卷积计算,其输入维度为1024,输出维度为512,卷积核尺寸为1;conv2()表示第二个卷积层的卷积计算,即第二维度变换模块的卷积计算,其输入维度为512,输出维度为256,卷积核尺寸为1;
pre_do4=conv3(up(conv2(up(conv1(up(O4))))))
其中,O4为输入值,pre_do4表示此部分的输出,conv表示二维卷积计算,up()表示上采样模块的计算,其中conv1()表示第一个卷积层的卷积计算,即第一维度变换模块的卷积计算,其输入维度为2048,输出维度为1024,卷积核尺寸为1;conv2()表示第二个卷积层的卷积计算,即第二维度变换模块的卷积计算,其输入维度为1024,输出维度为512,卷积核尺寸为1;conv3()表示第三个卷积层的卷积计算,即第三维度变换模块的卷积计算,其输入维度为512,输出维度为256,卷积核尺寸为1;
d=cat(pre_do1,pre_do2,pre_do3,pre_do4)
其中,cat()表示拼接操作,拼接维度为第一维;
将检测分支输入向量d输入值复制成三份,得到d1=d2=d3=d,将d1、d2、d3分别输入至热图模块、边界模块、矫正模块以得到各模块信号;
其中,对于热图模块,有计算公式:
hp=dp(d1)=conv2(Relu(bn(conv1(d1))))
其中,d1为输入值,hp表示该模块的输出值,dp表示热图模块的计算;其中conv1()表示第一个卷积层的卷积计算,即维度变换模块的卷积计算,其输入维度为1024,输出维度为256,卷积核尺寸为1;conv2()表示热图模块中第二个卷积层的卷积计算,其卷积核尺寸为3×3;Relu()表示Relu激活函数,bn()为批量归一化计算;由此可计算出热图模块的信号输出值;
其中,对于边界模块,有计算公式:
bp=db(d2)=conv2(Relu(bn(conv1(d2))))
其中,d2为输入值,bp表示该模块的输出值,db表示边界模块的计算;其中conv1()表示第一个卷积层的卷积计算,即维度变换模块的卷积计算,其输入维度为1024,输出维度为256,卷积核尺寸为1;cony2()表示边界模块中的第二个卷积层的卷积计算,其卷积核尺寸为3×3。Relu()表示Relu激活函数,bn()为批量归一化计算;由此可计算出边界模块的信号输出值;
其中,对于矫正模块,有计算公式:
ap=da(d3)=conv2(Relu(bn(conv1(d3))))
其中,d3为输入值,ap表示该模块的输出值,ap表示矫正模块的计算;其中conv1()表示第一个卷积层的卷积计算,即维度变换模块的卷积计算,其输入维度为1024,输出维度为256,卷积核尺寸为1;conv2()表示矫正模块中的第二个卷积层的卷积计算,其卷积核尺寸为3×3;Relu()表示Relu激活函数,bn()为批量归一化计算,由此可计算出矫正模块的信号输出值;
随后,由热图模块的输出信号hp进行sigmod激活,得到激活值hp’,即hp’=sigmoid(hp),其中,sigmod表示sigmod激活函数;随后由k项最大值算法(topk)可得hp′的前k个最大值,可得k个目标中心点,即k个对象,其对应的位置索引topk_index即为中心点的临时坐标位置,记为H′t;其中,xi表示第i个中心点的横坐标,yi表示第i个中心点的纵坐标,X为横坐标的集合,Y为纵坐标的集合;
将矫正模块的输出信号ap按索引topk_index进行维度的聚合,可得中心点的校正值,记为A={a1,a2…ak};
随后,将中心点的校正值A与中心点的临时坐标位置H′t相加,可得中心点的最终位置坐标Ht;
将边界模块的输出信号bp按索引topkindex进行维度的聚合,可以得到中心点所对应的边界与中心点的偏移距离其中,b′i表示第i个中心点对应的各边界坐标偏移距离,box′表示偏移距离的集合;b′tl表示第i个中心点的边界的左边界与中心点的水平距离,b′tt表示第i个中心点的边界的上边界与中心点的垂直距离,b′dr表示第i个中心点的边界的右边界与中心点的水平距离,b′dd表示第i个中心点的边界的下边界与中心点的垂直距离;由如下公式计算可得边界坐标Box:
最终,将中心点坐标Ht与边界坐标Box输出,可得当前帧的前k个检测对象的检测坐标,记为Dec,其中Dec={Ht,Box};
S3:根据自查询分支模块生成匹配结果;
pre_po4=flatten(conv(O4),dim=2).transpose(0,1)
其中,O4为输入值,pre_po4表示此部分的输出;conv表示二维卷积计算,其输入维度为2048,输出维度为512,卷积核尺寸为1;flatten表示拉伸变换,将原有特征图按行展平;transpose()表示交换两个相应的维度的元素,此处是将特征图的第0维与第1维的元素进行了交换;
随后,pre-po4输入编码器,历史身份特征Ft-1输入解码器作为历史身份特征,即可得预输出pre-po′∈R500*1*512;将预输出pre_o′的第0维与第1维的元素进行交换,可得pre-po″∈R1*500*512,其计算公式如下:
其中,pre-po4、Ft-1为输入值,pre-po″为此部分的输出,transformer()表示进行transformer计算,transpose()表示交换两个相应的维度的元素;
最终将pre_o″输入至多层感知器,可得历史身份于当前帧的匹配结果p∈R1*500*4,其计算公式如下:
p=Relu(linear2(Relu(bn(linear1(pre_o″)))))
其中,pre_o″输入值,p为此部分的输出;Relu()表示Relu激活函数,bn()为批量归一化计算,linear()表示全连接层的线性计算;其中linear1()表示第一个全连接层的线性计算,linear2()表示第二个全连接层的线性计算;
S4:目标的跟踪;
将检测结果Dec与查询结果p进行交并比计算,计算公式:
其中,Dec[box]表示检测框的坐标,∩表示计算两个重合框的相交面积,∪表示计算重合框的并集的面积;
设定交并比阈值0.8,即仅当检测框与查询框的交并比不小于0.8时,两个框所对应的物体方可视为同一个对象,此时将查询框所对应的对象身份赋值给检测框所对应的对象,从而完成对象的跟踪;对于未能完成配对的查询框,保存进寄存单元,并将随之后的上一帧身份特征而输入,对于未能完成配对的检测框,则为其生成新的跟踪身份。
进一步,所述S4还包括:
若寄存单元中的某一检测信号连续30帧未被关联,则视为目标已经消失,则释放此寄存空间;若寄存单元中已存有500个对象,则释放生成时间最早的寄存目标。
本发明的有益效果:
(1)提出了一种基于热图响应的检测分支,大幅简化检测分支的后处理流程,有效提升了智能车辆的多目标跟踪速度。
(2)加入了自查询分支,提高了智能车辆的多目标跟踪精度。
(3)仅使用交并比匹配即可完成对象轨迹的关联,大幅缩减了整个模型的后处理流程,有效提升了智能车辆多目标跟踪的实时性。
(4)本发明的跟踪器的结构均为模块化构建,可以根据实际使用中的工况的不同修改相应的模块数量,保证了本算法的复用性与维护性。
(5)本发明的网络模型实用性很强,训练完成后,在GPU型号:RTX2080Ti、相机像素:1920*1080的条件下,即可达到较高的跟踪速度(25+fps),满足工程实用。
附图说明
图1.本发明的算法流程图
图2.本发明的上采样模块(Upsample-block)架构图
图3.本发明的维度变换模块架构图
图4.本发明的热图模块架构图
图5.本发明的检测分支架构图
图6.本发明的多层感知机架构图
图7.本发明的自查询分支架构图
具体实施方式
下面结合附图对本发明作进一步说明。
如图1所示的本发明跟踪器实施的总体流程。摄像头所拍到的视频帧经ResNet-50网络提取特征信息后,将特征分别输入检测分支与自查询分支。将检测分支的检测结果与自查询分支结果进行交并比计算,完成跟踪。
本发明首先对名称做出解释:
ResNet-50是一种基于残差结构构建的通用深度学习网络,该网络通过跳跃连接的方式解决了常见的线性堆叠导致的梯度爆炸/消失的问题,提升了网络对于特征的提取能力。
Transformer是一种基于自注意力机制的注意力模型,使得模型可以通过对当前输入与给定的特征的相关性做出预测。该类模型可以并行计算且能有效处理序列信息。
可变形卷积核是一种新型的卷积结构,其卷积核的形状可以是变化的。变形的卷积核能让神经网络更关心其任务所对应的区域,使得识别出来的特征更佳。
批量归一化层(Batchnormal)是一种神经网络结构模型,可以使数据的分布变得一致,从而使得训练深层网络模型更加容易和稳定
Relu激活层是一种常见的神经网络激活函数,不仅可以使得神经网络提高对于非线性模型的拟合能力,而且可以有效避免梯度消失的问题,并可以大幅减少训练神经网络的时间花费。
反卷积核(ConvTranspose2d)是一种对于卷积层的逆运算,可以由卷积结果计算出卷积层的近似输入。
本发明的跟踪器通过以下过程实施得到:
Step1:生成 特征提取网(ResNet-50)
本发明的特征提取网基于通用ResNet-50结构改进实现。假定在t时刻,视频输入图像帧I(I∈R3*H*W),H、W、3分别为输入矩阵的高、宽、通道数),将其输入特征提取网,从而获得图像的特征。此时输出特征矩阵为O(O∈R2048*H′*W′),其中H′,W′,2048分别为输出特征矩阵的高、宽、通道数。
Step2:设计 上采样(Upsample-block)模块
如图2所示,上采样模块由可变形卷积核(DCN,Deformable Convolution)、批量归一化层(Batchnormal)、Relu激活层、反卷积核(ConvTranspose2d)、批量归一化层(Batchnormal)、Relu激活层按序组成。单个上采样模块可以使得特征图分辨率扩大一倍(即宽、高的尺寸各变为原有尺寸的两倍)。
其中,可变形卷积核(DCN,Deformable Convolution)的卷积核尺寸为3*3,步长为1,填充为1,输出通道数等于输入通道数。反卷积核的卷积核尺寸为4*4,步长为2,填充为2,输出通道数等于输入通道数。
Step3:设计 维度变换模块
如图3所示,维度变换模块由一个卷积层(Conv2d)构成。
其中,卷积层(Conv2d)的卷积核尺寸默认为1*1,步长默认为1,输出通道数默认为256。
Step4:设计 热图、边界、矫正模块
如图4所示,热图模块由一个维度变换模块、一个批量归一化(Batchnormal)层、一个Relu激活层、一个卷积核尺寸为3*3的卷积层(Conv2d)串行构成。其维度变换模块的输出通道数为256。3*3的卷积层的输出通道为2。
边界模块的架构与热图模块类似,边界模块由一个维度变换模块、一个批量归一化(Batchnormal)层、一个Relu激活层、一个卷积核尺寸为3*3的卷积层(Conv2d)串行构成。其维度变换模块的输出通道数为256。3*3的卷积层的输出通道为4。
矫正模块的架构与热图模块类似,矫正模块由一个维度变换模块、一个批量归一化(Batchnormal)层、一个Relu激活层、一个卷积核尺寸为3*3的卷积层(Conv2d)串行构成。其维度变换模块的输出通道数为256。3*3的卷积层的输出通道为2。
Step5:设计 检测分支模块
首先,构建输入分支1,其作用是融合特征提取层的Layer1的特征。该分支由单个维度变换模块构成,其输入通道为256,输出通道为256。
之后,构建输入分支2,其作用是融合特征提取层的Layer2的特征。该分支由一个上采样模块和一个维度变换模块构成,该分支的输入通道为512,输出通道为256。
之后,构建输入分支3,其作用是融合特征提取层的Layer3的特征。该分支由两个上采样模块和两个维度变换模块构成,该分支的输入通道为1024,输出通道为256。其中,维度变换模块1的输出通道为512,维度变换模块2的输出通道为256。
之后,构建输入分支4,其作用是融合特征提取层的Layer4的特征。该分支由两个上采样模块和三个维度变换模块构成,该分支的输入通道为2048,输出通道为256。其中,维度变换模块1的输出通道为1024,维度变换模块2的输出通道为512,维度变换模块3的输出通道为256。
之后,将输入分支1、2、3、4的输出结果堆叠并输出至热图模块、边界模块和矫正模块。
Step6:设计 多层感知器
如图6所示,多层感知器由两个线性层、一个批量归一化(Batchnormal)层、两个Relu激活层串行构成。其中线性层1的输入通道为512,输出通道为256。线性层2的输入通道为256,输出通道为4。
Step7:设计 自查询分支模块
如图7所示,自查询分支模块依次包括维度变换模块、编码器、解码器、多层感知器。
首先,构建一个维度变换模块,其输入通道为2048,输出通道为512。
之后,构建一个编码器,该编码器基于Transformer结构构成,输入维度为512,堆叠层数为6层。其中,Transformer的多头注意力数量为8。
之后,构建一个解码器,该解码器基于Transformer结构构成,输入维度为512,堆叠层数为6层。其中,Transformer的多头注意力数量为8。
之后,构建一个多层感知器以生成最终的匹配结果。
上述过程设计出的跟踪器,其多目标跟踪的方法包括如下:
Step8:特征提取网模块的特征生成
假定在t时刻,视频输入图像帧I∈Ri*3*H*W,H、W、3、1分别为输入矩阵的高、宽、通道数、图片数,本发明实施例中H=1024,W=1024,将其输入ResNet-50,从而获得图像的特征。使用ResNet-50特征提取后,可以分别得到层1(Layer 1)、层2(Layer 2)、层3(Layer 3)、层4(Layer4)的输出特征,分别记为O1,O2,O3,O4。其中O1的尺寸为其中,另设当前时刻的历史身份特征为Ft-1∈R500*1*512。
Step9:检测分支模块的检测结果的生成
对于上采样模块,其计算公式如下:
upopt=up(upin)=Relu(cont(Relu(bn(DCN(upin)))))
其中,upin表示该模块的输入,upopt表示该模块的输出,up()表示本模块的计算。cont()表示反卷积计算,Relu()表示Relu激活函数,bn()为批量归一化计算,DCN()表示可变形卷积计算。
pre_do1=comv(O1)
其中,O1为输入值,pre_do1表示此部分的输出。conv表示二维卷积计算,其输入维度为256,输出维度为256,卷积核尺寸为1。
pre_do2=conv(up(O2))
其中,O2为输入值,pre_do2表示此部分的输出。conv表示二维卷积计算,其输入维度为512,输出维度为256,卷积核尺寸为1。up()表示上采样模块的计算。
pre-do3=conv2(up(conv1(up(O3))))
其中,O3为输入值,pre-do3表示此部分的输出。conv表示二维卷积计算,。up()表示上采样模块的计算。其中conv1()表示第一个卷积层的卷积计算,即维度变换模块1的卷积计算,其输入维度为1024,输出维度为512,卷积核尺寸为1。conv2()表示第二个卷积层的卷积计算,即维度变换模块2的卷积计算,其输入维度为512,输出维度为256,卷积核尺寸为1。
pre-do4=conv3(up(conv2(up(conv1(up(O4))))))
其中,O4为输入值,pre_do4表示此部分的输出。conv表示二维卷积计算,。up()表示上采样模块的计算。其中conv1()表示第一个卷积层的卷积计算,即维度变换模块1的卷积计算,其输入维度为2048,输出维度为1024,卷积核尺寸为1。conv2()表示第二个卷积层的卷积计算,即维度变换模块2的卷积计算,其输入维度为1024,输出维度为512,卷积核尺寸为1。conv3()表示第三个卷积层的卷积计算,即维度变换模块3的卷积计算,其输入维度为512,输出维度为256,卷积核尺寸为1。
d=cat(pre_do1,pre_do2,pre_do3,pre_do4)
其中,cat()表示拼接操作,拼接维度为第一维。
将检测分支输入向量d输入值复制成三份,得到d1=d2=d3=d,将d1、d2、d3分别输入至热图模块、边界模块、矫正模块以得到各模块信号。
其中,对于热图模块,有计算公式:
hp=dp(d1)=conv2(Relu(bn(conv1(d1))))
其中,d1为输入值,hp表示该模块的输出值,dp表示热图模块的计算。其中conv1()表示第一个卷积层的卷积计算,即维度变换模块的卷积计算,其输入维度为1024,输出维度为256,卷积核尺寸为1。conv2()表示热图模块中第二个卷积层的卷积计算,其卷积核尺寸为3×3。Relu()表示Relu激活函数,bn()为批量归一化计算。由此可计算出热图模块的信号输出值。
其中,对于边界模块,有计算公式:
bp=db(d2)=conv2(Relu(bn(conv1(d2))))
其中,d2为输入值,bp表示该模块的输出值,db表示边界模块的计算。其中conv1()表示第一个卷积层的卷积计算,即维度变换模块的卷积计算,其输入维度为1024,输出维度为256,卷积核尺寸为1。conv2()表示边界模块中的第二个卷积层的卷积计算,其卷积核尺寸为3×3。Relu()表示Relu激活函数,bn()为批量归一化计算。由此可计算出边界模块的信号输出值。
其中,对于矫正模块,有计算公式:
ap=da(d3)=conv2(Relu(bn(conv1(d3))))
其中,d3为输入值,ap表示该模块的输出值,ap表示矫正模块的计算。其中conv1()表示第一个卷积层的卷积计算,即维度变换模块的卷积计算,其输入维度为1024,输出维度为256,卷积核尺寸为1。conv2()表示矫正模块中的第二个卷积层的卷积计算,其卷积核尺寸为3×3。Relu()表示Relu激活函数,bn()为批量归一化计算。由此可计算出矫正模块的信号输出值。
随后,由热图模块的输出信号hp进行sigmod激活,得到激活值hp’,即hp’=sigmoid(hp),其中,sigmod表示sigmod激活函数。随后由k项最大值算法(topk)可得hp′的前k个最大值,可得k个目标中心点,即k个对象,其对应的位置索引topk_index即为中心点的临时坐标位置,记为H′t。其中,xi表示第i个中心点的横坐标,yi表示第i个中心点的纵坐标,X为横坐标的集合,Y为纵坐标的集合。
将矫正模块的输出信号ap按索引topk_index进行维度的聚合,可得中心点的校正值,记为A={a1,a2…ak},其中ai∈{1,2,3...k}表示为网络对于第i个中心点的矫正值的预测值。
随后,将中心点的校正值A与中心点的临时坐标位置H′t相加,可得中心点的最终位置Ht。
将边界模块的输出信号bp按索引topkindex进行维度的聚合,可以得到中心点所对应的边界与中心点的偏移距离其中,b′i表示第i个中心点对应的各边界坐标偏移距离,box′表示偏移距离的集合。b′tl表示第i个中心点的边界的左边界与中心点的水平距离,b′tt表示第i个中心点的边界的上边界与中心点的垂直距离,b′dr表示第i个中心点的边界的右边界与中心点的水平距离,b′dd表示第i个中心点的边界的下边界与中心点的垂直距离。由如下公式计算可得边界坐标Box:
最终,将中心点坐标Ht与边界坐标Box输出,可得当前帧的前k个检测对象的检测坐标,记为Dec。其中Dec={Ht,Box}。
Step10:自查询分支模块的匹配结果的生成
将O4与历史身份特征Ft-1输入至自查询分支模块。
pre_po4=flatten(conv(O4),dim=2).transpose(0,1)
其中,O4为输入值,pre_po4表示此部分的输出。conv表示二维卷积计算,其输入维度为2048,输出维度为512,卷积核尺寸为1。flatten表示拉伸变换,此处是将原有特征图按行展平。transpose()表示交换两个相应的维度的元素,此处是将特征图的第0维与第1维的元素进行了交换。
随后,pre_po4输入至图7的编码器,历史身份特征Ft-1输入至图7的解码器作为历史身份特征,即可得预输出pre_po′∈R500*1*512。将预输出pre_o′的第0维与第1维的元素进行交换,可得pre-po″∈R1*500*512。其计算公式如下:
其中,pre-po4、Ft-1为输入值,pre-po″为此部分的输出。transformer()表示进行transformer计算。transpose()表示交换两个相应的维度的元素。
最终将pre_o″输入至多层感知器,可得历史身份于当前帧的匹配结果p∈R1*500*4。其计算公式如下:
p=Relu(linear2(Relu(bn(linear1(pre_o″)))))
其中,pre_o″输入值,p为此部分的输出。Relu()表示Relu激活函数,bn()为批量归一化计算,linear()表示全连接层的线性计算。其中linear1()表示第一个全连接层的线性计算,linear2()表示第二个全连接层的线性计算。
Step11:目标的跟踪
将检测结果Dec与查询结果p进行交并比计算,计算公式:
其中,Dec[box]表示检测框的坐标,∩表示计算两个重合框的相交面积,∪表示计算重合框的并集的面积。
设定交并比阈值0.8,即仅当检测框与查询框的交并比不小于0.8时,两个框所对应的物体方可视为同一个对象,此时将查询框所对应的对象身份赋值给检测框所对应的对象,从而完成对象的跟踪。对于未能完成配对的查询框,保存进寄存单元,并将随之后的上一帧身份特征而输入,对于未能完成配对的检测框,则为其生成新的跟踪身份。其中,为保证运行速度,若寄存单元中的某一检测信号连续30帧未被关联,则视为目标已经消失,则释放此寄存空间。若寄存单元中已存有500个对象,则释放生成时间最早的寄存目标。
上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施方式的具体说明,它们并非用以限制本发明的保护范围,凡未脱离本发明技术所创的等效方式或变更均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于自查询的用于无人车的多目标跟踪器,其特征在于,包括:
特征提取网模块、检测分支模块、自查询分支模块;
所述特征提取网模块用于提取输入图像的特征,并产生四个层的输出;
所述检测分支模块包括:上采样模块、维度变换模块、热图模块、边界模块和矫正模块;该模块包括四个输入分支:
输入分支1,其用于融合特征提取网模块的Layer1的特征,该分支由单个维度变换模块构成,其输入通道为256,输出通道为256;
输入分支2,其用于融合特征提取网模块的Layer2的特征,该分支由一个上采样模块和一个维度变换模块构成,该分支的输入通道为512,输出通道为256;
输入分支3,其用于融合特征提取网模块的Layer3的特征,该分支由两个上采样模块和两个维度变换模块构成,该分支的输入通道为1024,输出通道为256;其中,第一维度变换模块的输出通道为512,第二维度变换模块的输出通道为256;
输入分支4,其用于融合特征提取网模块的Layer4的特征,该分支由两个上采样模块和两个维度变换模块构成,该分支的输入通道为2048,输出通道为256;其中,第一维度变换模块的输出通道为1024,第二维度变换模块的输出通道为512,第三维度变换模块的输出通道为256;
所述检测分支模块将输入分支1、2、3、4的输出结果堆叠并输出至热图模块、边界模块和矫正模块;
所述自查询分支模块包括维度变换模块、编码器、解码器、多层感知器;所述维度变换模块其输入通道为2048,输出通道为512;所述编码器基于Transformer结构构成,输入维度为512,堆叠层数为6层,其中,Transformer的多头注意力数量为8;所述解码器基于Transformer结构构成,输入维度为512,堆叠层数为6层;其中,Transformer的多头注意力数量为8;所述多层感知器输出生成最终的匹配结果。
3.根据权利要求1所述的一种基于自查询的用于无人车的多目标跟踪器,其特征在于,所述上采样模块依次包括可变形卷积核、批量归一化层(Batchnormal)、Relu激活层、反卷积核(ConvTranspose2d)、批量归一化层(Batchnormal)、Relu激活层;单个上采样模块能够使得特征图分辨率扩大一倍(即宽、高的尺寸各变为原有尺寸的两倍);
其中,可变形卷积核的卷积核尺寸为3*3,步长为1,填充为1,输出通道数等于输入通道数;反卷积核的卷积核尺寸为4*4,步长为2,填充为2,输出通道数等于输入通道数。
4.根据权利要求1所述的一种基于自查询的用于无人车的多目标跟踪器,其特征在于,维度变换模块包括一个卷积层(Conv2d),该卷积层(Conv2d)的卷积核尺寸为1*1,步长默认为1,输出通道数默认为256。
5.根据权利要求4所述的一种基于自查询的用于无人车的多目标跟踪器,其特征在于,所述热图模块依次包括一个维度变换模块、一个批量归一化(Batchnormal)层、一个Relu激活层、一个卷积核尺寸为3*3的卷积层(Conv2d),其维度变换模块的输出通道数为256,3*3的卷积层的输出通道为2。
6.根据权利要求4所述的一种基于自查询的用于无人车的多目标跟踪器,其特征在于,所述边界模块依次包括一个维度变换模块、一个批量归一化(Batchnormal)层、一个Relu激活层、一个卷积核尺寸为3*3的卷积层(Conv2d),其维度变换模块的输出通道数为256,3*3的卷积层的输出通道为4。
7.根据权利要求4所述的一种基于自查询的用于无人车的多目标跟踪器,其特征在于,所述矫正模块依次包括一个维度变换模块、一个批量归一化(Batchnormal)层、一个Relu激活层、一个卷积核尺寸为3*3的卷积层(Conv2d),其维度变换模块的输出通道数为256,3*3的卷积层的输出通道为2。
8.根据权利要求1所述的一种基于自查询的用于无人车的多目标跟踪器,其特征在于,所述多层感知器依次包括两个线性层、一个批量归一化(Batchnormal)层、两个Relu激活层构成,其中第一线性层的输入通道为512,输出通道为256,第二线性层2的输入通道为256,输出通道为4。
9.根据权利要求1-8任一项所述一种基于自查询的用于无人车的多目标跟踪器的跟踪方法,其特征在于,包括:
S1:根据特征提取网模块生成特征;
假定在t时刻,视频输入图像帧I∈R1*3*H*W,H、W、3、1分别为输入矩阵的高、宽、通道数、图片数,将其输入ResNet-50特征提取网,获得图像的特征;
使用ResNet-50特征提取后,分别得到层1(Layer 1)、层2(Layer 2)、层3(Layer 3)、层4(Layer 4)的输出特征,分别记为01,02,O3,O4;其中O1的尺寸为 其中, 另设当前时刻的历史身份特征为Ft-1∈R500*1*512;
S2:根据检测分支模块生成检测结果;
对于上采样模块,其计算公式如下:
upopt=up(upin)=Relu(cont(Relu(bn(DCN(upin)))))
其中,upin表示该模块的输入,upopt表示该模块的输出,up()表示本模块的计算,cont()表示反卷积计算,Relu()表示Relu激活函数,bn()为批量归一化计算,DCN()表示可变形卷积计算;
pre-d01=conv(O1)
其中,O1为输入值,pre_do1表示此部分的输出,conv表示二维卷积计算,其输入维度为256,输出维度为256,卷积核尺寸为1;
pre-do2=conv(up(O2))
其中,O2为输入值,pre_do2表示此部分的输出,conv表示二维卷积计算,其输入维度为512,输出维度为256,卷积核尺寸为1,up()表示上采样模块的计算;
pre_do3=conv2(up(conv1(up(O3))))
其中,O3为输入值,pre_do3表示此部分的输出,conv表示二维卷积计算,up()表示上采样模块的计算,其中conv1()表示第一个卷积层的卷积计算,即第一维度变换模块的卷积计算,其输入维度为1024,输出维度为512,卷积核尺寸为1;conv2()表示第二个卷积层的卷积计算,即第二维度变换模块的卷积计算,其输入维度为512,输出维度为256,卷积核尺寸为1;
pre-do4=conv3(up(conv2(up(conv1(up(04))))))
其中,O4为输入值,pre_do4表示此部分的输出,conv表示二维卷积计算,up()表示上采样模块的计算,其中conv1()表示第一个卷积层的卷积计算,即第一维度变换模块的卷积计算,其输入维度为2048,输出维度为1024,卷积核尺寸为1;conv2()表示第二个卷积层的卷积计算,即第二维度变换模块的卷积计算,其输入维度为1024,输出维度为512,卷积核尺寸为1;conv3()表示第三个卷积层的卷积计算,即第三维度变换模块的卷积计算,其输入维度为512,输出维度为256,卷积核尺寸为1;
do=cat(pre_do1,pre_do2,pre_do3,pre_do4)
其中,cat()表示拼接操作,拼接维度为第一维;
将检测分支输入向量d输入值复制成三份,得到d1=d2=d3=d,将d1、d2、d3分别输入至热图模块、边界模块、矫正模块以得到各模块信号;
其中,对于热图模块,有计算公式:
hp=dp(d1)=conv2(Relu(bn(conv1(d1))))
其中,d1为输入值,hp表示该模块的输出值,dp表示热图模块的计算;其中conv1()表示第一个卷积层的卷积计算,即维度变换模块的卷积计算,其输入维度为1024,输出维度为256,卷积核尺寸为1;conv2()表示热图模块中第二个卷积层的卷积计算,其卷积核尺寸为3×3;Relu()表示Relu激活函数,bn()为批量归一化计算;由此可计算出热图模块的信号输出值;
其中,对于边界模块,有计算公式:
bp=db(d2)=conv2(Relu(bn(conv1(d2))))
其中,d2为输入值,bp表示该模块的输出值,db表示边界模块的计算;其中conv1()表示第一个卷积层的卷积计算,即维度变换模块的卷积计算,其输入维度为1024,输出维度为256,卷积核尺寸为1;conv2()表示边界模块中的第二个卷积层的卷积计算,其卷积核尺寸为3×3;Relu()表示Relu激活函数,bn()为批量归一化计算;由此可计算出边界模块的信号输出值;
其中,对于矫正模块,有计算公式:
ap=da(d3)=conv2(Relu(bn(conv1(d3))))
其中,d3为输入值,ap表示该模块的输出值,ap表示矫正模块的计算;其中conv1()表示第一个卷积层的卷积计算,即维度变换模块的卷积计算,其输入维度为1024,输出维度为256,卷积核尺寸为1;cony2()表示矫正模块中的第二个卷积层的卷积计算,其卷积核尺寸为3×3;Relu()表示Relu激活函数,bn()为批量归一化计算,由此可计算出矫正模块的信号输出值;
随后,由热图模块的输出信号hp进行sigmod激活,得到激活值hp’,即hp′=sigmoid(hp),其中,sigmod表示sigmod激活函数;随后由k项最大值算法(topk)可得hp′的前k个最大值,可得k个目标中心点,即k个对象,其对应的位置索引topk_index即为中心点的临时坐标位置,记为H′t;其中,xi表示第i个中心点的横坐标,yi表示第i个中心点的纵坐标,X为横坐标的集合,Y为纵坐标的集合;
将矫正模块的输出信号ap按索引topk_index进行维度的聚合,可得中心点的校正值,记为A={a1,a2…ak};
随后,将中心点的校正值A与中心点的临时坐标位置H′t相加,可得中心点的最终位置坐标Ht;
将边界模块的输出信号bp按索引topkindex进行维度的聚合,可以得到中心点所对应的边界与中心点的偏移距离其中,b′i表示第i个中心点对应的各边界坐标偏移距离,box′表示偏移距离的集合;b′tl表示第i个中心点的边界的左边界与中心点的水平距离,b′tt表示第i个中心点的边界的上边界与中心点的垂直距离,b′dr表示第i个中心点的边界的右边界与中心点的水平距离,b′dd表示第i个中心点的边界的下边界与中心点的垂直距离;由如下公式计算可得边界坐标Box:
最终,将中心点坐标Ht与边界坐标Box输出,可得当前帧的前k个检测对象的检测坐标,记为Dec,其中Dec={Ht,Box};
S3:根据自查询分支模块生成匹配结果;
pre_po4=flatten(conv(O4),dim=2).transpose(0,1)
其中,O4为输入值,pre_po4表示此部分的输出;conv表示二维卷积计算,其输入维度为2048,输出维度为512,卷积核尺寸为1;flatten表示拉伸变换,将原有特征图按行展平;transpose()表示交换两个相应的维度的元素,此处是将特征图的第0维与第1维的元素进行了交换;
随后,pre_po4输入编码器,历史身份特征Ft-1输入解码器作为历史身份特征,即可得预输出pre_po′∈R500*1*512;将预输出pre_o′的第0维与第1维的元素进行交换,可得pre_po″∈R1*500*512,其计算公式如下:
其中,pre_po4、Ft-1为输入值,pre_po″为此部分的输出,transformer()表示进行transformer计算,transpose()表示交换两个相应的维度的元素;
最终将pre_o″输入至多层感知器,可得历史身份于当前帧的匹配结果p∈R1*500*4,其计算公式如下:
p=Relu(linear2(Relu(bn(linear1(preo″)))))
其中,pre_o″输入值,p为此部分的输出;Relu()表示Relu激活函数,bn()为批量归一化计算,linear()表示全连接层的线性计算;其中linear1()表示第一个全连接层的线性计算,linear2()表示第二个全连接层的线性计算;
S4:目标的跟踪;
将检测结果Dec与查询结果p进行交并比计算,计算公式:
其中,Dec[box]表示检测框的坐标,∩表示计算两个重合框的相交面积,∪表示计算重合框的并集的面积;
设定交并比阈值0.8,即仅当检测框与查询框的交并比不小于0.8时,两个框所对应的物体方可视为同一个对象,此时将查询框所对应的对象身份赋值给检测框所对应的对象,从而完成对象的跟踪;对于未能完成配对的查询框,保存进寄存单元,并将随之后的上一帧身份特征而输入,对于未能完成配对的检测框,则为其生成新的跟踪身份。
10.根据权利要求9所述的跟踪方法,其特征在于,所述S4还包括:
若寄存单元中的某一检测信号连续30帧未被关联,则视为目标已经消失,则释放此寄存空间;若寄存单元中已存有500个对象,则释放生成时间最早的寄存目标。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110834691.5A CN113641875A (zh) | 2021-07-23 | 2021-07-23 | 一种基于自查询的用于无人车的多目标跟踪器及跟踪方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110834691.5A CN113641875A (zh) | 2021-07-23 | 2021-07-23 | 一种基于自查询的用于无人车的多目标跟踪器及跟踪方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113641875A true CN113641875A (zh) | 2021-11-12 |
Family
ID=78418138
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110834691.5A Pending CN113641875A (zh) | 2021-07-23 | 2021-07-23 | 一种基于自查询的用于无人车的多目标跟踪器及跟踪方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113641875A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113963168A (zh) * | 2021-11-15 | 2022-01-21 | 北京联合大学 | 一种改进的高精度端到端车辆多目标跟踪方法 |
-
2021
- 2021-07-23 CN CN202110834691.5A patent/CN113641875A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113963168A (zh) * | 2021-11-15 | 2022-01-21 | 北京联合大学 | 一种改进的高精度端到端车辆多目标跟踪方法 |
CN113963168B (zh) * | 2021-11-15 | 2022-06-21 | 北京联合大学 | 一种改进的高精度端到端车辆多目标跟踪方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110298262B (zh) | 物体识别方法及装置 | |
CN109726627B (zh) | 一种神经网络模型训练及通用接地线的检测方法 | |
CN112069868A (zh) | 一种基于卷积神经网络的无人机实时车辆检测方法 | |
Saha et al. | Enabling spatio-temporal aggregation in birds-eye-view vehicle estimation | |
DE102019115707A1 (de) | Räumliches und zeitliches aufmerksamkeitsbasiertes tiefenverstärkungslernen von hierarchischen fahrspurwechselstrategien zum steuern eines autonomen fahrzeugs | |
CN111598089B (zh) | 一种基于深度学习的车牌矫正与识别方法 | |
US11017542B2 (en) | Systems and methods for determining depth information in two-dimensional images | |
He et al. | Rail transit obstacle detection based on improved CNN | |
US11586865B2 (en) | Apparatus, system and method for fusing sensor data to do sensor translation | |
CN110281949B (zh) | 一种自动驾驶统一分层决策方法 | |
CN112541460B (zh) | 一种车辆再识别方法及系统 | |
CN113936139A (zh) | 一种视觉深度信息与语义分割相结合的场景鸟瞰图重构方法及系统 | |
CN115082293A (zh) | 一种基于Swin Transformer和CNN双分支耦合的图像配准方法 | |
CN112001225A (zh) | 一种在线多目标跟踪方法、系统及应用 | |
CN111460894A (zh) | 一种基于卷积神经网络的车标智能检测方法 | |
Oeljeklaus | An integrated approach for traffic scene understanding from monocular cameras | |
CN115661767A (zh) | 一种基于卷积神经网络的图像前方车辆目标识别方法 | |
CN113641875A (zh) | 一种基于自查询的用于无人车的多目标跟踪器及跟踪方法 | |
CN114973199A (zh) | 一种基于卷积神经网络的轨道交通列车障碍物检测方法 | |
Gao et al. | Autonomous driving based on modified sac algorithm through imitation learning pretraining | |
CN114119749A (zh) | 一种基于密集关联的单目3d车辆检测方法 | |
CN114155414A (zh) | 面向无人驾驶的新型特征层数据融合的方法、系统及目标检测方法 | |
CN117314968A (zh) | 运动信息估计方法、装置、设备、存储介质和程序产品 | |
Samani et al. | F2BEV: Bird's Eye View Generation from Surround-View Fisheye Camera Images for Automated Driving | |
CN117115690A (zh) | 一种基于深度学习和浅层特征增强的无人机交通目标检测方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |