精华内容
下载资源
问答
  • 对目标进行跟踪的算法卡尔曼滤波算法与交互式多模型机动目标跟踪算法的性能比较。
  • 目标跟踪算法

    千次阅读 2019-10-31 16:52:28
    目标跟踪算法的跟踪 一、目标跟踪算法简介 1.1 主要任务 1.1.1 Online Visual Tracker BenchMark 1.1.2 VOT 1.2 难点与挑战 目标遮挡、目标消失、运动模糊、目标和环境的剧烈变化、目标的高速运动、相机的抖动...

    一、目标跟踪算法简介

    1.1 主要任务

    1.1.1 Online Visual Tracker BenchMark

    • 数据集
      单目标跟踪
      OTB50(2013年) & OTB100(2015年)
    • Precision plot:
      踪算法估计的目标位置(bounding box)的中心点与人工标注(ground-truth)的目标的中心点,这两者的距离小于给定阈值的视频帧的百分比。
    • Success plot
      首先定义重合率得分(overlap score,OS),追踪算法得到的bounding box(记为a),与ground-truth给的box(记为b),重合率定义为:OS = |a∩b|/|a∪b|,|·|表示区域的像素数目。当某一帧的OS大于设定的阈值时,则该帧被视为成功的(Success),总的成功的帧占所有帧的百分比即为成功率(Success rate)。OS的取值范围为0~1,因此可以绘制出一条曲线。一般阈值设定为0.5。

    1.1.2 VOT

    • 数据集
      2013-2019(竞赛数据集,单目标跟踪)
    • 评价指标
      (1)平均重叠期望(EAO)是对每个跟踪器在一个短时图像序列上的非重置重叠的期望值,是VOT评估跟踪算法精度的最重要指标。
      (2)准确率(Accuracy)是指跟踪器在单个测试序列下的平均重叠率(两矩形框的相交部分面积除以两矩形框的相并部分的面积。(MeanIOU)
      (3)鲁棒性(Robustness)是指单个测试序列下的跟踪器失败次数,当重叠率为0时即可判定为失败。

    1.2 难点与挑战

    目标遮挡、目标消失、运动模糊、目标和环境的剧烈变化、目标的高速运动、相机的抖动、光照变化、背景杂波、低分辨率等。

    1.3 分类

    1.3.1 常规分类

    • 生成式模型:反映同类别相似度。此类方法首先建立目标模型或者提取目标特征, 在后续帧中进行相似特 征搜索。逐步迭代实现目标定位。缺点:在光照变化, 运动模 糊, 分辨率低, 目标旋转形变等情况下,目标跟踪准确性不高。常用算法:光流法、粒子滤波、Meanshift 算法 、Camshift算法、KCF、SRDCF、SRDCFdecon、stable、EBT。
    • 判别式模型(track by detection):反映不同类别的差异。通过对比目标模型和背景信息的差异, 将目标模型提取出来, 从而得到当前帧中的目标位置。目前主要采用的模型。常用算法:MIL,OAB,struck,MEEM,TLD、支持向量机。

    1.3.2 时间分类

    • 早期跟踪模型:大部分是生成式模型。细分主要包括:
      (1)基于目标模型建模:基于区域匹配、基于特征点跟踪、基于主动轮廓的跟踪算法、光流法等。
      (2)基于搜索的方法:为了减少搜索范围,一种方式通过预测减少搜索范围,如:Kalman滤波、粒子滤波等。另一种为内核算法,运用最速下降法的原理, 向梯度下降方向对目标模板逐步迭代, 直到迭 代到最优位置。如:Meanshift、Camshift。

    • 相关滤波模型:属于判别式模型,相关滤波之前,所有的跟踪都是在时域上进行,涉及复杂的矩阵求逆计算,速度慢。相关滤波在频域上进行,利用 循环矩阵可以在频域对角化的性质,减少了运算量。常用算法:MOSSE、CSK、KCF、 BACF、SAMF。

    • 深度学习模型:基于相关滤波,使用深度学习对特征提取、特征搜索等方向进行改进。

    二、常用算法介绍

    2.1 早期跟踪算法

    2.1.1 光流算法

    • 光流的三个假设条件
      (1)前后两点的位移较小(可以泰勒展开的条件)
      (2)移动前后光强保持恒定
      (3)空间相关性,每个点的运动和他们的邻居相似(连续函数,泰勒展开)
    • 公式推导
      在相邻的两帧图像中,点(x,y)发生了位移(u,v),那么移动前后两点的亮度应该是相等的,有如下等式:
      I ( x , y , t − 1 ) = I ( x + u , y + v , t ) I(x,y,t-1)=I(x+u,y+v,t) I(x,y,t1)=I(x+u,y+v,t)
      一阶线性泰勒展开:
      I ( x + u , y + v , t ) = I ( x , y , t − 1 ) + I x u + I y v + I t I(x+u,y+v,t) = I(x,y,t-1) + I_x u+I_y v+I_t I(x+u,y+v,t)=I(x,y,t1)+Ixu+Iyv+It
      上式联立有:
      I x u + I y v + I t = 0 I_x u+I_y v+I_t =0 Ixu+Iyv+It=0
      要求位移量 u u u v v v,利用第三个假设,L-K(Lucas-Kanade)求解:
      在这里插入图片描述
      利用最小二乘法求解:
      在这里插入图片描述
      改进----金字塔光流:解决有些目标移动较大的问题
    • 光流按照原理分类
      (1)基于梯度的光流:Horn-Schunck算法,全局平滑假设,假设在整个图像上光流的变化是光滑的,物体运动矢量是平滑的或只是缓慢变化的。
      (2)基于匹配的方法:包括基于特征和区域的两种。基于特征的方法不断地对目标主要特征进行定位和跟踪,对目标大的运动和亮度变化具有鲁棒性(robustness)。基于区域的方法先对类似的区域进行定位,然后通过相似区域的位移计算光流。
      (3)基于能量的方法:首先要对输入图像序列进行时空滤波处理,这是一种时间和空间整合。
      (4)基于相位的方法:速度是根据带通滤波器输出的相位特性确定的。
      (5)神经动力学方法:利用神经网络建立的视觉运动感知的神经动力学模型。
    • 光流按照二维矢量的疏密程度分类
      (1)稠密光流:针对图像或指定的某一片区域进行逐点匹配的图像配准方法,它计算图像上所有的点的偏移量,从而形成一个稠密的光流场。
      (2)稀疏光流:指定一组点进行跟踪,这组点最好具有某种明显的特性。如Harris角点。

    2.1.2 Meanshift

    • Meanshift原理
      (1)在d维空间中,任选一个点,然后以这个点为圆心,h为半径做一个高维球。
      (2)落在这个球内的所有点和圆心都会产生一个向量,向量是以圆心为起点落在球内的点位终点。
      (3)把这些向量都相加。相加的结果为Meanshift向量,如图黄线所示,Meanshift向量的终点作为新的球心。重复上述过程,迭代。
      在这里插入图片描述
    • Meanshift目标跟踪
      (1)获取跟踪对象的位置信息(x,y,w,h)。
      (2)将图像从RGB转为HSV。(消除光照影响)
      (3)统计跟踪区域的颜色直方图。
      (4)反向投影
      (5)在下一帧使用Meanshift跟踪目标
    • 反向投影的工作原理
      不断的在输入图像中切割跟模板图像大小一致的图像块,并用直方图对比的方式与模板图像进行比较。
      假设我们有一张100x100的输入图像,有一张10x10的模板图像,查找的过程是这样的:
      步骤:
      (1)从输入图像的左上角(0,0)开始,切割一块(0,0)至(10,10)的临时图像;
      (2)生成临时图像的直方图;
      (3)用临时图像的直方图和模板图像的直方图对比,对比结果记为c;
      (4)直方图对比结果c,就是结果图像(0,0)处的像素值;
      (5)切割输入图像从(0,1)至(10,11)的临时图像,对比直方图,并记录到结果图像;
      (6)重复(1)~(5)步直到输入图像的右下角。

    2.1.3 Camshift

    Meanshift不能自适应物体大小。camshift做了改进,可以实现自适应物体大小尺寸。算法流程:
    在这里插入图片描述

    2.1.4 Kalman滤波

    卡尔曼滤波主要包括两个部分:预测过程、修正过程。

    • 预测过程:
      x = ( F ∗ x ) + ( B ∗ u ) + w x = (F*x)+(B*u)+w x=(Fx)+(Bu)+w,其中 F F F为状态转移矩阵, B B B为状态控制矩阵, u u u称状态控制向量, w w w为外部影响,服从 N ( 0 , Q ) N(0,Q) N(0,Q)。(相当于速度和加速度)
      P = ( F ∗ P ∗ F T ) + Q P = (F*P*F^T)+Q P=FPFT+Q,其中 P P P为系统方差, Q Q Q为外部因素方差。
    • 修正过程:
      y = z − ( H ∗ x ) y = z-(H*x) y=z(Hx),其中 y y y为观测余量, z z z为观测矩阵, H H H为转换矩阵,将 x x x量转换为观测量。
      S = ( H ∗ P ∗ H T ) + R S = (H*P*H^T)+ R S=HPHT+R,其中 S S S测量余量协方差矩阵。
      K = P ∗ H T ∗ S − 1 K=P*H^T*S^{-1} K=PHTS1,其中 K K K为卡尔曼增益。
      x = x + ( K ∗ y ) x = x+(K*y) x=x+(Ky),修正后的结果。
      P = ( I − K ∗ H ) ∗ P P=(I - K*H)*P P=IKHP,修正的系统方差。

    2.1.5 粒子滤波

    步骤:
    (1)初始化阶段—提取目标特征:手动选取目标,并提取目标区域的特征,即目标颜色直方图。
    (2)初始化粒子:a)将粒子均匀撒在整个图像上。b)在上一帧目标附近按高斯分布散布粒子。
    (3)搜索阶段:统计每个粒子的颜色直方图,与目标模型颜色直方图对比,根据巴氏距离计算权值,再对权值进行归一化处理,使得所有粒子的权值相加为1。
    (4)粒子重采样:在相似度较低的地方放少量的粒子,相似度高的地方放多放粒子。(抛弃权重低的粒子)
    (5)状态转移:根据 s t = A s t − 1 + w t − 1 s_t = As_{t-1}+w_{t-1} st=Ast1+wt1计算下一时刻粒子的位置。
    (6)观测阶段:计算各个粒子与目标特征的相似度,更新粒子的权重。
    (7)决策阶段:计算坐标与相似度的加权平均值,得到跟踪目标下一帧的位置。
    (8)根据预测出的位置,重复(3),(4),(5),(6),(7)。

    2.2 相关滤波(CF)

    2010年,CVPR上《visual object tracking using adaptive correlation filters》首次将相关滤波用到跟踪算法上。后面接着出现了一些经典的相关滤波算法。这里主要介绍MOSSE、CSK、CN、KCF、SAMF、SRDCF。相关滤波大佬:Martin Danelljan(MD)。相关滤波的发展可以总结为:
    (1)从单特征到多特征:CSK、CN、KCF。
    (2)尺度的变换:SAMF。
    (3)模型的改进:SRDCF。

    2.2.1 Minimum Output Sum of Squared Error (MOSSE)

    根据图像处理相关操作的原理以及最小二乘法可以推导出滤波器的模版函数:
    H ∗ = 1 N ∑ i = 1 N G i ⊙ F i ∗ F i ⊙ F i ∗ H^{*} =\frac{1}{N}\sum_{i=1}^{N}\frac{G_i\odot F^*_i}{F_i\odot F^*_i} H=N1i=1NFiFiGiFi
    其中, N N N为样本数, G i G_i Gi为输出的频域表达式(预测结果), F i F_i Fi为输入的频域表达式。
    算法步骤:
    (1)初始化
    在初始帧的训练集 f i f_i fi用的是第一帧里8个在追踪窗里随机生成干扰,训练集的输出 g i g_i gi就是通过他们的峰值生成,相当于图片的中心。
    H ∗ = 1 N ∑ i = 1 N G i ⊙ F i ∗ F i ⊙ F i ∗ H^{*} =\frac{1}{N}\sum_{i=1}^{N}\frac{G_i\odot F^*_i}{F_i\odot F^*_i} H=N1i=1NFiFiGiFi
    (2)参数更新
    在这里插入图片描述

    2.2.2 CSK

    CSK算法通过使用高斯核计算相邻两帧之间的相关性,取响应最大的点为预测的目标中心。该算法是固定目标大小的,对发生尺度变化的目标不鲁棒,速度150FPS。CSK是MOSSE的一个改进,改进主要包括:
    (1)在滤波器的函数中,引入正则化项。
    m i n w , b ∑ i n L ( y i , f ( x i ) ) + λ ∣ ∣ ω ∣ ∣ 2 min_{w,b} \sum_{i}^n L(y_i,f(x_i))+\lambda||\omega||^2 minw,binL(yi,f(xi))+λω2
    (2)生成的样本方式,不再是通过随机扰动产生。而是引入了循环矩阵得到样本。(在KCF中描述)
    (3)引入核函数, w = ∑ α i ϕ ( x i ) w = \sum\alpha_i\phi(x_i) w=αiϕ(xi),最优 α \alpha α为:
    在这里插入图片描述
    (4)计算响应:
    在这里插入图片描述

    • 算法步骤:
      (1)获取当前帧图像,初始化目标位置。并利用循环矩阵生成样本,训练回归器。
      (2)获取下一帧图像,在上一帧目标位置附近利用循环矩阵采样,并用(1)中训练的回归器计算各个窗口的响应。
      (3)响应最大的位置即为下一帧目标的位置。
      (4)重复(1),(2),(3)

    2.2.3 CN

    CN是在CSK基础上的改进,采用多通道的颜色color names。

    2.2.4 Kernel Correlation Filter (KCF)

    KCF是CSK的改进,在CSK的基础上引入了多通道hog特征

    • KCF的基本思路:
      (1)在 I t I_t It帧中,在当前位置 p t p_t pt附近采样(利用循环矩阵得到),训练一个回归器。这个回归器可以计算一个小窗口的响应。
      (2)在 I t + 1 I_{t+1} It+1帧中,在前一帧位置 p t p_t pt附近采样,用前述回归器判断每个采样窗口的响应(即做相关操作)。
      (3)取响应值最大的采样作为本帧的位置。
      (4)重复(1),(2),(3)

    • 回归器的训练
      (1)获取样本—循环矩阵
      一维循环矩阵:
      在这里插入图片描述
      二维循环矩阵可以分别通过x和y的一位循环实现向量的位移。样例:
      在这里插入图片描述
      (2)一维脊回归
      通过求解:
      min ⁡ ω ∣ ∣ X ω − y ∣ ∣ 2 + λ ∣ ∣ ω ∣ ∣ 2 \min_\omega||X\omega-y||^2+\lambda||\omega||^2 minωXωy2+λω2
      得到:
      ω = ( X H X + λ ) − 1 X H y \omega =(X^HX+\lambda)^{-1}X^Hy ω=(XHX+λ)1XHy
      (3)循环矩阵傅氏对角化
      所有的循环矩阵都能够在傅氏空间中使用离散傅里叶矩阵进行对角化, X = F d i a g ( x ) F H X = Fdiag(x)F^H X=Fdiag(x)FH,其中 F F F为:
      在这里插入图片描述
      X X X对角化结果带入一维脊回归中:
      在这里插入图片描述
      (3)将线性映射换为非线性映射
      α = F d i a g ( K x x + λ ) − 1 F H y \alpha =Fdiag(K^{xx}+\lambda)^{-1}F^Hy α=Fdiag(Kxx+λ)1FHy
      其中, K x x = ϕ ( x ) T ϕ ( X ) T K^{xx} = \phi(x)^T\phi(X)^T Kxx=ϕ(x)Tϕ(X)T
      (4)计算响应
      f ( z ) = k x z ⊙ α f(z)=k^{xz}\odot\alpha f(z)=kxzα
      在这里插入图片描述

    • 特征:HOG多通道特征

    • 优点:速度很快,172FPS,tracking by detection。

    • 缺点:不能适应尺度变化和快速变化。

    • 相关滤波:CSK–CN–KCF可参考:
      https://blog.csdn.net/ycc2011/article/details/84111182

    2.2.5 SAMF

    VOT2014第一名。7FPS,在KCF等基础上做了以下改进:
    (1)多特征融合:HOG+CN+灰度。
    (2)多尺度:引入尺度池,缩放比例:{0.985,0.99,0.995,1.0,1.005,1.01,1.015}。
    其流程大致如下:
    在这里插入图片描述
    将当前帧的图像输入,经过尺度池,得到不同尺度的图像,然后,将这些经过缩放后的图像送入上一帧训练得到的KCF相关滤波器,得到不同尺度下的坐标以及响应值。响应值最大的即为最合适的尺度。

    2.2.6 SRDCF

    由于相关滤波是模板类方法, 如果目标快速运动或者发生形变, HOG 特征不能实时地跟上目标的变化, 会 产生错误样本造成分类器性能下降, 导致边界效应 的产生. SRDCF 针对这一问题, 扩大了搜索区域, 加入空间正则化约束。
    加入正则化约束具体:
    (1)相关滤波的响应图可以通过如下公式计算
    在这里插入图片描述
    S S S是响应图, x x x是检测图像片, f f f是滤波器。
    (2)优化方程为:
    在这里插入图片描述
    w w w为惩罚函数,中间小,周围大。作用:离得越远的样本对滤波器的影响越小。 w w w的图像为:
    在这里插入图片描述

    2.3 深度学习方法

    深度学习的特点在于其特征提取能力,可以通过大量的数据训练,提取比传统方法更好的能够代表目标的特征。基于深度学习的跟踪可以分为:
    (1)对相关滤波算法改进:C-COT、ECO。
    (2)利用辅助图片数据预训练深度模型,在线跟踪时微调:DLT、SO-DLT。
    (3)利用现有大规模分类数据集预训练的CNN分类网络提取特征:FCNT。
    (4)利用跟踪序列预训练,在线跟踪时微调:MDNet
    (5)运用递归神经网络进行目标跟踪的新思路:RTT、DeepTracking

    2.3.1 C-COT

    2016年VOT冠军,结合深度学习提取特征(CNN+HOG+CN)。速度较慢。
    在这里插入图片描述
    (1)第一列:针对搜索区域,提取不同分辨率的特征(VGG),不同分辨率采用插值的方式(0.96,0.98,1.00,1.02,1.04)五种缩放方式。
    (2)第二列:通过针对不同层训练的相关滤波器进行计算(卷积层,训练得到,每帧以目标为中心提取一个样本)。
    (3)第三列:通过对特征图卷积得到响应图(Confidence Scores)。
    (4)第四列:将第三列的响应图进行加权平均,就得到了第四列的结果,响应图极大值位置就是预测的目标位置。

    2.3.2 ECO

    在C-COT基础上做了改进,速度比C-COT更快,60FPS。主要包括以下几个改进。
    (1)减少了特征的维度,从D维特征中选择了其中C维;减少了滤波器个数,C-COT每一维对应一个滤波器,而ECO只选择了其中共献较多的滤波器。
    (2)减少相同样本,ECO用了高斯混合模型(GMM)来生成不同的component,每一个component基本就对应一组比较相似的样本,不同的component之间有较大的差异性。这样就使得训练集具有了多样性。
    在这里插入图片描述
    (3)减小模型更新频率,ECO这里的做法很简单,就是简单地规定每隔Ns帧更新一次。注意这里的Ns只是对模型的更新,样本的更新是每一帧都要做的。最后的实验中,Ns设置为6。

    2.3.3 DLT

    首次将深度学习应用到跟踪上,2013年OTB50数据集上排名第5。

    • 算法步骤:
      (1)提前训练一个预训练模型。如图(b)
      (2)第一帧,微调网络(c)参数,通过目标位置生成正负样本,训练分类网络。在后续帧,当所有粒子中最高的confidence低于阈值时,认为目标已经发生了比较大的表观变化,当前的分类网络已经无法适应,需要进行更新,目标的位置作为正样本,其余作为负样本。
      (3)对当前帧采用粒子滤波(particle filter)的方式提取一批候选框,将这些候选框送入到分类网络,置信度最高的即为目标的位置。
    • 训练步骤:
      (1)预训练模型:如图(b),训练栈式降噪自编码器。
      (2)微调网络:如图(c)。
      在这里插入图片描述
    • 不足:
      (1) 离线预训练采用的数据集Tiny Images dataset只包含32*32大小的图片,分辨率明显低于主要的跟踪序列,因此SDAE很难学到足够强的特征表示。
      (2) 离线阶段的训练目标为图片重构,这与在线跟踪需要区分目标和背景的目标相差甚大。
      (3) SDAE全连接的网络结构使其对目标的特征刻画能力不够优秀,虽然使用了4层的深度模型,但效果仍低于一些使用人工特征的传统跟踪方法如Struck等。

    2.3.4 FCNT

    FCNT主要对VGG-16的Conv4-3和Conv5-3层输出的特征图谱(feature map)做了分析,并得出以下结论:
    (1) CNN 的feature map可以用来做跟踪目标的定位。
    (2) CNN 的许多feature map存在噪声或者和物体跟踪区分目标和背景的任务关联较小。
    (3) CNN不同层的特征特点不一。高层(Conv5-3)特征擅长区分不同类别的物体,对目标的形变和遮挡非常鲁棒,但是对类内物体的区分能力非常差。低层(Conv4-3)特征更关注目标的局部细节,可以用来区分背景中相似的distractor,但是对目标的剧烈形变非常不鲁棒。
    在这里插入图片描述
    FCNT的框架:
    (1) 对于Conv4-3和Conv5-3特征分别构建特征选择网络sel-CNN(1层dropout加1层卷积),选出和当前跟踪目标最相关的feature map channel。
    (2) 对筛选出的Conv5-3和Conv4-3特征分别构建捕捉类别信息的GNet和区分distractor(背景相似物体)的SNet(都是两层卷积结构)。
    (3) 在第一帧中使用给出的bounding-box生成热度图(heat map)回归训练sel-CNN, GNet和SNet。
    (4) 对于每一帧,以上一帧预测结果为中心crop出一块区域,之后分别输入GNet和SNet,得到两个预测的heatmap,并根据是否有distractor决定使用哪个heatmap 生成最终的跟踪结果。
    小结:FCNT根据对CNN不同层特征的分析,构建特征筛选网络和两个互补的heat-map预测网络。达到有效抑制distractor防止跟踪器漂移,同时对目标本身的形变更加鲁棒的效果,也是ensemble思路的又一成功实现。但实测鲁棒性不高,现有的更新策略还有提高空间。

    2.3.5 MDNet

    在这里插入图片描述
    MDNet网络分为两个部分,前部分为共享层,提取特征,后部分Domain-specific层针对不同的跟踪目标建立不同的任务。
    训练时:每个mini-batch训练一个类别的序列,训练完后,共享层获得了对序列共有特征的表达能力。
    在线跟踪阶段,针对不同的跟踪序列:
    (1) 随机初始化一个新的fc6层。
    (2) 使用第一帧的数据来训练该序列的bounding box回归模型。
    (3) 用第一帧提取正样本和负样本,更新fc4, fc5和fc6层的权重。
    (4) 之后产生256个候选样本,并从中选择置信度最高的,之后做bounding-box regression得到最终结果。
    (5) 当前帧最终结果置信度较高时,采样更新样本库,否则根据情况对模型做短期或者长期更新。

    2.3.6 RTT

    在这里插入图片描述
    (1) 首先对每一帧的候选区域进行网状分块,对每个分块提取HOG特征,最终相连获得基于块的特征。
    在这里插入图片描述
    (2) 得到分块特征以后,RTT利用前5帧训练多方向RNN来学习分块之间大范围的空间关联。通过在4个方向上的前向推进,RNN计算出每个分块的置信度,最终每个块的预测值组成了整个候选区域的置信图(confidence map)。受益于RNN的recurrent结构,每个分块的输出值都受到其他关联分块的影响,相比于仅仅考虑当前块的准确度更高,避免单个方向上遮挡等的影响,增加可靠目标部分在整体置信图中的影响。
    (3) 由RNN得出置信图之后,RTT执行了另外一条pipeline。即训练相关滤波器来获得最终的跟踪结果。值得注意的是,在训练过程中RNN的置信图对不同块的filter做了加权,达到抑制背景中的相似物体,增强可靠部分的效果。
    (4) RTT提出了一个判断当前跟踪物体是否被遮挡的策略,用其判断是否更新。即计算目标区域的置信度和,并与历史置信度和的移动平均数(moving average)做一个对比,低于一定比例,则认为受到遮挡,停止相关滤波器模型更新,防止引入噪声。

    三、近年来,研究进展

    近年来,跟踪算法主要思路均采用判别式模型,以下是跟踪必要的几个模块:特征提取(选择特征的方法),关联匹配模块(相关滤波采用相关滤波器,部分跟踪算法则采用欧式距离),检测器(相关滤波采用训练一个回归器,部分跟踪算法则选择深度学习检测)。

    展开全文
  • 图象分割与运动目标跟踪算法研究-图象分割与运动目标跟踪算法研究.rar 工学硕士学位论文 图象分割与运动目标跟踪算法研究 哈尔滨工业大学
  • 运动目标跟踪算法

    万次阅读 多人点赞 2019-02-17 12:53:17
    本文介绍了一般的目标跟踪算法,对几个常用的算法进行对比,并详细介绍了粒子滤波算法和基于轮廓的目标跟踪算法。最后简单介绍了目标遮挡的处理、多摄像头目标跟踪和摄像头运动下的目标跟踪。 一、一般的目标跟踪...

     运动目标跟踪是视频监控系统中不可缺少的环节。在特定的场景中,有一些经典的算法可以实现比较好的目标跟踪效果。本文介绍了一般的目标跟踪算法,对几个常用的算法进行对比,并详细介绍了粒子滤波算法和基于轮廓的目标跟踪算法。最后简单介绍了目标遮挡的处理、多摄像头目标跟踪和摄像头运动下的目标跟踪。

    一、一般的目标跟踪算法

      一般将目标跟踪分为两个部分:特征提取、目标跟踪算法。其中提取的目标特征大致可以分为以下几种:

      1) 以目标区域的颜色直方图作为特征,颜色特征具有旋转不变性,且不受目标物大小和形状的变化影响,在颜色空间中分布大致相同。

      2) 目标的轮廓特征,算法速度较快,并且在目标有小部分遮挡的情况下同样有较好的效果。

      3) 目标的纹理特征,纹理特征较轮廓特征跟踪效果会有所改善。

      目标跟踪的算法大致可以分为以下四种:

      1) 均值漂移算法,即meanshift算法,此方法可以通过较少的迭代次数快速找到与目标最相似的位置,效果也挺好的。但是其不能解决目标的遮挡问题并且不能适应运动目标的的形状和大小变化等。对其改进的算法有camshift算法,此方法可以适应运动目标的大小形状的改变,具有较好的跟踪效果,但当背景色和目标颜色接近时,容易使目标的区域变大,最终有可能导致目标跟踪丢失。

      2) 基于Kalman滤波的目标跟踪,该方法是认为物体的运动模型服从高斯模型,来对目标的运动状态进行预测,然后通过与观察模型进行对比,根据误差来更新运动目标的状态,该算法的精度不是特高。

      3) 基于粒子滤波的目标跟踪,每次通过当前的跟踪结果重采样粒子的分布,然后根据粒子的分布对粒子进行扩散,再通过扩散的结果来重新观察目标的状态,最后归一化更新目标的状态。此算法的特点是跟踪速度特别快,而且能解决目标的部分遮挡问题,在实际工程应用过程中越来越多的被使用。

      4) 基于对运动目标建模的方法。该方法需要提前通过先验知识知道所跟踪的目标对象是什么,比如车辆、行人、人脸等。通过对要跟踪的目标进行建模,然后再利用该模型来进行实际的跟踪。该方法必须提前知道要跟踪的目标对象是什么,然后再去跟踪指定的目标,这是它的局限性,因而其推广性相对比较差。

    二、基于粒子滤波的运动目标跟踪

      粒子滤波实现运动目标跟踪分为四个步骤:1)初始化提取运动目标特征;2)特征搜索阶段;3)决策阶段;4)粒子重采样。这后面三个过程的依次循环实现的对运动目标的跟踪。

      1)提取运动目标特征

      这个阶段需要通过人机交互选定待跟踪的目标,通过计算跟踪目标的特征,如目标的颜色特征,计算该区域颜色空间的直方图,以此作为描述目标的特征。

      2)特征搜索阶段

      初始化提取了目标的特征后,就可以去在目标的周围撒粒子搜索目标对象。撒粒子的方法有很多,例如:a)均匀分布的放:即在整个视频画面中均匀的撒粒子。b)在目标的附近以高斯分布来撒粒子,即靠近目标的地方多撒些,离目标较远的地方少放些。每个粒子按照初始化时候得到的目标特征计算出它所处的位置的颜色特征,并计算该直方图向量与目标的直方图向量的相似性程度。然后对每个粒子与目标计算出的相似度做归一化,使得所有粒子的相似度加起来和等于1。

      3)决策阶段

      根据每个粒子与目标的相似程度做加权平均。设第i个粒子的坐标是,它和目标的相似度是,则目标的最可能的位置为:,,n为粒子的个数。

      4)粒子重采样

      粒子重采样就是根据相似度的大小重新分配粒子的个数,即在相似度最高的粒子出放更多的粒子,在相似度低的粒子那少放粒子。粒子滤波算法的核心思想就是粒子的随机采样和粒子的重要性重采样。因为不知道目标在那个位置,就随机的进行撒粒子。撒完粒子后,根据描述目标的特征相似度来计算每个粒子的相似度,然后在相似度高的地方多撒些粒子,相似度低的地方少撒粒子,这就是粒子滤波的思想。

    三、基于轮廓的跟踪

      形状复杂的目标是很难用简单的几何形状来描述的。基于轮廓的目标跟踪方法提供了更准确的形状描述。这种方法的主要思想是利用前一帧建立的目标模型找到当前帧的目标区域。模型可以是目标区域的颜色直方图、边缘或轮廓。基于轮廓的目标跟踪方法大体上可以分为形状匹配、轮廓跟踪。前者搜索目标在当前帧特征,后者通过状态空间模型或直接最小化能量函数推导初始轮廓在当前帧的位置。

    1、形状匹配方法

      这种方法和基于模板的目标跟踪方法相似,基本思想都是在当前帧中搜索目标的轮廓和目标的相关模型。另一种方法是在连续帧中寻找关联轮廓,使用目标的外观特征,建立轮廓关联,或者称为轮廓匹配,和点匹配方法类似。

      首先,由背景减除发来进行轮廓检测;再次,提取轮廓后,计算目标的模型和每个轮廓之间距离来实现匹配;目标的模型可以是密度函数(颜色特征或边缘直方图)、目标边缘、轮廓边界或这些信息的组合。

    2、轮廓跟踪

      从上一帧的轮廓位置预测出当前帧的轮廓。当前帧和上一帧的目标轮廓有重叠部分,大体上可分为两中实现方式,用状态空间模型对目标的轮廓的形状和运动状态建模,或用梯度搜索进行推演轮廓。梯度搜索是一种轮廓能量最小化方法。

      1)状态空间模型的目标跟踪

      由轮廓的形状和目标的运动参数(如,速度、加速度、运动方向等)定义目标的状态,在轮廓的后验概率最大时更新目标状态。

      2)能量最小化方法的目标跟踪

      此方法和目标分割方法类似,其中的分割和跟踪部分都是通过梯度下降法或贪婪算法来最小化能量。

      3)讨论

      轮廓跟踪通常在跟踪整个目标区域时使用,其最突出的优点在于能更好的适应目标形状的变化。在轮廓跟踪算法中,目标表达可以是外观模型、形状模型、运动模型或这几个模型的组合。目标模型可密度函数进行建模,目标形状用轮廓子空间形式进行建模。在直观的轮廓搜索中基于外观的形状表达得到普遍应用。Hausdroff距离是对基于边缘形状的表达的最广泛测量方法。

    四、遮挡处理

      通常,遮挡可以分为三种情况:目标间遮挡、背景遮挡、自遮挡。对于目标之间的相互遮挡,可以选择根据目标的位置和目标特征的先验知识来处理这一问题。而对于场景结构的导致的部分遮挡此方法则难以判断,因为难以辨认究竟是目标形状发生变化还是发生遮挡。所以,处理遮挡问题的通用方法是用线性或非线性动态建模方法对运动目标进行,并在目标发生遮挡时,预测目标的可能位置,一直到目标重新出现时再修正它的位置。可以用卡尔曼滤波器来实现估计目标的位置,也可以用粒子滤波对目标做状态估计。或者使用:轮廓投影、光流特征等方法。

    五、多摄像头目标跟踪

      多摄像头目标跟踪的需求一般来自于以下两方面:

      1)深度跟踪和遮挡处理;

      2)扩大跟踪场景区域。

      多摄像头跟踪中的一个重要问题是如何处理不同摄像头之间的视角的对应关系。一般情况下可以人工定义,也可以根据观测的场景和运动目标进行自动计算。

    六、摄像头运动下的目标跟踪

      摄像头运动时就没法通过背景相减法获取目标的具体位置和大小描述, 这种情况下对目标的特征描述和目标跟踪算法的就要求较高。常用的方法有以下几种:

    质心跟踪算法

      这种跟踪方式主要用于跟踪有界目标,如飞机,目标和背景的差异较大。目标完全在视频画面内,跟踪时,常常需要用一些图像预处理算法,如对比度增强、图像去噪、双极性增强等。

    边缘跟踪算法

      当要跟踪的目标有一个或多个边缘并且同时具有不确定的边缘,此时边缘跟踪的效果最好。典型的跟踪对象是发射中的火箭,它有很好的前边缘,但是尾部边缘却由于喷气而不确定。

    场景锁定跟踪算法

      该算法主要用于在复杂场景的目标跟踪。适合于从空中对监控地面或者地面场景的监控。这个算法会跟踪视频画面中的多个目标,然后跟据每个点的运动状态,估计整个场景全局运动,场景中的运动目标和运动目标的定位是自动选择的。当跟踪的目标移动到视频画面外时,新的目标可以被自动标识。

    组合跟踪算法

      这种方法顾名思义就是利用两种或两种以上的具有互补特性的算法的组合:如将质心类算法和相关类算法进行组合。组合后的算法就能够适合于目标大小、形状、及表面特征变化较大的场景

    展开全文
  • 目标跟踪,目标跟踪算法,matlab源码
  • 机动目标跟踪算法

    2017-07-05 14:37:44
    机动目标跟踪算法
  • 运动目标跟踪算法综述

    千次阅读 2018-06-26 20:43:44
    本文介绍了一般的目标跟踪算法,对几个常用的算法进行对比,并详细介绍了粒子滤波算法和基于轮廓的目标跟踪算法。最后简单介绍了目标遮挡的处理、多摄像头目标跟踪和摄像头运动下的目标跟踪。一、一般的目标跟踪算法...

      运动目标跟踪是视频监控系统中不可缺少的环节。在特定的场景中,有一些经典的算法可以实现比较好的目标跟踪效果。本文介绍了一般的目标跟踪算法,对几个常用的算法进行对比,并详细介绍了粒子滤波算法和基于轮廓的目标跟踪算法。最后简单介绍了目标遮挡的处理、多摄像头目标跟踪和摄像头运动下的目标跟踪。

    一、一般的目标跟踪算法

      一般将目标跟踪分为两个部分:特征提取、目标跟踪算法。其中提取的目标特征大致可以分为以下几种:

      1) 以目标区域的颜色直方图作为特征,颜色特征具有旋转不变性,且不受目标物大小和形状的变化影响,在颜色空间中分布大致相同。

      2) 目标的轮廓特征,算法速度较快,并且在目标有小部分遮挡的情况下同样有较好的效果。

      3) 目标的纹理特征,纹理特征较轮廓特征跟踪效果会有所改善。

      目标跟踪的算法大致可以分为以下四种:

      1) 均值漂移算法,即meanshift算法,此方法可以通过较少的迭代次数快速找到与目标最相似的位置,效果也挺好的。但是其不能解决目标的遮挡问题并且不能适应运动目标的的形状和大小变化等。对其改进的算法有camshift算法,此方法可以适应运动目标的大小形状的改变,具有较好的跟踪效果,但当背景色和目标颜色接近时,容易使目标的区域变大,最终有可能导致目标跟踪丢失。

      2) 基于Kalman滤波的目标跟踪,该方法是认为物体的运动模型服从高斯模型,来对目标的运动状态进行预测,然后通过与观察模型进行对比,根据误差来更新运动目标的状态,该算法的精度不是特高。

      3) 基于粒子滤波的目标跟踪,每次通过当前的跟踪结果重采样粒子的分布,然后根据粒子的分布对粒子进行扩散,再通过扩散的结果来重新观察目标的状态,最后归一化更新目标的状态。此算法的特点是跟踪速度特别快,而且能解决目标的部分遮挡问题,在实际工程应用过程中越来越多的被使用。

      4) 基于对运动目标建模的方法。该方法需要提前通过先验知识知道所跟踪的目标对象是什么,比如车辆、行人、人脸等。通过对要跟踪的目标进行建模,然后再利用该模型来进行实际的跟踪。该方法必须提前知道要跟踪的目标对象是什么,然后再去跟踪指定的目标,这是它的局限性,因而其推广性相对比较差。

    二、基于粒子滤波的运动目标跟踪

      粒子滤波实现运动目标跟踪分为四个步骤:1)初始化提取运动目标特征;2)特征搜索阶段;3)决策阶段;4)粒子重采样。这后面三个过程的依次循环实现的对运动目标的跟踪。

      1)提取运动目标特征

      这个阶段需要通过人机交互选定待跟踪的目标,通过计算跟踪目标的特征,如目标的颜色特征,计算该区域颜色空间的直方图,以此作为描述目标的特征。

      2)特征搜索阶段

      初始化提取了目标的特征后,就可以去在目标的周围撒粒子搜索目标对象。撒粒子的方法有很多,例如:a)均匀分布的放:即在整个视频画面中均匀的撒粒子。b)在目标的附近以高斯分布来撒粒子,即靠近目标的地方多撒些,离目标较远的地方少放些。每个粒子按照初始化时候得到的目标特征计算出它所处的位置的颜色特征,并计算该直方图向量与目标的直方图向量的相似性程度。然后对每个粒子与目标计算出的相似度做归一化,使得所有粒子的相似度加起来和等于1。

      3)决策阶段

      根据每个粒子与目标的相似程度做加权平均。设第i个粒子的坐标是,它和目标的相似度是,则目标的最可能的位置为:,,n为粒子的个数。

      4)粒子重采样

      粒子重采样就是根据相似度的大小重新分配粒子的个数,即在相似度最高的粒子出放更多的粒子,在相似度低的粒子那少放粒子。粒子滤波算法的核心思想就是粒子的随机采样和粒子的重要性重采样。因为不知道目标在那个位置,就随机的进行撒粒子。撒完粒子后,根据描述目标的特征相似度来计算每个粒子的相似度,然后在相似度高的地方多撒些粒子,相似度低的地方少撒粒子,这就是粒子滤波的思想。

    三、基于轮廓的跟踪

      形状复杂的目标是很难用简单的几何形状来描述的。基于轮廓的目标跟踪方法提供了更准确的形状描述。这种方法的主要思想是利用前一帧建立的目标模型找到当前帧的目标区域。模型可以是目标区域的颜色直方图、边缘或轮廓。基于轮廓的目标跟踪方法大体上可以分为形状匹配、轮廓跟踪。前者搜索目标在当前帧特征,后者通过状态空间模型或直接最小化能量函数推导初始轮廓在当前帧的位置。

    1形状匹配方法

      这种方法和基于模板的目标跟踪方法相似,基本思想都是在当前帧中搜索目标的轮廓和目标的相关模型。另一种方法是在连续帧中寻找关联轮廓,使用目标的外观特征,建立轮廓关联,或者称为轮廓匹配,和点匹配方法类似。

      首先,由背景减除发来进行轮廓检测;再次,提取轮廓后,计算目标的模型和每个轮廓之间距离来实现匹配;目标的模型可以是密度函数(颜色特征或边缘直方图)、目标边缘、轮廓边界或这些信息的组合。

    2轮廓跟踪

      从上一帧的轮廓位置预测出当前帧的轮廓。当前帧和上一帧的目标轮廓有重叠部分,大体上可分为两中实现方式,用状态空间模型对目标的轮廓的形状和运动状态建模,或用梯度搜索进行推演轮廓。梯度搜索是一种轮廓能量最小化方法。

      1)状态空间模型的目标跟踪

      由轮廓的形状和目标的运动参数(如,速度、加速度、运动方向等)定义目标的状态,在轮廓的后验概率最大时更新目标状态。

      2)能量最小化方法的目标跟踪

      此方法和目标分割方法类似,其中的分割和跟踪部分都是通过梯度下降法或贪婪算法来最小化能量。

      3)讨论

      轮廓跟踪通常在跟踪整个目标区域时使用,其最突出的优点在于能更好的适应目标形状的变化。在轮廓跟踪算法中,目标表达可以是外观模型、形状模型、运动模型或这几个模型的组合。目标模型可密度函数进行建模,目标形状用轮廓子空间形式进行建模。在直观的轮廓搜索中基于外观的形状表达得到普遍应用。Hausdroff距离是对基于边缘形状的表达的最广泛测量方法。

    四、遮挡处理

      通常,遮挡可以分为三种情况:目标间遮挡、背景遮挡、自遮挡。对于目标之间的相互遮挡,可以选择根据目标的位置和目标特征的先验知识来处理这一问题。而对于场景结构的导致的部分遮挡此方法则难以判断,因为难以辨认究竟是目标形状发生变化还是发生遮挡。所以,处理遮挡问题的通用方法是用线性或非线性动态建模方法对运动目标进行,并在目标发生遮挡时,预测目标的可能位置,一直到目标重新出现时再修正它的位置。可以用卡尔曼滤波器来实现估计目标的位置,也可以用粒子滤波对目标做状态估计。或者使用:轮廓投影、光流特征等方法。

    五、多摄像头目标跟踪

      多摄像头目标跟踪的需求一般来自于以下两方面:

      1)深度跟踪和遮挡处理;

      2)扩大跟踪场景区域。

      多摄像头跟踪中的一个重要问题是如何处理不同摄像头之间的视角的对应关系。一般情况下可以人工定义,也可以根据观测的场景和运动目标进行自动计算。

    六、摄像头运动下的目标跟踪

      摄像头运动时就没法通过背景相减法获取目标的具体位置和大小描述, 这种情况下对目标的特征描述和目标跟踪算法的就要求较高。常用的方法有以下几种:

    质心跟踪算法

      这种跟踪方式主要用于跟踪有界目标,如飞机,目标和背景的差异较大。目标完全在视频画面内,跟踪时,常常需要用一些图像预处理算法,如对比度增强、图像去噪、双极性增强等。

    边缘跟踪算法

      当要跟踪的目标有一个或多个边缘并且同时具有不确定的边缘,此时边缘跟踪的效果最好。典型的跟踪对象是发射中的火箭,它有很好的前边缘,但是尾部边缘却由于喷气而不确定。

    场景锁定跟踪算法

      该算法主要用于在复杂场景的目标跟踪。适合于从空中对监控地面或者地面场景的监控。这个算法会跟踪视频画面中的多个目标,然后跟据每个点的运动状态,估计整个场景全局运动,场景中的运动目标和运动目标的定位是自动选择的。当跟踪的目标移动到视频画面外时,新的目标可以被自动标识。

    组合跟踪算法

      这种方法顾名思义就是利用两种或两种以上的具有互补特性的算法的组合:如将质心类算法和相关类算法进行组合。组合后的算法就能够适合于目标大小、形状、及表面特征变化较大的场景
    展开全文
  • 目标跟踪算法

    千次阅读 2020-02-09 15:37:45
    文章目录多目标跟踪算法一、多目标跟踪算法分类二、基于目标检测的多目标跟踪2.1 基于轨迹预测的目标跟踪算法2.2 基于目标特征建模 多目标跟踪算法 一、多目标跟踪算法分类 DBT(Detection Based Tracking)(如上图...

    多目标跟踪算法

    一、多目标跟踪任务

    1.1 数据集

    • MOT Challenge
      2015年、2016年、2017年数据,包括行人和车辆

    1.2 评价指标

    • 所有出现的目标都要及时能够找到;
    • 目标位置要尽可能与真实目标位置一致;
    • 每个目标都应该被分配一个独一无二的ID,并且该目标分配的这个ID在整个序列中保持不变。
      在这里插入图片描述
      在这里插入图片描述

    二、多目标跟踪算法分类

    在这里插入图片描述
    DBT(Detection Based Tracking)(如上图左层所示)是指在跟踪之前每一幅图像中的目标信息都事先经过检测算法得到。它首先检测目标,然后链接到已有的轨迹中。这种策略也通常被称为“tracking -by- detection”。跟踪目标的数量,跟踪目标的类型全部由检测算法的结果来决定,无法预知。也就是说MOT过程包含一个独立的detection 过程。这种方法性能比较依赖于检测算法的好坏。

    DFT(Detection Free Tracking )(如上图右层所示)需要人工标定第一帧图像中的目标,之后边检测边跟踪目标。DBT 和DFT相比较,DBT使用的更多。原因在于DFT 目标需要人工标定,对于非第一帧出现的目标或者中间帧消失的目标没办法处理。

    三、基于目标检测的多目标跟踪

    • 跟踪成功:在上一帧中的N个目标轨迹中找到了本次检测到的目标。
    • 新目标出现:在上一帧中的N个目标轨迹中没有找到本次检测到的目标
    • 目标消失:在上一帧中存在某个目标,但这一帧并没有与之关联的目标

    2.1 基于轨迹预测的目标跟踪算法

    先预测目标的下一帧会出现的位置,然后让真实的检测结果与预测的位置进行对比关联。

    • 跟踪预测方法
      卡尔曼滤波
      粒子滤波
      均值漂移算法
    • 数据关联算法
      多假设跟踪方法
      关联滤波器方法
      匈牙利算法
      马尔可夫链蒙特卡罗方法
      贪婪关联算法

    2.2 基于目标特征建模

    对于每帧,每个检测到的目标,先利用卷积神经网络提取表观特征(可以理解为该目标的一种特征编码),然后计算每个目标特征之间的余弦距离,进行关联匹配。
    在这里插入图片描述

    • 流程
      在这里插入图片描述

    四、多目标跟踪算法

    4.1 DeepSort

    deepsort是一种在检测的基础上,将检测框与跟踪器关联匹配的方式实现跟踪。

    • 三个重要模块:
      (1)运动状态估计:(u,v,r,h;x,y,r,h),u,v为坐标点,r为宽高比,h为高度;后面四个分量分别对应前四个变量的改变量。
      (2)跟踪器的创建与移除:如果连续三帧跟踪匹配成功,则认为是新目标,新建跟踪器。如果未匹配成功帧数大于一定帧数,则认为目标丢失,删除跟踪器。
      (3)指派问题(多目标匹配):卡尔曼预测结果与检测结果的距离。特征关联,前几帧与当前帧特征的距离。两个距离加权得到最终距离。距离最小的检测框与跟踪框匹配。
    • 级联匹配的流程:
      在这里插入图片描述
    • 跟踪算法流程:
      (1)检测器(Yolov3等)检测当前帧目标,得到目标的bounding-box和conference。
      (2)利用conference抑制部分检测框,得到滤除后的检测框。并利用深度神经网络提取各个检测目标的特征。
      (3)利用上一帧跟踪器的跟踪框,使用kalman滤波,预测当前帧目标的位置,这里称为预测框。其中每个跟踪器中保存了各自目标的历史特征。
      (4)级联匹配,将会得到,检测器和跟踪器匹配上的 M M M,未匹配上的检测框 U U U,未匹配上的跟踪器。
      (5)匹配上的检测器和跟踪器,用检测器得到的新坐标值更新卡尔曼滤波器的参数;未匹配上的检测框,先建立一个虚拟的跟踪器,保存检测框的坐标以及特征,如果连续三帧这个跟踪器均跟上,才认为是新的目标;未匹配上的跟踪器,则age+1,如果age>Amax,则删除跟踪器。

    4.2 Motdt

    MOTDT主要利用将检测和跟踪框作为候选框的方法,解决了检测不可靠的问题。其有几个重要的结构与公式:

    • 实时目标分类------R-FCN

    在这里插入图片描述
    (1)网络输入:图片,输出为:Score maps。
    (2)将检测框和卡尔曼滤波预测的跟踪框作为候选框,在score maps中切出ROI区域。并将这个ROI区域划分为k*k个区域,通过下式计算类别概率。
    在这里插入图片描述
    训练阶段,是目标的区域标签为1,非目标区域标签为0。测试阶段,选择奖ROI划分为k*k个框的作用为防止当ROI为目标的一部分时,得分很高,导致错误分类。

    • 跟踪置信度和得分函数
      跟踪轨迹的候选是通过卡尔曼滤波预测得到的,但是如果连续很多帧没有匹配到检测框的话,跟踪的结果可靠程度就会下降,因此引入一个跟踪置信度。
      在这里插入图片描述
      L d e t L_{det} Ldet​表示与跟踪器相关联的的检测框个数, L t r k L_{trk} Ltrk表示距离上次匹配上检测框,已经使用了多少次跟踪预测。
      得分函数:
      在这里插入图片描述

    • 外观表示和REID特征
      使用REID网络来进行外观表示,网络的骨架使用GoogLeNet,接上k个分支全连接层。训练时构建一个triplet, T = ⟨ I i , I j , I k ⟩ T={⟨I_i,I_j,I_k⟩} T=Ii,Ij,Ik,其中 ⟨ I i ​ , I j ​ ⟩ ⟨I_i​,I_j​⟩ Ii,Ij是同一人正确配对, ⟨ I i ​ , I k ​ ⟩ ⟨I_i​,I_k​⟩ Ii,Ik是来自不同人的错误配对,通过训练使得正确配对的欧式距离小于错误配对:
      在这里插入图片描述

    • 数据关联
      1、首先使用检测的候选进行数据关联,只取REID特征欧式距离小于阈值 τ d ​ τ_d​ τd的。
      2、利用IOU进行关联,配对剩下的检测候选和跟踪候选里面,阈值小于 τ I O U ​ τ_{IOU​} τIOU的;只有当跟踪轨迹匹配上了检测候选,才更新外观表示。
      3、将剩下的未配对的检测候选,生成新的跟踪轨迹。

    • 算法步骤:
      在这里插入图片描述
      (1)使用R-FCN得到Score map,初始化 C d e t = D k C_{det} = D_k Cdet=Dk, C t r k = ϕ C_{trk} = \phi Ctrk=ϕ.
      (2)利用上一帧的坐标,通过卡尔曼滤波得到预测框,更新 C t r k C_{trk} Ctrk
      (3)将更新后的 C d e t C_{det} Cdet C t r k C_{trk} Ctrk作为候选框,计算候选框和跟踪框的得分 S S S,然后,使用非极大值抑制,并滤掉 s s s小于阈值的 C d e t C_{det} Cdet C t r k C_{trk} Ctrk
      (4)利用REID训练的网络提取更新后的 C d e t C_{det} Cdet检测框的特征 F d e t F_{det} Fdet
      (5)数据匹配:1)利用特征计算跟踪器特征 F t r k F_{trk} Ftrk与检测器特征 F d e t F_{det} Fdet间的距离;2)将剩下的检测器 F t r k F_{trk} Ftrk和跟踪器 F d e t F_{det} Fdet使用IoU关联;3)将剩下的没有匹配上的检测器生成新的跟踪轨迹。将最终剩下的跟踪器赋给最终的跟踪结果,并把相应的特征保留。

    4.3 Towards Real-Time Multi-Object Tracking

    传统的Tracking by detection一般是先检测,再关联,关联过程提取特征与检测过程提取特征重复。作者针对这个问题提出了一种将检测和关联任务重的外观表示作为多任务学习。JDE模型:
    在这里插入图片描述

    • 目标检测有两个loss,前景和背景分类的 L α L_{\alpha} Lα,边界框回归 L β L_{\beta} Lβ
    • 跟踪的外观表示的loss则采用度量学习,同一目标尽量接近,不同目标尽量远离,采用triplet loss:
      在这里插入图片描述
    • 总的Loss:
      在这里插入图片描述
    • 算法步骤:
      (1)当前帧图像输入JDE,得到输出边框和相应的外观嵌入。
      (2)卡尔曼滤波根据轨迹预测当前帧的位置。
      (3)计算观测值的嵌入与之前存在的轨迹池中的嵌入之间的关联矩阵。 使用匈牙利算法将观测分配给轨迹。
      (4)分配到各个轨迹的观测值与卡尔曼预测的位置比较,当观测值在空间上与预测位置相距太远,则拒绝分配。
      (5)分配到观测值的跟踪器,更新kalman参数,未分配到观测值的跟踪器如果超过一定时间,删除该跟踪器。
    展开全文
  • Adaboost目标跟踪算法

    2010-12-19 18:48:06
    Adaboost 目标跟踪算法,欢迎目标跟踪需要的同仁下载。
  • 目标跟踪算法研究

    2021-04-13 20:20:10
    目标跟踪算法研究
  • 自适应机动目标跟踪算法
  • 目标跟踪算法matlab

    2013-12-16 16:37:41
    mean shift 目标跟踪算法,matlab程序源代码
  • 针对视觉目标跟踪算法中存在的快速运动、尺度变化、形变和遮挡问题, 提出基于图像签名算法的视觉目标跟踪算法。该算法以相关滤波算法为基础, 通过多种特征构建目标的外观模型, 提高了算法的跟踪精确度和稳健性; 为了...
  • Camshift + Kalman卡尔曼滤波目标跟踪算法c++实现。通过摄像头获取视频帧,鼠标选取跟踪目标区域,对选中目标进行跟踪,卡尔曼滤波加强了跟踪的稳定性。
  • 目标跟踪算法的分类

    2018-07-22 12:37:59
    目标跟踪算法的分类。一.运动目标检测 对于不依赖先验知识的目标跟踪来讲,运动检测是实现跟踪的第一步。运动检测即为从序列图像中将变化区域从背景图像中提取出来。运动目标检测的算法依照目标与摄像机之间的关系...
  • TLD目标跟踪算法

    千次阅读 2019-05-08 11:02:31
    TLD目标跟踪算法 原文地址:[https://wenku.baidu.com/view/7319071bf68a6529647d27284b73f242336c31a3.html]
  • camshift 多目标跟踪算法,使用鼠标选中摄像头视频流中的多个目标,即可进行对目标进行跟踪。后续可使用kalman及例子滤波对目标跟踪进行优化,kalman及例子滤波程序参见我的其他资源。
  • 粒子滤波目标跟踪算法,可以直接编译运行,基于颜色直方图特征
  • SORT 多目标跟踪算法笔记

    万次阅读 多人点赞 2019-04-21 15:20:46
    sort 是一种简单的在线实时多目标跟踪算法。文章要点为: 以 IoU 作为前后帧间目标关系度量指标; 利用卡尔曼滤波器预测当前位置; 通过匈牙利算法关联检测框到目标; 应用试探期甄别虚检; 使用 Faster R-...
  • 西安电子科大博士论文……视频目标跟踪算法研究 (1)基于颜色特征和自适应卡尔曼滤波的视频目标跟踪算法 (2)基于空间约束颜色模型的概率跟踪算法 (3)基于粒子滤波的目标模型更新算法 (4)基于团块模型的目标...
  • 基于staple目标跟踪算法,写的多目标跟踪算法,C++代码,工程中已使用,放心使用。
  • JPDA 雷达目标跟踪算法matlab源程序,能实现两个匀速直线运动目标。 感谢原作者,希望对大家有所帮助 JPDA 雷达目标跟踪算法matlab源程序,能实现两个匀速直线运动目标。 感谢原作者,希望对大家有所帮助
  • 实现经典算法KCF的目标跟踪,使用C++实现,可以运行
  • CSK目标跟踪算法

    2018-01-16 15:55:55
    实时并且准确度高的目标跟踪算法。文件中为源码。具有参考价值
  • 目标跟踪算法在红外热成像跟踪技术上的应用 摘要:介绍一种优化的快速模板的匹配算法,可实现目标实时提取、识别和跟踪,并成功应用于红外热成像跟踪技术的研究,解决了复杂背景条件下目标跟踪稳定度差的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 108,856
精华内容 43,542
关键字:

常用的目标跟踪算法