我用的是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