2

我正在尝试通过在 helen 数据集上执行 train_dlib_shape_predictor_ex.cpp 来训练 Dlib 的形状预测器,代码所述,我将测试图像放在形状预测器当前目录中的人脸文件夹中。但是当我运行代码时,它会抛出以下异常:

C:\train_shape_predictor_ex\Release>train_shape_predictor_ex test

exception thrown!
ERROR: unable to open test/training_with_face_landmarks.xml for reading.

因为没有training_with_face_landmarks.xml,并且testing_with_face_landmarks.xml文件在以下页面的海伦数据集中可用:链接

有一个名为 annotation 的文件夹,其中包含一个文本文件,其中包含数据集中每个图像的 194 个地标点位置。如何将此文件转换为training_with_face_landmarks.xml.

4

2 回答 2

11

我为总共 2000 张图像的海伦训练图像(第 1、2、3 和 4 部分)创建了 training_with_face_landmarks.xml。

下载链接:https ://www.dropbox.com/s/jk98moqm8vopp5b/training_with_face_landmarks_2000.zip?dl=0

脚步:

  1. 从http://www.ifp.illinois.edu/~vuongle2/helen/下载训练图像 - 第 1 部分、训练图像 - 第 2 部分、训练图像 - 第 3 部分和训练图像 - 第 4 部分。(每个部分有 500 张图片,所以总共 2000 张图片)
  2. 将所有图像和 training_with_face_landmarks.xml 放在一个公共文件夹中(例如:文件夹名称“train”)。
  3. 在项目 train_shape_predictor_ex.cpp 中,注释掉这些部分/行

    一种。参考 testing_with_face_landmarks.xml 及其用法 b. 培训师 set_oversampling_amount(100) c. 训练器 set_nu(0.05) d. 培训师 set_tree_depth(3)

  4. 将命令行参数设置为 ./train
  5. 运行项目
  6. 它将生成大小约为 178 MB 的 sp.dat(在我的笔记本电脑中大约需要 2 小时)
  7. 在 face_landmark_detection_ex 项目中使用这个 sp.dat 文件 命令行 例如:sp.dat Example_image.jpg
  8. 在 face_landmark_detection_ex.cpp 中,a。在 194 的循环中,调用 draw_solid_circle 函数 b。使用 save_png 函数将地标输出保存为文件。

享受 :)

问候戈皮。Ĵ

于 2016-06-17T11:29:03.053 回答
2

打开“training_with_face_landmarks.xml”文件并观察其结构。

现在,问问自己:

  1. 文件之间有什么变化?(提示:点数据)
  2. 什么保持不变?(提示:通用“样板”顶部和尾部)

打开海伦数据——再问一遍……

您现在的任务是将 HELEN 集中的数据解析为临时数据结构/变量,然后将其写入文件,其中包含所有必需的顶部和尾部。在循环内循环内编写循环等会很麻烦,并且可能很烦人,但是您会到达那里。

'c++ i/o streams' 作为搜索字符串将帮助您入门。

于 2016-04-21T07:55:32.690 回答