视频跟踪算法概述

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

图像跟踪一直都是计算机视觉领域的难题,事先知道第一帧中的目标位置,然后需要在后续帧中找到目标。先验知识少,目标被遮挡、目标消失、运动模糊、目标和环境的剧烈变化、目标的高速运动、相机的抖动都会对目标跟踪造成影响,图像跟踪一直都是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.科技创新前沿,CF科技网站新闻速览CF科技网站致力于成为连接科技爱好者与科技世界的桥梁,通过发布最新的科技资讯、深度报道、技术解析等内容,帮助用户紧跟科技发展的步伐,洞察行业趋势,网站内容涵盖多个热门科技领域,包括但不限于人工智能、物联网、生物技术等,旨在为用户提供一个全面、多元的科技信息平台。 http://yili.jinyuen.com.cn/post/27410.html
2.有哪些学习算法的网站推荐?免费的公益性网上程序设计题库,包含3000多道饶有趣味的程序设计题,是个提供编程、算法题目的网站,兼容https://www.zhihu.com/question/20368410/answer/726247443
3.机电类网站模板/百度查重免费针对协同过滤的两种推荐算法——userCF算法、itemCF算法来分别解决物品冷启动的问题。 userCF算法 针对推荐列表并不是给用户展示内容的唯一列表(大多网站都是这样的)的网站 当新物品加入时,总会有用户通过某些途径看到,那么当一个用户对其产生反馈后,和他历史兴趣相似的用户的推荐列表中就有可能出现该物品,从而更多的http://www.nhpp.cn/news/278227.html
4.采用ItemCF算法时间的推荐系统可能会遇到多样性不足,推荐新颖度低亲,您好很高兴为您解答:采用ItemCF算法时间的推荐系统可能会遇到多样性不足,推荐新颖度低的问题及思?答:UserCF:推荐那些和他有共同兴趣爱好的用户喜欢的物品ItemCF:推荐那些和他之前喜欢的物品类似的物品根据用户推荐重点是反应和用户兴趣相似的小群体的热点,根据物品推荐着重与用户过去的历史兴趣,即https://wen.baidu.com/question/1184421135965829299.html
5.目标跟踪入门——目标跟踪算法综述电子创新网Imgtec社区最早的可用于目标检测的CF算法是MOSSE,它的全名为Minimum Output Sum of Squared Error Filter,它作为CF的开篇算法,引出了后来更多性能更加优越的算法。 能够使得相关滤波算法能够用于实时性应用的首个算法是CSK(the Circulant Structure of Tracking-by-detection with Kernels),通过使用高斯核计算相邻两帧之间的相关性https://imgtec.eetrend.com/blog/2019/100017436.html
6.KernelCF:推荐系统的最优召回策略答案是肯定的。Ratidar Technologies LLC 在国际学术会议 CAIBDA 2022 上宣读了一篇题为Kernel-CF: Collaborative filtering done right with social network analysis and kernel smoothing 的论文,介绍了如何利用数据可视化算法和非参数统计方法计算推荐系统最优召回策略。我们下面详细的介绍相关内容:https://www.51cto.com/article/782432.html
7.基于流形近邻的协同过滤算法AET其中,EMNCF和MNCF的流形邻居数取500,EMNCF是在最小最大距离上加上0.01倍的欧氏距离。从表2中可以看出MNCF明显优于MCF,与EMNCF性能相当。 为了比较基于欧氏距离的协同过滤算法和基于最小最大距离的协同过滤算法,此处变化邻居数,加权方案取01VD,记使用欧氏距离的协同过滤方案为ECF,得到的实验结果如图2所示。 http://www.chinaaet.com/article/3000016485
8.基于用户情景推断的军事信息HybridCF推荐算法针对当前军事信息推荐方法未对用户所处时间、地理位置和用户场景做区分,以及未考虑军事用户的信息需求与所处场景的关联性,导致推荐结果固定、单一化问题,设计了基于用户情景推断的军事信息Hybrid-CF(混合协同过滤)推荐方法;融入军事用户情景要素对传统协同过滤算法进行了改进,通过计算当前情景信息与历史信息的相似度,更加https://m.cnki.net/mcnki/literature/detail?datatype=CJFD&instanceID=JZCK2024091200K
9.Mahout推荐算法编程实践demo说明OSCHINATaste 是曾经风靡一时的推荐算法框架,后来被并入 Mahout 中,Mahout 的部分推荐算法基于 Taste 实现。 下文介绍基于 Taste 实现最常用的 UserCF 和 ItemCF。 本文不涉及 UserCF 和 ItemCF 算法的介绍,这方面网上资料很多,本文仅介绍如何基于 Mahout 编程实现。 欢迎转载,请注明来源: http://blog.csdn.net/u0109https://my.oschina.net/xiaominmin/blog/1919329
10.基于物品的协同过滤推荐算法c++实现源码本文将详细解析基于物品的协同过滤(Item-Based Collaborative Filtering,简称itemCF)推荐算法的C++实现,以及如何利用MovieLens数据集进行实验。 **一、推荐系统的原理** 推荐系统主要分为两种:基于用户的协同过滤(User-Based CF)和基于物品的协同过滤(Item-Based CF)。基于物品的协同过滤算法主要依赖于用户对物品的评价https://download.csdn.net/download/homen_live/6941027
11.基于二分网络社团划分的推荐算法2 RACD的思想与实现 2.1 算法思想 User-based CF算法在电子商务网站中得到广泛应用, 但仍存在一些问题, 数据稀疏性就是其中之一.例如:假设某个电影推荐网站中包含几百万部电影, 而平均每个用户评价过的电影只有几百部, 显然, 得到的“用户-电影”矩阵十分稀疏.基于这样的稀疏矩阵给用户推荐电影, 推荐的质量并https://xuebao.neu.edu.cn/natural/article/html/2018-8-1103.htm
12.什么是智能推荐?智能推荐的原理是什么?所以,CF依赖于“群体共性”“群体智慧”挖掘出那些潜在的、可能会被用户喜欢的内容并推荐给用户。CF算法也是最早、最经典的推荐算法之一,可以这么说,CF算法是推荐算法的鼻祖。我们后续很多推荐算法都是基于CF的协同过滤思想延伸而来。有两类基于协同的推荐算法:基于用户的协同过滤算法、基于物品的协同过滤算法。https://www.niaogebiji.com/article-106383-1.html
13.视频资源和平常收纳的一些自己认为比较好的博客网站工具学习记录的一些笔记,以及所看得一些电子书eBooks、视频资源和平常收纳的一些自己认为比较好的博客、网站、工具。涉及大数据几大组件、Python机器学习和数据分析、Linux、操作系统、算法、网络等 - josonle/Coding-Nowhttps://github.com/josonle/Coding-Now/
14.推荐系统算法实战协同过滤CF算法(CollaborativeFiltering仅仅基于用户行为数据设计的推荐算法一般称为协同过滤算法。学术界对协同过滤算法 进行了深入研究,提出了很多方法,比如基于邻域的方法(neighborhood-based)、隐语义模型 (latent factor model)、基于图的随机游走算法(random walk on graph)等。在这些方法中, 最著名的、https://cloud.tencent.com/developer/article/1558722
15.codeforces全球最大算法竞赛平台Codeforces. Programming competitions and contests, programming communityhttp://codeforces.com/
16.算法等于数学吗?而这个方法和步骤从大的方面可以是软件的开发,从小的方面又可以是一个函数的独特设计。如果说程序是一个人的话,那算法就是这个人的灵魂了。我当时学习网站开发时,就把HTML看作成一个人的骨架,CSS看作成这个人的外貌长相,而JS则看成是这个人的能力。这也很好的自我安慰在计算机界能力大于外貌(//?//) https://www.jianshu.com/p/49cf29db387f
17.个性化推荐“算法”变“算计”,真能一关了之吗?而我们今天主要谈的是算法推荐。这是算法的一种应用,用于推测出用户可能喜欢的东西。算法推荐最早在海外出现应用。1998年,亚马逊平台就上线了基于物品的协同过滤算法(ItemCF算法),算法的使用让亚马逊销售额增长了不止100倍。随后越来越多的企业开始使用算法推荐,并逐渐在业内崭露头角。 https://new.qq.com/rain/a/20220318A02GCN00
18.新余市职业教育中心资助管理评审办法(二)综合测试成绩的算法 以班级为单位计算出每个学生理论和实践的平均成绩,学习成绩排名在同专业同年级里前5%(含5%),学习成绩未进入5%但达到前30%(含30%)且在道德风尚、专业技能、社会实践、创新能力、综合素质等方面表现特别突出的,可以申请,同时需要提交详细的证明材料,证明材料须由学校审核后中加盖学校公章。学习http://www.xinyu.gov.cn/xinyu/szxsgl/2023-11/16/content_148b3a3bc4a04cf695e0a028f7b403cf.shtml
19.FDSST跟踪算法2018年及以前经典实时目标跟踪算法代码合集 文件夹中为2018年及以前的几种实时并且准确度高的目标跟踪算法源码合集,大部分为matlab编程。部分算法为matlab C++混合编程。 bacf_toupload BACF算法 DSST-master DSST算法 ECO-master ECO-HC算法 fDSST_code fDSST算法 Matlab_STCv0 STC算法 OpenTLD-master TLD算法 https://www.iteye.com/resource/freexilele-10311988
20.召回策略推荐系统RES在ItemCF算法中使用,指定某个物品的若干个最近邻物品,构成该物品近邻集合。 50 相似性度量方式 计算用户或物品特征表达相似性的方式。在ItemCF算法中,每个物品会基于对它有过行为的用户表示为特征向量,向量每一维是一个<user_id, score>元组,score表示对应user_id的权重,该参数决定了使用何种函数计算物品向量之间的https://support.huaweicloud.com/usermanual-res/res_01_0020.html
21.CFGAN基于生成对抗神经网络的协同过滤推荐ItemCF:ItemCollaborationFilter,基于物品的协同过滤 算法核心思想:给用户推荐那些和他们之前喜欢的物品相似的物品。 比如,用户A之前买过《数据挖掘导论》,该算法会根据此行为给你推荐《机器学习》,但是ItemCF算法并不利用物品的内容属性计算物品之间的相似度,它主要通过分析用户的行为记录计算物品之间的相似度。 ==>该https://www.pianshen.com/article/6294291240/
22.算法竞赛算法竞赛入门经典 作者:刘汝佳 ISBN:9787302356288 出版社:清华大学出版社 出版年:2014 机器学习算法竞赛实战 作者:王贺 ISBN:9787115569592 出版社:人民邮电出版社 出版年:2021 算法竞赛入门经典 作者:刘汝佳 ISBN:9787302206088 出版社:清华大学出版社 出版年:2009 算法竞赛入门到进阶 作者:罗勇军,郭卫斌 ISBN:9787https://www.las.ac.cn/front/book/detail?id=392ed1d8a88494cf4b6a2641fc5332b2