训练深度网络模型
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 {..}; do ./util/align-dlib.py <path-to-raw-data> align outerEyesAndNose <path-to-aligned-data> --size  & done

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

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

注: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/

openface 训练数据集的更多相关文章

  1. darktrace 亮点是使用的无监督学习(贝叶斯网络、聚类、递归贝叶斯估计)发现未知威胁——使用无人监督 机器学习反而允许系统发现罕见的和以前看不见的威胁,这些威胁本身并不依赖 不完善的训练数据集。 学习正常数据,发现异常!

    先说说他们的产品:企业免疫系统(基于异常发现来识别威胁) 可以看到是面向企业内部安全的! 优点整个网络拓扑的三维可视化企业威胁级别的实时全局概述智能地聚类异常泛频谱观测 - 高阶网络拓扑;特定群集,子 ...

  2. yolo训练数据集

    最近了解了下yolov3的训练数据集部分,总结了以下操作步骤:(基于pytorch框架,请预先装好pytorch的相关组件) 1.下载ImageLabel软件对图片进行兴趣区域标记,每张图片对应一个x ...

  3. 莫烦scikit-learn学习自修第四天【内置训练数据集】

    1. 代码实战 #!/usr/bin/env python #!_*_ coding:UTF-8 _*_ from sklearn import datasets from sklearn.linea ...

  4. FasterRcnn训练数据集参数配置

    说明:本博文假设你已经做好了自己的数据集,该数据集格式和VOC2007相同.做好数据集后,我们开始训练,下面是训练前的一些修改.本文来自:http://www.lai18.com/content/25 ...

  5. python3 TensorFlow训练数据集准备 下载一些百度图片 入门级爬虫示例

    从百度图片下载一些图片当做训练集,好久没写爬虫,生疏了.没有任何反爬,随便抓. 网页: 动态加载,往下划会出现更多的图片,一次大概30个.先找到保存每一张图片的json,其对应的url: 打开调试,清 ...

  6. ctpn+crnn 训练数据集生成

    1. https://github.com/Belval/TextRecognitionDataGenerator 2. https://textrecognitiondatagenerator.re ...

  7. Fast RCNN 训练自己的数据集(3训练和检测)

    转载请注明出处,楼燚(yì)航的blog,http://www.cnblogs.com/louyihang-loves-baiyan/ https://github.com/YihangLou/fas ...

  8. Fast RCNN 训练自己数据集 (2修改数据读取接口)

    Fast RCNN训练自己的数据集 (2修改读写接口) 转载请注明出处,楼燚(yì)航的blog,http://www.cnblogs.com/louyihang-loves-baiyan/ http ...

  9. 【Tensorflow系列】使用Inception_resnet_v2训练自己的数据集并用Tensorboard监控

    [写在前面] 用Tensorflow(TF)已实现好的卷积神经网络(CNN)模型来训练自己的数据集,验证目前较成熟模型在不同数据集上的准确度,如Inception_V3, VGG16,Inceptio ...

随机推荐

  1. RT-thread 利用Scons 工具编译提示python编码错误解决办法

    错误信息: scons: Reading SConscript files ...UnicodeDecodeError: 'ascii' codec can't decode byte 0xbd in ...

  2. Yii2之属性

    一直以来,在我的理解中,类的成员变量和属性就是同一个东西,直到看了<深入理解Yii2.0>才明白,类的成员变量和属性其实不是同一个概念,成员变量是就类的结构构成而言的概念,而属性是就类的功 ...

  3. Svn———搭建及配置

    一.Svn介绍 subversion(简称svn)是近几年崛起的版本管理软件,是cvs的接班人,目前绝大多数开源软件都使用svn作为代码版本管理软件.Subversion支持linux和windows ...

  4. 为什么C++没有对应realloc的new操作符呢?

    http://blog.csdn.net/rabbit729/article/details/3400260 这个用memcpy明显是有问题的.如果类有资源分配的话,直接memcpy不能复制资源,会导 ...

  5. 独热编码OneHotEncoder简介

    在分类和聚类运算中我们经常计算两个个体之间的距离,对于连续的数字(Numric)这一点不成问题,但是对于名词性(Norminal)的类别,计算距离很难.即使将类别与数字对应,例如{'A','B','C ...

  6. Hdu 1698(线段树 区间修改 区间查询)

    In the game of DotA, Pudge's meat hook is actually the most horrible thing for most of the heroes. T ...

  7. Go Deeper

    Go Deeper Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Total Sub ...

  8. You can Solve a Geometry Problem too(判断两线段是否相交)

    You can Solve a Geometry Problem too Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/3 ...

  9. EduSoho程序上线实录

    1.1 修改配置文件 [root@web01 nginx]# cat /application/nginx/conf/extra/edusoho.conf server { listen 80; se ...

  10. replace to

    要注意的是:插入数据的表必须有主键或者是唯一索引!否则的话,replace into 会直接插入数据,这将导致表中出现重复的数据. MySQL replace into 有三种形式: 1. repla ...