pytorchはmtcnn顔検出アルゴリズムを実現する

2926 ワード

pytorchはmtcnn顔検出アルゴリズムを実現する
    : https://blog.csdn.net/Sierkinhane/article/details/83308658
mtcnn-pytorch  : https://github.com/Sierkinhane/mtcnn-pytorch(star!)
    : https://kpzhang93.github.io/MTCNN_face_detection_alignment/paper/spl.pdf

このブログでは、CSDNブロガー@Sierkinhaneが提供するmtcnn-pytorch顔検出アルゴリズムコードを再現する過程を記録し、@Sierkinhaneの仕事に感謝します.
トレーニングデータの準備
  • ダウンロードWIDER FACEは./data_set/face_detectionパスでrun>python./anno_store/tool/format/transform.py
  • CNNをダウンロードFacePointは./data_set/face_landmarkパスのダウンロードアドレス:http://mmlab.ie.cuhk.edu.hk/archive/CNN_FacePoint.htm

  • トレーニングステップ
  • 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
  • Error1 : ValueError: low >= high
    delta_x = np.random.randint(max(-size,-x1),w) 
    File "mtrand.pyx", line 1264, in mtrand.RandomState.randint 
    ValueError: low >= high;;
    
    Solution1 :
    実行gen_Pnet_train_data.pyでは小さな問題がたくさんありますが、ここでは一つ一つ挙げていません.最後にWIDER FACEデータベースgtに格納フォーマットはbox(x_left,y_top,w,h)であり、トレーニングデータ準備段階でtransformを実行する.py生成anno_train.txt変換はbox(x_left,y_top,x_right,y_bottom)の形式で保存され、実行に成功しました.その他、WIDER_train\images\54–Rescue54_Rescue_rescuepeople_54_29.jpgの最後から5番目のgtで与えられたwは負数であり、私は直接このサンプルを削除した.