多目标三维轨迹跟踪方法及装置
技术领域
本发明涉及多目标轨迹跟踪领域,特别是涉及一种多目标三维轨迹跟踪方法及装置。
背景技术
随着深度学习理论的不断创新与计算机计算能力的不断提升,一些复杂的图像问题如物体识别、物体特征提取等领域在深度学习的方法下得到了有效解决。多物体跟踪算法,一个包含了上述多种子问题的综合视觉问题,已经成为机器视觉领域的重要问题。
作为一项算法层面的研究,大部分理论研究者设计的多目标轨迹跟踪方法是面向相对轨迹而不是真实轨迹。由于缺乏摄像头标定信息,物体与摄像头距离等信息,算法计算出来的轨迹是其真实轨迹在摄像头平面下的二维投影,是一个二维相对轨迹。从实用角度来说,在许多应用场合对轨迹的跟踪都是建立在真实场景下的跟踪,如无人驾驶中对前方车辆的轨迹进行跟踪并进行分析;运动员在运动场的动作及轨迹分析等。这些场景需要的是对目标真实的三维轨迹跟踪而不是仅仅在摄像头平面的相对轨迹。
发明内容
基于此,本发明的目的在于,提供一种多目标三维轨迹跟踪方法,其能将二维相对轨迹还原为三维真实轨迹。
本发明是通过如下方法实现的:一种多目标三维轨迹跟踪方法,包括如下步骤:
对视频图像中的多目标进行轨迹计算,得到视频图像中多目标的二维轨迹;
获取视频图像全图的深度信息,获取摄像头参数;
根据摄像头参数获取视频图像与物理世界的映射比例,根据视频图像的深度信息和与物理世界的映射比例,将多目标的二维相对轨迹还原为三维真实轨迹。
本发明所述的多目标三维轨迹跟踪方法,通过对视频图像进行分析处理,获取视频图像中多目标的三维真实轨迹,实现了在真实场景下的轨迹跟踪。
进一步地,对视频图像中的多目标进行轨迹计算,得到视频图像中多目标的二维轨迹,包括:
以帧为单位将视频图像输入物体检测卷积神经网络,输出图像中多个物体的物体框以及框中的物体像素;
以前后两帧为单位将视频图像位输入场景流卷积神经网络,计算出前后帧中各个物体各自的场景流速度和流轮廓、背景的场景流速度;
以流轮廓和物体像素为特征匹配内容,对物体框与二维轨迹进行关联;
关联成功后,更新二维轨迹。
进一步地,以前后两帧为单位将视频图像位输入场景流卷积神经网络,计算出前后帧中各个物体各自的场景流速度和流轮廓、背景的场景流速度,包括:
以前后两帧为单位将视频图像位输入场景流卷积神经网络,获取全图场景流;
借助各个物体的物体框,利用聚类算法,从全图场景流计算出各个物体的流轮廓。
进一步地,以前后两帧为单位将视频图像位输入场景流卷积神经网络,获取全图场景流的同时,还获取物体场景流速度和背景场景流速度;
根据物体场景流速度与背景场景流速度之间的差值计算出物体的真实场景流速度;
关联成功后,更新二维轨迹时,将物体的真实场景流速度更新至二维轨迹。
通过将物体的真实场景流速度更新至二维轨迹,在实现了多目标的三维轨迹跟踪的同时,还实现了移动跟踪。
进一步地,关联成功后,更新二维轨迹的同时,还包括:
根据物体框坐标和真实场景流速度,计算出下一帧的预测坐标。
进一步地,还包括如下步骤:
如果物体框与二维轨迹关联失败,则以前一帧的预测坐标更新轨迹,并再次以流轮廓为特征匹配内容,对物体框与二维轨迹进行关联。
进一步地,还包括如下步骤:
如果物体框与二维轨迹关联失败,则为关联失败的物体框新建一条轨迹。
进一步地,本发明还提供一种多目标三维轨迹跟踪装置,包括:卷积神经网络计算模块和逻辑运算模块,所述卷积神经网络计算模块包括物体检测卷积神经网络和场景流计算卷积神经网络;
所述物体检测卷积神经网络用于对视频图像的当前帧进行处理,获取图像中多个物体的物体框;
所述场景流计算卷积神经网络用于对视频图像的当前帧和前一帧进行处理,获取全图场景流和视频图像的深度信息;
所述逻辑运算模块用于借助各个物体的物体框,利用聚类算法,从全图场景流计算出各个物体的流轮廓,所述逻辑运算模块以流轮廓为特征匹配内容,对物体框与二维轨迹进行关联,并于关联成功后,更新二维轨迹,所述逻辑运算模块还用于根据摄像头参数获取视频图像与物理世界的映射比例,根据视频图像的深度信息和与物理世界的映射比例,将多目标的二维相对轨迹还原为三维真实轨迹。
进一步地,所述场景流计算卷积神经网络还用于获取物体场景流速度和背景场景流速度;
所述逻辑运算模块根据物体场景流速度与背景场景流速度之间的差值计算出物体的真实场景流速度,并于关联成功后,更新二维轨迹时,将物体的真实场景流速度更新至二维轨迹。
进一步地,所述逻辑运算模块在物体框与二维轨迹关联失败后,以前一帧的预测坐标更新轨迹,并再次以流轮廓为特征匹配内容,对物体框与二维轨迹进行关联。
为了更好地理解和实施,下面结合附图详细说明本发明。
附图说明
图1为一种实施例示出的一种多目标三维轨迹跟踪方法流程图;
图2为图1对应的步骤10的一种流程图;
图3为图2对应的步骤12的一种流程图;
图4为一种实施例中计算真实场景流速度流程图;
图5为本发明中摄像头定标方法原理图;
图6为一种实施例示出的一种多目标三维轨迹跟踪装置结构示意图;
图7为一种实施例示出的一种多目标三维轨迹跟踪装置使用环境示意图。
具体实施方式
请参阅图1,其为本发明一种实施例中多目标三维轨迹跟踪方法流程图。该跟踪方法适用于各种固定摄像头的应用场景。
在步骤10中,对视频图像中的多目标进行轨迹计算,得到视频图像中多目标的二维轨迹。
视频图像是指连续的静态图像的序列,该视频图像可以是从任何固定式监控视频中获取的实时监控图像,帧为视频图像中最小单位的单幅影像画面,一帧就是一副静止的画面,连续的帧就形成视频图像;视频图像中物体移动的轨迹为物体在视频图像中所移动的线路,每个物体的轨迹包括物体在视频图像中不同时刻所处的不同位置的二维坐标,多目标的二维轨迹包括多个目标物体在视频图像中的线路,以及不同目标物体在视频图像中不同时刻所处的不同位置的二维坐标,二维坐标是指物体的真实坐标在摄像头平面的投影点坐标。
在步骤20中,获取视频图像全图的深度信息,获取摄像头参数。
图像的深度信息是指图像中目标与摄像头的距离在与摄像头平面垂直方向的投影量。本方法将前后两帧图像输入场景流计算卷积神经网络,利用摄像头的微小位移形成前后两帧图像的深度差,让网络自主学习这个深度差,从而实现输出场景中多个目标的深度信息。在步骤30中,根据摄像头参数获取视频图像与物理世界的映射比例,根据视频图像的深度信息和与物理世界的映射比例,将多目标的二维相对轨迹还原为三维真实轨迹。
摄像头是3D空间和2D图像之间的一种映射,其中两空间之间的相互关系是由摄像头的几何模型决定的,即通常所称的摄像头参数,是表征摄像头映射的具体性质的矩阵,求解这些参数的过程被称为摄像机定标。本发明所述的一种多目标三维轨迹跟踪方法,通过视频图像的深度信息与摄像头定标方法将二维相对轨迹还原到真实三维轨迹,实现了对视频图像中多个物体同时的三维轨迹跟踪。
在一种实施例中,如图2所示,步骤10具体包括以下步骤:
在步骤110中,以帧为单位将视频图像输入物体检测卷积神经网络,输出图像中多个物体的物体框以及框中的物体像素。
其中,物体检测卷积神经网络可准确识别物体的位置,并将物体框选出。
在步骤120中,以前后两帧为单位将视频图像位输入场景流卷积神经网络,计算出前后帧中各个物体各自的场景流速度和流轮廓、背景的场景流速度。
其中,三维场景流是指物体在空间运动形成的三维运动场,其可以完整表述出一个物体运动速度在三维的各个分量;流轮廓指在包含目标和背景的数字图像中,忽略背景和目标内部的纹理以及噪声干扰的影响,采用一定的技术和方法来实现目标轮廓提取的过程,利用图像中框选出物体位置和全图的光流信息,可以提取出视频图像中物体的大致流轮廓。
在步骤130中,以流轮廓和物体像素为特征匹配内容,对物体框与二维轨迹进行关联。
将新得到的多个物体框和多个流轮廓与已建立的多条物体轨迹的上一帧物体框与流轮廓进行多对多的一一匹配,需要将当前帧获取的新的物体框与上一帧已建立的多条轨迹进行多对多的配对,本实施例中采用Kuhn-Munkres来实现。配对的规则是由多个因素按权重组合合成的综合指标,其中包括物体框与轨迹上一帧的位置关系,物体框像素与轨迹上一帧物体像素的颜色直方图相似度,物体框像素与轨迹上一帧物体像素的sift得分,流轮廓的形状相似度。如图4所示,其流程具体包含以下步骤:
步骤1311,设位置参数为k0,物体框坐标为s,轨迹上一帧经过步骤1-7预测的位置坐标为s’,则有公式:k0=1/es-s'。
步骤1312,设颜色直方图参数为k1,其值为物体框的像素矩阵与轨迹上一帧的物体像素矩阵的颜色直方图分布相似度的得分映射到0到1之间的一个小数。
步骤1313,设sift得分参数为k2,其值为物体框的像素矩阵与轨迹上一帧的物体像素矩阵进行sift相速度得分计算映射到0到1之间的一个小数。
步骤1314,设流轮廓形状参数为k3,其值为物体流轮廓与上一帧物体流轮廓的形状相似度得分映射到0到1之间的一个小数。
步骤1315,设综合匹配得分为k,根据先验知识以及实验测试,k为步骤3-1至步骤3-4的4个参数以一个固定的比例相加的值,即:k=n0k0*n1k1*n2k2*n3k3。
步骤1316,计算出每一个当前帧的物体框和每一条已有轨迹之间的综合匹配得分k,以此作为初始连接值,对于物体框和已有轨迹数量较少的一方补全元素至与另一方相等,连接参数设置为0。
步骤1317,根据3-6的参数,循环执行Kuhn-Munkres算法,直至二分图即物体框与已有轨迹完成一一配对。
步骤1314中,采用了流轮廓的形状相似度来匹配物体框和轨迹。由于摄像头获取的图像信号经常受到光线、信号失真等干扰,仅仅通过对比物体框与轨迹在图像像素上的特征会造成匹配算法鲁棒性不足,而物体的场景流其像素值表达的是物体的运动信息因此不受上述干扰影响,因此在匹配算法中加入流轮廓能大大提高匹配准确度。具体包括以下步骤:
步骤1314a,基于场景流网络计算精度以及物体外观形状的差异性,一副场景流图可能是一种分段或者挖空的形式,这种形式不利于对图像进行轮廓提取,因此首先采用图像膨胀的操作将像素连成一片。
步骤1314b,采用canny算子对图像进行高通滤波,获得纹理细节。
步骤1314c,采用轮廓提取算法获得图像轮廓,该完整轮廓即能表示该物体的形状信息。
步骤1314d,对物体框对应的流轮廓与轨迹的上一帧流轮廓进行形状匹配,获得匹配分数。
通过上述步骤,能对新得到的多个物体框和多个流轮廓与已建立的多条物体轨迹的上一帧物体框与流轮廓进行多对多的一一匹配。
在步骤140中,关联成功后,更新二维轨迹。
匹配成功的物体框,更新其物体框、流轮廓到轨迹。
在一种实施例中,如图3所示,步骤120具体包括以下步骤:
在步骤121中,以前后两帧为单位将视频图像位输入场景流卷积神经网络,获取全图场景流。
在步骤122中,借助各个物体的物体框,利用聚类算法,从全图场景流计算出各个物体的流轮廓。
全图场景流包括视频图像中所有物体的场景流,以及背景的场景流,将物理或抽象对象的集合分成由类似的对象组成的多个类的过程被称为聚类,借助各个物体的物体框,采用聚类算法,能在场景流中计算出各个物体的流轮廓。
在一种实施例中,在上一种实施例步骤122的基础上,借助各个物体的物体框,利用聚类算法,从全图场景流计算出各个物体的流轮廓的同时,还获取物体场景流速度和背景场景流速度;并根据物体场景流速度与背景场景流速度之间的差值计算出物体的真实场景流速度;关联成功后,更新二维轨迹时,将物体的真实场景流速度更新至二维轨迹。
如图4所示,具体包括如下步骤:
在步骤123中,利用多个物体框,从全图场景流中框选出包含物体部分的场景流像素。
在步骤124中,基于像素内容中大部分像素是属于物体,少部分像素是属于背景的这一特性,利用聚类算法将像素内容划分到两个簇中。
在步骤125中,对两个簇的像素场景流大小求均值,分别为物体的场景流速度和背景的场景流速度。
在步骤126中,用物体的场景流速度减去背景的场景流速度,可以得到物体的真实场景流速度,即使是摄像头在移动的环境下。
物体的场景流速度是指物体相对于摄像镜头的移动速度,背景场景流速度即是摄像头的移动速度,因此,本实施例在实现了静止的摄像头的多目标三维轨迹跟踪的基础上,还实现了可移动的多目标三维轨迹跟踪。
在一种实施例中,在实现了可移动的多目标三维轨迹跟踪的基础上,在步骤140中,关联成功后,更新二维轨迹后,还根据物体框坐标和真实场景流速度,计算出下一帧的预测坐标。
要实现坐标的预测,需要为每条轨迹建立一个卡尔曼滤波器,卡尔曼滤波的一个典型实例是从一组有限的,包含噪声的,对物体位置的观察序列(可能有偏差)预测出物体的位置的坐标及速度,通过卡尔曼滤波器,可以预测出物体下一帧的位置坐标,匹配成功的物体框,更新其物体框、流轮廓,真实场景流速度到轨迹,同时将物体框坐标和场景流速度更新卡尔曼滤波器,输出下一帧的预测坐标。
在一种实施例中,在实现了坐标预测的基础上,在步骤130中,以流轮廓为特征匹配内容,对物体框与二维轨迹进行关联时,如果物体框与二维轨迹关联失败,则以前一帧的预测坐标更新轨迹,并再次以流轮廓为特征匹配内容,对物体框与二维轨迹进行关联。
匹配不成功的轨迹,利用上一帧卡尔曼滤波器更新的预测坐标来更新自身坐标,并在新的坐标范围内再次进行图像匹配,如果能成功匹配到关联的物体框,则认为重新追回轨迹,并更新相应的轨迹,若仍然不能成功匹配到关联的物体框,则统计丢失轨迹的次数,并继续利用预测坐标更新轨迹,若某条轨迹丢失的次数超过设定阈值,则认为该轨迹丢失,并删除该轨迹。
在丢失了物体位置信息的情况,此时没有物体位置信息用以更新卡尔曼滤波器,需要采取预测轨迹的方式来保持对轨迹的跟踪直至轨迹追回丢失的物体信息。借用步骤1-4的物体场景流速度,可以判断物体下一帧所在的位置,在该位置再次采用关联算法与轨迹关联,如果关联成功则轨迹正常更新。
从具体实现的角度,卡尔曼滤波器更新状态的公式为:
其中x为状态变量,是一个15乘1维的矩阵,包含了一个轨迹的信息:
x15*1=[x,y,z,w,h,dx,dy,dz,vx,vy,vz,dw,dh]T (2)
式中x,y,z代表物体当前的三维坐标;w,h代表物体当前的框宽度与高度;dx,dy,dz代表物体当前帧与上一帧的坐标差;vx,vy,vz代表物体的场景流速度;dw,dh表示物体当前帧与上一帧的框宽度与高度差。
A为一个15乘15的矩阵,它表示上一状态估算射到当前状态估算值的状态矩阵,矩阵中值为1则更新时与该变量有关,值为0则更新时与该变量无关。
在更新轨迹的过程中,由于已经得到最优框,该信息足够更新卡尔曼的估算值,因此卡尔曼滤波器的更新公式为:
x(k)=x(k-1)+dx(k-1) (3)
y(k)=y(k-1)+dy(k-1) (4)
z(k)=z(k-1)+dz(k-1) (5)
而当物体出现遮挡或者干扰导致丢失物体信息时,则需要利用场景流来更新卡尔曼滤波器以预测轨迹的运行路线,卡尔曼滤波器的更新公式为:
x(k)=x(k-1)+vx(k-1) (6)
y(k)=y(k-1)+vy(k-1) (7)
z(k)=z(k-1)+dz(k-1) (8)
在预测下一帧物体可能出现的位置,再次执行特征匹配算法,如果匹配成功,则说明物体仍然在跟踪区域只是物体检测网络漏识别了该物体,卡尔曼滤波器更新物体轨迹;如果匹配失败,则沿着场景流方向继续更新轨迹,如匹配成功则成功追回物体,如连续匹配多次失败,则认为丢失了该轨迹。
在一种实施例中,在实现了坐标预测的基础上,在步骤130中,以流轮廓为特征匹配内容,对物体框与二维轨迹进行关联时,如果物体框与二维轨迹关联失败,则为关联失败的物体框新建一条轨迹。
匹配不成功的物体框视为新的物体,为其建立一条新的轨迹,保存物体框、流轮廓以及场景流速度,同时建立一个卡尔曼滤波器。
在一种实施例中,步骤30中,根据摄像头参数获取视频图像与物理世界的映射比例,根据视频图像的深度信息和与物理世界的映射比例,将多目标的二维相对轨迹还原为三维真实轨迹具体是通过如下方法实现的:
由于普通摄像头获取的图像信息为真实场景的二维投影,因此利用该图像跟踪的轨迹也是一个二维的相对轨迹,并不是轨迹在三维空间的真实反映。一方面,场景流计算卷积神经网络能够利用前后帧图像中物体位置的变化而学习到场景的深度信息;另一方面,采用摄像头定标方法可以获取摄像头参数从而推算出图像大小与物理世界的映射关系。基于上述两个基础,便可以将二维的相对轨迹还原到三维的真实轨迹。图4为该方法在推算出y轴真实速度的原理图,x轴的推算过程与y轴相同,z轴的速度即为场景流的z轴速度本身。
如图5所示,用一固定长度的物体(如尺子),以垂直于摄像头的姿势放置于摄像头前,前后移动其位置至其上下边界刚好与图像上下边界平齐,记录对应的尺子长度h1和尺子离摄像头的距离z1。
对于某一帧图像下的某一物体,其对应的场景流为v(vx,vy,vz),根据场景流的定义,v代表物体在下一帧的位置与当前帧位置的三个维度的像素差;其深度大小为z;图像的长宽像素为w2和h2;根据摄像头工作原理,有:
sz=vz (11)
其中sx,sy,sz为物体在三维坐标的真实运动位移,在每一帧的更新下即可得到物体的三维真实轨迹。
下述为本发明公开多目标三维轨迹跟踪装置的实施例,该装置可在低功耗与便携式的条件下执行本公开上述多目标三维轨迹跟踪方法实施例。对于本公开多目标三维轨迹跟踪装置实施例中未披露的细节,请参照本公开多目标三维轨迹跟踪装置实施例。
图6是一种实施例中多目标三维轨迹跟踪装置的结构框图,包括但不限于:卷积神经网络计算模块81和逻辑运算模块82。
卷积神经网络计算模块81包括物体检测卷积神经网络811和场景流计算卷积神经网络812。
物体检测卷积神经网络811用于对视频图像的当前帧进行处理,获取图像中多个物体的物体框;场景流计算卷积神经网络812用于对视频图像的当前帧和前一帧进行场景流处理,获取全图场景流和视频图像的深度信息。逻辑运算模块82用于借助各个物体的物体框,利用聚类算法,从全图场景流计算出各个物体的流轮廓,逻辑运算模块以流轮廓为特征匹配内容,对物体框与二维轨迹进行关联,并于关联成功后,更新二维轨迹,逻辑运算模块还用于根据摄像头参数获取视频图像与物理世界的映射比例,根据视频图像的深度信息和与物理世界的映射比例,将多目标的二维相对轨迹还原为三维真实轨迹。
图7为本实施例多目标三维轨迹跟踪装置是使用环境示意图。
卷积神经网络运算模块81,为嵌有人工智能芯片或者FPGA逻辑阵列,采用人工智能芯片或者FPGA逻辑阵列的理由是这两种并行运算设备可以定制化地专注于卷积神经网络计算,对于网络中反复用到的矩阵运算在速度上相较于CPU与GPU有更大的优势;另外,经过能耗比优化的人工智能芯片或者FPGA逻辑阵列在能耗比上有着更好的性能,因此采用它们作为系统的运算设备为该发明应用于户外移动式场合提供了可能性,如无人驾驶中需要将系统嵌入到汽车设备,机器人领域需要将系统嵌入到机器人硬件中。模块内核部分分别加载两个卷积神经网络,一个为物体检测卷积神经网络811,物体检测卷积神经网络811用标有标定物体位置信息的多组高速运动物体视频作为训练集,再训练物体检测卷积神经网络使得网络具备识别高速物体的能力,另一个为场景流计算卷积神经网络812,两个网络以每帧为单位同步运行,当一帧图像被传输至卷积神经网络运算模块81时,分别输入到两个网络,物体检测网络811输出物体框矩阵,场景流计算网络812输出场景流矩阵,两个矩阵均传输至逻辑运算模块82。
逻辑运算模块82,采用嵌入式微控制器作为主控,理由是嵌入式微控制器能在低功耗的条件下较好地完成逻辑运算。逻辑运算模块82一方面负责逻辑运算,如将卷积神经网络计算模块81传递的物体框与全图场景流计算出物体的场景流,流轮廓和背景的场景流、执行特征匹配算法等;一方面负责整个系统的运行控制,如网络的同步、数据的传输等。
卷积神经网络计算模块81和逻辑运算模块82由电源模块83供电,电源模块83可以是一种便携式、可充电的电池。卷积神经网络计算模块81与图像采集模块84连接,并通过图像采集模块的摄像头获取视频图像,其中,图像采集模块84包括摄像头,固定支架与旋转装置,摄像头负责采集图像信号,固定支架用以将摄像头基本部分与平台固定,旋转装置用以旋转摄像头镜头,全方位控制摄像头拍摄角度。逻辑运算模块82还与显示模块85连接,显示模块,为普通LCD彩色液晶屏,屏幕通过不同的颜色的曲线代表多跳轨迹,以二维和三维的形式展现给用户。逻辑运算模块82还与存储模块86连接,存储模块86为一般的ROM设备,要求至少具备20G内存,一方面用来存储卷积神经网络预训练好的网络模型,一方面用来存储系统输出的多物体轨迹信息。
在一种实施例中,场景流计算卷积神经网络还用于获取物体场景流速度和背景场景流速度;逻辑运算模块根据物体场景流速度与背景场景流速度之间的差值计算出物体的真实场景流速度,并于关联成功后,更新二维轨迹时,将物体的真实场景流速度更新至二维轨迹。
在一种实施例中,逻辑运算模块在物体框与二维轨迹关联失败后,以前一帧的预测坐标更新轨迹,并再次以流轮廓为特征匹配内容,对物体框与二维轨迹进行关联。
本发明所公开的一种多目标三维轨迹跟踪方法,实现了对多目标的物体运动轨迹的三维跟踪;通过物体检测方法,场景流速度结合卡尔曼滤波器预测轨迹,多对多图匹配算法匹配目标与轨迹,实现多目标的二维轨迹计算;通过聚类算法分离物体与背景速度,从而可应用于摄像头移动的环境;并通过卡尔曼滤波器进行轨迹预测,提高了跟踪的准确度以及在遮挡环境仍能有效跟踪物体;通过视频图像的深度信息与摄像头定标法将二维相对轨迹还原到真实三维轨迹,实现了对视频图像中多个物体同时的三维轨迹跟踪。本发明多目标三维轨迹跟踪方法能应用于大部分基于移动场景的如无人驾驶汽车、机器人等领域的多目标跟踪。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。