教程是MXnet版本的训练方式在Linux环境下
一 、官方数据训练
1.clone 源代码
项目来自官网的源代码。
git clone --recursive https://github.com/deepinsight/insightface.git
代码会实时更新可能会有一些不一样的地方 本篇教程只适用于近期的代码。为了方便,我已经打包好了在下面的链接中。
链接:https://pan.baidu.com/s/1iTz6k8A3216vRiBa5sU1wQ 提取码:8888
2. 配置相关环境
大致记得需要这几个环境
另外 cuda 环境的话不用太纠结。
相应的库文件能对应起来就ok 服务器是cuda 11.2的
安装的是 pip install mxnet-cu102
还安装了 nccl( 因为报错 缺少nccl)看官网教程
3. 下载作者提供的数据集
点击 -> 开源数据集我下的是UMDFace (8K ids/0.37M images) 相对来说小一些。
如何训练自己的数据集?
我在后面会给大家介绍
4. 开始训练
进入insightface/recognition目录下
新建一个名为 faces_emore 的文件夹
将下载的数据集压缩包全部解压放入 faces_emore 中
然后去 insightface/recognition/arcface_mxnet目录下
复制一份 sample_config.py 名为 config.py
修改如下内容:
数据目录,多少张人脸
更改批次 每个显卡训练多少个批次 我是一个显卡就改的小一些(会报 Out Of Memory)
如果说后期 需要训练自己的数据集 可以根据相关的配置进行更改
5. 开始训练
在insightface/recognition/arcface_mxnet目录下 执行如下命令
(1). Train ArcFace with LResNet100E-IR.
CUDA_VISIBLE_DEVICES='0,1,2,3' python -u train.py --network r100 --loss arcface --dataset emore
(2). Train CosineFace with LResNet50E-IR.
CUDA_VISIBLE_DEVICES='0,1,2,3' python -u train.py --network r50 --loss cosface --dataset emore
(3). Train Softmax with MobileFaceNet.
CUDA_VISIBLE_DEVICES='0,1,2,3' python -u train.py --network y1 --loss softmax --dataset emore
(4). Fine-turn the above Softmax model with Triplet loss.
CUDA_VISIBLE_DEVICES='0,1,2,3' python -u train.py --network mnas05 --loss triplet --lr 0.005 --pretrained ./models/y1-softmax-emore,1
如果说出现如下内容, 就代表成功了!!!!
啦啦啦啦~~~~~~~~~~~~~~~~~~~~~~~至此结束。
二、个人数据训练
1. 数据制作
不同处就在数据制作,和相关的config配置。其他大致都一样
接下来讲一下如何制作自己的数据集
下载im2rec.py文件 拷贝到 datasets 目录中
链接:https://pan.baidu.com/s/1X50fr4D75YSdiOMnT2TDIA 提取码:8888
数据集制作:
-----data
---------001
--------------1.jpg
--------------2.jpg
---------002
--------------1.jpg
--------------2.jpg
类似这样子的一个形式。也放入 datasets中
OK! 开始执行命令
python im2rec.py <lst> <images> --list --recursive
lst :lst生成目录
images:图片主路径
python im2rec.py --num-thread <num> <lstfile> <images>
num-thread:线程个数 加速…
lstfile lst:lst文件的位置
images :图片主路径
可以看到会生成 如下图三个文件但是缺少一个property
好接下来我们开始新建文件 名为property
放 以上内容 第一个是 多少张人的人脸==多少类别 112是图片尺寸 固定的。
OK ! 验证集的话可以 直接复制上次的三个验证集bin文件。也可以自己制作方法都一样。我就不写了。
2. 训练依旧
教程到此结束~~~~~~~~~~~