[AI开发]基于深度学习的视频多目标跟踪实现

作者: 机器不学习 2019-05-22 14:28:08

多目标跟踪大概有两种方式:

Option1

基于初始化帧的跟踪,在视频***帧中选择你的目标,之后交给跟踪算法去实现目标的跟踪。这种方式基本上只能跟踪你***帧选中的目标,如果后续帧中出现了新的物体目标,算法是跟踪不到的。这种方式的优点是速度相对较快。缺点很明显,不能跟踪新出现的目标。

Option2

基于目标检测的跟踪,在视频每帧中先检测出来所有感兴趣的目标物体,然后将其与前一帧中检测出来的目标进行关联来实现跟踪的效果。这种方式的优点是可以在整个视频中跟踪随时出现的新目标,当然这种方式要求你前提得有一个好的“目标检测”算法。

本文主要讲述Option2的实现原理,也就是Tracking By Detecting的跟踪方式。这篇文章没有源码链接,关于“目标检测”算法的源码可以参见我上一篇文章,至于“轨迹跟踪”算法的源码实现很简单,看完本文相信大家都能写出来,Python实现大概200行不到。

[AI开发]基于深度学习的视频多目标跟踪实现

Tracking By Detecting的跟踪过程

Step1:使用目标检测算法将每帧中感兴趣的目标检测出来,得到对应的(位置坐标, 分类, 可信度),假设检测到的目标数量为M;

Step2:通过某种方式将Step1中的检测结果与上一帧中的检测目标(假设上一帧检测目标数量为N)一一关联起来。换句话说,就是在M*N个Pair中找出最像似的Pair。

对于Step2中的“某种方式”,其实有多种方式可以实现目标的关联,比如常见的计算两帧中两个目标之间的欧几里得距离(平面两点之间的直线距离),距离最短就认为是同一个目标,然后通过匈牙利算法找出最匹配的Pair。当让,你还可以加上其他的判断条件,比如我用到的IOU,计算两个目标Box(位置大小方框)的交并比,该值越接近1就代表是同一个目标。还有其他的比如判断两个目标的外观是否相似,这就需要用到一种外观模型去做比较了,可能耗时更长。

在关联的过程中,会出现三种情况:

1)在上一帧中的N个目标中找到了本次检测到的目标,说明正常跟踪到了;

2)在上一帧中的N个目标中没有找到本次检测到的目标,说明这个目标是这一帧中新出现的,所以我们需要把它记录下来,用于下下一次的跟踪关联;

3)在上一帧中存在某个目标,这一帧中并没有与之关联的目标,那么说明该目标可能从视野中消失了,我们需要将其移除。(注意这里的可能,因为有可能由于检测误差,在这一帧中该目标并没有被检测到)

[AI开发]基于深度学习的视频多目标跟踪实现

存在的问题

上面提到的跟踪方法在正常情况下都能够很好的工作,但是如果视频中目标运动得很快,前后两帧中同一个目标运动的距离很远,那么这种跟踪方式就会出现问题。

[AI开发]基于深度学习的视频多目标跟踪实现

如上图,实线框表示目标在***帧的位置,虚线框表示目标在第二帧的位置。当目标运行速度比较慢的时候,通过之前的跟踪方式可以很准确的关联(A, A’)和(B, B’)。但是当目标运行速度很快(或者隔帧检测)时,在第二帧中,A就会运动到***帧中B的位置,而B则运动到其他位置。这个时候使用上面的关联方法就会得到错误的结果。

那么怎样才能更加准确地进行跟踪呢?

基于轨迹预测的跟踪方式

既然通过第二帧的位置与***帧的位置进行对比关联会出现误差,那么我们可以想办法在对比之前,先预测目标的下一帧会出现的位置,然后与该预测的位置来进行对比关联。这样的话,只要预测足够精确,那么几乎不会出现前面提到的由于速度太快而存在的误差。

[AI开发]基于深度学习的视频多目标跟踪实现

如上图,我们在对比关联之前,先预测出A和B在下一帧中的位置,然后再使用实际的检测位置与预测的位置进行对比关联,可以***地解决上面提到的问题。理论上,不管目标速度多么快,都能关联上。那么问题来了,怎么预测目标在下一帧的位置?

方法有很多,可以使用卡尔曼滤波来根据目标前面几帧的轨迹来预测它下一帧的位置,还可以使用自己拟合出来的函数来预测下一帧的位置。实际过程中,我是使用拟合函数来预测目标在下一帧中的位置。

[AI开发]基于深度学习的视频多目标跟踪实现

如上图,通过前面6帧的位置,我可以拟合出来一条(T->XY)的曲线(注意不是图中的直线),然后预测目标在T+1帧的位置。具体实现很简单,Python中的numpy库中有类似功能的方法。

仍然存在的不足

即使如此***了,还是存在不足。

[AI开发]基于深度学习的视频多目标跟踪实现

轨迹预测的前提是需要知道目标前面若干帧的轨迹信息,因此在刚开始,目标的轨迹是预测不到的,或者说预测得不准。所以在刚开始的几帧,我们还是需要使用原来的方式进行对比关联。

AI 人工智能 深度学习
上一篇:Facebook最新力作Pythia:模块化、即插即用,极大简化模型进展 下一篇:机器人快递上门!福特解决“无人送货”最后的难关
评论
取消
暂无评论,快去成为第一个评论的人吧

更多资讯推荐

德媒:欧盟拟立法限制滥用人工智能

据德国《法兰克福汇报》网站4月13日报道,人工智能的胜利前进已不可阻挡。新冠疫情尤其让人们关注到这种拥有自我学习能力的系统对医疗体系组织工作的价值。

参考消息 ·  12h前
国内首个!北京拟推进自动驾驶商业化,年内将实现真无人驾驶

乘自动驾驶出租车要付费,无人配送车街上跑,路测拿掉安全员,无人驾驶车上高速……这些即将在北京实现。

南方都市报 ·  13h前
前沿洞察丨无人机送货不迷路的原因竟在这里!

本期前沿洞察为大家带来这些技术:用微观交叉定位,让无人机送货不再找路难;能暴露行动轨迹的智能袜子;基于两束交叉光触发的化学反应实现微米级高精度3D打印......一起来看看吧!

望潮科技 ·  14h前
2021年AI智能摄像机带来的新市场

大流行除了给全球经济带来巨大影响之外,也加速了越来越多的先进技术走向成熟应用,如人工智能(AI)和机器学习(ML),技术时代的到来往往伴随着人类的迫切需求。

蒙光伟 ·  23h前
OpenAI CEO Sam Altman:AI革命即将到来,我们需要新的系统

我们正处于这场技术变革的开端,我们拥有创造未来的宝贵机会。而这不是简单地解决目前的社会和政治问题,它必须为完全不同的社会而设计。

Sam Altman ·  1天前
谈谈基于深度学习的目标检测网络为什么会误检,以及如何优化目标检测的误检问题

在训练人脸检测网络时,一般都会做数据增强,为图像模拟不同姿态、不同光照等复杂情况,这就有可能产生过亮的人脸图像,“过亮”的人脸看起来就像发光的灯泡一样。

刘冲 ·  1天前
值得思考:197亿美金,微软2021年的AI转型之路

4月12日,微软宣布将以每股56美元的价格收购语音识别巨头Nuance,出价达到了197亿美元。

东方林语 ·  1天前
人工智能优先战略将从哪里开始?

人工智能可以为企业带来竞争优势,并释放难以获得的巨大商机。因此,人们需要了解制定有效的人工智能优先策略的6个步骤。

李睿 ·  1天前
Copyright©2005-2021 51CTO.COM 版权所有 未经许可 请勿转载