2016-05-12 74 views
4

我试图通过利用dlib提供的imglab tool来创建一个XML文件。我有一个包含21张图像的数据集,每张图像只有一张脸。我必须在每个休闲地区加上68个地标。为dlib培训创建一个xml文件

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

帮帮我!

+0

要做到这一点,并从dlib/imglab的灵感,我已经创建它[网页](https://github.com/NaturalIntelligence/imglab)版本。您可以使用第三方库来确定img上的面部和地标点,您可以将其保存在dlib xml或pts文件中。您还可以调整点和框以提高准确性。 –

回答

6

貌似你试图手动绘制周围的每一个面部特征框而不是使用“部分选择”模式

imglab -h会告诉你这一点:

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

试试这个:

  1. 一些images目录

    imglab -c xml_file_name.xml /路径创建XML文件/到/图片/文件夹

  2. 运行imglab有 - - 部分参数:

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

这将使imglab知道约8功能可以在框区域注释

  • 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> 
    
    +0

    你是我的救恩!!!! –

    +0

    我现在的问题如下: 我可以用小于68的数字进行训练吗? 在强烈斜面的情况下,我可以用唯一可见的地标注释我的图像吗?我会在训练过程中遇到问题吗? –

    +0

    你的意思是一些面孔会有68个和其他67个featuers(例子)? 或者你想训练30个特征的所有面孔? – Evgeniy

    1

    叶夫根的答案是有用的,但与--parts参数运行imglab时,数值标签应该是这样的:

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

    否则,因为DLIB按名称排序XML部分,标签将被混淆,而预测。