gpt4 book ai didi

c++ - Opencv 对象跟踪和计数在视频帧中通过 ROI 的对象

转载 作者:太空宇宙 更新时间:2023-11-03 22:00:59 25 4
gpt4 key购买 nike

我正在开发 Opencv 应用程序,该应用程序需要对相机可以检测到的任何物体进行计数。相机静止不动,我引用了很多教程,用opencv和cvblob做了物体跟踪。

我发现了一些类似的问题: Object counting

我发现这很相似 http://labs.globant.com/uncategorized/peopletracker-people-and-object-tracking/

我是 OpenCV 的新手,我已经阅读了 opencv 文档,但我找不到任何与计算视频中的移动对象相关的内容。

任何人都可以给我一个想法,特别是计数部分。正如我在上面的文章中读到的,他们统计了越过虚拟线的人数。是否有一种特殊的算法来检测越过虚拟线的物体?

最佳答案

当您询问计算视频序列中移动对象的一般技术时,您的问题可能过于宽泛。我会给出一些可能对您有帮助的提示:

  • 与计算机视觉领域一样,不存在解决问题的特定方法。尝试做一些关于人物检测、背景提取运动检测的研究,以获得更广阔的视野
  • 更清楚地说明您的系统的用户需求,即图像帧中可以出现多少人?当您想跟踪一个以上的人时,事情就变得复杂了。此外,其他移动物体是否会出现在图像上(例如动物)?如果没有而且只有一个人应该被跟踪,那么您的问题的答案很简单,请参阅下面的解释。如果是,您将不得不做更多的研究。
  • 通常你无法在 OpenCV API 中找到直接解决计算机视觉问题的方法,即没有直接解决人数统计问题的方法。但可以肯定的是,有一些论文、引用资料(通常是一些科学的东西)可以用来解决你的问题。所以不存在“计算过垂直线的人数”的方法。你必须解决我将一些算法合并在一起的问题。

在您提供的链接中,可以看到他们使用某种算法进行背景提取,确定什么是非移动背景和移动前景(在我们的例子中,是一个行走的人)。我们不确定他们是否使用了更多(或更复杂)的东西,但有关背景提取的信息足以开始解决问题。

这是我对解决方案的贡献。假设只有一个人在稳定放置的摄像头前行走,并且没有观察到其他物体运动,请执行以下操作:

  1. 当没有人在相机前移动时保存帧,稍后将用作背景的引用
  2. 在一个循环中,应用一些背景检测器来提取图像中代表运动的部分(MOG,或者您甚至可以只计算背景和当前帧之间的差异,然后是二进制阈值和 Blob 计数,请参阅我的回答here )
  3. 根据假设,应该只检测到一个 Blob (如果没有,使用一些指标选择“最佳的”。例如,选择面积最大的 Blob )。那个 blob 就是我们想要跟踪的人。知道它在图像上的位置,与“垂直线”的位置进行比较。从左到右移动的物体正在退出,从右到左进入。

请记住,此解决方案仅适用于我们声明的假设。

关于c++ - Opencv 对象跟踪和计数在视频帧中通过 ROI 的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24455686/

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