OpenCV 4.10.0
开源计算机视觉
|
此采样器基于粒子滤波。 更多...
#include <opencv2/tracking/tracking_internals.hpp>
类 | |
struct | Params |
此结构包含在采样算法过程中可以改变的所有参数。 以下是公开的结构,以及简要解释的成员,参考上面关于算法工作原理的讨论。 更多... | |
公共成员函数 | |
TrackerSamplerPF (const Mat &chosenRect, const TrackerSamplerPF::Params ¶meters=TrackerSamplerPF::Params()) | |
构造函数。 | |
从 cv::detail::tracking::TrackerContribSamplerAlgorithm 继承的公共成员函数 | |
virtual | ~TrackerContribSamplerAlgorithm () |
析构函数。 | |
String | getClassName () const |
获取特定 TrackerContribSamplerAlgorithm 的名称。 | |
virtual bool | sampling (const Mat &image, const Rect &boundingBox, std::vector< Mat > &sample) CV_OVERRIDE |
从图像中的位置开始计算区域。 | |
从 cv::detail::tracking::TrackerSamplerAlgorithm 继承的公共成员函数 | |
virtual | ~TrackerSamplerAlgorithm () |
受保护的成员函数 | |
bool | samplingImpl (const Mat &image, Rect boundingBox, std::vector< Mat > &sample) CV_OVERRIDE |
额外继承的成员 | |
从 cv::detail::tracking::TrackerContribSamplerAlgorithm 继承的静态公共成员函数 | |
static Ptr< TrackerContribSamplerAlgorithm > | create (const String &trackerSamplerType) |
通过跟踪采样器类型创建 TrackerContribSamplerAlgorithm。 | |
从 cv::detail::tracking::TrackerContribSamplerAlgorithm 继承的受保护属性 | |
String | className |
此采样器基于粒子滤波。
原则上,可以认为它是在执行某种优化(实际上,此跟踪器使用 opencv 的 optim 模块),其中跟踪器试图在给定帧中找到最 *"相似"* 于初始矩形的矩形(通过构造函数给定的矩形)。
执行的优化是随机的,在某种程度上类似于遗传算法,其中在接收到每个新图像(通过 TrackerSamplerPF::sampling() 提交)时,我们从 boundingBox 限制的区域开始,然后生成几个 *"扰动"* 的框,取最相似于原始框的框。 此选择回合重复多次。 最后,我们希望只保留最有希望的框,并将它们组合起来生成图像的子矩形,该矩形作为数组 sample 中的唯一元素。
需要注意的是,两个矩形之间 *"相似"* 的定义是基于比较它们的直方图。 实验表明,如果目标被认为强烈改变其尺寸,跟踪器不会 非常成功。
cv::detail::tracking::TrackerSamplerPF::TrackerSamplerPF | ( | const Mat & | chosenRect, |
const TrackerSamplerPF::Params & | parameters = TrackerSamplerPF::Params() |
||
) |
构造函数。
chosenRect | 初始矩形,应该包含我们要跟踪的目标。 |
parameters |