Insightface实现

我用的是pytorch版本(Windows 10系统,python 3.7),其项目地址在:https://github.com/TreB1eN/InsightFace_Pytorch

预训练模型IR-SE50和Mobilefacenet的结果地址:https://pan.baidu.com/s/12BUjjwy1uUTEF9HCx5qvoQ    和   https://pan.baidu.com/s/1hqNNkcAjQOSxUjofboN6qg

训练集emore的地址:https://pan.baidu.com/s/1eXohwNBHbbKXh5KHyItVhQ

准备工作结束,开始训练自己的模型:

1、下载mtcnn-pytorch模型(注意:是在InsightFace_Pytorch文件夹下):

git clone https://github.com/TropComplique/mtcnn-pytorch.git

这里不建议用这个指令,因为项目中本身包含了mtcnn_pytorch文件,git指令的这个文件夹里缺少部分文件,所以这步可以忽略。

2、数据准备:

(1)准备Facebank(用于通过摄像机或视频进行测试)

在data / face_bank文件夹中提供要检测的面部图像,也就是自己的应用数据,并确保其结构如下:

data/facebank/
        ---> id1/
            ---> id1_1.jpg
        ---> id2/
            ---> id2_1.jpg
        ---> id3/
            ---> id3_1.jpg
           ---> id3_2.jpg

(2)将预训练的模型下载到work_space / model

(3)准备训练集用于训练

将emore数据集解压到data数据集下,运行:

python prepare_data.py

此时遇到问题:

1)mxnet的安装:

pip install --user mxnet

得到结果如下(时间会有点长,毕竟有5822653张图):

faces_emore/
            ---> agedb_30
            ---> calfw
            ---> cfp_ff
            --->  cfp_fp
            ---> cfp_fp
            ---> cplfw
            --->imgs
            ---> lfw
            ---> vgg2_fp

(4)通过视频检测:

python infer_on_video.py -f [video file name] -s [save file name]

视频文件应位于data / face_bank文件夹中。

1)报错:ModuleNotFoundError: No module named 'tensorboardX'

      解决:

pip install tensorboardX

2)报错:ValueError: Object arrays cannot be loaded when allow_pickle=False

     解决:降numpy的版本:

pip install --user numpy==1.16.2

3)报错:ModuleNotFoundError: No module named 'mtcnn_pytorch',这个问题就很迷。

      解决:

pip install --user mtcnn_pytorch

 (5)摄像头检测:

1)调用摄像头拍照的指令:

python take_pic.py -n name

t拍照,q退出,如果出现两个人就优先识别可能性最高的那个。

2)将原来存在的照片放在facebank里面,文件结构如下:

- facebank/
         name1/
             photo1.jpg
             photo2.jpg
             ...
         name2/
             photo1.jpg
             photo2.jpg
             ...
         .....

然后运行:

python face_verify.py 

1)会出现一个错误:No such file or directory: 'work_space\save\model_cpu_final.pth'

解决方案:放入model中的两个.pth文件将一个更该名字为model_cpu_final,pth,然后再work_space文件夹中新建save文件夹,将.pth文件放入文件夹中。

2)另外,问题:RuntimeError: Error(s) in loading state_dict for Backbone:

解决:

(6)训练:

python train.py -b [batch_size] -lr [learning rate] -e [epochs]

# python train.py -net mobilefacenet -b 200 -w 4
原文地址:https://www.cnblogs.com/Fiona-Y/p/14096507.html