Pytorch實現人臉檢測演算法MTCNN
阿新 • • 發佈:2019-01-01
本人最近在研究人臉識別、人臉檢測和姿態估計等視覺領域的演算法,也在研究各類神經網路例如ResNet、Feature Pyramid Net、Retina Net和DenseNet。所以將自己研究的論文和演算法原始碼修復奉獻給大家。
迫於專案和比賽的截止日期,演算法詳解暫時沒有時間寫,過段時間會更新,如果對原始碼有疑問可以留言。所以只能給大家能成功訓練和測試的程式碼。程式碼是基於DFace倉庫更新和修改,非常感謝作者的實現。
測試圖片結果:
以下是程式碼目錄(開發環境可選win10和linux系統,本人是用win10):
mtcnn_test.py 可以測試人臉檢測效果。
準備訓練資料
- 百度網盤下載 WIDER FACE (passcode:lsl3) 人臉檢測資料集放到 ./data_set/face_detection
- 也可以在http://mmlab.ie.cuhk.edu.hk/projects/WIDERFace/ 下載
- python ./anno_store/tool/format/transform.py 因為資料集的訓練標籤是MATLAB格式的,所以先轉換成txt
- 我已經將轉化好的放在了anno_store/anno_train.txt
- 下載 CNN_FacePoint 人臉檢測和特徵點資料集放到./data_set/face_landmark, 如果搞不懂具體目錄,我在下面描述的程式中已經給出,按照目錄放置資料集即可。
訓練
-
生成P-Net訓練資料(positive、negative、part)
- run > python mtcnn/data_preprocessing/gen_Pnet_train_data.py
- run > python mtcnn/data_preprocessing/assemble_pnet_imglist.py
-
訓練 P-Net
- run > python mtcnn/train_net/train_p_net.py
-
生成R-Net訓練資料(positive、negative、part)
- run > python mtcnn/data_preprocessing/gen_Rnet_train_data.py (可能你需要修改程式碼中已經訓練好的P-Net模型路徑,預設的是原來的模型)
- run > python mtcnn/data_preprocessing/assemble_rnet_imglist.py
-
訓練 R-Net
- run > python mtcnn/train_net/train_r_net.py
-
生成O-Net訓練資料(positive、negative、part)
- run > python mtcnn/data_preprocessing/gen_Onet_train_data.py
- run > python mtcnn/data_preprocessing/gen_landmark_48.py
- run > python mtcnn/data_preprocessing/assemble_onet_imglist.py
-
訓練 O-Net
- run > python mtcnn/train_net/train_o_net.py
此次我只將精力放在了看論文和原始碼上,雖然沒有訓練自己的模型,但是我已經將bug修復,已經確定每個模組都能正常執行,如果有疑問可以留言提問。