训练深度网络模型
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. Spring装配Bean之组件扫描和自动装配

    Spring从两个角度来实现自动化装配: 组件扫描:Spring会自动发现应用上下文中所创建的bean. 自动装配:Spring自动满足bean之间的依赖. 案例:音响系统的组件.首先为CD创建Com ...

  2. pylot网站压力测试

    windows下使用python进行网站压力测试,有两个必不可少的程序需要安装,一个是python,另一个是pylot.python是一个 安装软 件,用来运行python程序,而pylot则是pyt ...

  3. Servlet 笔记-servlet实例

    Servlet 是服务 HTTP 请求并实现 javax.servlet.Servlet 接口的 Java 类.Web 应用程序开发人员通常编写 Servlet 来扩展 javax.servlet.h ...

  4. 保存单文件为mhtml

    1.F6 ,在地址栏输入 输入:chrome://flags 然后ctrl+f: 输入:mhtml 启动,重启即可保存为单文件.

  5. Arduino上传数据至贝壳物联并与FPGA进行交互

    本篇实现Arduino与FPGA交互,当然也没有什么新的协议,还是基于串口通讯,现在学一个串口通信基本上可以驱动大多数模块了,而且和各种单片机无缝数据交互,Arduino由于其强大的库函数支持,在实现 ...

  6. Dagger2 入门解析

    前言 在为dropwizard选择DI框架的时候考虑了很久.Guice比较成熟,Dagger2主要用于Android.虽然都是google维护的,但Dagger2远比guice更新的频率高.再一个是, ...

  7. Jenkins集成taffy进行自动化测试并输出测试报告

    本文主要介绍Jenkins集成taffy/nose框架进行自动化测试并输出测试报告方法. 0. 测试环境 Jenkis主节点部署在CentOS系统上,子节点为Win10 64位系统(即我们本机运行自动 ...

  8. MySQL冗余和重复索引

    MySQL允许在相同列上创建多个索引,无论是有意还是无意,mysql需要单独维护重复的索引,并且优化器在优化查询的时候也需要逐个地进行考虑,这会影响性能. 重复索引是指的在相同的列上按照相同的顺序创建 ...

  9. window下eclipse4.5+hadoop2.6.1开发环境配置

    1.准备: eclipse4.5,hadoop2.6.1,hadoop-eclipse-plugin-2.6.0.jar. 2.eclipse配置 eclipse->windows->Pr ...

  10. js验证是否为数字的总结(转)

    作者: 字体:[增加 减小] 类型:转载 时间:2013-04-14我要评论 js验证是否为数字的总结,需要的朋友可以参考一下 js验证是否为数字,最简单的方法: isNaN函数的使用: functi ...