一种自动驾驶场景下基于卷积关联网络的行人目标跟踪方法与流程

文档序号:22190752发布日期:2020-09-11 22:02阅读:266来源:国知局
一种自动驾驶场景下基于卷积关联网络的行人目标跟踪方法与流程

本发明涉及多目标跟踪的技术领域,特别涉及一种自动驾驶场景下基于卷积关联网络的行人目标跟踪方法。



背景技术:

随着汽车保有量的日益提高,道路交通安全问题也随之逐渐突出。自动驾驶系统能够在驾驶过程中减轻驾驶者的操作负荷,为驾驶者提供支持和帮助,提高出行效率;提示并修正驾驶者在驾驶过程中的不当操作,避免交通事故的发生,挽救生命和财产。随着人们对驾驶安全性的要求越来越高,自动驾驶技术得到了学术界和工业界的共同关注。在自动驾驶场景下,不仅要将路面上的目标检测出来,还要对他们进行跟踪,了解他们的运动轨迹,以提前控制汽车行驶状态。因此,自动驾驶技术作为人工智能技术的一个重要研究方向,是学术界和工业界共同的研究热点,如今各大互联网公司及汽车制造商纷纷投身自动驾驶技术的研究。目标跟踪作为自动驾驶技术中不可或缺的一个环节,对提高自动驾驶的安全性有着重要作用和意义。

对目标的跟踪首先需要将目标检测出来,在自动驾驶场景下,车辆的运动十分迅速,背景环境的变化也十分剧烈,对算法的实时性和远处小目标的检测与跟踪效果要求更加严格,使得自动驾驶场景下的目标检测与跟踪面临更加巨大的挑战。

目标跟踪的研究离不开目标检测,近十年来目标检测与跟踪的算法发展得十分迅速。在目标检测与跟踪技术的发展过程中,涌现了许多优秀的通用目标检测与跟踪算法。然而,却鲜少有研究者研究针对自动驾驶场景的目标检测与跟踪。这与自动驾驶技术的兴起与流行时间较晚有一定关系,在自动驾驶场景下,行人目标跟踪的速度有一定要求,所以轻量级网络模型的研究也至关重要。

深度学习的复兴极大地推动了目标检测算法的发展。基于深度学习的通用目标检测算法大体可分为以r-cnn系列为代表的两阶段目标检测算法和以yolo系列为代表的一阶段目标检测算法。两阶段目标检测算法将目标检测任务分为生成候选框与候选框分类两个步骤,而一阶段目标检测算法则在一个网络中同时预测出目标的位置和类别。一般来说,两阶段目标检测算法在精度上高于一阶段目标检测算法。但由于两阶段目标检测算法在生成候选框阶段产生的候选框较为密集,造成计算成本较高,导致其运算速度远低于一阶段目标检测算法。经过几年的完善和发展,两阶段目标检测算法不断提高其运算速度,一阶段目标检测算法不断提高其检测精度。到目前为止,无论是两阶段目标检测算法还是一阶段目标检测算法都在精度与速度上得到了一定的平衡。但总体上两阶段目标算法在速度上仍低于一阶段目标检测算法,一阶段目标检测算法在精度上仍低于两阶段目标检测算法。因此,在实际应用中,将根据具体需求选择使用一阶段目标检测算法或两阶段目标检测算法。

目标跟踪任务比目标检测任务更具挑战性,因为目标跟踪不仅要将连续图像中的目标检测出来,还要识别出该目标是否在上一帧出现过,如在上一帧出现过,还需将该目标与上一帧中出现的同一目标关联起来。目标在运动过程中出现的外观形变、尺度变化、光照变化、相似背景干扰及遮挡问题都给目标跟踪带来了巨大的挑战。目标跟踪算法分为单目标跟踪算法与多目标跟踪算法两个分支,在实际应用中,多目标跟踪算法比单目标跟踪算法具有更大的挑战和价值。在多目标跟踪算法中,又以行人多目标跟踪算法为研究重点,大部分的多目标跟踪研究都是在研究行人多目标跟踪。与自动驾驶技术相结合,行人多目标跟踪研究具有巨大的商业价值。

多目标跟踪不仅需要处理形变、光照等干扰问题,还需要处理自遮挡、互遮挡、目标间关联匹配等问题。在多目标跟踪任务中,还存在目标轨迹开始终止时刻未知、目标太小、表观相似等挑战。

目前主流的目标跟踪模式是判别式跟踪模式,判别式跟踪模式是基于检测结果的,首先将要跟踪的目标从图像中检测出来,然后使用某种数据关联算法将检测到的目标与已存在的轨迹关联起来。在经典的判别式多目标跟踪系统中,将目标从图像中检测出来后,通常还要把目标框对应的图片区域送入一个表观特征提取模型来提取目标的表观特征,用于后续数据关联步骤,然而单独的表观特征提取模型将增加额外的计算成本和时间成本,对实时性要求较高的场景(如自动驾驶场景)不友好,且目前所存在的实时多目标跟踪算法的实时性是针对数据关联步骤而言的,导致整个多目标跟踪系统的实时性很难得到保证。

尽管卷积神经网络模型在计算机视觉领域的各项任务上都取得了巨大的突破,但这些性能强大、体型也庞大的网络模型在实际应用中却难有用武之地。因为在实际应用场景下,硬件计算能力与存储能力受限,庞大的网络模型无法部署。而行人目标检测是通用目标检测的一个独特分支,与通用目标检测相比,行人目标检测的背景更为复杂,目标姿态和表观特征(动作、服饰等)更为多样。在自动驾驶场景下,行人目标在图像中所占比例通常很小,且远处行人小目标与路旁的树干的相似性很高,给行人目标检测带来了额外的困难,通用目标检测算法对行人目标的检测效果并不理想。因此,在实际应用场景中,需要体型更轻、计算复杂度更低的轻量级网络模型来满足自动驾驶场景的实时性需求,故而需要改进。

综上所述本发明设计了一个特殊的轻量级一阶段行人目标检测模型,在多尺度特征图上进行检测,为了提取更为丰富的特征,提升检测行人目标的性能,本实施例了多尺度下采样模块,并在下采样完成之后加入了空间金字塔池化,并保证检测的实时性。



技术实现要素:

针对现有技术存在的上述问题,本发明的要解决的第一个技术问题是:为了提升目标跟踪的效果,本文提出了一个卷积关联网络来学习目标间关联性,并设计了一套跟踪策略来处理检测到的目标与已存在的轨迹之间的关系,实现自动驾驶场景下的目标跟踪任务,同时使用了本发明提出的多尺度下采样模块,以减少行人目标信息在下采样过程中的丢失,并在下采样结束之后加入了空间金字塔池化模块,进一步丰富目标的特征信息,以增加小目标的检测性能,为自动驾驶场景下的目标跟踪提供可靠的检测结果。

本发明公开了一种自动驾驶场景下基于卷积关联网络的行人目标跟踪方法,通过利用卷积关联网络与轻量级目标检测网络共享特征,来捕获目标间的关联性,从而实现目标跟踪,具体包括以下步骤:

a1-1、获取一个一阶段目标检测模型,然后一共经过5次下采样,在最后三个尺度的特征图上进行预测,除了第一次下采样时采用普通卷积模块,后面四次下采样均采用多尺度下采样模块中设计到的模型均更换成可分离卷积模块,并将模型在最后三次下采样的特征图上做目标框预测,最终构成轻量级行人目标检测网络;

a2-1、按照以下三个步骤预测目标关联矩阵

①将轻量级行人目标检测模型骨干网提取到的三层特征图分别通过一个卷积核为1×1的普通卷积模块进行特征降维;

②在每层特征图上找到目标框对应的特征点,三层特征图上对应的特征点拼接起来作为该目标的特征向量,并将两帧图像中所有目标的特征向量经过特征穷举排列拼接成一个新的混合特征向量;

③将混合特征向量送入映射网络得到一个编码两帧图像中目标表观特征相似性的特征相似矩阵,映射网络由5个卷积核为1×1的普通卷积模块构成,对目标相似矩阵按行或列做softmax函数即可得到目标关联矩阵;

a3-1、然后通过卷积关联网络设计行人目标跟踪策略,最终获得行人关联的目标跟踪结果。

进一步,轻量级目标检测网络的模型设计具体包括以下步骤:

g1、每个尺度的特征图都对应在训练集聚类得到的3个尺度的先验框,将特征图上的每个点看作目标中心,以每个先验框为基准预测目标框,一共预测三个目标框;

g2、行人目标检测模型在检测行人目标的过程中做了三个方面的预测:目标框位置、置信度与目标类别,相应地,模型的损失函数也由三部分构成:目标框位置损失lcoor、置信度损失lconf与目标类别损失lclass;分别按如下进行计算:

1-1、目标框位置损失lcoor又由中心点坐标误差和宽高误差组成,计算公式如下:

其中w、h为特征图的宽和高,b为每层特征图上先验框的个数,i为特征图上第i个点,共为w×h个点,j为第i个点的第j个预测框,共b个,是一个二值函数,用来判断第i个特征点的第j个预测框是否含有目标,如果此预测框与标签中的某个真实目标框的diou比其他预测框与该真实目标框的diou都大,则说明此预测框负责预测该目标框,的值为1,否则为0,diou是用来衡量预测框于真实框的重叠度的指标,为预设值,d为距离函数,表示预测中心点与真实中心点的欧式距离,而表示预测框宽高的平方根与真实框宽高的平方根的欧式距离;

1-2、置信度损失lconf是预测框中的目标属于某个目标类别的损失,采用二值交叉熵来计算,其计算公式为:

其中相似,也是一个二值函数,不同的是,只要某个预测框与真实框之间的diou大于阈值,的值即为1,否则为0,因为无论一个预测框是否负责预测某个真实目标框,只要它与该目标框的重叠度达到一定阈值,就可用来计算目标框的置信度,由于不负责预测真实目标的预测框远多于负责预测真实目标的预测框,所以加入了一个超参数λnopre来平衡两类预测框贡献的损失,设定λnopre设为0.5。

1-3、目标类别损失lclass也采用二值交叉熵来计算,其计算公式为:

其中classes表示预测目标的类别,本跟踪只有行人一个目标类别,

1-4、然后计算小型行人目标检测模型的损失函数l为:

l=λcoorlcoor+lconf+lclass(3.4)

其中超参数λcoor设置为5,用来增加目标框位置损失占整个损失函数的权重。

进一步,所述普通卷积模块是由一个卷积层后加一个批量标准化层,再经过激活函数leakrelu组成的,且卷积模块中的卷积操作将使用大小为1的填充。

进一步,后面四次下采样均采用多尺度下采样模块中包含有第一多尺度下采样模块a、第二多尺度下采样模块b。

进一步,在每次下采样操作之后通过残差模块训练提取特征,然后直接将前一层的输出加到后一层的输出上,同时通过实现恒等映射的跳跃连接将网络高层的梯度直接传递到网络底层,以加速网络训练。

进一步,所述的第一多尺度下采样模块a由卷积核为3×3、步长为2的可分离卷积模块和滑动窗口为3×3、步长为2的最大池化层,再接一个卷积核为1×1、步长为1的可分离卷积模块组成,所述第一多尺度下采样模块a用于第二次下采样,所述的第二多尺度下采样模块b是在第一多尺度下采样模块a的基础上增加了由卷积核为1×1、步长为1的可分离卷积模块,卷积核为3×3、步长为1的可分离卷积模块以及卷积核为3×3、步长为2的可分离卷积模块组成提取的特征,且所述的第二多尺度下采样模块b用于后面三次下采样。

进一步,在5次2倍下采样完成之后进一步丰富特征信息采用空间金字塔池化模块训练,所述空间金字塔池化模块由3个不同尺寸步长为1的最大池化层组成,该空间金字塔池化模块分别对上层网络输出做滑动窗口为3×3、5×5、7×7的最大池化,然后将得到的特征连接起来,经过一个卷积核为1×1、步长为1的可分离卷积模块。

进一步,diou大于阈值的预设阈值为0.5。

进一步,卷积关联网络的具体设置步骤如下:

s1、获取以ft、ft+n作为模型输入,时间间隔为n的两帧图像从轻量级行人检测模型网络得到的第8倍下采样、第16倍下采样和第32倍下采样特征图的集合,其通道数分别为384、192、96,在本文中n的最小值为1,最大值为30;

s2、获取以bt、bt+n作为模型输入,时间间隔为n的两帧图像中所有行人目标框的集合,再经过特征降维之后三层特征图的通道数降为192、96、48;将行人目标框bt、bt+n转换为目标中心点坐标,在三层特征图上分别找到对应的特征点,同一目标的三个特征点按通道拼接在一起作为目标的特征向量,每个目标的特征向量维度为336;

s3、获取每帧图像中能够同时跟踪到的最大目标数量nmax,nmax设为80,然后根据公式(1)、公式(2)获得两帧图像中的所有目标特征向量构成的特征矩阵;

其中:当图像中目标数小于nmax时,特征矩阵用零填充,中的第i行表示t时刻图像帧中第i个目标的特征;

s4、根据公式(3),获得由中所有目标向量穷举排列,并按通道拼接得到的混合特征向量;

其中:fper的第i行第j列个元素是由中第i行特征向量与中第j行特征向量在通道维度拼接得到的,fper中每个元素的维度为672;

s5、然后将由5个卷积核为1×1的普通卷积模块组成的小网络定义为mapnet,用来捕获目标表观特征的相似性,其中通道数分别为336、168、84、42、1,同时在整个网络中不改变输入特征图的分辨率;

s6、最后按照公式(4)模型输出,并进行编码两帧图像目标间特征的相似程度,以此获得目标间的特征相似矩阵;

其中:第i行表示t时刻图像帧中第i个目标的特征与t+n时刻图像帧中所有目标的特征间的相似性,第j列表示t+n时刻图像帧中第j个目标的特征与t时刻图像帧中所有目标的特征间的相似性。

进一步,卷积关联网络设计行人目标跟踪策略的具体步骤如下:

a1、将t时刻的图像帧输入轻量级行人目标检测模型,得到目标框bt与图像特征ft;

a2、从轻量级行人目标检测模型得到的目标框bt与图像特征ft输入卷积关联网络,从中提取当前帧的目标特征

a3、若当前帧为视频的第一帧,初始化历史特征集合fh与轨迹集合tt,将当前帧的目标特征加入fh,为当前帧中的每个目标建立一个轨迹加入tt,转到步骤a8;若当前帧非视频的第一帧,则将当前帧的目标特征分别与fh中的所有历史帧目标特征两两配对,由卷积关联网络计算每对图像帧的目标特征相似矩阵由该特征相似矩阵得到每对图像帧的综合预测目标关联矩阵

a4、检查历史帧目标特征集合fh中的历史帧目标特征数是否达到其能存储的最大数目h:若没有,将当前帧的目标特征加入fh;若fh中的历史帧目标特征数已达到h,则移除离当前帧时间最远的那一帧的目标特征,再将当前帧的目标特征加入fha;

a5、根据步骤a3中的综合预测目标关联矩阵计算当前帧中的目标与已存在轨迹之间的轨迹关联矩阵

a6、根据步骤a5中得到得轨迹关联矩阵更新当前时刻t已存在的确定轨迹tt和待定轨迹①若当前帧中的某目标i被分配给确定轨迹更新确定轨迹更新该确定轨迹的未成功关联目标帧数u=0;若当前帧中的某目标i被分配给待定轨迹更新待定轨迹更新该待定轨迹的成功关联目标帧数c=c+1;②若当前帧中的某目标未被分配给任何已存在轨迹,则为其建立一个新的轨迹,加入待定轨迹集合设该待定轨迹的成功关联目标帧数c=1;③若某确定轨迹在当前帧中未找到与之关联的目标,则其更新该确定轨迹的未成功关联目标帧数u=u+1;若某待定轨迹在当前帧中未找到与之关联的目标,则更新该待定轨迹的成功关联目标帧数c=0,并从待定轨迹集合中删除该轨迹,该轨迹为待定轨迹集合中未能与当前帧中任一目标关联的轨迹;

a7、检查确定轨迹集合tt与待定轨迹集合①若确定轨迹集合tt中某轨迹的未成功关联目标帧数u超过阈值δw,则认为该目标离开图像,从确定轨迹集合tt中删除,该轨迹指的是:确定轨迹集合中连续δw帧没有目标与其关联的轨迹;②若待定轨迹集合某轨迹的成功关联目标帧数c超过阈值δd,则认为该目标是新进入图像的目标,将该轨迹加入确定轨迹集合tt,设此确定轨迹的未成功关联目标帧数u=0,并从待定轨迹集合中删除该轨迹;此时的确定轨迹集合tt即为t时刻的行人目标跟踪结果;

a8、令t=t+1,获取下一时刻的图像帧。

本发明得到的一种自动驾驶场景下基于卷积关联网络的行人目标跟踪方法,经过实验证,发现在bdd100k和cityperson综合数据集上,本设计的轻量级检测模型的行人目标map能够达到64%,且geforcegtx2080tigpu上的运算速度高达7毫秒/帧,模型大小只有6mb,运算量低至4.47bflops,能够满足自动驾驶场景的需求,而且与经典判别式跟踪模型需额外提取目标的表观特征相比,减少了特征冗余计算,使得整个检测跟踪过程能够满足自动驾驶场景的实时性需求。

附图说明

图1为行人目标跟踪的流程图;

图2为普通卷积模块示意图;

图3为残差模块示意图;

图4为第一多尺度下采样模块a示意图;

图5为第二多尺度下采样模块b示意图;

图6为空间金字塔池化模块示意图;

图7为行人目标检测模型网络结构示意图;

图8为可分离卷积模块示意图;

图9为spd-lite训练过程图;

图10为卷积关联网络的行人目标跟踪模型示意图;

图11为卷积关联网络结构示意图;

图12为真实关联矩阵示意图;

图13为卷积关联网络的跟踪过程示意图。

具体实施方式

下面对本发明作进一步详细说明。

实施例1:

参见图1,本实施例本发明公开了一种自动驾驶场景下基于卷积关联网络的行人目标跟踪方法,通过利用卷积关联网络与轻量级目标检测网络共享特征,来捕获目标间的关联性,从而实现目标跟踪,具体包括以下步骤:

a1-1、获取一个一阶段目标检测模型,然后一共经过5次下采样,在最后三个尺度的特征图上进行预测,除了第一次下采样时采用普通卷积模块,后面四次下采样均采用多尺度下采样模块中设计到的模型均更换成可分离卷积模块,并将模型在最后三次下采样的特征图上做目标框预测,最终构成轻量级行人目标检测网络;

a2-1、按照以下三个步骤预测目标关联矩阵

①将轻量级行人目标检测模型骨干网提取到的三层特征图分别通过一个卷积核为1×1的普通卷积模块进行特征降维;

②在每层特征图上找到目标框对应的特征点,三层特征图上对应的特征点拼接起来作为该目标的特征向量,并将两帧图像中所有目标的特征向量经过特征穷举排列拼接成一个新的混合特征向量;

③将混合特征向量送入映射网络得到一个编码两帧图像中目标表观特征相似性的特征相似矩阵,映射网络由5个卷积核为1×1的普通卷积模块构成,对目标相似矩阵按行或列做softmax函数即可得到目标关联矩阵;

a3-1、然后通过卷积关联网络设计行人目标跟踪策略,最终获得行人关联的目标跟踪结果。

进一步,轻量级目标检测网络的模型设计具体包括以下步骤:

g1、每个尺度的特征图都对应在训练集聚类得到的3个尺度的先验框,将特征图上的每个点看作目标中心,以每个先验框为基准预测目标框,一共预测三个目标框;

g2、行人目标检测模型在检测行人目标的过程中做了三个方面的预测:目标框位置、置信度与目标类别,相应地,模型的损失函数也由三部分构成:目标框位置损失lcoor、置信度损失lconf与目标类别损失lclass;分别按如下进行计算:

1-1、目标框位置损失lcoor又由中心点坐标误差和宽高误差组成,计算公式如下:

其中w、h为特征图的宽和高,b为每层特征图上先验框的个数,i为特征图上第i个点,共为w×h个点,j为第i个点的第j个预测框,共b个,是一个二值函数,用来判断第i个特征点的第j个预测框是否含有目标,如果此预测框与标签中的某个真实目标框的diou比其他预测框与该真实目标框的diou都大,则说明此预测框负责预测该目标框,的值为1,否则为0,diou是用来衡量预测框于真实框的重叠度的指标,为预设值,d为距离函数,表示预测中心点与真实中心点的欧式距离,而表示预测框宽高的平方根与真实框宽高的平方根的欧式距离;

1-2、置信度损失lconf是预测框中的目标属于某个目标类别的损失,采用二值交叉熵来计算,其计算公式为:

其中相似,也是一个二值函数,不同的是,只要某个预测框与真实框之间的diou大于阈值,的值即为1,否则为0,因为无论一个预测框是否负责预测某个真实目标框,只要它与该目标框的重叠度达到一定阈值,就可用来计算目标框的置信度,由于不负责预测真实目标的预测框远多于负责预测真实目标的预测框,所以加入了一个超参数λnopre来平衡两类预测框贡献的损失,设定λnopre设为0.5。

1-3、目标类别损失lclass也采用二值交叉熵来计算,其计算公式为:

其中classes表示预测目标的类别,本跟踪只有行人一个目标类别,

1-4、然后计算小型行人目标检测模型的损失函数l为:

l=λcoorlcoor+lconf+lclass(3.4)

其中超参数λcoor设置为5,用来增加目标框位置损失占整个损失函数的权重。

进一步,所述普通卷积模块是由一个卷积层后加一个批量标准化层,再经过激活函数leakrelu组成的,且卷积模块中的卷积操作将使用大小为1的填充。

进一步,后面四次下采样均采用多尺度下采样模块中包含有第一多尺度下采样模块a、第二多尺度下采样模块b。

进一步,在每次下采样操作之后通过残差模块训练提取特征,然后直接将前一层的输出加到后一层的输出上,同时通过实现恒等映射的跳跃连接将网络高层的梯度直接传递到网络底层,以加速网络训练。

进一步,所述的第一多尺度下采样模块a由卷积核为3×3、步长为2的可分离卷积模块和滑动窗口为3×3、步长为2的最大池化层,再接一个卷积核为1×1、步长为1的可分离卷积模块组成,所述第一多尺度下采样模块a用于第二次下采样,所述的第二多尺度下采样模块b是在第一多尺度下采样模块a的基础上增加了由卷积核为1×1、步长为1的可分离卷积模块,卷积核为3×3、步长为1的可分离卷积模块以及卷积核为3×3、步长为2的可分离卷积模块组成提取的特征,且所述的第二多尺度下采样模块b用于后面三次下采样。

进一步,在5次2倍下采样完成之后进一步丰富特征信息采用空间金字塔池化模块训练,所述空间金字塔池化模块由3个不同尺寸步长为1的最大池化层组成,该空间金字塔池化模块分别对上层网络输出做滑动窗口为3×3、5×5、7×7的最大池化,然后将得到的特征连接起来,经过一个卷积核为1×1、步长为1的可分离卷积模块。

进一步,diou大于阈值的预设阈值为0.5。

进一步,卷积关联网络的具体设置步骤如下:

s1、获取以ft、ft+n作为模型输入,时间间隔为n的两帧图像从轻量级行人检测模型网络得到的第8倍下采样、第16倍下采样和第32倍下采样特征图的集合,其通道数分别为384、192、96,在本文中n的最小值为1,最大值为30;

s2、获取以bt、bt+n作为模型输入,时间间隔为n的两帧图像中所有行人目标框的集合,再经过特征降维之后三层特征图的通道数降为192、96、48;将行人目标框bt、bt+n转换为目标中心点坐标,在三层特征图上分别找到对应的特征点,同一目标的三个特征点按通道拼接在一起作为目标的特征向量,每个目标的特征向量维度为336;

s3、获取每帧图像中能够同时跟踪到的最大目标数量nmax,nmax设为80,然后根据公式(1)、公式(2)获得两帧图像中的所有目标特征向量构成的特征矩阵;

其中:当图像中目标数小于nmax时,特征矩阵用零填充,中的第i行表示t时刻图像帧中第i个目标的特征;

s4、根据公式(3),获得由中所有目标向量穷举排列,并按通道拼接得到的混合特征向量;

其中:fper的第i行第j列个元素是由中第i行特征向量与中第j行特征向量在通道维度拼接得到的,fper中每个元素的维度为672;

s5、然后将由5个卷积核为1×1的普通卷积模块组成的小网络定义为mapnet,用来捕获目标表观特征的相似性,其中通道数分别为336、168、84、42、1,同时在整个网络中不改变输入特征图的分辨率;

s6、最后按照公式(4)模型输出,并进行编码两帧图像目标间特征的相似程度,以此获得目标间的特征相似矩阵;

其中:第i行表示t时刻图像帧中第i个目标的特征与t+n时刻图像帧中所有目标的特征间的相似性,第j列表示t+n时刻图像帧中第j个目标的特征与t时刻图像帧中所有目标的特征间的相似性。

进一步,卷积关联网络设计行人目标跟踪策略的具体步骤如下:

a1、将t时刻的图像帧输入轻量级行人目标检测模型,得到目标框bt与图像特征ft;

a2、从轻量级行人目标检测模型得到的目标框bt与图像特征ft输入卷积关联网络,从中提取当前帧的目标特征

a3、若当前帧为视频的第一帧,初始化历史特征集合fh与轨迹集合tt,将当前帧的目标特征加入fh,为当前帧中的每个目标建立一个轨迹加入tt,转到步骤a8;若当前帧非视频的第一帧,则将当前帧的目标特征分别与fh中的所有历史帧目标特征两两配对,由卷积关联网络计算每对图像帧的目标特征相似矩阵由该特征相似矩阵得到每对图像帧的综合预测目标关联矩阵

a4、检查历史帧目标特征集合fh中的历史帧目标特征数是否达到其能存储的最大数目h:若没有,将当前帧的目标特征加入fh;若fh中的历史帧目标特征数已达到h,则移除离当前帧时间最远的那一帧的目标特征,再将当前帧的目标特征加入fha;

a5、根据步骤a3中的综合预测目标关联矩阵计算当前帧中的目标与已存在轨迹之间的轨迹关联矩阵

a6、根据步骤a5中得到得轨迹关联矩阵更新当前时刻t已存在的确定轨迹tt和待定轨迹①若当前帧中的某目标i被分配给确定轨迹更新确定轨迹更新该确定轨迹的未成功关联目标帧数u=0;若当前帧中的某目标i被分配给待定轨迹更新待定轨迹更新该待定轨迹的成功关联目标帧数c=c+1;②若当前帧中的某目标未被分配给任何已存在轨迹,则为其建立一个新的轨迹,加入待定轨迹集合设该待定轨迹的成功关联目标帧数c=1;③若某确定轨迹在当前帧中未找到与之关联的目标,则其更新该确定轨迹的未成功关联目标帧数u=u+1;若某待定轨迹在当前帧中未找到与之关联的目标,则更新该待定轨迹的成功关联目标帧数c=0,并从待定轨迹集合中删除该轨迹,该轨迹为待定轨迹集合中未能与当前帧中任一目标关联的轨迹;

a7、检查确定轨迹集合tt与待定轨迹集合①若确定轨迹集合tt中某轨迹的未成功关联目标帧数u超过阈值δw,则认为该目标离开图像,从确定轨迹集合tt中删除,该轨迹指的是:确定轨迹集合中连续δw帧没有目标与其关联的轨迹;②若待定轨迹集合某轨迹的成功关联目标帧数c超过阈值δd,则认为该目标是新进入图像的目标,将该轨迹加入确定轨迹集合tt,设此确定轨迹的未成功关联目标帧数u=0,并从待定轨迹集合中删除该轨迹;此时的确定轨迹集合tt即为t时刻的行人目标跟踪结果;

a8、令t=t+1,获取下一时刻的图像帧。

行人目标检测是通用目标检测的一个独特分支,与通用目标检测相比,行人目标检测的背景更为复杂,目标姿态和表观特征(动作、服饰等)更为多样。在自动驾驶场景下,行人目标在图像中所占比例通常很小,且远处行人小目标与路旁的树干的相似性很高,给行人目标检测带来了额外的困难,通用目标检测算法对行人目标的检测效果并不理想。因此,本章设计了一个特殊的轻量级一阶段行人目标检测模型,在多尺度特征图上进行检测。为了提取更为丰富的特征,提升检测行人目标的性能,本实施例了多尺度下采样模块,并在下采样完成之后加入了空间金字塔池化。经过实验,本文提出的轻量级行人目标检测模型能够在bdd100k和cityperson组成的数据集上表现出良好的性能,并保证检测的实时性。

作为现有技术:随着卷积神经网络的发展,网络模型逐渐由堆叠简单的卷积操作发展为堆叠某些特定卷积操作组成的特殊卷积模块(如resnet、densenet),下面几个单元介绍了本实施例需要用到的各个模块:

1.普通卷积模块

众所周知,神经网络模型通常由多层卷积叠加而成,而数据每经过一层,其分布将会发生变化。层层变化叠加,网络高层得到的数据分布变化得十分剧烈,网络高层需不断重新拟合变化剧烈得数据,且随着网络层数的增加,很容易出现梯度消失/爆炸的问题,导致网络难以训练。在机器学习中,独立同分布数据能够简化常规机器学习模型的训练,提升模型性能。因此,sergeyioffe等提出了批量标准化层(batchnormalization)来将变化的数据分布拉回原始数据分布,保证网络中每个卷积层的输入数据分布相对稳定,缓解梯度消失/爆炸的问题,从而使网络模型的训练更加稳定且迅速。因此,本文中使用到的卷积模块是由一个卷积层后加一个批量标准化层(batchnormalization),再经过激活函数leakrelu组成的。且卷积模块中的卷积操作将使用大小为1的填充,以保证在卷积步长为1时不改变特征图的分辨率。本文使用的普通卷积模块如图2所示。

2.残差模块

在网络模型中加入批量标准化层之后网络的训练速度得到提升,梯度消失/爆炸的问题得到缓解,然而随着网络层数的增加,模型的效果不升反降,性能出现了退化(degradation)。因为随着网络的加深,提取到的信息越来越抽象,一些有效信息经过层层传播可能在中途消失,不能到达网络高层。为了解决这个问题,resne提出了带有恒等映射(identitymapping)的残差模块(residualblock)。残差模块直接将前一层的输出加到后一层的输出上,保证网络高层也能接收到低层信息,同时通过实现恒等映射的跳跃连接将网络高层的梯度直接传递到网络底层,进一步缓解了梯度消失/爆炸的问题,加速网络训练。本文的残差模块用在每次下采样操作之后提取特征,残差模块如图3所示。

3.多尺度下采样模块

由于自动驾驶场景下行人目标在图像中所占的比例本就较小,经过多次下采样丢失信息之后,能够利用的信息就更加少了。为了减少下采样过程中的信息丢失,尽可能使下采样操作得到的特征包含更丰富的信息,提高自动驾驶场景下行人目标检测性能,本实施例了两种多尺度下采样模块:

(1)多尺度下采样模块a:由卷积核为3×3、步长为2的普通卷积模块和滑动窗口为3×3、步长为2的最大池化层,再接一个卷积核为1×1、步长为1的普通卷积模块组成,如图4所示。多尺度下采样模块a用于第二次下采样,此时网络还保留了许多原图像信息,只在步长为2的普通卷积模块提取到的特征上连接最大池化层得到的特征就足够了,如图4所示。

(2)多尺度下采样模块b:在多尺度下采样模块a的基础上上增加了由卷积核为1×1、步长为1的普通卷积模块,卷积核为3×3、步长为1的普通卷积模块以及卷积核为3×3、步长为2的普通卷积模块提取的特征,如图5所示。其中卷积核为1×1的普通卷积模块是为了降低通道数,减少计算量;两个卷积核为3×3的普通卷积模块的叠加是为了增加感受野,提取更丰富的特征。多尺度下采样模块b用于后面三次下采样,以减少下采样过程的信息丢失,如图5所示;

4.空间金字塔池化模块

空间金字塔池化模块用在5次2倍下采样完成之后进一步丰富特征信息,由3个不同尺寸步长为1的最大池化层组成。该模块分别对上层网络输出做滑动窗口为3×3、5×5、7×7的最大池化,然后将得到的特征连接起来,经过一个卷积核为1×1、步长为1的普通卷积模块,如图6所示。

在对行人目标检测模型网络结构设计,本实施例行人检测模型是一个一阶段目标检测模型,一共经过5次下采样,在最后三个尺度的特征图上进行预测。网络主要由两部分构成,一部分是用于提取特征的骨干网络,另一部分是用于预测目标框的预测网络,网络结构图如图7所示:

其中,除了第一次下采样时采用普通卷积模块,后面四次下采样均采用了本文特殊设计的多尺度下采样模块。由于目前自动驾驶场景下图像分辨率多为720p或1080p,本实施例的自动驾驶场景下行人目标检测模型的输入不再是通用目标检测常用的正方形,而是长宽比与自动驾驶场景图像相近的长方形(640×352)。

模型在最后三次下采样的特征图上做目标框预测,具体做法是:每个尺度的特征图都对应在训练集聚类得到的3个尺度的先验框(anchor),将特征图上的每个点看作目标中心,以每个先验框为基准预测目标框,一共预测三个目标框。

下面对上述结构的具体说明:行人目标检测模型在检测行人目标的过程中做了三个方面的预测:目标框位置、置信度与目标类别。相应地,模型的损失函数也由三部分构成:目标框位置损失lcoor、置信度损失lconf与目标类别损失lclass,因为无论一个预测框是否负责预测某个真实目标框,只要它与该目标框的重叠度达到一定阈值,就可用来计算目标框的置信度。由于不负责预测真实目标的预测框远多于负责预测真实目标的预测框,所以加入了一个超参数λnopre来平衡两类预测框贡献的损失,本文中λnopre设为0.5。

其中超参数λcoor设置为5,用来增加目标框位置损失占整个损失函数的权重。

轻量级行人目标检测网络设计

上述行人目标检测模型(spd)在服务器(geforcegtx2080tigpu)上处理单张640×352的图片约耗时约8毫秒,计算量为13.06bflops,模型的大小为26m;未采用多尺度下采样模块的小型行人目标检测模型(spd-n)在该服务器上处理同样的图片耗时约6.5毫秒,计算量为10.23bflops,模型大小为21m。而著名的一阶段目标检测模型yolov3在同一服务器上处理单张416×416的图片耗时约20毫秒,计算量65.88bflops,模型大小为237m。可以看出本实施例的小型行人目标检测模型(spd)计算量为yolov3的1/5,理论来说,其处理速度应为yolov3的5倍,但实际处理速度却只为yolov3的2倍。这是因为两者工作集内存(workspace)相去甚远,本实施例的行人目标检测模型计算密度远小于yolov3,在计算资源充足的场景下并未充分利用gpu上的计算单元。详细的模型参数对比可见表3.2。

尽管本实施例的小型行人目标检测模型的处理速度已经能够满足自动驾驶场景下的实时性要求,但此模型的大小在计算资源有限的条件下部署仍较为困难。为此,本实施例采用轻量级模型设计方法mobilene对3.3设计的小型行人目标检测模型(spd)进行了改进,在国内外研究现状中提到,mobilenet提出的可分离卷积将卷积过程分为depth-wise和point-wise两个步骤,其本质是将分组卷积思想用到极致。根据此原则,本章节将第一次下采样操作之后的所有卷积核为3*3的普通卷积模块替换为可分离卷积模块,如图8所示。轻量级行人目标检测模型的损失函数与小型行人目标检测模型的损失函数保持一致,经过轻量化改进,该轻量级行人目标检测模型在服务器上处理单张640×352的图片约耗时7毫秒,计算量为4.47bflops,模型的大小为6m。与之前的小型行人目标检测模型相比,轻量级行人目标检测模型的计算量减少约65.8%,模型大小减少76.9%,处理速度约提升12.5%。速度提升不与计算量减少成正比的原因上文已有说明,因为在计算资源充足的场景下没有充分利用计算单元。但在计算资源受限的场景下(如自动驾驶场景),此轻量级行人目标检测模型仍能运行并保证处理速度,而其他模型连部署都比较困难。

对上述各个模型训练与结果分析:

上述轻量级行人目标检测模型的训练集是从bdd100k训练集中按正负样本1:1的比例挑选的图片与所有cityperson训练集图片的集合。本实施例的实验环境为ubuntu16.04.6lts,geforcegtx2080tigpu。小型行人目标检测检测模型spd、spd-n的训练迭代次数为四十万步,轻量级行人目标检测模型spd-lite的训练迭代次数为五十万步,初始学习率均为0.0026。在整个训练过程中调整了三次学习率,每次调整为原来的1/10,在第14万步、第18万步和第24万步。spd-lite的训练过程图如图9所示,从训练图可以看出在第一次调整学习率时loss有明显的下降,map也有比较明显的提升。但第二次和第三次调整学习率时二者均没有明显变化,可知模型已经接近收敛了。

尽管spd-lite的模型大小、工作及内存及计算量都远小于spd,但map仅比spd少4个百分点,在各方面都十分适合在自动驾驶场景下做行人目标检测。表3.2列举了本实施例的行人目标检测模型spd、spd-lite与著名的一阶段目标检测模型yolov3的各项参数及在本文选择的验证集上的map对比。实验证明,本实施例的多尺度下采样模块对于提高行人目标检测性能是有效的,且本实施例的轻量级行人目标检测模型能够满足自动驾驶场景的需求。

表3.2目标检测模型参数对比

对自动驾驶场景下的卷积关联网络的行人目标跟踪的说明

目前主流的目标跟踪模式是判别式跟踪模式。判别式跟踪模式是基于检测结果的,首先将要跟踪的目标从图像中检测出来,然后使用某种数据关联算法将检测到的目标与已存在的轨迹关联起来。在经典的判别式多目标跟踪系统中,将目标从图像中检测出来后,通常还要把目标框对应的图片区域送入一个表观特征提取模型来提取目标的表观特征,用于后续数据关联步骤。然而单独的表观特征提取模型将增加额外的计算成本和时间成本,对实时性要求较高的场景(如自动驾驶场景)不友好。且目前所存在的实时多目标跟踪算法的实时性是针对数据关联步骤而言的,整个多目标跟踪系统的实时性很难得到保证。为此,本章设计了一个卷积关联网络,与轻量级目标检测网络共享特征,来捕获目标间的关联性,从而实现目标跟踪,如图10所示。

第一点、卷积关联网络结构设计

本实施例提出的卷积关联网络(can)在预测目标关联矩阵时分为三个步骤:①将轻量级行人目标检测模型骨干网提取到的三层特征图分别通过一个卷积核为1×1的普通卷积模块进行特征降维;②在每层特征图上找到目标框对应的特征点,三层特征图上对应的特征点拼接起来作为该目标的特征向量,并将两帧图像中所有目标的特征向量经过特征穷举排列拼接成一个新的混合特征向量;③将混合特征向量送入映射网络得到一个编码两帧图像中目标表观特征相似性的特征相似矩阵,映射网络由5个卷积核为1×1的普通卷积模块构成,对目标相似矩阵按行或列做softmax即可得到目标关联矩阵,具体网络结构如图11所示:

其中的参数含义如下:

(1)ft、ft+n:模型输入,时间间隔为n的两帧图像从轻量级行人检测模型骨干网络得到的第8倍下采样、第16倍下采样和第32倍下采样特征图的集合,其通道数分别为384、192、96。在本文中n的最小值为1,最大值为30。

(2)bt、bt+n:模型输入,时间间隔为n的两帧图像中所有行人目标框的集合。经过特征降维之后三层特征图的通道数降为192、96、48。将行人目标框bt、bt+n转换为目标中心点坐标,在三层特征图上分别找到对应的特征点,同一目标的三个特征点按通道拼接在一起作为该目标的特征向量,每个目标的特征向量维度为336。

(3)nmax:每帧图像中能够同时跟踪到的最大目标数量,本文将nmax设为80。

(4)分别为两帧图像中的所有目标特征向量构成的特征矩阵,当图像中目标数小于nmax时,特征矩阵用零填充。中的第i行表示t时刻图像帧中第i个目标的特征。

(5)中所有目标向量穷举排列,按通道拼接得到的混合特征向量。fper的第i行第j列个元素是由中第i行特征向量与中第j行特征向量在通道维度拼接得到的,fper中每个元素的维度为672。

(6)mapnet:由5个卷积核为1×1的普通卷积模块组成的小网络,用来捕获目标表观特征的相似性,通道数分别为336、168、84、42、1,整个网络不改变输入特征图的分辨率。

(7)模型输出,编码了两帧图像目标间特征的相似程度。第i行表示t时刻图像帧中第i个目标的特征与t+n时刻图像帧中所有目标的特征间的相似性,第j列表示t+n时刻图像帧中第j个目标的特征与t时刻图像帧中所有目标的特征间的相似性。

本实施例设计的卷积关联网络的模型大小为1.6mb,计算量约为1.96bflops,是一个十分小的网络模型,与上述提出的轻量级行人检测模型一起构成实时多目标行人检测跟踪系统。两个模型一共占用存储空间7.6mb,总计算量约为6.43bflops,适用于硬件资源受限的自动驾驶场景。

第二点、卷积关联网络的损失函数设计

从上一节的描述中可知,卷积关联网络的输出是一个编码两帧图像中目标间特征相似性的矩阵额外增加一行形成矩阵额外增加一列形成矩阵用来处理新进入图像或离开图像的目标。额外增加的行和列的格式为为所有元素为1的行向量或列向量,λ是一个超参数,本文设为10。对按列做softmax得到t+n时刻图像帧中所有目标与t时刻图像帧中所有目标间的预测目标关联矩阵其每一列都表明t+n时刻图像帧中某个目标分别与t时刻图像帧中所有目标关联的概率;对按行做softmax得到t时刻图像帧中所有目标与t+n时刻图像帧中所有目标间的预测目标关联矩阵其每一行都表明t时刻图像帧中某个目标分别与t+n时刻图像帧中所有目标关联的概率。分别是两帧图像中目标的前向预测目标关联矩阵和反向预测目标关联矩阵。

与预测目标关联矩阵形似,卷积关联网络的标签是一个(nmax+1)×(nmax+1)的二值关联矩阵额外增加的行和列用来处理新进入图像或离开图像的目标。如果t时刻图像帧中的第i个目标对应t+n时刻图像帧中的第j个目标,则第i行第j列的元素值为1,其他列为0。如果t+n时刻图像帧中第i个目标是新进入图像的目标,则第nmax+1行第i列的元素值为1,其他列为0;如果t时刻图像帧中的第j个目标离开图像,未出现在t+n时刻图像帧中,则第nmax+1列第j行的元素值为1,其他行为0。当nmax=4时,目标数目无变化、有新进入目标及有目标离开情况下的真实关联矩阵分别如图12的(a)、(b)、(c)所示。

卷积关联网络的损失函数是在预测目标关联矩阵与真实目标关联矩阵上定义的,主要由以下四部分构成。

(1)前向关联预测损失lforward,t时刻图像帧中的目标对t+n时刻图像帧中的目标进行关联预测的结果与真实关联矩阵间的交叉熵损失:

其中为al去掉最后一行得到的矩阵。

(2)反向关联预测损失lbackward,t+n时刻图像帧中的目标反向对t时刻图像帧中的目标进行关联预测的结果与真实关联矩阵间的交叉熵的损失:

其中为al去掉最后一列得到的矩阵。

(3)前向关联预测与反向关联预测一致性损失lconsistency,前向关联预测与反向关联预测结果不一致的损失:

其中为apc、apr分别去掉最后一列和最后一行得到的矩阵。

(4)综合关联预测损失lsynthesis,取前向预测目标关联矩阵与反向预测目标关联矩阵在同一位置的最大值组成综合预测目标关联矩阵与真实关联矩阵间的交叉熵损失:

其中为al去掉最后一行和最后一列得到的矩阵,的含义与公式4.3的含义相同。

为简便起见,在损失函数定义公式中将预测目标关联矩阵与真实目标关联矩阵的下标(t,t+n)省去,∑代表对矩阵的所有元素求和操作,⊙代表对矩阵求哈达玛积(hadamardproduct)。

综上,本章设计的卷积关联网络的损失函数l为:

第三点、基于卷积关联网络的行人目标跟踪过程

由于目标遮挡与轨迹的产生与消亡问题是每个多目标跟踪算法都必须考虑的问题。在本文中,如果一个轨迹在连续δw帧中都没有目标与之关联,则认为其已离开图像,从轨迹集合中删除该轨迹;如果在δw帧之内重新找到与之关联的目标,则认为跟踪目标存在遮挡,继续对该轨迹进行更新。对于不能与轨迹集合中任何轨迹关联的目标,可能是新进入图像的目标,也可能是误检目标。因此不立即将其加入轨迹集合,而是放入一个待定轨迹集合,如果之后连续δd帧中都能找到与之关联的目标,则认为其是新进入图像的目标,将该轨迹加入轨迹集合。

本文使用轨迹集合tt来表示t时刻存在的确定轨迹,表示t时刻存在的待定轨迹,表示t时刻存在的第k个确定轨迹,表示t时刻存在的第k个待定轨迹。每个轨迹都是二元组(frame_id,object_id)的集合,表示第frame_id帧图像中第object_id个目标属于该轨迹。如:表明第0帧中的第1个目标、第1帧中的第3个目标、第2帧中的第2个目标、第3帧中的第2个目标均属于t时刻的第一个轨迹,即它们是同一个跟踪目标。

此外,本文还使用了一个历史帧目标特征集合fh来存储历史目标特征,和一个轨迹关联矩阵来描述当前帧检测到的目标与已存在轨迹间关联的概率,函数count(·)表示计算集合中元素个数,dt为当前帧检测到的目标集合。令当前帧目标特征与分别于f中存储的所有历史目标特征(共h帧)两两计算综合预测目标关联矩阵是由额外增加一列的得到的。超参数h用来控制f中能存储的最大历史帧目标特征的数目。在f中存储的所有历史帧中的目标都已与属于已存在的某确定轨迹或某待定轨迹因此当前帧中第i个目标与某历史帧中的第j个目标关联的概率,即为当前帧中目标i与历史帧中目标j所属轨迹关联的概率。而轨迹关联矩阵中的每个元素,是从当前帧中某目标分别与h帧历史帧目标的目标关联矩阵计算得到的轨迹关联概率之和。根据轨迹关联矩阵,就能够将已存在的轨迹与当前帧中的目标关联起来,从而达到目标跟踪的目的,上述行人目标跟踪过程如图13所示。

本申请人需要说明的是上述公式中的未描述的英文自己均是现有卷积关联网络中训练的常规英文缩写,也是本领域技术人员熟知的技术,故此不做具体描述。

最后进行结果分析:

本实施例中的卷积关联网络模型在多目标跟踪数据集mot17上进行训练和测试。mot17是目前应用最广且认可程度最高的多目标跟踪挑战赛的数据集,其跟踪目标是行人。mot17包含的7个室内外场景的视频与mot16的视频相同,它们的背景、光照、拍摄角度、相机运动情况及帧率各不相同,除了其中一个场景的视频分辨率为640×480外,其余视频的分辨率均为1920×1080。每个视频分为两部分,一部分用于训练,另一部分用于测试。该数据集提供sdp、faster-rcnn及dpm的检测结果供挑战者使用,挑战者也可以选择使用自己的检测模型的结果。mot17的训练集中共包含15948帧图像和1638个轨迹;测试集中共包含17757帧图像目标框和2355个轨迹数。mot17未提供验证集和测试集标签,因此需将测试结果提交至motchallenge官方网站计算指标。

本实施例的实验环境为ubuntu16.04.6lts,geforcegtx2080tigpu。卷积关联网络共在mot17训练集上迭代8万步,batch设为8,初始学习率为0.01,并在第33200步、53120步及66400步将学习率调为原来的1/10。每帧图像能同时跟踪的最大目标数nmax设为80,历史帧目标特征集合fh中能存储的最大历史帧数h设为15,确定轨迹未成功关联目标的最大帧数δw设为12,待定轨迹成功关联目标的最小帧数δd设为3。

本实施例的基于卷积关联网络的行人目标跟踪算法是一种在线跟踪算法,它只利用历史帧计算跟踪结果,可以用于自动驾驶等场景下的视频流跟踪。表4.1展示了本文提出的跟踪算法与其他公开发表的跟踪算法在mot17测试集上的指标对比,加粗数值为该项指标的最优结果。经过对比可以看出,本实施例的基于卷积关联网络的行人目标跟踪模型在速度和精度上达到了较好的平衡,与其他跟踪算法相比,可以满足自动驾驶场景的需求。并且在自动驾驶场景下,还可以通过减少模型中最大历史帧的数目来提升模型的运算速度。

表4.1mot17测试集跟踪结果对比

因此本发明实现通过对自动驾驶场景下的行人目标检测和跟踪模型进行了详细设计,并通过与其他公开发表的跟踪算法的结果对比,表明了本实施例提出的基于卷积关联网络的行人目标跟踪算法在跟踪精度与速度上都能良好地适应自动驾驶场景,能够为自动驾驶技术的行为决策模块提供重要依据,经过实验证,发现在bdd100k和cityperson综合数据集上,本设计的轻量级检测模型的行人目标map能够达到64%,且geforcegtx2080tigpu上的运算速度高达7毫秒/帧,模型大小只有6mb,运算量低至4.47bflops,能够满足自动驾驶场景的需求,而且与经典判别式跟踪模型需额外提取目标的表观特征相比,减少了特征冗余计算,使得整个检测跟踪过程能够满足自动驾驶场景的实时性需求。上述设计的各个英文含义均为本领域的常规技术,故此不做具体描述。

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