当前位置: 首页 > news >正文

目标跟踪 deepsort

DeepSORT(Deep Simple Online and Realtime Tracking)是SORT算法的核心改进版,核心突破是融合外观特征与运动模型,解决SORT中ID切换频繁的问题,在保持实时性(FPS≈30)的同时,大幅提升多目标跟踪的稳定性和鲁棒性,成为多目标跟踪领域的经典基准算法。

一、论文核心创新点

  1. 外观特征融合的数据关联:在SORT的IOU关联基础上,引入深度外观特征,通过余弦距离度量目标外观相似度,结合运动模型的马氏距离,构建加权关联度量,解决遮挡、姿态变化导致的IOU匹配失效问题。
  2. 改进的运动模型与状态估计:采用扩展卡尔曼滤波(EKF) 建模目标运动状态(位置、速度、尺寸),同时考虑目标尺度变化,优化状态预测精度,适配目标加速、减速等复杂运动。
  3. 轨迹管理机制:设计“未确认轨迹→确认轨迹→消失轨迹”的状态流转规则,通过连续匹配次数阈值(默认3次)确认轨迹,消失后保留轨迹一段时间(默认30帧)再删除,减少临时遮挡导致的ID切换。
  4. 深度特征提取网络:训练轻量级CNN提取128维外观特征,特征归一化后映射到单位球面,确保余弦距离的有效性,同时网络轻量化设计保证实时性。
  5. 分层数据关联策略:先通过匈牙利算法进行“轨迹-检测”的初始匹配,再对未匹配的检测和轨迹进行二次关联(基于外观特征的最近邻匹配),提升关联召回率。

二、核心模块详解

1. 目标检测模块
  • 核心功能:为跟踪提供初始目标位置和候选区域,输入为视频帧,输出为目标检测框(x,y,w,h)和置信度。
  • 关键细节:
    • 采用预训练的目标检测器(如Faster R-CNN、YOLO),原论文使用Faster R-CNN在VOC数据集上的检测结果。
    • 检测后处理:应用非极大值抑制(NMS,IOU阈值=0.7),过滤重复检测框,保留高置信度(默认置信度阈值=0.7)检测结果。
2. 外观特征提取模块
  • 核心功能:从检测框对应的目标区域中提取深度外观特征,用于区分不同目标。
  • 关键细节:
    • 网络结构:轻量级CNN(基于AlexNet修改),输入为128×64的灰度目标图像(统一缩放+归一化),输出128维特征向量。
    • 特征处理:特征向量L2归一化至单位球面(∥f∥2=1\|f\|_2=1f2=1),确保余弦距离可直接度量外观相似度。
    • 训练数据:使用MARS数据集(多目标行人跟踪数据集)训练,优化特征的区分性(同类目标距离近,异类目标距离远)。
3. 运动模型与状态估计(EKF)
  • 核心功能:预测目标下一帧的运动状态,修正检测结果,输出目标的最优状态估计。
  • 关键细节:
    • 状态向量:x=[u,v,s,r,u˙,v˙,s˙]Tx=[u, v, s, r, \dot{u}, \dot{v}, \dot{s}]^Tx=[u,v,s,r,u˙,v˙,s˙]T,其中(u,v)为目标中心坐标,s为目标面积,r为宽高比,u˙,v˙,s˙\dot{u},\dot{v},\dot{s}u˙,v˙,s˙为对应速度(宽高比r视为常数,不建模速度)。
    • 预测阶段:基于恒定速度模型(CV模型)预测下一帧状态,加入过程噪声(高斯分布)。
    • 更新阶段:用检测框(u’,v’,s’,r’)修正预测状态,r’用于更新宽高比(原论文中r仅通过检测更新,不预测)。
4. 数据关联模块
  • 核心功能:将当前帧的检测结果与已有轨迹进行匹配,确定“检测-轨迹”的对应关系。
  • 关键流程:
    1. 计算关联矩阵:每行对应轨迹,每列对应检测,元素为“马氏距离(运动匹配)+ 余弦距离(外观匹配)”的加权和。
    2. 匈牙利算法匹配:求解关联矩阵的最小权重匹配,得到初始匹配对。
    3. 阈值筛选:剔除权重超过阈值的匹配对(运动阈值基于卡方分布,外观阈值=0.2)。
    4. 二次关联:对未匹配的检测和消失时间较短的轨迹,基于外观特征的最近邻匹配,补充匹配。
5. 轨迹管理模块
  • 核心功能:管理轨迹的生命周期(初始化、确认、更新、删除),抑制ID切换。
  • 关键规则:
    • 轨迹初始化:未匹配的检测初始化新轨迹,状态设为“未确认”。
    • 轨迹确认:未确认轨迹连续匹配3次,转为“确认轨迹”,参与正式跟踪。
    • 轨迹更新:匹配成功的轨迹,用EKF更新状态,同时更新外观特征库(存储最近100帧的外观特征)。
    • 轨迹删除:确认轨迹连续30帧未匹配,或未确认轨迹连续1帧未匹配,直接删除。

三、算法公式解释

1. 扩展卡尔曼滤波(EKF)公式

EKF分为预测和更新两个阶段,核心是处理非线性状态转换(目标面积s的速度建模为线性,检测更新为非线性)。

  • 预测阶段

    • 状态预测:x^k∣k−1=F⋅xk−1∣k−1\hat{x}_{k|k-1} = F \cdot x_{k-1|k-1}x^kk1=Fxk1∣k1,其中FFF为状态转移矩阵:
      F=[1000Δt0001000Δt0001000Δt0001000000010000000100000001] F = \begin{bmatrix} 1 & 0 & 0 & 0 & \Delta t & 0 & 0 \\ 0 & 1 & 0 & 0 & 0 & \Delta t & 0 \\ 0 & 0 & 1 & 0 & 0 & 0 & \Delta t \\ 0 & 0 & 0 & 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 1 \\ \end{bmatrix} F=1000000010000000100000001000Δt0001000Δt0001000Δt0001
      Δt\Delta tΔt为帧间隔(默认1/30s)。
    • 协方差预测:Pk∣k−1=F⋅Pk−1∣k−1⋅FT+QP_{k|k-1} = F \cdot P_{k-1|k-1} \cdot F^T + QPkk1=FPk1∣k1FT+QQQQ为过程噪声协方差矩阵(控制运动模型的不确定性)。
  • 更新阶段

    • 观测模型:zk=H⋅xk+vkz_k = H \cdot x_k + v_kzk=Hxk+vkHHH为观测矩阵(提取状态中的u,v,s,r),vkv_kvk为观测噪声(高斯分布)。
    • 卡尔曼增益:Kk=Pk∣k−1⋅HT⋅(H⋅Pk∣k−1⋅HT+R)−1K_k = P_{k|k-1} \cdot H^T \cdot (H \cdot P_{k|k-1} \cdot H^T + R)^{-1}Kk=Pkk1HT(HPkk1HT+R)1RRR为观测噪声协方差矩阵。
    • 状态更新:xk∣k=x^k∣k−1+Kk⋅(zk−H⋅x^k∣k−1)x_{k|k} = \hat{x}_{k|k-1} + K_k \cdot (z_k - H \cdot \hat{x}_{k|k-1})xkk=x^kk1+Kk(zkHx^kk1)
    • 协方差更新:Pk∣k=(I−Kk⋅H)⋅Pk∣k−1P_{k|k} = (I - K_k \cdot H) \cdot P_{k|k-1}Pkk=(IKkH)Pkk1III为单位矩阵。
2. 关联度量公式(核心创新)

关联矩阵的元素为运动相似度和外观相似度的加权组合,公式为:
ci,j=λ⋅dmotion(i,j)+(1−λ)⋅dappearance(i,j) c_{i,j} = \lambda \cdot d_{motion}(i,j) + (1-\lambda) \cdot d_{appearance}(i,j) ci,j=λdmotion(i,j)+(1λ)dappearance(i,j)

  • 参数解析:
    • λ\lambdaλ:权重系数(默认λ=0.7\lambda=0.7λ=0.7),平衡运动和外观的重要性。
    • dmotion(i,j)d_{motion}(i,j)dmotion(i,j):轨迹i与检测j的马氏距离,衡量运动状态的匹配程度:dmotion=(zj−z^i∣i−1)T⋅Si,j−1⋅(zj−z^i∣i−1)d_{motion} = (z_j - \hat{z}_{i|i-1})^T \cdot S_{i,j}^{-1} \cdot (z_j - \hat{z}_{i|i-1})dmotion=(zjz^ii1)TSi,j1(zjz^ii1)Si,jS_{i,j}Si,j为残差协方差矩阵,dmotion<χ2(4,0.95)d_{motion} < \chi^2(4, 0.95)dmotion<χ2(4,0.95)(卡方分布阈值,约9.49)时认为运动匹配有效。
    • dappearance(i,j)d_{appearance}(i,j)dappearance(i,j):轨迹i与检测j的外观距离,用余弦距离计算:dappearance=1−fjT⋅fˉid_{appearance} = 1 - f_j^T \cdot \bar{f}_idappearance=1fjTfˉi,其中fjf_jfj为检测j的外观特征,fˉi\bar{f}_ifˉi为轨迹i的平均外观特征(从特征库中计算均值),dappearance<0.2d_{appearance} < 0.2dappearance<0.2时认为外观匹配有效。
3. 外观特征更新公式

轨迹的外观特征库存储最近100帧的特征,平均特征更新公式为:
fˉi=1N∑t=k−N+1kfi,t \bar{f}_i = \frac{1}{N} \sum_{t=k-N+1}^k f_{i,t} fˉi=N1t=kN+1kfi,t
其中N=100N=100N=100为特征库容量,fi,tf_{i,t}fi,t为轨迹i在第t帧的外观特征,确保平均特征能反映目标最新的外观状态。


四、数据处理细节

1. 检测数据预处理
  • NMS过滤:对检测器输出的检测框,按IOU阈值=0.7执行非极大值抑制,删除重叠度高的重复检测。
  • 置信度筛选:保留置信度≥0.7的检测框,过滤低置信度噪声检测。
  • 坐标转换:将检测框的像素坐标(x1,y1,x2,y2)转换为状态向量所需的(u,v,s,r):u=(x1+x2)/2,v=(y1+y2)/2,s=(x2-x1)(y2-y1),r=(x2-x1)/(y2-y1)。
2. 外观特征提取预处理
  • 目标区域裁剪:根据检测框裁剪目标区域,统一缩放至128×64像素(灰度图)。
  • 归一化:像素值归一化至[0,1](除以255),减少光照变化对特征提取的影响。
  • 特征归一化:提取的128维特征向量进行L2归一化(∥f∥2=1\|f\|_2=1f2=1),确保余弦距离的有效性。
3. 轨迹初始化与更新数据
  • 初始化数据:未匹配的检测框,初始化状态向量xxx的位置(u,v,s,r)为检测值,速度(u˙,v˙,s˙\dot{u},\dot{v},\dot{s}u˙,v˙,s˙)设为0,协方差矩阵PPP初始化为对角矩阵(对角元素为较大值,体现初始不确定性)。
  • 更新数据:匹配成功时,用EKF更新状态向量和协方差矩阵;同时将当前帧的外观特征加入轨迹的特征库,若特征库容量超过100,删除最早的特征。
4. 异常处理
  • 遮挡处理:目标被遮挡时,轨迹未匹配但不立即删除(保留30帧),期间仍通过运动模型预测位置,待遮挡解除后可通过外观特征重新匹配。
  • 尺度适配:通过检测框的s和r更新目标尺度,适配目标靠近/远离镜头导致的尺寸变化。
  • 噪声抑制:通过置信度筛选、NMS、关联阈值筛选,过滤检测噪声和错误匹配,避免虚假轨迹生成。
http://www.dtcms.com/a/556790.html

相关文章:

  • 网站建设前的分析第一小节内容好看网页设计
  • SAP PP生产版本批量维护功能分享
  • 【Linux】当遇到不是root用户,无法进入root用户,却仍需要使用sudo命令时
  • Python 生成书法字体(以瘦金体为例)
  • Advanced Science 国防科大开发1.8克人仿生眼球,实现微型化与功能集成度兼具!
  • 数据结构05:顺序表经典算法
  • 静态网站开发课程深圳东门网红打卡地
  • Ubuntu 24.04下编译支持ROCm加速的llama.cpp
  • 如何在DCU上面编译llama.cpp
  • 具身导航轨迹规划与主动想象融合!DreamNav:基于轨迹想象的零样本视觉语言导航框架
  • AWS + SEO:让网站从服务器层面赢在搜索引擎起跑线
  • 深度学习(9)导数与计算图
  • 好看的网站建设公司中企动力网站建设公司
  • JavaSe—泛型
  • ssm面试题梳理
  • 基于MATLAB的二维图像三维重建算法比较研究
  • SVG 参考手册
  • 微软Copilot+企业版亮相:GPT-5赋能,效率激增47%,多模态操控金融级安全
  • 我在高职教STM32(新08)——初识LCD1602
  • 购买qq空间访客的网站一般app开发费用多少
  • 有没有个人做网站的长沙装修公司排行榜
  • 【新能源汽车的电机控制器控制电机过程中,谐波、纹波、载频、谐振、NVH等几个关键词之间有什么相互、因果关系】
  • 技术准备十二:FastDFS
  • Linux(MAIL服务)
  • GetFieldID函数介绍
  • 二分查找为什么总是写错
  • PPO算法:从深度学习视角入门强化学习
  • 《数据结构风云》递归算法:二叉树遍历的精髓实现
  • 广州网站建设学习郑州官网seo推广
  • 进程控制(创建、终止)