Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在opencv中从远到近跟踪场景中的对象_Opencv_Computer Vision - Fatal编程技术网

如何在opencv中从远到近跟踪场景中的对象

如何在opencv中从远到近跟踪场景中的对象,opencv,computer-vision,Opencv,Computer Vision,我需要跟踪道路上的车辆,可以使用GMM监控对象的变化,但是道路上的车辆从远到近改变其大小,建议使用什么算法从远到近或从近到远跟踪对象 高斯混合模型(GMM)是将汽车建模为对象的一个不错的选择,但我不确定如何使用它来建模背景,因为它可能更不均匀,并且需要大量的混合。使用EM(期望最大化)学习GMM可能需要大量的处理。因此,我的建议是开始使用简单的直方图,将对象建模为具有计数的容器集合,而不是高斯分布的集合。下面我将描述在OpenCV中实现的两个这样的方法 使用openCV开始跟踪的最简单方法是使用

我需要跟踪道路上的车辆,可以使用GMM监控对象的变化,但是道路上的车辆从远到近改变其大小,建议使用什么算法从远到近或从近到远跟踪对象

高斯混合模型(GMM)是将汽车建模为对象的一个不错的选择,但我不确定如何使用它来建模背景,因为它可能更不均匀,并且需要大量的混合。使用EM(期望最大化)学习GMM可能需要大量的处理。因此,我的建议是开始使用简单的直方图,将对象建模为具有计数的容器集合,而不是高斯分布的集合。下面我将描述在OpenCV中实现的两个这样的方法

使用openCV开始跟踪的最简单方法是使用函数。一个相关的方法是meanshift的修改版本,它还可以在对象更改其大小或方向时更正初始边界框的大小和方向。您可以在openCV包的camshiftdemo.c中找到相应的演示

meanshift和camshift的输入都是一个概率图,其中每个像素表示(大约)它属于对象(可能是背景)的概率。创建此类贴图的一种方法是计算要跟踪的对象的直方图,然后将其反向投影到图像中,因此,例如,如果直方图只有两个箱,I=255的箱数为90,I=100的箱数为10,则强度为255的每个像素的概率为90%,强度为100的每个像素的概率为10%(请参阅有关直方图的更详细说明)

请注意,这些方法基于某些特征的直方图,例如强度、颜色或几乎任何其他特征。您可以尝试添加更多特征直方图,还可以更正将对象直方图与背景直方图关联的概率图。最后,您可以在每一帧更新直方图,以补偿对象直方图nd背景变化

现在,简而言之,它是如何工作的。meanshift,顾名思义,根据概率平均值(在此窗口内计算)的位置移动初始窗口,并且平均值通常偏离(移动)窗口中心,朝向概率最高的簇(希望是您的对象).此过程迭代重复,直到收敛


当然,如果您的初始猜测距离实际概率最大值太远,窗口可能会卡在与您的对象无关的局部最大值中。因此,高帧速率非常重要,因为它可以保证对象不会在帧之间移动太多,并且您可以使用以前的位置作为wi的合理猜测ndow位置初始化。

您可以尝试块匹配,8X8或4X4块,并使用SAD进行匹配。它还会告诉您大小和平移的变化。如果对象较大且不是很快,您也可以处理它的旋转。如果需要更多详细信息,请回信。嗨,弗拉德,我承认GMM对场景建模有点重,我想尝试一下camshift。我还见过使用卡尔曼滤波器跟踪物体,它与跟踪有什么关系,使用卡尔曼滤波器的优势是什么?简而言之,卡尔曼滤波器将分析跟踪(运动)历史记录以改进您的估计。例如,如果对象向右移动,您可以在上一个位置的右侧稍微放置一个初始窗口。这将对您的解决方案起到补充作用,而不是改变您的解决方案。在抛光camshift后,在结束时执行此操作。嗨,Vlad,为了使用meanshift方法进行车辆跟踪,首先,我需要获取汽车的直方图。还有一个问题是,当汽车从远到近时,应用程序首先如何检测新车,选择这辆汽车的直方图,背景减法可以帮助您在可移动的片段上打断场景。