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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM