【问题标题】:Best way to train a pedestrian detector using dlib使用 dlib 训练行人检测器的最佳方法
【发布时间】:2016-07-28 02:18:21
【问题描述】:

我正在尝试使用dlibINRIA Person Dataset 训练行人检测器。

到目前为止,我使用了 27 张图像,训练速度很快,但结果并不令人满意(在其他图像上,行人很少被识别)。这是我使用 dlib 附带的 train_object_detector 程序(在 /exmaples 目录中)进行训练的结果:

将经过训练的检测器保存到 object_detector.svm

在训练数据上测试检测器...

测试检测器(精度、召回率、AP):1 0.653061 0.653061

使用的参数:

线程数:4

C: 1

每股收益:0.01

目标大小:6400

检测窗口宽度:47

检测窗口高度:137

上采样多次:0

我知道需要将其他图像添加到训练中以获得更好的结果,但在此之前,我想确定结果中打印的每个参数的含义(精度、召回率、AP、c、 eps,...)我还想知道您是否对培训有任何建议:选择哪些图像?需要多少张图片?我需要注释图像中的每个对象吗?我需要忽略图像中的某些区域吗? ...

最后一个问题,是否有任何训练有素的检测器(svm 文件)可以用来比较我的结果?

感谢您的回答

【问题讨论】:

    标签: c++ opencv object-detection dlib


    【解决方案1】:

    我对 dlib 不是特别熟悉,但让我告诉你,用 27 张图像你不会得到好的结果。为了很好地概括,您的分类器需要查看许多具有各种数据的图像。为它提供 10,000 张同一个人、穿着相同服装的图像对你没有任何好处。你想要不同的人、衣服、场景、角度和灯光。 INRIA 数据集应该涵盖其中的大部分。

    您的检测窗口尺寸和上采样设置将决定人们必须在图像中看到多大的尺寸,这样您经过训练的分类器才能可靠地检测到他们。您的设置将仅检测 1 比例的人,他们的高/宽约为 137/47 像素。如果您上采样一次,您将能够以较小的比例检测到人(上采样会使人看起来比实际更大)。我建议您使用更大的数据集并增加上采样数(您上采样的数量是另一个讨论 - 这似乎是内置在库中的)。事情会花更长的时间,但这就是训练分类器的本质——调整参数、重新训练、比较结果。

    对于精确度/召回率,我会推荐您参考 this 维基百科文章。这些不是参数,而是分类器的结果。您希望两者都尽可能接近 1。

    【讨论】:

      猜你喜欢
      • 2017-02-01
      • 2016-11-15
      • 2017-08-23
      • 2016-12-21
      • 2018-05-18
      • 2019-06-06
      • 1970-01-01
      • 2019-07-19
      • 2017-11-28
      相关资源
      最近更新 更多