质量声明:原创文章,内容质量问题请评论吐槽。如对您产生干扰,可私信删除。
主要参考: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. “我辞职了,决定全职去开发我的操作系统!”
  2. 皮一皮:编!继续编啊你...
  3. 一个Java应届生从上海离职,附项目源码
  4. SpringBoot常见功能特性分析
  5. 资源调度框架YARN
  6. 在以阶段划分的编译过程中,判断程序语句的形式是否正确属于()阶段的工作。
  7. 使用Mybatis Generator结合Ant脚本快速自动生成Model、Mapper等文件的方法
  8. 需求分析——调研需求时如何调查系统相关者?
  9. 顺丰控股子公司亮榛拟1000万美元参投海外投资基金
  10. 记一次Mysql数据库Kill完之后启动不起来的解决方案
  11. 计算机是通过 来访问存储单元的,计算机是通过____来访问存储单元的
  12. Python 扩展C
  13. 中国区Azure基本实例更新
  14. 编译最新版webrtc源码和编译好的整个项目10多个G【分享】
  15. VC6 SDK 下载
  16. Java程序从编写到运行
  17. 八百呼电话录音系统--让通讯管理更安心
  18. Bomb lab实验
  19. libsvmpredict和svmtrain的参数和返回值
  20. 虚拟化技术(一)——虚拟化简介

热门文章

  1. Unity 图片渐变色的实现
  2. AndroidManifest文件详解
  3. SearchIndexer.exe持续高占用cpu
  4. 从零开始创业,知名律师献上这套股权激励秘笈丨72问
  5. 如何下载谷歌地球高程为SHP格式的等高线
  6. 比亚迪智驾狂飙:三车多方案齐发,供应商双倍投入助阵
  7. 自动化运维工具-Ansible实战指南
  8. “中国脑计划”:向最后的前沿进发 | 央视对话
  9. 代理服务(2):Varnish_反向代理
  10. 周颖杰计算机学院,周颍杰、吴晓红带队赴河南科技大学进行考察交流