トップページ -> データベース関連技術 -> 顔検出、顔識別 -> 顔検知(davidsandberg/facenet,Python 3.6,TensorFlow 1.7 を使用)(書きかけ)
[サイトマップへ], [サイト内検索へ]

顔検知(davidsandberg/facenet,Python 3.6,TensorFlow 1.7 を使用)(書きかけ)

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)

手順の要点: Python 3.6, TensorFlow 1.7, Python の仮想環境(Windows では C:\venv\tf115py36)

ソフトウエア等の利用条件は,利用者で確認すること.

謝辞:ソフトウエアの作者に感謝します.

サイト内の関連ページ:

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

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


前準備

Python 3.6 のインストール,pip と setuptools の更新

Windows の場合

  1. Python 3.6 のインストール

    Python の URL: http://www.python.org/

    インストール手順の詳細は: 別ページで説明している.

  2. pip と setuptools の更新

    コマンドプロンプトを管理者として実行し,次のコマンドを実行.

    py -3.6 -m pip install -U pip setuptools
    

    [image]

Ubuntu の場合

次の手順により,システム Python とは別に,pyenv を用いて Pytnon 3.6 をインストールする.(システム Python の設定は変えたくないため).

  1. pyenv のインストールと設定

    図などの入った詳しい説明は別ページ

    sudo apt -yV install --no-install-recommends make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev
    cd /tmp
    curl https://pyenv.run | bash
    echo 'export PYENV_ROOT="${HOME}/.pyenv"' >> ~/.bashrc
    echo 'if [ -d "${PYENV_ROOT}" ]; then' >> ~/.bashrc
    echo '    export PATH=${PYENV_ROOT}/bin:$PATH' >> ~/.bashrc
    echo '    eval "$(pyenv init -)"' >> ~/.bashrc
    echo '    eval "$(pyenv virtualenv-init -)"' >> ~/.bashrc
    echo 'fi' >> ~/.bashrc
    exec $SHELL -l
    
  2. 次のコマンドにより,pyenv を用いて Python 3.6.10 をインストール
    pyenv install 3.6.10
    

    [image]
  3. Ubuntu では端末を開く.
  4. pyenv の Python 3.6 の有効化. pip と setuptools の更新Python 開発環境(JupyterLab, spyder)のインストール

    次のコマンドを実行.

    pyenv shell 3.6.10
    python -m pip install -U pip setuptools
    python -m pip install -U jupyterlab jupyter jupyter-console jupytext spyder
    

Git, cmake のインストール

Git の URL: https://git-scm.com/

cmake の URL: https://cmake.org/download/

(NVIDIA GPU を使うとき)NVIDIA グラフィックスボード・ドライバのインストール

GPU とは,グラフィックス・プロセッシング・ユニットの略で、コンピュータグラフィックス関連の機能,乗算や加算の並列処理の機能などがある.

ダウンロードページ

詳細説明

(NVIDIA GPU を使うとき)NVIDIA CUDA ツールキット 10.0 のインストール

CUDA とは,NVIDIA社が提供している GPU 用のプラットフォームである. ダウンロードページ

TensorFlow 2.1 以上の GPU 版での,NVIDIA CUDA のバージョンは 10.1指定されている. TensorFlow 1.15の GPU 版での,NVIDIA CUDA のバージョンは 10.0指定されている. 指定されているバージョンより高いものは使わない. その根拠は次のページ. URL: https://www.tensorflow.org/install/source#common_installation_problems

詳細説明

(NVIDIA GPU を使うとき)NVIDIA cuDNN のインストール

ダウンロードページ

次のページには,TensorFlow 2.1 以上の GPU 版での,cuDNN のバージョンは 7.6.そして,TensorFlow 1.13 以上 TensorFlow 2.0 までの GPU 版での,cuDNN のバージョンは7.4 が指定されている.

URL: https://www.tensorflow.org/install/source#common_installation_problems

詳細説明


隔離された Python 仮想環境の新規作成と,TensorFlow 1.7.0 (旧バージョン)のインストールおよびPython 開発環境(JupyterLab, spyder)のインストール

今から作成する隔離された Python 仮想環境の名前と、Pythonのバージョンを決めておく

Windows の場合

  1. Python 3.6 の準備

    Windows での Python 3.6 のインストールは,別ページで説明している.

  2. コマンドプロンプトを実行.
  3. venv を用いて,Python 3.6 が動く隔離された Python 仮想環境を作る.

    下の例では,隔離された Python 仮想環境のためのディレクトリを C:\venv\tf17py36に作成している.

    py -3.6 -m venv C:\venv\tf17py36
    

    [image]
  4. venv の隔離された Python 仮想環境を有効化,TensorFlow 1.7 のインストール,Python 開発環境(JupyterLab, spyder)のインストール

    venv を使い,孤立した Python 仮想環境を使っているときは,Windows でも Ubuntu でも同じで,「python -m pip install ...」. いま,venv を使っているかどうかは,プロンプトの「(venv)」で分かる.

    C:\venv\tf17py36\Scripts\activate.bat
    python -m pip install -U pip setuptools
    python -m pip install -U tensorflow-gpu==1.7.0 tensorflow_datasets
    python -m pip install -U jupyterlab jupyter jupyter-console jupytext spyder
    

Ubuntu の場合

  1. Python 3.6 の準備

    Ubuntu での Python 3.6 の準備は,このページの上の方で説明している.

  2. Ubuntu では端末を開く.
  3. venv を用いて,Python 3.6 が動く隔離された Python 仮想環境を作る.

    下の例では,隔離された Python 仮想環境のためのディレクトリを ~/tf17py36に作成している.

    pyenv shell 3.6.10
    python -m venv ~/tf17py36
    
  4. venv の隔離された Python 仮想環境を有効化,TensorFlow 1.7.0 のインストール,Python 開発環境(JupyterLab, spyder)のインストール

    venv を使い,孤立した Python 仮想環境を使っているときは,Windows でも Ubuntu でも同じで,「python -m pip install ...」. いま,venv を使っているかどうかは,プロンプトの「(venv)」で分かる.

    source ~/tf17py36/bin/activate
    python -m pip install -U pip setuptools
    python -m pip install -U tensorflow-gpu==1.7.0 tensorflow_datasets
    python -m pip install -U jupyterlab jupyter jupyter-console jupytext spyder
    

TensorFlow の確認

  1. 隔離された Python 仮想環境有効化
  2. TensorFlow のバージョン確認

    ※ バージョン「1.7.0」が表示されることを確認.

    python -c "import tensorflow as tf; print( tf.__version__ )"
    
  3. (GPU を使うとき) GPU が認識できてるかの確認

    TensorFlow が GPU を認識できているかの確認は,端末で,次を実行して行う.

    python -c "from tensorflow.python.client import device_lib; print(device_lib.list_local_devices())"
    

davidsandberg/facenet のダウンロード

Windows での手順を下に示す.Ubuntu でも同様の手順になる.

  1. Windows では,コマンドプロンプトを実行.Ubuntu では端末を開く.
  2. 隔離された Python 仮想環境有効化

    ※ 以下,Windows での手順を示す.Ubuntu でも同様の手順になる.

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

    cd C:\venv\tf17py36
    rmdir /s /q facenet
    

    [image]

    cd C:\venv\tf17py36
    git clone https://github.com/davidsandberg/facenet
    cd facenet
    

    [image]
  4. 前提パッケージのインストール

    python -m pip install -r requirements.txt
    

    [image]

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

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


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

Python プログラムを動かす.

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

Windows での手順を下に示す.Ubuntu でも同様の手順になる.

  1. 使用する src/compare.py の編集

    src/compare.py の先頭に,次の3行を追加.

    import numpy as np
    from functools import partial
    np.load = partial(np.load, allow_pickle=True) 
    

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

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

    [image]
  4. モデルのダウンロードと展開(解凍)

    GitHub の facenet のページの「Pre-trained model」からモデルをダウンロードし,展開(解凍)する.

    https://www.github.com/davidsandberg/facenet

    展開(解凍)して出来たファイルは,C:\venv\tf17py36\facenet に置く.

    [image]

    書きかけ


本サイトは金子邦彦研究室のWebページです.サイトマップは,サイトマップのページをご覧下さい. 本サイト内の検索は,サイト内検索のページをご利用下さい.

問い合わせ先: 金子邦彦(かねこ くにひこ) [image]