YOLO-version-2-Face-detectionにあるcfgファイルとweightファイルを使用すると、Yolo v1を使用して顔検出を行うことができます。

実行コマンド
./darknet yolo test yolo-face.cfg yolo-face_final.weights data/person.jpg

公式デモ


学習にはFDDB使用しているようです。顔画像のデータセットは、WiderFaceDatasetも有名ですね。

このネットはAnchorが含まれていないYolo v1の形式になっています。darknet2caffeを使用すれば、caffemodelに変換可能です。変換後のCaffeModelは178.1MBです。

python darknet2caffe.py yolo-face.cfg yolo-face_final.weights face.prototxt face.caffemodel

変換後の係数は、caffe-yoloで動作します。その際、num_class=1、grid_size=11に対応するよう、yolo_main.pyを書き換える必要があります。

python yolo_main.py -m face.prototxt -w face.caffemodel -i faces.jpg

初音ミクの顔も検出できたので、意外とアニメ顔もいけるかもしれません。

OpenCVのFace DetectionはFace Detection using Haar Cascadesというアルゴリズムを使用していますが、Yoloが動く環境であれば、OpenCVを使用しなくてもより手軽に顔検出を行うことができそうです。



また、現在、再学習をYoloKerasFaceDetectionで実験中です。