zoukankan      html  css  js  c++  java
  • openface 训练数据集

    训练深度网络模型
    OpenFace还不是运用faceNet的model作为训练模型,所以在准确性上比faceNet要低,如果你只是做一个简单的分类,建议你看看官网的demo3(http://cmusatyalab.github.io/openface/demo-3-classifier/),如果你想自己训练一个模型,建议提供一个大于500k的图片集作为训练集。(这里的500k应该是50w张图片来理解更合适)
    Openface暂时还没提供该faceNet模型的支持。
    注意:在K40Gpu的机器上训练数据估计要耗费很多的内存还有一整天的时间,所以务必准备相应的硬件支持。

    1)创建原生图片目录data/mydataset/raw
    Raw目录下再建立各个分类目录,这些分类目录的名字将是分类的标签名,在子目录下面就存放各个分类的图片。

    2)预处理原生图片
    如果你想比较你图片集跟LFW数据集的准确率,你可以使用项目中提供的脚本来清除你图片集中带有LFW特征的图片(data/casia-facescrub/remove-lfw-names.py)
    我们启用8个线程来预处理图片:

    for N in {1..8}; do ./util/align-dlib.py <path-to-raw-data> align outerEyesAndNose <path-to-aligned-data> --size 96 & done

    注:<> 括号里是自己的目录,自己需要根据实际改写
    然后修剪生成分类目录,在每个分类目录下存放3张精选的图片:

    ./util/prune-dataset.py <path-to-aligned-data> --numImagesThreshold 3

    注:3这个阈值,你可以根据情况自己设置


    3)训练模型
    执行 training/main.lua文件去训练模型(在 training/opts.lua文件里编辑选项或者通过命令行传参执行)然后会产生损失函数和处理模型到training/work这个目录里。对于GPU内存来说,大概需要耗费128G内存,需设置-peoplePerBatch和-imagesPerPerson(默认分别是15和20)来减少内存的消耗。(这些参数可限制每批次处理的上限)

    注意:数据目录的metadata(元数据)存放在缓存里training/work/trainCache.t7;如果数据目录发生改变了,删除这些元数据,他会重新生成一个。

    停止或者重启训练
    每次训练迭代都会把模型存放在work里面,如果训练进程被kill掉,你可以通过-retain参数重启。你也可以设置不同人工种子-manualSeed来作为图片序列采样,-epochNumber设置迭代次数。

    这里需要你懂点lua语言的应用的,不然真的一头雾水,主要的翻译就这样了


    4)分析训练结果
    验证损失函数: training/plot-loss.py.
    需要装相应的依赖,相应依赖存放在 training/requirements.txt,可以执行以下命令安装:

    pip2 install -r requirements.txt

    模型的正确率:
    Openface 官方有说明默认是使用nn4.small2,有3733968个参数,预计准确率为93左右
    LFW数据集在国外训练model挺流行,可是在国内感觉不怎么行,毕竟采集的人物大都是外国人为准;关于模型的正确率,你可以参考这个链接:
    http://cmusatyalab.github.io/openface/models-and-accuracies/

    http://cmusatyalab.github.io/openface/training-new-models/

  • 相关阅读:
    【翻译自mos文章】 11gR1版本号 asmcmd的新命令--cp、md_backup、md_restore
    Android实现ListView或GridView首行/尾行距离屏幕边缘距离
    iOS-为方便项目开发在pch加入一些经常使用宏定义
    [ACM] FZU 1686 神龙的难题 (DLX 反复覆盖)
    Cocos2d-x Touch事件处理机制
    在linux環境下安裝jprofiler_linux_8_0_2.sh
    QT5 Failed to load platform plugin &quot;windows&quot; 终极解决方式 命令行问题
    我们想要如何子的生活?
    javaEE mvc样例具体解释
    安装Kali Linux操作系统Kali Linux无线网络渗透
  • 原文地址:https://www.cnblogs.com/minsons/p/7929453.html
Copyright © 2011-2022 走看看