opencv - 如何在滑动窗口对象检测中对 True Negatives 进行分类?

标签 opencv machine-learning computer-vision object-detection

<分区>

我正在从我的图像检测器算法中收集结果。所以基本上我所做的是,从一组图像(大小为 320 x 480)中,我将运行一个 64x128 的滑动窗口,并在一些预定义的比例下运行。

我的理解是:

  • 真阳性 = 当我检测到的窗口与真实值(带注释的边界框)重叠(在定义的交点大小/质心内)
  • 误报 = 当算法给我正窗口时,这些窗口在基本事实之外。
  • 假阴性 = 当我未能提供阳性窗口时,而地面实况注释表明存在一个对象。

但是 True Negatives 呢?这些真正的否定是否是我的分类器给我否定结果的所有窗口?这听起来很奇怪,因为我一次将一个小窗口 (64x128) 滑动 4 个像素,并且我在检测中使用了大约 8 个不同的比例。如果我这样做,那么每张图片都会有很多真底片。

或者我是否准备了一组纯负片图像(根本没有物体/人),我只是在其中滑过,如果在每张图像中都有一个或多个阳性检测,我会将其视为假阴性,反之亦然?

这是一个示例图像(绿色矩形作为基本事实)

Example image, not real result

最佳答案

我一直看到的四个术语如下:

  • 假阴性;结果应该是积极的,但结果却是消极的。
  • 误报;结果本应为阴性,但结果为阳性。
  • 真阳性;结果应该是积极的,并且是积极的。
  • 真阴性;结果本应为阴性,结果为阴性。

在您的情况下,如果我理解正确的话,您正在尝试检测图像中是否有物体。因此,假阴性意味着存在一个物体(结果应该是阳性)但算法没有检测到它(因此返回阴性)。真正的否定只是算法正确地指出它检查的区域没有容纳物体。

您可以选择忽略负值,但这些值可用于进一步训练您的算法(例如,使用同时查找两者的算法,而不是将所有无法识别的内容都设置为 false)。

关于opencv - 如何在滑动窗口对象检测中对 True Negatives 进行分类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16271603/

相关文章:

image - 如何从图像中删除所有线条? (水平、垂直、对角线)

matlab - 本地二进制模式在 matlab 中的原始代码和引用

python - 矢量图像的图像比较(基于边缘检测)?

python - ModuleNotFoundError : No module named 'cv2' in Spyder IDE, 即使在我的 windows pc 中使用 anaconda 成功安装了 opencv 库

python - 如何使用 opencv/skimage 在 python 上找到图案的中心及其周围颜色的分布?

python - Keras 神经网络和 SKlearn SVM.SVC

machine-learning - Tensorflow 批处理参数

c++ - Qt GUI 已停止工作

opencv - 加载后OpenCV FileStorage为空

python - 为什么要使用 tf.data?