使用Dlib和iBug培训面部标志检测模型失败

时间:2017-01-31 10:45:34

标签: c++ face-detection feature-detection training-data dlib

我一直在尝试创建一个比Dlib提供的shape_predictor_68_face_landmarks.dat更好的模型。

(您可以从http://dlib.net/files/shape_predictor_68_face_landmarks.dat.bz2

获取此文件

问题

您对我的数据集没有以正确的方式进行培训有什么想法吗?

My result with applying all iBug images

目标

我想创建一个.dat文件,它比我上面提到的模型提供更好的准确性。 这意味着比这张图片更准确。

我用过的东西。

我基本上使用了train_shape_predictor_ex.cpp的示例代码。

我使用的数据集就是这个 - > 原文:http://ibug.doc.ic.ac.uk/resources/300-W/
我实际使用的是:https://www.dropbox.com/sh/11znddaomgjfdw1/AAC9up5NOGTv2mc0dpYH6z4-a?dl=0 + Image目录中的iBug数据。

我的目录是这样的:

* name: /faces_iBug * Image * I put all of the iBug images in this directory. * 2008_002470.jpg * 2008_002506.jpg * 2008_004176.jpg * 2008_007676.jpg * 2009_004587.jpg * image_metadata_stylesheet.xsl * testing_with_face_landmarks.xml * training_with_face_landmarks.xml

然后,我尝试了,

$ ./train_shape_predictor_ex ~/faces_iBug

我尝试了什么。

  1. 将对象边界框放在imglab

    • 由于从iBug安装的原始数据没有边界框信息,因此我使用imglab(这是Dlib中提供的工具)来放置这些信息。
    • 我只编写了边界框并结合注释数据来创建列车数据。
    • 我创建的数据位于我放在Dropbox上的目录中。文件名为training_with_face_landmarks.xml
  2. 更改参数

    • 首先,我认为失败只是因为参数不适合创建模型。
    • 即使我尝试了几个参数组合,问题似乎也没有解决。
  3. 为列车和测试数据应用相同的数据集(只有11张图像)。

    • 这可以创造一个合适的模型。但我不确定原因。
    • 我实际上只使用了11个图像的较小数据集。
    • 虽然精确度很差,但教练似乎仍能以正确的方式学习列车数据。
    • 结果是这样的。
  4. 为列车和测试数据应用相同的数据集(包含所有iBug图像)。

    • 然后我认为只为列车和测试数据应用相同的数据集可能是使用Dlib创建模型的技术。
    • 但是,它实际上并不像往常一样有效。
    • 结果是这样的。 The result with applying all iBug images
    • 我的环境
    • OS X El Capitan(版本10.11.6)
    • C编译器标识:AppleClang 7.3.0.7030029
    • Dlib:dlib-19.1

0 个答案:

没有答案