gpt4 book ai didi

opencv - 如何检测多人并在 opencv/emgucv 中跟踪他们

转载 作者:行者123 更新时间:2023-12-02 17:13:43 24 4
gpt4 key购买 nike

我一直试图在一个狭小的空间内检测到多个人,从而跟踪他们。

输入:安装在一个小房间里的摄像机的闭路电视画面。

预期输出:跟踪并存储人们从房间的一端移动到另一端时所走的路径。

我尝试实现一些基本的方法,比如背景减法和行人检测。但结果并不如预期。

在执行背景减法得到的结果中,由于遮挡,blob不是一个单一的实体(一个人的blob被分成多个小blob)因此,将其检测为一个人是非常困难的。
现在,考虑有很多人站得很近的情况。在这种情况下,使用简单的背景减法检测人是一场彻头彻尾的灾难。

有没有更好的方法来检测多人?
或者也许有办法改善背景减法的结果?

请提出一种跟踪多人的好方法?

最佳答案

这是一个相当困难的问题,并且没有开箱即用的解决方案,因此您可能必须尝试不同的方法。

一开始你会想要做一些假设,比如静态相机位置,所有不是背景的东西都是一个人或一个人的一部分,也许是多个人。人不能出现在图像中,但他们必须“进入”它(并且在进入时被检测到并在检测后被跟踪)。

检测和跟踪都可能是困难的问题,因此您可能希望首先关注其中一个问题。我将从跟踪开始并选择 probabilisic tracking method , 因为像 tracking by detection 这样的简单跟踪方法可能无法很好地处理重叠和多个目标。
Tracking:我会尝试使用粒子过滤器,例如 http://www.irisa.fr/vista/Papers/2002/perez_hue_eccv02.pdf
它能够跟踪多个目标。
Detection: OpenCV中有一个HoG Person Detector,对于直立的人来说效果很好

HOGDescriptor hog;
hog.setSVMDetector(HOGDescriptor::getDefaultPeopleDetector());

但是最好知道图像中人的大致大小并相应地缩放图像。您可以在背景减除后通过缩放 Blob 或 Blob 组合来执行此操作,或者您使用相机校准并将尺寸为 1.6m 到 2.0m 的图像部分缩放到您的 HoG 探测器尺寸。否则你可能会有很多失误和很多误报。

最后,您将不得不工作和研究一段时间才能让事情运行起来,但不要指望早日成功或 100% 命中率 ;)

我将创建一个示例视频并进行处理,手动将进入的人员作为检测进行掩蔽,并使用这些检测实现跟踪器。

关于opencv - 如何检测多人并在 opencv/emgucv 中跟踪他们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20987852/

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