【问题标题】:OpenCV: counting bounding box in a videoOpenCV:计算视频中的边界框
【发布时间】:2019-08-06 11:08:16
【问题描述】:

我有一些视频被视为人员检测的基本事实:this is an example

我还有主要视频(没有任何检测),我必须对其运行我的人员检测算法,并将我的结果与地面实况视频进行比较。

问题是我不仅想要定性比较,还想要定量。因此,就我个人算法中的检测次数而言,我必须找到一种可靠的方法来计算每一帧在地面实况视频中出现的边界框的数量

我已经考虑了this linkthis one either,但它们的目的是找到形状的轮廓,而不是边界框。我知道检测检测数量听起来很荒谬,但这是我必须获得数字基础事实的唯一方法。

【问题讨论】:

  • 你确定没有数据附加到视频的帧号和边界框列表(我希望这样的东西必须存在)?你看过bitbucket.org/amilan/motchallenge-devkit吗?
  • 来自数据集的验证视频有其基本事实。请寻找一个这样的文件。一般为.xml.csv
  • @wdudzik 是的,你是对的:地面实况文件附在here 中,我还找到了how to use them。我很抱歉问这个问题,因为我以前可以搜索过,但我已经搜索了好几天的好数据集,然后我发现了这个,它看起来非常适合我的代码,但我盲目地迷失在这个基本事实的麻烦中。作为一个借口,一旦我有了具体的东西,我就会提供包含检测的 GitHub 存储库。

标签: python c++ opencv detection bounding-box


【解决方案1】:

使用具有源视频和基本事实的pedestrian dataset。源视频将是一个视频文件(如 .avi),而基本事实是一个电子表格(如 .csv)。行人周围边界框的 x,y 坐标和宽度和高度保存在电子表格中。

要直观地检查您的结果,请在同一视频中绘制基本事实和结果。

使用算法定量检查您的结果。我使用的准确度函数是:

overlap / ((ground_truth_area + my_results_area)/2)

重叠在 gif 中显示为灰色。 How I calculated overlap.

【讨论】:

  • 我用谷歌搜索数据集已经有几天了;您链接的示例不符合我的需求(即我不是在人行横道上寻找一个行人)。但是,当您指出一种计算准确性的方法时,我赞成您的回答,这是我仍然需要弄清楚的事情。
  • 谢谢。我最初想创建一个有几个人的数据集,但我无法说服我的朋友参与。希望你能找到你要找的东西。如果没有,制作行人数据集非常容易。我使用我编写的一些 OpenCV 跟踪脚本来为我在答案中链接到的数据集创建基本事实。
  • 您介意解释(或提供链接)您是如何获得该公式的吗?特别是,您是如何计算 overlap 的?
  • @Lorenzo 我更改了 .gif 以便更容易看到重叠是什么。我还编辑了问题并链接到另一个 S.O.答案将帮助您计算两个矩形的重叠。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-04-10
  • 1970-01-01
  • 2013-01-21
  • 2019-09-05
  • 2021-10-20
  • 2012-01-12
相关资源
最近更新 更多