视频跟踪算法概述

“图像跟踪”技术,是指通过某种方式(如图像识别、红外、超声波等)将摄像头中拍摄到的物体进行定位,狭义的“图像跟踪”技术就是我们日常所常谈到的,通过“图像识别”的方式来进行跟踪和拍摄。

图像跟踪一直都是计算机视觉领域的难题,事先知道第一帧中的目标位置,然后需要在后续帧中找到目标。先验知识少,目标被遮挡、目标消失、运动模糊、目标和环境的剧烈变化、目标的高速运动、相机的抖动都会对目标跟踪造成影响,图像跟踪一直都是CV领域的难题。

深度学习用于图像跟踪有两大要解决的问题,一是图像跟踪一般使用在线学习,很难提供大量样本集,二是深度学习使用CNN时,由于卷积池化,最后一层的输出丢失了位置信息,而图像跟踪就是要输出目标的位置。

跟踪过程中的光照变化、目标尺度变化、目标被遮挡、目标的形变、运动模糊、目标的快速运动、目标的旋转、目标逃离视差、背景杂波、低分辨率等现象,都是目标跟踪问题的挑战。

在早期,图像目标跟踪有一些公共的BenchMark,但是一直以来都没有形成统一的评价标准,各个跟踪算法都无法直接比较。直到2013年,终于出现了统一的评价标准,OTB将49段视频,50个目标整合为TB-50数据集,并且发表在2013年CVPR上,该BenchMark后来扩充到100个跟踪目标,发表在2015年TPAMI上,该BenchMark极大的促进了视频跟踪方面的研究。

VisualTrackerBenchMark,AnotherFromGoogleSite。

在图像分类领域,每年都有VOC比赛,同样,在图像跟踪领域,每年都有VOT比赛,通过VOT测试算法也成为了图像跟踪算法比较的方式。我再后面有一篇介绍VOT评价标准的博客,点击跳转。

VOTChallenge。

这个名词是博主创造的,因为在早年,Camshift、光流、背景差等图像跟踪算法比较流行,在静态背景条件下成功应用,大致在2008年以后,这类方法逐渐被淘汰,人们更多的研究动态背景、复杂场景环境下的图像跟踪,为了区别于原先几乎被淘汰的方法,博主将这一类算法归为现代图像跟踪算法,并做如下分类

(1)判别式:track-by-detection

判别式的图像跟踪算法将目标检测的思路用于目标跟踪。在线产生样本,在线学习,在线检测,找到目标出现概率最大的位置,然后重复这样的步骤,跟踪目标位置,这也是当下最流行的方法。

(2)产生式

产生式就是在跟踪过程中,根据跟踪结果在参数空间产生样本(而非直接从图像空间采样),然后在这些样本中寻找最优可能的目标作为跟踪结果。粒子滤波框架是最常用的产生式目标检测模型。

(3)深度学习用于图像跟踪

深度学习的方法主要分为两类,一类是使用预先训练好的深度神经网络,CNN或RNN部分不做在线训练,使用另外的算法输出目标位置,另一类是在线训练的神经网络,由神经网络输出目标位置。

目前(2016年12月),图像跟踪处于百家争鸣的状态,深度学习方法在目标跟踪方面并没有预期的凶猛,主要是体现在速度方面。在检测效果方面深度学习方法微微占优,但是速度上深度学习方法完全无法和传统方法相比较。

MIL,多实例在线学习,是一种典型的track-by-detection的方法。在MIL之前有OAB,OAB算法采用OnlineAdaboost算法进行在线学习,而MIL采用OnlineMILBoost进行在线学习,速度上更快,并且可以抵抗遮挡。直观的感受下:

[1].Babenko,B.,M.YangandS.Belongie.Visualtrackingwithonlinemultipleinstancelearning.inComputerVisionandPatternRecognition,2009.CVPR2009.IEEEConferenceon.2009:IEEE.

[2].Babenko,B.,M.YangandS.Belongie,Robustobjecttrackingwithonlinemultipleinstancelearning.IEEETransactionsonPatternAnalysisandMachineIntelligence,2011.33(8):p.1619-1632.

一般的track-by-detection在做完检测之后,会把周围的图像小块分为两类,给上正负样本标签,而Struck不这样做,Struck通过在线SVM直接输出Score。

SVM的输出空间就是Score空间,每个patch块提取完特征,直接经过核函数乘以W,就可以得到Score空间下的值了。Online-SVM通过SMO进行训练,速度较快。一下是pipline,可以感受一下:

[1].Hare,S.,A.SaffariandP.H.Torr.Struck:Structuredoutputtrackingwithkernels.in2011InternationalConferenceonComputerVision.2011:IEEE.

[2].Hare,S.,etal.,Struck:Structuredoutputtrackingwithkernels.IEEETransactionsonPatternAnalysisandMachineIntelligence,2015.38(10):p.2096-2109.

[1].Zhang,J.,S.MaandS.Sclaroff.MEEM:robusttrackingviamultipleexpertsusingentropyminimization.inEuropeanConferenceonComputerVision.2014:Springer.

KCF是很重要的算法,后面我会单独开一篇博客讲,这里简单介绍下。

更细节的说,KCF通过平移产生大量样本,并且给每个样本赋予一个标签,这个标签根据离中心的距离,使用高斯分布描述,可以理解为置信度。另外,样本在做平移之前需要通过cos窗口加权,这样做的目的是避免在平移过程中,边缘太过强烈,引发不必要的麻烦。

关于DFT(离散傅里叶变换)和循环矩阵部分的推导是这个算法的核心,在Paper后面也有推导,这篇paper一定要多看几遍,后面很多方法都和这个有关。

作者主页。

[1].Henriques,J.F.,etal.Exploitingthecirculantstructureoftracking-by-detectionwithkernels.inEuropeanconferenceoncomputervision.2012:Springer.

[2].Henriques,J.F.,etal.,High-speedtrackingwithkernelizedcorrelationfilters.IEEETransactionsonPatternAnalysisandMachineIntelligence,2015.37(3):p.583-596.

改算法通过空间正则化来提高跟踪模型的质量。通过一个高斯分布的空间惩罚因子,对不同位置加入不同权重的惩罚,这就是空间正则化。对空间正则化和输出进行可视化,在边界处的输出被明显抑制了。SRDCF将空间正则化的表达融合进loss里面,然后直接最小二乘回归就可以了,很方便。

第二篇paper,deepSRDCF就是把特征提取部分换成CNN来做,其余部分和SRDCF一样。这篇paper着重分析了使用各层特征带来的影响,发现使用第一层的特征就可以了,后面的层并不重要。这点和有些文献中的结论不一致,这条结论博主也持保留态度。

[1].Danelljan,M.,etal.Learningspatiallyregularizedcorrelationfiltersforvisualtracking.inProceedingsoftheIEEEInternationalConferenceonComputerVision.2015.

[2].Danelljan,M.,etal.Convolutionalfeaturesforcorrelationfilterbasedvisualtracking.inProceedingsoftheIEEEInternationalConferenceonComputerVisionWorkshops.2015.

该方法是对SRDCF算法的改进,同样是为了解决样本污染问题。以往的模型学习过程在样本被遮挡时也一直在学习,这样就会导致模型被污染。之前提出过多专家的方案和boost泛化的方案,但是样本污染问题一直无法得到有效的解决。这篇paper提出的方法应该是目前解决的最好的,并且可以推广到很多方法上面,具有很高的价值。

[1].Danelljan,M.,etal.Adaptivedecontaminationofthetrainingset:Aunifiedformulationfordiscriminativevisualtracking.2016:CVPR.

[1].Bertinetto,L.,etal.Staple:Complementarylearnersforreal-timetracking.inProceedingsoftheIEEEConferenceonComputerVisionandPatternRecognition.2016.

EBT是一种proposal方法,可与Struck等算法联合使用。在proposal阶段使用边缘特征(文中使用的是一个10维特征向量)进行全局检测,以此来应对物体运动过快的情况。

[1].Zhu,G.,F.PorikliandH.Li.Beyondlocalsearch:Trackingobjectseverywherewithinstance-specificproposals.inProceedingsoftheIEEEConferenceonComputerVisionandPatternRecognition.2016.

DeepLearningTracker,DLT提出于2013年,是第一个深度学习目标跟踪算法,大体上还是粒子滤波的框架,只是采用SDAE(栈式抑噪自编码器)提取特征。下乳就是SDAE的结构,SDAE是预先训练好的,不需要在线学习,然后后面跟着粒子滤波的一套东西。

[1].Wang,N.andD.Yeung.Learningadeepcompactimagerepresentationforvisualtracking.inAdvancesinneuralinformationprocessingsystems.2013.

这篇Paper和后面的HDT算法有着很大关系,如果不是速度原因,HDCF算法将会是我相当推崇的,其思想简单,就是通过预先训练好的深度神经网络来提取特征,利用多个层的特征来共同定位,浅层特征位置准确,深层特征包含语义信息,在线学习部分当然是使用当下最受欢迎,又快又好又简洁的CorrelationFilter了。这种思想其实是相当不错的,只是用了深度学习就不得不面对庞大的参数和GPU加速处理。

博主测试了原文中的算法,在博主的GTX1070上跑到23fps,如果只用CPU的话6600k超频到4.24GHz也只有6fps,远未达到实时要求。另外,博主修改了下代码,分别只使用Conv3、Conv4、Conv5层,发现准确率下降的并不多。博主在想是否一定要这么多层的特征呢?这个问题目前是存在争论的,不过介绍这篇Paper是为了介绍接下来一篇Paper的。

[1].Ma,C.,etal.Hierarchicalconvolutionalfeaturesforvisualtracking.inProceedingsoftheIEEEInternationalConferenceonComputerVision.2015.

HedgedDeepTracking的缩写,上面一篇Paper提到,既然深层特征包含语义信息,浅层特征包含位置信息,那么如何将这些特征有效的结合起来呢?Hedge就是本文利用的方法,每一层特征训练出来的CorrelationFilter作为一个弱分类器,通过Hedge的方法,平衡各个结果,给出预测位置(其实就是给每个层的位置结果一个权重,然后加权平均,主要问题是权重怎么算,Paper就是讲这个了)。

[1].Qi,Y.,etal.HedgedDeepTracking.inProceedingsofIEEEConferenceonComputerVisionandPatternRecognition.2016.

因为跟踪算法需要在线学习,深度学习采用预训练的方式训练一个网络CNN-E提取特征,然后分层的特征再送到另一个网络CNN-A里面训练,每一层训练得到一个弱分类器,然后使用类似boost方法在顶端建立一个SPN网络预测结果,预测loss小的话就作为正样本来更新网络实现在线跟踪。

[1].Wang,L.,etal.Stct:Sequentiallytrainingconvolutionalnetworksforvisualtracking.inComputerVisionandPatternRecognition(CVPR),2016IEEEConferenceon.2016.

C-COT和TCNN是VOT-16中表现最好的算法。C-COT、后面的ECO都出自Danelljan,也就是前面SRDCF系列、DSST系列的作者。从越来越复杂的数学表达可以看出Danelljan对DCF的研究已经非常深入了。

由于传统DCF算法在目标尺度和分辨率方面适应性太差,而考虑到CNN深层特征的语义表达能力,想法就是将多尺度和深层语义信息结合起来。根据不同空间分辨率的响应,在频域进行插值,得到连续空间分辨率的响应图,通过高斯赛德尔方法迭代求得最佳位置和尺度。这样成功的对抗了DCF在目标尺度变化时引起的模型漂移。在实践中使用了原始彩色图像三个通道和CNN两个特征层,五种分辨率(0.98,0.99,1.0,1.1,1.2),分别学习这些层的卷积滤波器(下图第二列),然后将它们综合起来,得到最后的位置和尺度,因为是插值方式得到的,所以空间和尺度都是连续的。至于更多细节,就是其采用了样本净化技术(之前提到过的)、SRDCF等。由于C-COT算法在CPU上速度大概1fps,所以后面的ECO算法主要是进行速度的优化。

[1].Danelljan,M.,etal.Beyondcorrelationfilters:Learningcontinuousconvolutionoperatorsforvisualtracking.inEuropeanConferenceonComputerVision.2016:Springer.

ECO是在C-COT基础上的改进,要知道一个实用的算法不光要有好的性能,还要有好的实时性。ECO算法在效果比C-COT好的情况下,在CPU上可以到达60fps的高速,可以说是目前(2017年4月)最牛的算法了。

ECO算法的主要思想有三点,一是通过提出的卷积因式分解操作来降低C-COT提取出特征的维度,二是通过样本分组来归类训练集,一方面避免相同样本重复训练引起的过拟合,另一方面提高速度,三是在训练过程中模型每隔N帧更新一次,而不是每帧更新,这主要是考虑到相邻样本有着相同的表现,而更新过程太过耗时。

这篇论文已经被CVPR17接受了,下面的参考文献没有指向CVPR17

[1].Danelljan,M.,etal.,ECO:EfficientConvolutionOperatorsforTracking.arXivpreprintarXiv:1611.09224,2016.

THE END
1.计算机专业中所用到的视频基础知识视频基本概念 (1)根据视觉暂留原理,连续的图像变化每秒超过24帧(Frame)画面以上时,人眼无法辨别单幅的静态画面,看上去是平滑连续的视觉效果,这样连续的图像画面构成即视频。在这里插入图片描述 (2)一个完整的视频文件主要由音频和视频两部分组成的,视频编码是为了压缩视频数据而做的一种压缩算法,是音视频https://baijiahao.baidu.com/s?id=1808949751313003336&wfr=spider&for=pc
2.“AI”科普丨Sora如何复现?《长视频生成》综述:挑战方法与前景计算机视觉和人工智能领域经历了变革性的增长,特别是在视频生成领域。最近,开发出能够产生高质量和逼真视频序列的算法激增。值得注意的是,长视频的生成,以其延长的持续时间和复杂的内容为特征,为社区提出了新的挑战并激发了新的研究方向。 尽管如此,关于长视频生成的研究仍存在差距。当前研究中的一个缺口是缺乏长视频https://www.163.com/dy/article/IUSDI6UK0511PEBT.html
3.GitHubguanfuchen/video基于视频的目标检测算法研究 对相应的视频目标检测论文整理实现综述文档。 知乎上有关该方向的讨论视频中的目标检测与图像中的目标检测具体有什么区别?。 简单来说,视频检测是比单张图片检测多了Temporal Context(时间上下文)的信息。不同方法想利用这些Context来解决的问题并不相同。一类方法是关注如何使用这部分信息来加https://github.com/guanfuchen/video_obj
4.视频算法工程师招聘网2025年视频算法工程师招聘信息猎聘2025年视频算法工程师招聘信息,海量高薪猎头职位等你来选,了解视频算法工程师岗位要求、薪资待遇等真实招聘信息,找高薪职位,上猎聘!https://www.liepin.com/zpshipinsuanfagongchengshi/
5.视频版权检测算法CompetitionsCCF大数据与计算智能大赛(CCF Big Data & Computing Intelligence Contest,简称CCF BDCI)是由中国计算机学会大数据专家委员会于2013年创办的国际化智能算法、创新应用和大数据系统大型挑战赛事,是全球大数据与人工智能领域最具影响力的活动之一。2019 CCF大数据与计算智能大赛由教育部高等学校计算机类专业教学指导委员会、国家https://www.datafountain.cn/competitions/354/
6.深度学习视频处理算法深度学习模型预测华为云帮助中心为你分享云计算行业信息,包含产品介绍、用户指南、开发指南、最佳实践和常见问题等文档,方便快速查找定位问题与能力成长,并提供相关资料和解决方案。本页面关键词:深度学习视频处理算法。https://support.huaweicloud.com/topic/986960-1-S
7.短视频推荐算法java51CTO博客已为您找到关于短视频推荐算法java的相关内容,包含IT学习相关文档代码介绍、相关教程视频课程,以及短视频推荐算法java问答内容。更多短视频推荐算法java相关解答可以来51CTO博客参与分享和学习,帮助广大IT技术人实现成长和进步。https://blog.51cto.com/topic/11ec4b238f401a2.html
8.视频分析算法的原理简介csdn视频解析算法视频分析算法的原理简介 智能视频(IV,IntelligentVideo)技术源自计算机视觉(CV,ComputerVision)与人工智能(AI,ArtificialIntelligent)的研究,其发展目标在于将图像与事件描述之间建立一种映射关系,使计算机从纷繁的视频图像中分辩、识别出关键目标物体,这一研究应用于安防视频监控系统、将能借助计算机强大的数据处理能力过滤掉https://blog.csdn.net/huapeng_guo/article/details/7684987
9.公共安全视频密码算法检测工具的设计与实现检测认证GB 35114-2017《公共安全视频监控联网信息安全技术要求》的技术核心是利用国产密码算法解决视频监控联网系统信令及视频传输、存储的信息安全问题。 GB 35114-2017《公共安全视频监控联网信息安全技术要求》的技术核心是利用国产密码算法解决视频监控联网系统信令及视频传输、存储的信息安全问题。本文参照国密算法验证的相关方法http://news.21csp.com.cn/c25/202208/11416710.html
10.基于MPEG2的三种视频加密算法理论上MPEG2视频直接加密算法具有很高的安全性,DES算法具有很高的安全性。MPEG根据视频选择性加密算法MPEG2视频编码特性的加密方法是主要方向。(1)基于MPEG2视频帧结构的选择性加密算法,最早提出的加密思想只加密一帧,因为一帧包含了大量的视频信息,P帧和B帧主要用于https://www.55tools.com/news/0375.html
11.短视频内容算法:如何在算法推荐时代引爆短视频(豆瓣)什么才是掌控短视频分发“看不见的手”? 本书从传播学、心理学、信息学等多学科角度出发,结合一线操盘经验、实战案例、详尽的数据分析,揭示算法推荐的底层规律。 作者希望给想进入短视频内容行业或正在尝试转型的内容创作者,以及想通过短视频内容营销实现弯道超车的企业带来帮助。 产品、流量、用户和数据,正在形成以内https://book.douban.com/subject/35216809/
12.全面解析腾讯会议的视频前处理算法第二,桌面端是腾讯会议的核心场景之一,自研推理引擎在桌面端的异构计算和并行计算优化方向积累丰富,有力的支撑了桌面端的音视频算法。 第三,自研推理引擎可以快速定制化和响应业务的需求,特别是对于腾讯会议这种快速迭代的产品来说,快速定制化和迭代的能力非常重要。 https://www.infoq.cn/article/BRUFWUue3cgmz4YouWWt
13.一种新的近重复监控视频检测算法AET受参考文献[4]启发,本文在提取关键帧图像的特征提取之前先在镜头层次提取出一种新的特征作为镜头的时序特征,再提取全局颜色特征和更精确的SURF局部特征进行检测,最终得到与查询视频近重复的视频,算法具体框架如图1所示。 1 近重复监控视频检测算法 1.1 镜头边界检测 http://www.chinaaet.com/article/213769
14.高通CVPR神研究:视频处理计算量降低78%,教卷积层自己“挑像素因此,降低视频算法计算量,一直是国内外AI视觉算法大牛们致力研究的问题。 最近有两篇CVPR 2021的论文,就引起了视频圈的不少关注。 它们教算法模型学会了自己“省算力”,将视频处理算法的计算效率提升了几倍不止,性能也并不下降! 教AI自己省算力,计算量-78% https://m.thepaper.cn/newsDetail_forward_13149498
15.应用Camshift跟踪算法提高视频中人脸检测速度3.3 Camshift算法 Camshift算法就是对视频里的每一帧图像全部做Meanshift运算, 并且把计算出来的目标的大小及位置当做下一帧Meanshift算法中搜索框的大小起始值及它的中心位置. 利用迭代运算的形式实现对视频里的目标进行跟踪. Camshift算法流程如图5所示. 图5Camshift算法流程图 https://c-s-a.org.cn/html/2020/9/7645.html
16.用深度学习设计图像视频压缩算法:更简洁更强大雷峰网总体而言,借助于深度学习设计视频和图像压缩算法是一项非常具有前景但也非常具有挑战性的技术。目前,其已经在人脸识别等领域证明了它的强大能力,有理由相信在不久的将来,深度学习技术将为图像视频压缩领域带来更大的突破。 图6:在同等压缩率下压缩视觉效果对比。上图为图鸭所提出的算法,下图为 JPEG2000 算法。在纹理https://www.leiphone.com/category/ai/rUFVbAmPDRP1bwgP.html