【计算机视觉+Tensorflow】SORT目标跟踪算法的讲解(图文解释 超详细)

简介: 【计算机视觉+Tensorflow】SORT目标跟踪算法的讲解(图文解释 超详细)

觉得有帮助请点赞关注收藏~~~

一、目标跟踪简介

目标跟踪算法可以进行轨迹特征的分析和提取,以弥补目标检测的不足;有效地去除误检,提高检测精度,为进一步的行为分析提供基础。例如,在自动驾驶系统中,目标跟踪算法要对运动的车、行人等目标进行跟踪,根据运动轨迹对它们在未来的位置、速度等信息作出预判。

跟踪就是在视频的不同帧中定位某一目标,从算法的设计角度来说分为两个阶段

1:预测第S帧图像中目标A 目标B 在第S+N帧图像中可能出现的位置 即候选区域

2:第S+N帧的候选区域是否为第S帧图像中目标A 目标B 如果是则跟踪成功

二、SORT目标跟踪算法

对于多目标的SORT算法,目标跟踪算法是将各帧的目标检测结果分别赋予跟踪序号的过程,在不同视频帧出现的同一目标需要赋予相同的跟踪序号,算法流程图如下

下面对算法流程中介绍的卡尔曼滤波器和匈牙利算法进行详细介绍

1:卡尔曼滤波器

卡尔曼滤波器不需要存储大量的历史数据,只需要保留系统前一时刻的状态,根据系统的状态空间向量模型准确预测当前状态,该算法计算量小,在速度上占有优势,而且是一个纯时域的滤波器,占用内存小,在实际工程上应用广泛,是解决实时性问题的理想选择

卡尔曼滤波器流程分为两个步骤:状态预测和状态更新。卡尔曼滤波器首先要计算系统状态的先验估计,利用前一时刻系统的状态估计值,计算当前时刻系统状态和误差协方差的预测值,当前时刻的观测值进入系统后,融入新的观测值和先验估计构造后验估计,对模型进行更新,从而更加准确地预测系统下一时刻状态估计

在大多数情况下,同一个目标的运动状态在较短时间可以近似为匀速直线运动,采用线性的卡尔曼滤波器依据中心坐标、尺寸大小比例以及对下一帧的预测信息等为每个目标建立运动模型,进而对下一帧目标的位置进行估计来加快目标跟踪的计算速度

三、基于匈牙利算法的数据关联

匈牙利算法是一种组合优化算法,用于求解指派问题,例如把N项任务分配给N个人时,列出所有组合情况的总薪酬开销可求最小值,但是当任务数和人数变大时,难以列出所有的分配情况,可利用匈牙利算法进行任务分配,实现最合理的资源配置

目标跟踪的主要任务之一就是将视频中不同帧的目标进行匹配,如下图所示,卡尔曼滤波器预测得到目标跟踪框之后,计算出目标跟踪框和目标检测框之间的相交度,即上一帧预测得到的跟踪框与当前帧中的检测框之间的交集面积与并集面积的比值,利用匈牙利匹配算法对检测框与预测框的相交度组成的状态关联矩阵进行指派,实现目标检测结果与跟踪序列之间的匹配

匈牙利算法步骤如下

1:给定N个目标检测框分配N个目标跟踪框,可以用一个N×N的开销矩阵来表示这一指派问题

2:对开销矩阵的各行进行操作 找出每一行中值最小的元素,然后把该行所有元素都减去这一最小值

3:对开销矩阵的各列进行操作,找出每一列中值最小的元素,然后把该列所有元素都减去这一最小值

4:用尽量少的横线或者竖线覆盖矩阵中的所有0

5:从第4步中未被覆盖的元素中找到最小值,然后把所有元素都减去这一最小值 给直线交叉点的元素加上这一最小值,被覆盖元素的最小值实际上是完成所有任务过程中不可避免的开销,这一步的作用是增加开销矩阵中0的个数,使得任务更易分配

6:重复第三步和第四步 直到所有任务都被分配

创作不易 觉得有帮助请点赞关注收藏~~~

 

相关文章
|
12天前
|
机器学习/深度学习 人工智能 算法
猫狗宠物识别系统Python+TensorFlow+人工智能+深度学习+卷积网络算法
宠物识别系统使用Python和TensorFlow搭建卷积神经网络,基于37种常见猫狗数据集训练高精度模型,并保存为h5格式。通过Django框架搭建Web平台,用户上传宠物图片即可识别其名称,提供便捷的宠物识别服务。
157 55
|
3月前
|
机器学习/深度学习 算法 TensorFlow
动物识别系统Python+卷积神经网络算法+TensorFlow+人工智能+图像识别+计算机毕业设计项目
动物识别系统。本项目以Python作为主要编程语言,并基于TensorFlow搭建ResNet50卷积神经网络算法模型,通过收集4种常见的动物图像数据集(猫、狗、鸡、马)然后进行模型训练,得到一个识别精度较高的模型文件,然后保存为本地格式的H5格式文件。再基于Django开发Web网页端操作界面,实现用户上传一张动物图片,识别其名称。
117 1
动物识别系统Python+卷积神经网络算法+TensorFlow+人工智能+图像识别+计算机毕业设计项目
|
22天前
|
机器学习/深度学习 人工智能 算法
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
宠物识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了37种常见的猫狗宠物种类数据集【'阿比西尼亚猫(Abyssinian)', '孟加拉猫(Bengal)', '暹罗猫(Birman)', '孟买猫(Bombay)', '英国短毛猫(British Shorthair)', '埃及猫(Egyptian Mau)', '缅因猫(Maine Coon)', '波斯猫(Persian)', '布偶猫(Ragdoll)', '俄罗斯蓝猫(Russian Blue)', '暹罗猫(Siamese)', '斯芬克斯猫(Sphynx)', '美国斗牛犬
122 29
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
|
6月前
|
机器学习/深度学习 人工智能 算法
海洋生物识别系统+图像识别+Python+人工智能课设+深度学习+卷积神经网络算法+TensorFlow
海洋生物识别系统。以Python作为主要编程语言,通过TensorFlow搭建ResNet50卷积神经网络算法,通过对22种常见的海洋生物('蛤蜊', '珊瑚', '螃蟹', '海豚', '鳗鱼', '水母', '龙虾', '海蛞蝓', '章鱼', '水獭', '企鹅', '河豚', '魔鬼鱼', '海胆', '海马', '海豹', '鲨鱼', '虾', '鱿鱼', '海星', '海龟', '鲸鱼')数据集进行训练,得到一个识别精度较高的模型文件,然后使用Django开发一个Web网页平台操作界面,实现用户上传一张海洋生物图片识别其名称。
217 7
海洋生物识别系统+图像识别+Python+人工智能课设+深度学习+卷积神经网络算法+TensorFlow
|
1月前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的【垃圾识别系统】实现~TensorFlow+人工智能+算法网络
垃圾识别分类系统。本系统采用Python作为主要编程语言,通过收集了5种常见的垃圾数据集('塑料', '玻璃', '纸张', '纸板', '金属'),然后基于TensorFlow搭建卷积神经网络算法模型,通过对图像数据集进行多轮迭代训练,最后得到一个识别精度较高的模型文件。然后使用Django搭建Web网页端可视化操作界面,实现用户在网页端上传一张垃圾图片识别其名称。
84 0
基于Python深度学习的【垃圾识别系统】实现~TensorFlow+人工智能+算法网络
|
1月前
|
机器学习/深度学习 人工智能 算法
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
手写数字识别系统,使用Python作为主要开发语言,基于深度学习TensorFlow框架,搭建卷积神经网络算法。并通过对数据集进行训练,最后得到一个识别精度较高的模型。并基于Flask框架,开发网页端操作平台,实现用户上传一张图片识别其名称。
97 0
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
|
1月前
|
机器学习/深度学习 人工智能 算法
基于深度学习的【蔬菜识别】系统实现~Python+人工智能+TensorFlow+算法模型
蔬菜识别系统,本系统使用Python作为主要编程语言,通过收集了8种常见的蔬菜图像数据集('土豆', '大白菜', '大葱', '莲藕', '菠菜', '西红柿', '韭菜', '黄瓜'),然后基于TensorFlow搭建卷积神经网络算法模型,通过多轮迭代训练最后得到一个识别精度较高的模型文件。在使用Django开发web网页端操作界面,实现用户上传一张蔬菜图片识别其名称。
95 0
基于深度学习的【蔬菜识别】系统实现~Python+人工智能+TensorFlow+算法模型
|
1月前
|
机器学习/深度学习 人工智能 算法
【车辆车型识别】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+算法模型
车辆车型识别,使用Python作为主要编程语言,通过收集多种车辆车型图像数据集,然后基于TensorFlow搭建卷积网络算法模型,并对数据集进行训练,最后得到一个识别精度较高的模型文件。再基于Django搭建web网页端操作界面,实现用户上传一张车辆图片识别其类型。
87 0
【车辆车型识别】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+算法模型
|
3月前
|
机器学习/深度学习 人工智能 算法
鸟类识别系统Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+ResNet50算法模型+图像识别
鸟类识别系统。本系统采用Python作为主要开发语言,通过使用加利福利亚大学开源的200种鸟类图像作为数据集。使用TensorFlow搭建ResNet50卷积神经网络算法模型,然后进行模型的迭代训练,得到一个识别精度较高的模型,然后在保存为本地的H5格式文件。在使用Django开发Web网页端操作界面,实现用户上传一张鸟类图像,识别其名称。
124 12
鸟类识别系统Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+ResNet50算法模型+图像识别
|
3月前
|
机器学习/深度学习 算法 TensorFlow
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面
交通标志识别系统。本系统使用Python作为主要编程语言,在交通标志图像识别功能实现中,基于TensorFlow搭建卷积神经网络算法模型,通过对收集到的58种常见的交通标志图像作为数据集,进行迭代训练最后得到一个识别精度较高的模型文件,然后保存为本地的h5格式文件。再使用Django开发Web网页端操作界面,实现用户上传一张交通标志图片,识别其名称。
130 6
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面