【问题标题】:D-lib object detector trainingD-lib 目标检测器训练
【发布时间】:2023-03-06 07:02:01
【问题描述】:

我正在尝试使用 D-lib 训练对象检测器。我选择了近 100 张图像进行训练。我正在使用 Python 环境。根据文档,我使用 Imglab 工具在图像上绘制边界框。每张图像的大小几乎为 4000*3000 像素。 然后将生成的XML文件放到我的位置,调用检测程序。以下是我的疑问和问题。

在运行程序时我应该使用什么作为测试 XML 文件? 我在没有分配任何测试 XML 的情况下运行。但是,我得到以下信息。使用 C 进行训练:5 使用 epsilon 进行训练:0.01 使用 8 个线程进行训练。使用 81 像素宽 x 79 像素高的滑动窗口进行训练。对图像的左右翻转版本进行训练。被杀 顺便问一下,“杀死”是什么意思?

我现在该怎么办?请指导!

【问题讨论】:

  • 4000*3000 对于滑动风速 81x79 来说太大了。是的,它可以训练 - 但会占用大量 RAM。使用小图像 - 用您的对象 + 周围的一些空间裁剪它们
  • 谢谢!当我对图像进行下采样时,它工作得很好。得到一个训练有素的 xml 和 svm 文件。那么,如何在自己的图像集中使用经过训练的分类器?
  • 分类器训练后 - 它适用于任何大于 81x79 的图像尺寸
  • 所以,xml文件变成了分类器! svm文件有什么用?
  • 这里是示例dlib.net/train_object_detector.py.html。您可以从 .svm 文件构建(加载)检测器。并且您可以在没有 xml 的情况下训练对象检测器

标签: python conv-neural-network dlib dlib-python


【解决方案1】:

测试 XML 文件提供用于检查对象检测准确性的图像和对象注释。可以使用 imglab 生成该文件,就像使用训练 XML 一样。它应该包含与您的训练数据集相似但不完全相同的数据。

Killed 消息是由于内存问题。在 Linux 中,它是 OOM Killer 的结果。由于图像太大,您的机器内存不足并终止了训练过程。
可能的解决方案:
1) Configure the OOM killer 允许 dlib 使用更多内存。
2) 如果可能的话,为您的应用缩小图像。
3) 使用内存更大的机器。如果您手头没有,AWS 以相对较低的成本提供了几个高 RAM EC2 options

【讨论】:

  • 感谢您的信息。
猜你喜欢
  • 2017-03-16
  • 1970-01-01
  • 2018-09-20
  • 1970-01-01
  • 1970-01-01
  • 2014-11-01
  • 2021-02-03
  • 2020-10-17
  • 2019-09-18
相关资源
最近更新 更多