eigen跟踪MILTracker代码分析

举报
风吹稻花香 发表于 2021/06/05 00:22:40 2021/06/05
【摘要】 调用跟踪方法再Main.cpp中: while (vot_io.getNextImage(frameOrig) == 1){ resize(frameOrig, frame, Size(conf.frameWidth, conf.frameHeight)); tracker.Track(frame); 跟踪方法: Tracker.cpp void Tracker:...
调用跟踪方法再Main.cpp中:
 while (vot_io.getNextImage(frameOrig) == 1){
 resize(frameOrig, frame, Size(conf.frameWidth, conf.frameHeight));
 
 tracker.Track(frame); 跟踪方法:
Tracker.cpp

void Tracker::Track(const cv::Mat& frame)
{


耗时操作:
m_pLearner->Eval(sample, scores);


Eval fvs.size()有时为2850,循环估计,耗时

void LaRank::Eval(const MultiSample& sample, std::vector<double>& results)
{
 const FloatRect& centre(sample.GetRects()[0]);
 vector<VectorXd> fvs;
 double tt = (double)cvGetTickCount();
 const_cast<Features&>(m_features).Eval(sample, fvs);
 results.resize(fvs.size());
 //  算法过程
 tt = (double)cvGetTickCount() - tt;
 printf( "run time1 = %fms fvs.size:%d\n", tt/(cvGetTickFrequency()*1000),fvs.size() );
 for (int i = 0; i < (int)fvs.size(); ++i)
 {
 // express y in coord frame of centre sample
 FloatRect y(sample.GetRects()[i]);
 y.Translate(-centre.XMin(), -centre.YMin());
 results[i] = Evaluate(fvs[i], y);
 if(i%200==0){
 tt = (double)cvGetTickCount() - tt;
 printf( "run time%d = %fms\n",i, tt/(cvGetTickFrequency()*1000) );
 }
 }
 //  算法过程
// tt = (double)cvGetTickCount() - tt;
// printf( "run time2 = %fms\n", tt/(cvGetTickFrequency()*1000) );
}

文章来源: blog.csdn.net,作者:网奇,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/jacke121/article/details/60469407

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。