ArcFace/InsightFace使用自己数据训练/验证过程(3)

2023-11-04

分类专栏: 人脸识别 InsightFace训练过程 文章标签: insightface自定义数据训练 arcface训练 人脸识别训练过程
版权

人脸识别
同时被 2 个专栏收录
4 篇文章1 订阅
订阅专栏

InsightFace训练过程
3 篇文章3 订阅
订阅专栏
ArcFace/InsightFace使用自己数据训练/验证过程(3)
接上一章内容ArcFace/InsightFace使用自己数据训练/验证过程(2)
文章所需脚本文件下载地址

(六) 训练
进入src目录,linux命令行输入以下:

export MXNET_CPU_WORKER_NTHREADS=24
export MXNET_CUDNN_AUTOTUNE_DEFAULT=0
export MXNET_ENGINE_TYPE=ThreadedEnginePerDevice

DATA_DIR=/root/cc/faces_vgg_112x112    #数据存放目录
NETWORK=r50    #网络 默认resnet50 r100代表resnet100
JOB=softmax1e3    #
LOSS=0    #0代表使用softmax,4代表arcface等等,可以看源码
MODELDIR="/root/cc/model/model-$NETWORK-$JOB"    #模型保存位置
mkdir -p "$MODELDIR"
PREFIX="$MODELDIR/model"
CUDA_VISIBLE_DEVICES='0' python -u train_softmax.py --data-dir $DATA_DIR --network "$NETWORK" --loss-type $LOSS --prefix "$PREFIX" --per-batch-size 64
1
2
3
4
5
6
7
8
9
10
11
12
【20200505新增】建议把上面最后的命令可以修改成下面的,因为默认学习率为1,可能影响训练效果,另外上面的命令没有加载预训练模型,可能导致训练过慢,使用下面的命令,设置学习率为0.005,加载预训练模型。预训练模型下载地址链接:https://pan.baidu.com/s/1wFezqPIzrmycx9a8qNY13w 提取码:sscf

CUDA_VISIBLE_DEVICES='0' python -u train_softmax.py --data-dir /mnt/sda2/faces_vgg_112x112 --network m1 --loss-type 0 --lr 0.005 --pretrained ./models/m1-softmax-emore,1 --prefix ../models --per-batch-size 64
1
以上参数在1080Ti上训练可以通过,注意per-batch-size和网络的设置,数目太大可能会报错。

(七) 验证
第一种验证方式
直接测试准确率等数值,进入sce/eval目录,linux命令行输入以下:

python -u verification.py --gpu 0 --data-dir /root/cc/20_faces_datasets --model '/root/insightface-master0/models/model,0' --target 20_faces --batch-size 128
1
命令行参数说明:

data-dir:就是之前各种文件保存的目录
model:就是训练好的模型位置,注意地址后面有个",0"代表使用哪一次的训练结果
target:就是你测试验证的数据集的标签
batch-size:每次测试的样本数量
1
2
3
4
第二种验证方式
在验证的代码中,还有一种能够直观展示测试数据结果的方式,展示结果如下图所示,程序会自动的选择表现最优的阈值,同时把在该阈值下的False_Positive和False_Negative的人脸给一一画出来,能够直观的分析识别出错的原因。


进入sce/eval目录,在verification.py中390行左右修改图像保存地址,

linux命令行输入以下:

python -u verification.py --gpu 0 --data-dir /root/cc/20_faces_datasets --model '/root/insightface-master0
 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ArcFace/InsightFace使用自己数据训练/验证过程(3) 的相关文章

  • 在 python 的 Visual Studio 工具中按下 ctrl+F5 后,控制台窗口立即关闭

    我已经安装了 Visual Studio 的 Python 工具 但在控制台窗口中看不到输出 就像我在 Visual Studio 中运行 C 控制台应用程序时按以下快捷键时看到的输出一样 F5 开始调试程序并关闭 C 和 Python 中
  • 如何用spaCy获取依赖树?

    我一直在尝试寻找如何使用 spaCy 获取依赖树 但我找不到任何有关如何获取树的信息 只能在如何导航树 https spacy io usage examples subtrees 如果有人想轻松查看 spacy 生成的依赖关系树 一种解决
  • 蟒蛇 |如何将元素随机添加到列表中

    有没有一种方法可以将元素随机添加到列表中 内置函数 ex def random append lst a lst append b lst append c lst append d lst append e return print ls
  • 将 Django 表单中的所有 CharField 表单字段输入转换为小写

    我使用 Django 表单进行用户注册 用户可以在其中输入优惠券代码 我希望在优惠券代码字段中输入的所有字符都转换为小写 我尝试过在保存方法 自定义清理方法和自定义验证器中使用 lower 但这些方法没有运气 下面是我的代码 class S
  • 如何用xlrd读取公式

    我正在尝试做一个解析器 它读取几个 Excel 文件 我通常需要位于行底部的值 您可以在其中找到所有上部元素的总和 因此 单元格值实际上是 sum 或 A5 0 5 可以说 对于使用 Excel 打开此文件的用户来说 它看起来像一个数字 这
  • 如何从网站中提取冠状病毒病例?

    我正在尝试从网站中提取冠状病毒 https www trackcorona live https www trackcorona live 但我得到了一个错误 这是我的代码 response requests get https www t
  • 为 PyCharm 中的所有配置设置相同的环境变量

    我有一个与 Celery 和很多不同的工作人员一起的项目 如何避免每次将 PyCharm 中的环境变量复制粘贴到每个运行 调试配置 有什么方法可以在项目设置中设置它们吗 找到解决方案here https stackoverflow com
  • 如何在 openpyxl 中设置或更改表格的默认高度

    我想通过openpyxl更改表格高度 并且我希望首先默认一个更大的高度值 然后我可以设置自动换行以使我的表格更漂亮 但我不知道如何更改默认高度 唯一的到目前为止 我知道更改表格高度的方法是设置 row dimension idx heigh
  • 使用reduce方法的斐波那契数列

    于是 我看到有人用reduce方法来计算斐波那契数列 这是他的想法 1 0 1 1 2 1 3 2 5 3 对应于 1 1 2 3 5 8 13 21 代码如下所示 def fib reduce n initial 1 0 dummy ra
  • 以编程方式将列名称添加到 numpy ndarray

    我正在尝试将列名称添加到 numpy ndarray 然后按名称选择列 但这不起作用 我无法判断问题是在添加名称时出现 还是在稍后尝试调用它们时出现 这是我的代码 data np genfromtxt csv file delimiter
  • 在 Windows 上将 Word2vec 与 Tensorflow 结合使用

    In 本教程文件 https github com tensorflow models blob master tutorials embedding word2vec py L45通过 Tensorflow 找到以下行 第 45 行 来加
  • 如何检查包含 NaN 的列表 [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 在我的 for 循环中 我的代码生成一个如下所示的列表 list 0 0 0 0 sum 0 0 0 0 该循环生成所有其他数字向量 但它也
  • Matplotlib 将颜色图 tab20 更改为三种颜色

    Matplotlib 有一些新的且非常方便的颜色图 选项卡颜色图 https matplotlib org examples color colormaps reference html 我错过的是生成像 tab20b 或 tab20c 这
  • Docker 日志中的 Python 异常标记为流:stdout

    我想解析和处理来自 docker 容器的所有错误 但当我期望 stderr 时 Python 异常标记为 stdout 举个简单的例子app py raise Exception 然后我在 docker 容器中运行这个文件 但在 var l
  • 如何表示类的实例与将其作为输入的类之间的关系?

    我有一堂课叫House 这个类的实例是house class House def init self height length self height height self length length def housePlan hou
  • python csv按列转换为字典

    是否可以将 csv 文件中的数据读取到字典中 使得列的第一行是键 同一列的其余行构成列表的值 例如 我有一个 csv 文件 strings numbers colors string1 1 blue string2 2 red string
  • DRF:以编程方式从 TextChoices 字段获取默认选择

    我们的网站是 Vue 前端 DRF 后端 在一个serializer validate 方法 我需要以编程方式确定哪个选项TextChoices类已被指定为模型字段的默认值 TextChoices 类 缩写示例 class PaymentM
  • SpaCy 中的自定义句子边界检测

    我正在尝试在 spaCy 中编写一个自定义句子分段器 它将整个文档作为单个句子返回 我编写了一个自定义管道组件 它使用以下代码来执行此操作here https github com explosion spaCy issues 1850 但
  • scrapy python 请求未定义

    我在这里找到了答案 code for site in sites Link site xpath a href extract CompleteLink urlparse urljoin response url Link yield Re
  • 字母尺度和随机文本上的马尔可夫链

    我想使用 txt 文件中的一本书中的字母频率生成随机文本 以便每个新字符 string lowercase 取决于前一个 如何使用马尔可夫链来做到这一点 或者使用每个字母都有条件频率的 27 个数组更简单 我想使用来自的字母频率生成随机文本

随机推荐

  • StringBoot+Mybatis的增删改查(四)

    整体项目链接地址 StringBoot Mybatis的增删改查 一 StringBoot Mybatis的增删改查 二 StringBoot Mybatis的增删改查 三 StringBoot Mybatis的增删改查 四 StringB
  • vue练习,写游戏

  • 【异常问题】nvcc fatal : Unsupported gpu architecture ‘compute_86‘ 解决方案

    目录 异常问题 nvcc fatal Unsupported gpu architecture compute 86 解决方案 1 报错信息 2 系统环境 3 原因分析 4 解决方案 异常问题 nvcc fatal Unsupported
  • Verilog基础语法(一)

    一 数据类型 在Verilog语言中主要有三大数据类型 寄存器数据类型 线网数据类型 参数数据类型 1 寄存器数据类型 关键字 reg reg类型数据默认初始值为不定值X 需要注意的是reg类型的数据只能在always语句和initial语
  • 基于MATLAB R2018a库函数构建KNN分类器

    基于MATLAB R2018a库函数构建KNN分类器 基于MATLAB R2018a库函数构建KNN分类器 从一个库函数fitcknn 谈起 构造函数 类的属性 Properties 方法成员 Methods 构建和使用KNN分类器 基于M
  • python高级数据类型

    序列 字符串 列表 元组 在python中 序列就是一组按照顺序排列的值 数据集合 python中存在三种内置的序列类型 字符串 列表 元组 优点 支持索引和切片的操作 特征 第一个正索引为0 指向的是左端 第一个索引为负数 指向的是右端
  • 深入理解设计原则之接口隔离原则(ISP)【软件架构设计】

    系列文章目录 C 高性能优化编程系列 深入理解软件架构设计系列 深入理解设计模式系列 高级C 并发线程编程 LSP 接口隔离原则 系列文章目录 1 接口隔离原则的定义和解读 2 案例解读 3 如何判断一个接口是否符合接口隔离原则 小结 1
  • 如何用element-ui的table做一个模糊搜索功能

    一 在表格标题处增加一个input用来根据关键字搜索库房 用v model search 绑定输入 下面是
  • Hash算法

    目录 一 Hash基本概念 1 特点 2 hash的目的及用途 二 常用Hash算法 1 MD5算法 2 加盐 3 SHA系列算法与HashTools工具类 4 RipeMD 160算法 一 Hash基本概念 哈希算法也叫摘要算法 是一种用
  • 一文搞懂什么是 PostCSS

    一文搞懂什么是 PostCSS 在 Web 应用开发中 CSS 代码的编写是重要的一部分 CSS 规范从最初的 CSS1 到现在的 CSS3 再到 CSS 规范的下一步版本 规范本身一直在不断的发展演化之中 这给开发人员带来了效率上的提高
  • [转]转型后的BlackBerry“恋上”汽车市场,QNX拿什么与免费的安卓/Linux对抗?

    如果你认为本系列文章对你有所帮助 请大家有钱的捧个钱场 点击此处赞助 赞助额0 1元起步 多少随意 声明 本文只用于个人学习交流 若不慎造成侵权 请及时联系我 立即予以改正 锋影 email 174176320 qq com BlackBe
  • 深信服应用交付管理系统远程命令执行漏洞复现

    文章目录 深信服应用交付管理系统远程命令执行漏洞复现 0x01 前言 0x02 漏洞描述 0x03 影响范围 0x04 漏洞环境 0x05 漏洞复现 1 访问漏洞环境 2 构造POC 3 复现 深信服应用交付管理系统远程命令执行漏洞复现 0
  • springboot 打成jar后读取resources下面的文件

    1 使用idea开发过程中获取resources的路径是使用的这个方法 File file ResourceUtils getFile ResourceUtils CLASSPATH URL PREFIX 文件名称 data 然后就可以获取
  • idea中连接mysql插入成功数据,在navicat中刷新表格没有数据?

    目录 一 出现问题 二 尝试解决 三 发现问题 四 解决方法 一 出现问题 在写一个数据库的大作业时 在idea中连接mysql后 测试insert的dao方法 在控制台没有报错 显示题添加数据成功 但是在navicat中刷新表格却没有数据
  • 开发日记(5) 我们如何让EditText的光标消失呢?

    很多日子没有分享文章 赶项目呢 3人5项目 好烦啊 正题 这是分享的 原文章 http www cnblogs com yejiurui archive 2013 01 02 2841945 html 在我们的应用中 有时候一进入一个页面
  • 安卓混合开发,使用WebView控件展示网页

    页面使用webview控件来实现 WebView是Android系统提供能显示网页的系统控件 它是一个特殊的View 他的作用就是 显示和渲染Web页面 加载网络上或本地assets中的html文件 与JavaScript交互调用 常用于同
  • Win10自带虚拟机Hyper-V安装NOI Linux2.0

    下载NOI Linux ubuntu noi v2 0https noiresources ccf org cn ubuntu noi v2 0 iso速度有亿点慢 建议用下载器 开启Hyper V 注意 win10家庭版没有此功能 可以自
  • Qt5类之QMargins

    QMargins Class include
  • Python——构建多级菜单系统

    构建多级菜单系统 一 一级菜单 首先简单地尝试一下 运行结果 二 二级菜单 稍微要复杂一点 运行结果 以下两种 三 三级菜单 因为嵌套的越来越多了 所以代码看起来冗长复杂 运行了两种结果 总之每多一级 就相当于是多嵌套了一层 级数越多代码就
  • ArcFace/InsightFace使用自己数据训练/验证过程(3)

    分类专栏 人脸识别 InsightFace训练过程 文章标签 insightface自定义数据训练 arcface训练 人脸识别训练过程 版权 人脸识别 同时被 2 个专栏收录 4 篇文章1 订阅 订阅专栏 InsightFace训练过程