トップページ -> 実践知識 -> 顔検出、顔識別 -> davidsandberg/facenetを用いて顔検知を行ってみる
[サイトマップへ]

davidsandberg/facenetを用いて顔検知を行ってみる

サイト構成 連絡先,業績 実践知識 コンピュータ 教材 サポートページ

davidsandberg/facenet は、顔識別、顔画像の特徴量を抽出する機能がある. 顔のアラインメント(Face alignment)には、MTCNNを用いている.

MTCNN は Multi-tack CNN (参考 Web ページ: https://github.com/open-face/mtcnn, 原論文: https://kpzhang93.github.io/MTCNN_face_detection_alignment/paper/spl.pdf)

利用条件などは利用者において確認してください

サイト内の関連Webページ:

謝辞:FaceNet, MTCNN の考案者、そして、プログラムの作者に感謝します

参考Webページ https://www.github.com/davidsandberg/facenet


前準備

Python, 主要パッケージ, git のインストール

Windowsでは、 MSVC ビルドツール (Build Tools) のインストールも行ってください。

以下,Windows でインストール済みであるものとして説明を続ける.


隔離された Python 環境の作成

  1. 今から作成するPython 環境の名前と、Pythonのバージョンを決めておく

  2. Windows のコマンドプロンプトを実行する.

  3. 隔離された Python 環境を作成する

    端末で,次のコマンドを実行.

    conda create -n tf17 python=3
    

  4. Python 環境が作成できたことを確認
    conda info -e
    

これで、もとからの Python 環境と, 新規作成されたPython 環境(Python のバージョン 3名前は tf17)の共存ができた。


davidsandberg/facenet のための Python パッケージをインストールする

https://github.com/davidsandberg/facenet/blob/master/requirements.txt の記述に従う

いま作成した Python 環境に、種々の Python パッケージをインストールする

  1. Windows でコマンドプロンプトを実行

  2. (オプション)もし、virtualenv のPython 仮想環境にインストールしていて、そこにインストールしたいとき、それを有効化する

    ※ virtualenv のPython 仮想環境を有効化したいときに限る(「ai」のところは、Python仮想環境の名前に変えること)

    workon ai
    

  3. TensorFlow バージョン 1.7 をインストールしたいので、次のコマンドを実行

    時間がかかるので待つ

    conda install -y tensorflow=1.7
    

  4. その他・必要なパッケージのインストール
    conda install -y spyder opencv
    conda install -y numpy scipy h5py scikit-learn matplotlib pillow
    conda install -y requests
    

  5. psutil のインストール

    MSVC ビルドツール (Build Tools) がインストール済みであること

    mkdir c:\pytools
    cd c:\pytools
    rmdir /s /q psutil
    

    cd c:\pytools
    git clone https://github.com/giampaolo/psutil
    cd psutil
    python setup.py build
    python setup.py install 
    

  6. TensorFlow のバージョン確認

    Windows のコマンドプロンプトで、次のコマンドを実行

    1.7.1が表示されることを確認

    python -c "import tensorflow as tf; print( tf.__version__ )"
    


davidsandberg/facenet のダウンロード

  1. Windows で,コマンドプロンプトを管理者として実行

  2. Python 環境(名前は tf17)を有効にする

    エラーメッセージが出ないことを確認

    activate tf17
    

  3. davidsandberg/facenet のダウンロード

    mkdir c:\pytools
    cd c:\pytools
    rmdir /s /q facenet
    

    cd c:\pytools
    git clone https://github.com/davidsandberg/facenet
    cd facenet
    


この Web ページで説明のために使用するビデオ、写真

必要であればダウンロードして使ってください.


同封の src/compare.py を用いて、顔識別を行ってみる

Python プログラムを動かしたい. そのために, 「Python コンソール」で,Python 環境(名前は tf17を使う.

PyCharmか, Anacondaに入っているspyder を使うのが簡単

※ Windows のスタートメニューで、 「spyder」の方ではなく、 「spyder(tf17)」を開く。 これで、spyder の中で、Python環境tf17が有効になる

※ Windows のスタートメニューで起動できないときは、Windowsのコマンドプロントで次を実行

activate tf17
spyder

同封の src/compare.py 画像で動かしてみる

  1. C:\face-image のような作業用のディレクトリ(フォルダ)を作る

  2. このディレクトリに、顔写真: 126.png, 127.png をダウンロード

  3. 次の Python プログラムを実行

    https://github.com/ipazc/mtcnn で公開されているプログラムを変更して使用

    import cv2
    import numpy as np
    from mtcnn.mtcnn import MTCNN
    
    FACEIMAGEROOT="C:/face-image/"
    img = cv2.imread(FACEIMAGEROOT + "126.png")
    detector = MTCNN()
    print(detector.detect_faces(img))
    
    img = cv2.imread(FACEIMAGEROOT + "127.png")
    detector = MTCNN()
    print(detector.detect_faces(img))
    

    パソコンの USB カメラで動かしてみる