人臉檢測算法MTCNN的Python3、Pytorch代碼實現

     本人最近在研究人臉識別、人臉檢測和姿態估計等視覺領域的算法,也在研究各類神經網絡例如ResNet、Feature Pyramid Net、Retina Net和DenseNet。所以將自己研究的論文和算法源碼修復奉獻給大家。

     人臉檢測算法MTCNN代碼:https://github.com/Sierkinhane/mtcnn-pytorch(如果對你有幫助,可以給個star!)

     論文地址:https://kpzhang93.github.io/MTCNN_face_detection_alignment/paper/spl.pdf

     迫於項目和比賽的截止日期,算法詳解暫時沒有時間寫,過段時間會更新,如果對源代碼有疑問可以留言。所以只能給大家能成功訓練和測試的代碼。代碼是基於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

     MTCNN代碼:https://github.com/Sierkinhane/mtcnn-pytorch

     論文地址:https://kpzhang93.github.io/MTCNN_face_detection_alignment/paper/spl.pdf

     此次我只將精力放在了看論文和源碼上,雖然沒有訓練自己的模型,但是我已經將bug修復,已經確定每個模塊都能正常運行,如果有疑問可以留言提問。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章