【问题标题】:Create an xml file for dlib training为 dlib 训练创建一个 xml 文件
【发布时间】:2016-09-08 10:44:04
【问题描述】:

我正在尝试通过利用 dlib 提供的imglab tool 创建一个 XML 文件。我有一个包含 21 张图像的数据集,每张图像都有一张脸。我必须在闲暇时贴上每 68 个地标。

使用我的地标创建的文件与 dlib 提供的 XML 文件不同:即每条记录被定义为单个框,应被视为包含人脸的主框的一部分。

帮帮我!

【问题讨论】:

  • 为了快速完成并在 dlib/imglab 的启发下,我创建了 web 版本。您可以使用 3rd 方库来确定 img 上的人脸和地标点,您可以将其保存在 dlib xml 或 pts 文件中。您还可以调整点和框以提高准确性。

标签: xml dlib


【解决方案1】:

看起来您正在尝试在每个面部特征周围手动绘制框,而不是使用“部分选择”模式

imglab -h 会告诉你这个:

--parts 显示将允许图像部分 标记。 允许部分的集合由哪个定义 应该是一个空格分隔的部件列表。

试试这个:

  1. 为一些图片目录创建xml文件

    imglab -c xml_file_name.xml /path/to/images/folder

  2. 使用 --parts 参数运行 imglab:

    imglab --parts "1 2 3 4 5 6 7 8" xml_file_name.xml

这将使 imglab 知道大约 8 个可以在框区域注释的特征

  1. 打开imglab后-画框,选择它(应该是蓝色的)并在里面右键-你会弹出一个选择部件的菜单

还可以考虑阅读 imglab 中的帮助/关于使用说明

保存xml文件后,你会得到这样的:

  <image file='1\a1.jpg'>
    <box top='26' left='33' width='78' height='73'>
      <part name='1' x='67' y='68'/>
    </box>
  </image>

【讨论】:

  • 我现在的问题是:我可以用小于 68 的数字进行训练吗?在强烈倾斜的脸的情况下,我可以只用可见的地标注释我的图像吗?我会在训练过程中遇到问题吗?
  • 你的意思是有些面孔将有 68 个和其他 67 个特征(示例)?或者你想用 30 个特征训练所有面孔?
  • 如果我有一些带有 30 个注释的图像,但其他图像的倾斜度非常突出,以至于无法输入所有 30 个地标,但只有其中的几个,这对火车来说是个问题吗?
  • dlib 有一个代码可以将缺失的特征排除在训练之外,但不排除在预测之外。根据我的经验,不建议从训练中排除任何特征,因为 shapre_predictor 每次调用时都会返回所有特征列表。我建议您将所有功能放入每个图像(即使它们与其他功能重叠),因为这将是 dlib 如何返回结果的方式。如果该功能在图像上不可见,我建议您将其与其他功能放在同一个地方,这样您以后就会了解它的可见性
  • 我想在一个平面图像中注册五个不同角度的面部图像。这就是为什么我需要创建一个在这方面有效的 .dat 文件。为此目的,最有效的地标是什么?
【解决方案2】:

Evgeniy 的回答很有用,但是当使用 --parts 参数运行 imglab 时,数字标签应该是这样的:

imglab --parts "01 02 03 04 05 06 07 08 09 10 11 12" xml_file_name.xml

否则,由于 dlib 在 xml 中按名称对部分进行排序,标签会在预测时混淆。

【讨论】:

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