本文主要是介绍Compressive Tracking——CT跟踪,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
感谢香港理工大学的Kaihua Zhang,这是他即将在ECCV 2012上出现的paper:Real-time Compressive Tracking。 这里是他的介绍:
一种简单高效地基于压缩感知的跟踪算法。首先利用符合压缩感知RIP条件的随机感知矩对多尺度图像特征进行降维,然后在降维后的特征上采用简单的朴素贝叶斯分类器进行分类。该跟踪算法非常简单,但是实验结果很鲁棒,速度大概能到达40帧/秒。具体原理分析可参照相关文章。
链接
免积分下载代码:http://download.csdn.net/detail/sangni007/5297374
1.Description: compute Haar features (templates)
void CompressiveTracker::HaarFeature(Rect& _objectBox, int _numFeature)
在rect内取_numFeature维特征,(rect的宽高与_objectBox一样,与_objectBox.x _objectBox.y无关)
每一维Feature都用若干Rect表示,存在vector<vector<Rect>> feature (_numFeature, vector<Rect>())中,
相应权重 vector<vector<float>>featuresWeight(_numFeature, vector<float>())
2.Description: compute the coordinate of positive and negative sample image templates
void CompressiveTracker::sampleRect(Mat& _image, Rect& _objectBox, float _rInner, float _rOuter, int _maxSampleNum, vector<Rect>& _sampleBox)
随机洒出若干Rect,记录坐标Rect(x,y)
保证sampleRect的(x,y)到_objectBox的(x,y)的dist满足:_rOuter*_rOuter<dist<_rInner*_rInner
取样本:1:正:dist小;2:负:dist大:
存入_sampleBox
void CompressiveTracker::sampleRect(Mat& _image, Rect& _objectBox, float _srw, vector<Rect>& _sampleBox)
这个sampleRect的重载函数是用来,预测位置的
只要满足:dist<_rInner*_rInner
初始化第一帧不运行这个sampleRect的重载函数,只在跟踪时,首先运行它再更新正负样本函数;
3.Compute the features of samples
void CompressiveTracker::getFeatureValue(Mat& _imageIntegral, vector<Rect>& _sampleBox, Mat& _sampleFeatureValue)
计算相应Rect的积分图像的Sum值,存入Mat& _sampleFeatureValue(即特征值)
4.// Update the mean and variance of the gaussian classifier
void CompressiveTrac
这篇关于Compressive Tracking——CT跟踪的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!