1.下載源碼:
開源代碼地址:https://github.com/deepinsight/insightface
2.查看作者項目訓練要求
(1)訓練數據
訓練數據使用作者提供並制作好的數據,如下圖所示:
點擊Dataset-Zoo進入數據下載中心,如下圖所示:
本人訓練數據為MS1M-ArcFace,選擇自己想要訓練的數據都可以。
(2)訓練要求如下圖所示:
a.
由於在本地配置環境問題比較多,本人直接拉取mxnet-cu90鏡像,省去好多麻煩事,可參考我的博客https://www.cnblogs.com/liuwenhua/p/11537696.html,有詳細解讀。
b.下載代碼放到自己的目錄下:
c.數據解讀:
根據作者要求把下載數據放到datastes目錄下,六個文件中前三個是訓練數據需求,后三個是驗證數據。
打開文件property,如下圖:
85742為類別數,根據不同數據需要更改代碼,后續提到。112,112為圖片大小。
d.ubuntu環境設置及代碼編輯
具體方法如下:
創建sh文件:進入到recognition,編輯
vim run_train.sh
編輯下面兩行代碼
export MXNET_CPU_WORKER_NTHREADS=24
export MXNET_ENGINE_TYPE=ThreadedEnginePerDevice
執行命令如下:
cp sample_config.py config.py
vim config.py
顯示如下圖所示:
根據自己的下載的數據或制作的數據需要添加代碼在dataset =edict()下面
dataset.emore = edict() dataset.emore.dataset = 'emore' dataset.emore.dataset_path = '../datasets/faces_emore' dataset.emore.num_classes = 85742 dataset.emore.image_shape = (112,112,3) dataset.emore.val_targets = ['lfw', 'cfp_fp', 'agedb_30']
①更改的第一個就是上面的emore,根據自己的喜好
②更改dataset.emore.dataset_path路徑
③dataset.emore.num_classes,訓練數據的類別數
(3)開始訓練
我的設備是兩塊RTX2080ti,運行代碼如下:
CUDA_VISIBLE_DEVICES='0,1' python -u train.py --network r100 --loss arcface --dataset emore
由於在運行過程中提示顯存不足,所以要設置bach_size,為了方便運行,我們添加下面代碼到run_train.sh文件中
export MXNET_CPU_WORKER_NTHREADS=24 export MXNET_ENGINE_TYPE=ThreadedEnginePerDevice CUDA_VISIBLE_DEVICES='0,1' python -u train.py --network r100 --loss arcface --dataset emore --per-batch-size 36
保存退出,在終端運行
bash run_train.sh
模型開始訓練,如下圖:
后續准備制作自己的訓練數據,后續更新