gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 17:50:38 26 4
gpt4 key购买 nike

我需要跟踪道路上的汽车,可以用GMM监视对象的变化,但是道路上的汽车的大小会从远近改变,建议使用哪种算法来跟踪远近或近距离的物体远?

最佳答案

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

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

均值偏移和camshift的输入都是一个概率图,其中每个像素(大约)指示它属于对象(可能是背景)的几率。创建这种 map 的一种方法是计算要跟踪的对象的直方图,然后将其反投影到图像中,因此,例如,如果您的直方图只有两个bin,其中I = 255的计数为90,对于I = 255的计数为10 I = 100,强度为255的每个像素获得90%的概率,强度为100的每个像素获得10%的概率(请参见有关直方图backprojection的详细说明)。

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

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

当然,如果您最初的猜测与实际概率最大值相差太远,则该窗口可能会陷入与对象无关的局部最大值。因此,高帧速率很重要,因为它可以确保对象在帧之间移动不大,并且可以将先前的位置用作窗口位置初始化的合理猜测。

关于opencv - 如何在opencv中从远处到近处跟踪场景中的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22308282/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com