由单目标跟踪实现多目标跟踪的思想框架
1. 算法目的:
运动目标跟踪算法的目的就是对视频中的图象序列进行分析,计算出目标在每帧图象上的位置。这里要根据区域分割过程给出的目标质心位置,计算出目标位移,并且根据质心位置的变化判断出目标的运动方向,以及运动目标是否在观察窗口,实现对客流量的统计。因为该跟踪是对多目标的追踪,需要找出运动目标在相邻帧上的对应区域。
系统具有固有噪声,目标周围背景的干扰可能会产生误差,但这些噪声在前面的过程已经去除,如有必要可做适当调整修正。
2. 算法难点:
(1)因为要跟踪的是多目标,需要找到相邻帧之间对应的运动目标区域不致跟踪混乱。
(3)运动目标是否离开了观测窗口以及离开的方向;即计数器何时加1、是否加1
3. 算法描述:
(1)跟踪首先要判断的是:帧与帧之间如何将运动目标对应起来。追踪过程中的追踪特
征是物体的质心(由运动区域分割过程中给出),这里判断对应目标可以:a.只利用质心间的最短距离做为特征; b.利用加权系数将最短距离,运动目标区域的长度,宽度以及长宽比和面积等综合起来作为特征。
(2)根据判断特征设置目标链,记录每个被跟踪目标的最新质心位置,为下步判断提供条件。另外将每个目标的质心位置存储起来,可以随时掌握目标的运动情况,为以后要输出目标的运动曲线做基础。
(7)直至目标链中的目标检查完毕,则查看当前祯中的各运动目标,如有未被标记的,且在新目标区域中则将其加入到目标链中,标记设为已被跟踪。
(1) 如果当前祯中一个运动目标t已经被标记,但是当处理到目标链中下一个目标是最小距离的仍是t,说明目标链中有两个目标都与t的距离最小,这样就需要调整。
(3) 如果目标链中所有目标检查完毕,但是在当前祯中有未被标记并且不在新目标区域,
即不是新目标,又不是被跟踪目标的相应目标,则有差错出现,可能是噪声。
(4) 是否将离开观测窗口并且运动方向是出去的目标质心位置存储在数组CC中。
4.算法实现
a. 设置数组WZ[m][n]用来存放跟踪过程中被跟跟踪目标的各时刻质心位置,WZ[i][0]存放下次填写质心记录的位置,从WZ[0][1]开始记录横坐标。
b. 设置数组MB[M][2]存放目标链,记录被跟踪目标的最新质心位置,MB[0][0]存放被跟踪目标的个数,MB[0][1]闲置。
c. 设置数组CC[h][l]存放离开观察窗口已跟踪完毕的各目标的质心位置,供若质心位置曲
{ for( I=1;I<cursorm;I++) 依次对目标链各目标进行处理
d=sqrt(pow(x-p.x,2)+pow(y-p.y,2));
{ if(MB[I][1]>ymax) 离开观测窗口方向是进入
if (MB[0][0]==0) 说明还未有被跟踪目标,目标链为空
{ if ( p.mark==’n’&&(p.y < ymin || p.y > ymax)) 在新目标区域
WZ[cursorm][WZ[cursorm][0]]=p.x;
WZ[cursorm][WZ[cursorm][0]]=p.y;
WZ[cursorm][0]=WZ[cursorm][0]+2;
5. 算法优化:
其中λ,ymin和ymax的取值要得当,否则会出现差错,这需要反复测试得到合适的值。
另外对图象的噪声影响和跟踪过程中出现的不期望的结果如果进行修正,则结果可能会更精确。
6. 各个函数功能及其输入输出
(1)void Init() 初始化函数,将程序中全局变量——数组WZ和MB初始化,kwhead是指向空闲数组位置的指针,初始化为NULL,cursorm的值表示数组WZ和MB的最大下标+1;
其中MB[0][0]存放正在被跟踪目标个数,WZ[I][0]存放第I个被跟踪目标的下一个轨迹质心存放位置(在数组WZ中),countin,countout分别记录进入和出去的人数;
输出:无输出,下次分配时,利用指针头kwhead依次分配数组空间。
功能:有新的目标出现在运动区域,找到合适的数组下标,将此数组空间分配给该目标。
输入:无输入,直接调用该函数,从kwhead所指的链表中(为空闲数组下标)依次分
(5) int Getxymax(int WZtemp[Nmax]):
功能:从数组Wztemp所记录的运动轨迹中找到最大的横坐标或纵坐标。
输出:输出找到的最大的横坐标或纵坐标(如果定义Coordinate则找最大的横坐标,此
(6) int Getxymin(int WZtemp[Nmax]):
功能:从数组Wztemp所记录的运动轨迹中找到最小的横坐标或纵坐标。
如果没有定义Coordinate(表示目标运动方向是顺着或逆着纵坐标)则运行该程序。
功能:处理得到的运动质心,将各质心位置一一对应,找到各个运动目标的运动轨迹,并记数。
输入:无输入,数据的得到靠指针的传递,Crhead是每一帧目标质心位置的头指针,
输出:无输出,直接修改全局变量,得到被跟踪目标的运动轨迹和最新位置,并根据
在该函数中处理了一般情况和一些特殊情况,比如:运动目标在运动区域来回运动、以及停止不动,几帧之后重新运动、丢失一些帧的相关处理等等。
如果定义Coordinate(表示目标运动方向是顺着或逆着横坐标)则运行该程序。
由单目标跟踪实现多目标跟踪的思想框架相关推荐
- 单目标跟踪(sot)与多目标跟踪(mot)
单目标跟踪 根据检测得到的结果,通过sot预测下一帧的位置.如Siamese RPN. sot比直接用检测快很多,所以通过sot来加速跟踪. 多目标跟踪 用于将sot的结果关联为各个不同的id,如通过 ...
- 视觉单目标跟踪任务概述
视觉目标跟踪的主要目的是:模仿生理视觉系统的运动感知功能,通过对摄像头捕获到的图像序列进行分析,计算出运动目标在每一帧图像中的位置:然后,根据运动目标相关的特征值,将图像序列中连续帧的同一运动目标 ...
- 单目标跟踪——个人笔记
单目标跟踪--个人笔记 以<Handcrafted and Deep Trackers: A Review of Recent ObjectTracking Approaches>为主线看 ...
- 单目标跟踪SiamMask:特定目标车辆追踪 part2
日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) CNN:RCNN.SPPNet.Fast RCNN.Faste ...
- TrackingNet:最经典大规模、多样化的单目标跟踪数据集
除了多目标跟踪任务外,研究经典的.通用的单目标跟踪任务对于整个跟踪领域的发展有重要意义. 本期给大家介绍一个包含包含超过3万个视频,共有27个目标类别,视频数量和标注数量比以往的跟踪数据集更大的数据集 ...
- 3d量测怎么学距离_智车科技大讲堂:自动驾驶的“4位1体”+3D环境感知(单目标跟踪)...
智车科技正与具有实战经验的自动驾驶公司及团队,共同构建开放的学习平台,定期对自动驾驶技术进行分享,本期分享的是嬴彻科技. 作为一家专注于自动驾驶卡车网络运营的公司,嬴彻科技(Inceptio Tech ...
- Video Target Tracking Based on Online Learning—TLD单目标跟踪算法详解
视频目标跟踪问题分析 视频跟踪技术的主要目的是从复杂多变的的背景环境中准确提取相关的目标特征,准确地识别出跟踪目标,并且对目标的位置和姿态等信息精确地定位,为后续目标物体行为分析提供足 ...
- 352万帧标注图片,1400个视频,亮风台推最大单目标跟踪数据集
CVPR 2019期间,专注于AR技术,整合软硬件的人工智能公司亮风台公开大规模单目标跟踪高质量数据集LaSOT,包含超过352万帧手工标注的图片和1400个视频,这也是目前为止最大的拥有密集标注的单 ...
- python 粒子滤波目标追踪_Python实现基于相关滤波的单目标跟踪算法
最近在阅读一些单目标跟踪的算法论文,主要看了一系列基于相关滤波的算法,尝试着用python实现了其中一些比较经典的算法,地址在https://github.com/wwdguu/pyCFTracker ...
- CVPR 2019 | 亮风台发布全球最大单目标跟踪数据集LaSOT
点击我爱计算机视觉标星,更快获取CVML新技术 CVPR 2019 正在美国加州举行,发布交流来自全球的工业界与学术界最新研究成果. 会上,亮风台公开大规模单目标跟踪高质量数据集LaSOT,包含超过3 ...
最新文章
- QIIME 2教程. 30补充资源SupplementaryResources(2021.2)
- 微信界面代码android,仿微信界面代码安卓版
- 可视化文本数据—词云
- python接收邮件内容启动程序_Python实现发送与接收邮件的方法详解
- Android应用程序消息处理机制(Looper、Handler)分析(1)
- nodejs v8引擎
- DataGrid 中間隔色的實現
- vs python生成exe文件_使用VScode编写python程序并打包成.exe文件-文件夹变成exe
- LeetCode: Word Break II [140]
- Windows下JNI的使用教程
- java孢子进化_孢子进化论游戏
- 项目管理 之四 常用的项目管理工具(Github、Gitlab、Gitea、Gitee、Worktile、Teambition)
- 原生方式android 商城,WooCommerce商城原生android完整客户端源码(CiyaShop)
- Dither(抖动): Bayer Matrix(Bayer ordered dither matrix)与Bayer Filter(拜尔滤镜)
- 远程控制计算机显示为什么不能满屏,win7系统连接远程桌面却不能全屏显示的解决方法...
- ide中tomcat乱码_彻底解决Intellij IDEA中文乱码问题(亲测成功)
- 基于stata的medsens包进行中介效应分析
- 你需要了解的群体重测序都在这里(一)
- C语言——第三章:C语言程序设计
- h5移动端判断 是否是微信浏览器