使用 Dlib 库进行对象检测

Object Detection with Dlib Library

我正在尝试使用 dlib 机器学习库进行对象检测。

正如我按照说明编写的那样,一切似乎都没有问题,但是即使在原始图像上我也无法检测到我的对象。即使我在唯一的黑色图像上测试它,它也会发现一个单一的检测。这不应该发生。如果我将一张经过训练的图像粘贴到黑色图像上,它会发现很多不应该发生的检测。

我没有触及 train_object_detector.cpp 文件。它是原创的。

这是我的样本图片

XML 我使用 imglab 创建的文件。

<?xml version='1.0' encoding='ISO-8859-1'?>
<?xml-stylesheet type='text/xsl' href='image_metadata_stylesheet.xsl'?>
<dataset>
<name>imglab dataset</name>
<comment>Created by imglab tool.</comment>
<images>
  <image file='totaldata/1.jpg'>
    <box top='0' left='1' width='61' height='64'/>
  </image>
  <image file='totaldata/2.jpg'>
    <box top='0' left='1' width='63' height='65'>
      <label>1</label>
    </box>
  </image>
  <image file='totaldata/3.jpg'>
    <box top='1' left='0' width='61' height='61'>
      <label>1</label>
    </box>
  </image>
  <image file='totaldata/4.jpg'>
    <box top='0' left='0' width='59' height='63'>
      <label>1</label>
    </box>
  </image>
  <image file='totaldata/5.jpg'>
    <box top='2' left='1' width='59' height='60'>
      <label>1</label>
    </box>
  </image>
  <image file='totaldata/6.jpg'>
    <box top='0' left='2' width='60' height='62'>
      <label>1</label>
    </box>
  </image>
</images>
</dataset>

只有黑色的检测截图

只有黑色和一张经过训练的图像的检测截图。

以防万一这是 cpp 文件的 link。

http://dlib.net/train_object_detector.cpp.html

提前致谢。

您不应裁剪训练图像。您需要提供看起来像您将在测试期间使用的图像的训练图像。

在这种情况下,图像 window 的部分特征向量是从图像外部的区域提取的(因为您的对象被裁剪得很紧)并且图像的外部被假定为黑色它正在学习您的对象总是被黑色像素包围。