【问题标题】:Calculate dwell time of a person in a video计算一个人在视频中的停留时间
【发布时间】:2017-09-05 11:17:48
【问题描述】:

我正在从事一些机器学习项目,我在其中使用 卡尔曼滤波器 跟踪器跟踪了人们。我想计算每个人在视频中的时间。

我尝试使用以下逻辑: 假设人出现在 5 帧中,视频 FPS 为 15,那么我们可以说人在视频中 (5*15) 持续了 75 秒。

注意:-我已经在代码中假设并硬编码了 FPS 值。我没有找到任何方法来获取 FPS,因为我正在传递视频帧进行跟踪。

但问题是,如果我对 FPS 值进行硬编码,那么每当 FPS 发生变化时(我不知道是什么时候),我必须更改代码,否则会给出错误的结果。

【问题讨论】:

  • 是的。但是如何得到那个乘法因子?
  • 显然,在不知道 fps 的情况下,您无法计算任何时间(除非视频中有其他时间提示,如时钟)。通常,您应该从相机中获得每一帧的微秒精度时间戳。如果不是这种情况,请使用适当的相机/图像采集卡及其 SDK。
  • 相机每一帧的微秒精度时间戳,我可以做到,但它不是那么有效的解决方案
  • 5 帧 @ 15fps 是 0.333 秒,而不是 75 秒。
  • 是的。但我无法硬编码 FPS 值客栈代码。

标签: opencv machine-learning kalman-filter darknet


【解决方案1】:

我的建议是计算处理每个捕获的帧所用的时间,并维护一个累加器来计算每个检测到的人的屏幕时间。对于此类项目,帧速率取决于您执行的处理量。

【讨论】:

    【解决方案2】:

    您不需要对 fps 进行硬编码,实际上您也不需要 fps。我相信您的跟踪器会为检测到的每个人分配唯一的 ID。一旦你有了 id,你就可以开始计算那个 id 的秒数了。一旦该人移出框架,跟踪器 ID 将丢失,您可以停止计时器,因此您将获得该人在框架中花费的总时间。

    看看这段代码:https://github.com/mailrocketsystems/AIComputerVision/blob/master/dwell_time_calculation.py

    也许这个视频解释一下:https://www.youtube.com/watch?v=qn26XSinYfg

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-02-10
      • 2017-02-22
      • 2021-11-19
      • 2013-02-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多