质量声明:原创文章,内容质量问题请评论吐槽。如对您产生干扰,可私信删除。
主要参考:opencv_contrib/modules/tracking/src/trackerKCF.cpp


文章目录

  • 参数声明
  • 参数默认值
  • 参数具体含义
    • 判别阈值 detect_thresh = 0.5f
    • 高斯核带宽 sigma = 0.2f
    • 尺寸缩小1/2 resize = true
  • 代码示例
    • 默认参数
    • 自定义参数
  • 附:其他Tracker默认参数
    • Boosting
    • MIL

摘要: 介绍opencv4.x版本的TrackerKCF的调用接口与示例


参数声明

  • tracker.hpp:
struct CV_EXPORTS Params
{/*** \brief Constructor*/Params();/*** \brief Read parameters from a file*/void read(const FileNode& /*fn*/);/*** \brief Write parameters to a file*/void write(FileStorage& /*fs*/) const;float detect_thresh;          //!<  detection confidence thresholdfloat sigma;                  //!<  gaussian kernel bandwidthfloat lambda;                 //!<  regularizationfloat interp_factor;          //!<  linear interpolation factor for adaptationfloat output_sigma_factor;    //!<  spatial bandwidth (proportional to target)float pca_learning_rate;      //!<  compression learning ratebool resize;                  //!<  activate the resize feature to improve the processing speedbool split_coeff;             //!<  split the training coefficients into two matricesbool wrap_kernel;             //!<  wrap around the kernel valuesbool compress_feature;        //!<  activate the pca method to compress the featuresint max_patch_size;           //!<  threshold for the ROI sizeint compressed_size;          //!<  feature size after compressionint desc_pca;        //!<  compressed descriptors of TrackerKCF::MODEint desc_npca;       //!<  non-compressed descriptors of TrackerKCF::MODE
};
  • 对应构造函数:
  static Ptr<TrackerKCF> create(const TrackerKCF::Params &parameters);

参数默认值

  • trackerKCF.cpp
TrackerKCF::Params::Params()
{detect_thresh = 0.5f;sigma=0.2f;lambda=0.0001f;interp_factor=0.075f;output_sigma_factor=1.0f / 16.0f;resize=true;max_patch_size=80*80;split_coeff=true;wrap_kernel=false;desc_npca = GRAY;desc_pca = CN;//feature compressioncompress_feature=true;compressed_size=2;pca_learning_rate=0.15f;}

参数具体含义

判别阈值 detect_thresh = 0.5f

// extract the maximum response
minMaxLoc( response, &minVal, &maxVal, &minLoc, &maxLoc );
if (maxVal < params.detect_thresh)
{return false;
}

高斯核带宽 sigma = 0.2f

//compute the gaussian kernel
denseGaussKernel(params.sigma,x,z,k,layers,vxf,vyf,vxyf,xy_data,xyf_data);

尺寸缩小1/2 resize = true

//resize the ROI whenever needed
if(params.resize && roi.width*roi.height>params.max_patch_size)
{resizeImage=true;roi.x/=2.0;roi.y/=2.0;roi.width/=2.0;roi.height/=2.0;
}
// resize the image whenever needed
if(resizeImage)resize(img, img, Size(img.cols / 2, img.rows / 2), 0, 0, INTER_LINEAR_EXACT);

代码示例

默认参数

cv::Ptr<cv::Tracker> tracker;
tracker = cv::TrackerKCF::create();
tracker->init(curFrame, roi_rect);

自定义参数

我遇到的问题是将视频大小(1280x720)缩减一半时,频繁出现跟踪失败。当置信度阈值调整到0.3时,跟踪正常。

cv::Ptr<cv::Tracker> tracker;
cv::TrackerKCF::Params params;
params.detect_thresh = 0.3f;
tracker = cv::TrackerKCF::create(params);
tracker->init(curFrame, roi_rect);

附:其他Tracker默认参数

Boosting

TrackerBoosting::Params::Params()
{numClassifiers = 100;samplerOverlap = 0.99f;samplerSearchFactor = 1.8f;iterationInit = 50;featureSetNumFeatures = ( numClassifiers * 10 ) + iterationInit;
}

MIL

TrackerMIL::Params::Params()
{samplerInitInRadius = 3;samplerSearchWinSize = 25;samplerInitMaxNegNum = 65;samplerTrackInRadius = 4;samplerTrackMaxPosNum = 100000;samplerTrackMaxNegNum = 65;featureSetNumFeatures = 250;
}

目标跟踪: opencv::TrackerKCF 参数详解相关推荐

  1. Python OpenCV相机参数详解:实现准确的相机标定和图像处理

    Python OpenCV相机参数详解:实现准确的相机标定和图像处理 在计算机视觉领域,相机参数是非常重要的元素.通过相机参数的标定,可以将图像中的像素坐标转化为真实世界中的坐标,从而实现准确的图像处 ...

  2. 目标跟踪算法KCF原理详解

    一直以来没有很想写这个,以为这个东西比较简单,还算是比较容易理解的一个算法,但是在知乎上回答过一个问题之后就有朋友私信我一些关于细节的东西,我一直以为关于细节的东西大家可以自己去理解,大家都是想快速了 ...

  3. 目标跟踪算法——KCF入门详解

    一直以来没有很想写这个,以为这个东西比较简单,还算是比较容易理解的一个算法,但是在知乎上回答过一个问题之后就有朋友私信我一些关于细节的东西,我一直以为关于细节的东西大家可以自己去理解,大家都是想快速了 ...

  4. OpenCv学习笔记(二)--Mat矩阵(图像容器)的创建及CV_8UC1,CV_8UC2等参数详解

    (一)Mat矩阵(图像容器)创建时CV_8UC1,CV_8UC2等参数详解 1--Mat不但是一个非常有用的图像容器类,同时也是一个通用的矩阵类 2--创建一个Mat对象的方法很多,我们现在先看一下M ...

  5. 【OpenCV 例程300篇】214. 绘制椭圆的参数详解

    OpenCV 例程200篇 总目录 [youcans 的 OpenCV 例程300篇]214. 绘制椭圆的参数详解 OpenCV提供了绘图功能,可以在图像上绘制直线.矩形.圆.椭圆等各种几何图形. 7 ...

  6. OpenCV的Rect()函数、Rectangle()函数、matchTemplate()参数详解

    OpenCV的函数 Rect()函数 cvRectangle与cv::rectangle matchTemplate() 归一化函数normalize() Rect()函数 基本概念: Rect(in ...

  7. 【OpenCV 4开发详解】分割图像——Grabcut图像分割

    本文首发于"小白学视觉"微信公众号,欢迎关注公众号 本文作者为小白,版权归人民邮电出版社发行所有,禁止转载,侵权必究! 经过几个月的努力,小白终于完成了市面上第一本OpenCV 4 ...

  8. 【OpenCV 4开发详解】轮廓发现与绘制

    本文首发于"小白学视觉"微信公众号,欢迎关注公众号 本文作者为小白,版权归人民邮电出版社发行所有,禁止转载,侵权必究! 经过几个月的努力,小白终于完成了市面上第一本OpenCV 4 ...

  9. 【OpenCV 4开发详解】形态学应用

    本文首发于"小白学视觉"微信公众号,欢迎关注公众号 本文作者为小白,版权归人民邮电出版社发行所有,禁止转载,侵权必究! 经过几个月的努力,小白终于完成了市面上第一本OpenCV 4 ...

最新文章

  1. Merge Sort及其对一类问题的应用
  2. redis内存行数据库细节
  3. 以下十种性格的人不适合做程序员,你​赞同吗? ​
  4. 二进制安装mariadb-10.2.8
  5. slf4j log4j logback关系详解和相关用法
  6. 小米球Ngrok-使用方法
  7. 线性时间选择算法-《数据结构》(结合例题讲解)
  8. [渝粤教育】陕西师范大学《教育社会学》作业
  9. 数据科学 IPython 笔记本 四、Keras(下)
  10. ecshop 配置服务器文件夹,ECSHOP3.6安装教程【ECSHOP3.6安装教程步骤】ECSHOP3.6安装教程详细讲解-ECSHOP教程网...
  11. MySQL 8.0完美卸载(windows)
  12. 微信小程序 -- 数据库数据excel文件批量导入
  13. FCAA答题练习收集记录
  14. 简单电子产品的蓝牙电路设计和PCB设计
  15. 全球与中国能力和技能管理软件市场深度研究分析报告
  16. 非常nb的类excel js控件:treegrid
  17. 单链表基本操作(C语言)
  18. 我懂得珍惜,也舍得放手
  19. 阿里云开放搜索案例(opensearch )
  20. 华为ws832虚拟服务器,玩的就是真实力!华为路由WS832实测体验

热门文章

  1. 1月14日安卓实现跑马灯文字效果
  2. 最新版本UI悬赏任务程序源码
  3. 购物网站毕业设计 (高配版)
  4. 叹服,网易JDK负责人手写 HotSpot 358页实战笔记
  5. Python.net 和IronPython 是什么关系
  6. ROS学习笔记-ROS订阅和发布节点
  7. 师范类专业物理和计算机选哪个,新高考想当老师如何选科,当老师新高考要选什么?...
  8. 游戏成瘾的成因有哪些?如何防沉迷呢?
  9. solona连接phantom钱包
  10. 最好的MATLAB学习网站