图像跟踪(七)ECO: Efficient Convolution Operators for Tracking

        CVPR17,Martin Danelljan 的新作,如果你还记得SRDCF、SRDCFad、deepSRDCF的话,那么想必你是相当期待这篇Paper的,论文地址。之前SRDCF是解决边界效应问题,SRDCFad是解决样本污染问题,而这篇Paper(ECO)对DCF研究更加深入了,ECO主要是在解决模型过大的问题,通过减少DCF参数,简化训练集,减少模型更新频率来加快速度,对抗模型漂移,最终达到60fps的速度,结果也是非常优秀的。Baseline是C-COT算法。[mathjax]

阅读更多

Object Visual Tracker Benchmark 使用教程

        2013年Object Visual Tracker Benchmark的提出是视频图像跟踪另一的大事件,自此视频跟踪领域有了公认的Benchmark,跟踪方面的研究与以前已经完全不一样的。虽然下载源码,摸索之后都可以看懂,但是博主还是想系统的介绍其中的工具。官方的SDK可以极大的帮助我们评估算法,产生一些可以直接出现在Paper上的图表。

        这篇博客主要介绍如何Visual Tracker Benchmark 中提供的Matlab代码,希望能有所帮助。Python的可以看那些开源的demo,差不多一样的思路。

阅读更多

图像跟踪(六)SRDCFdeno算法:样本净化

        SRDCFdeno算法的论文中提出了一种净化样本的方法,虽然挂了SRDCF的名字,但是SRDCF只是BaseLine。这种样本净化的方法可推广性非常强,因为把样本权重融合进了Loss函数,直接在更新样本的时候更新其权重,相对于多专家系统的方法,我更推荐使用这种方法来净化样本。

阅读更多

图像跟踪中像素误差、重叠率、AUC的计算:Matlab实现

        视频图像跟踪算法的评估常常需要计算重叠率(Overlap Rate)、像素误差(Pixel Error)还有AUC(Area Under Curve)。这些技术指标都比较好理解,如果不理解的话可以参见我之前的博客。这篇博客主要就是贴上Matlab的代码,使用Matlab计算这些参数,并绘制出曲线图。

        如果你是想放在Paper中的话,可以下载Visual Track BenchMark中提供的代码,可以画出和Paper上一样的样式,这篇博客只是博主对单个视频自己写的小demo,便于自己分析实验的,如果要在Paper使用还需要做样式的修改。

阅读更多

图像跟踪(五)SRDCF的数学推导

        SRDCF是在DCF/KCF的基础上,对目标函数正则化项进行改进,使用空间正则化惩罚来改进效果。SRDCF的Paper上关于数学推导部分非常多,但是其中仍有许多细节影响我们阅读代码。本来自己做了一份ppt,但是Google了下,发现有作者本人presentation的ppt关于细节部分非常详尽,于是直接用作者的ppt了,下面开始学习吧。

阅读更多

傅里叶-梅林变换进行图像配准

        图像配准方法主要分为三类:一种是灰度方法信息方法,另一种是基于特征的方法,可细分为特征点、直线段、边缘轮廓、特征结构以及矩不变统计特征等,还有一种就是基于变换域的方法,如相位相关、Walsh Transform等方法。傅里叶-梅林变换就是一种变换域的方法。

        在图像配准过程中,常常需要处理平移、旋转、尺度变换、遮挡、形变等问题,使用傅里叶-梅林变换可以很好的应对平移、平面内旋转、缩放和遮挡,是一种鲁棒性较强的方法。这篇博客讲详细介绍傅里叶-梅林变换的性质,以及其在图像配准过程中的应用。

阅读更多

图像跟踪(四)KCF算法

        KCF算法是目标跟踪领域最重要的算法(之一),为什么敢说最重要呢?KCF的特点:实现简洁、效果好、速度快。并且博主认为,KCF算法扣住了跟踪问题的一个难点,就是样本过少,通过循环矩阵位移产生大量样本来解决问题,并且通过离散傅里叶变换的推导,在频域计算速度极快。总之,KCF设计非常精妙,以至于现在许多跟踪算法都以KCF为基石来构建。

阅读更多

图像跟踪(三)MEEM算法

        在长时间视频目标跟踪过程中,由于遮挡、形变、旋转等原因,常常发生样本被污染的情况,MEEM算法通过多专家模型来解决样本被污染的问题。MEEM算法的核心思想是,对当前帧应用多个检测器,根据多个预测值来判断可信,这多个检测器就是从过去储存的分类器中选取。是一种典型的多专家模型

        应对样本污染,博主个人不是很推荐这种方法,毕竟解法偏暴力,个人比较推崇denoSRDCF中处理样本污染的方法,实际上效果也是更好的。不过该算法MEEM也是很经典的多专家模型,不妨学习一下。

阅读更多

图像跟踪(二)Struck算法

        Struck算法提出于2011年,同样是一种track-by-detection的方法,与其它算法相比,它具有如下特点:使用的是Online-SVM,不直接给样本正负标签,文中称之为Structured Output Prediction。受益于SVM的拟合能力和速度,该算法是当时的state-of-the-art,并且效果和速度都优于其它算法。下面就来详细介绍。

阅读更多

图像跟踪(一)MIL多实例在线学习算法

        最近看了一些图像跟踪的Paper,于是图像跟踪系列开更了。开篇介绍的是一种经典的图像跟踪算法MIL(多实例在线学习),提出于2009年,该算法将track-by-detection推向了新高潮。

        2006年以来,使用目标检测的方法来处理图像跟踪问题取得了良好的效果,这种方法处理图像跟踪问题相对于处理目标检测问题是有所不同的,处理目标检测问题要求使用的样本量很少,并且实时性要求较高,也就是需要在线学习,快速检测。MIL算法就是在目标周围选取正负样本,通过一种多实例在线学习的方法,训练弱分类器,并且选择合适的特征进行组合,形成强分类器。由于MILBoost的特点,该算法速度较快,并具备抗遮挡能力。

阅读更多

视频图像跟踪算法综述

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

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

        2013年以来,深度学习开始用于目标跟踪,并且为这些问题提供了一些解决思路。这篇博客首先阐述图像跟踪今年来的研究进展,然后再介绍深度学习用于图像跟踪近年来的研究,最后附上一些学习资料和相关网站。

阅读更多

MatConvNet深度学习框架简介及GPU使用注意事项

        MatConvNet是一个基于Matlab的深度学习框架,在计算部分,最底层混编了C/C++或者CUDA C,这使得其速度并不是特别慢。就使用体验来说,MatConvNet是非常优秀的,借助于Matlab,定义网络,使用现有模型以及数据可视化都非常方便。

        由于MatConvNet文档和Demo都比较完备,所以这篇博客主要介绍一些GPU的配置细节。

阅读更多

OpenCV实现Census变换

census        在立体视觉中,常常用到Census变换,Census变换是一种非参数局部变换,其将周围像素的强度映射到一个比特穿,从而捕获图像的结构。同时使用Census变换可以减少由相机增益和偏置引起变化的影响。在立体匹配过程中,将图像做Census变换后,计算像素点之间的明式距离进行匹配,可以得到较好的效果。

        这篇博客主要介绍介绍实现Census变换,由于使用OpenCV的容器和接口,所以直接使用OpenCV调用比较方便。

阅读更多

Matlab使用vision.TextInserter在图像中嵌入字符

        使用Matlab处理图像的时候,如果需要将文字或者图形嵌入图像中,就需要用到vision工具集了,如果嵌入的是文字,那么就要使用vision.TextInserter,这个在新版本的Matlab中提供了insertText函数,与其功能差不多,不过vision.TextInserter要强大一些,insertText可以修改文字背景色块但是不能修改字体。

阅读更多

目标跟踪的评价指标(OTB与VOT)

        目标识别的评价指标主要有ROC曲线,missrate(MR,其实就是FALSE Positive)、FPPI、FPPW等。单图像跟踪的评价指标主要有两个,一个是pixel error,一般是算中心距离,另一个是overlap rate,区域重叠率,用重叠区域除以两个矩形所占的总面积Aoverlap /(A1+A2-Aoverlap),常常用pixel error绘制帧误差曲线,用重叠率绘制误差曲线。除此之外,还有针对多目标图像跟踪的评价指标。在VOT中,目标跟踪的评价指标又多了EOA和EOF图,这篇博客都会介绍。

阅读更多