トップページ -> データベース関連技術 -> 顔検出、顔識別 -> 頭部の向きの推定を行ってみる(mpatacchiola/DeepGaze を使用)
[サイトマップへ], [サイト内検索へ]

頭部の向きの推定を行ってみる(mpatacchiola/DeepGaze を使用)

【このページの目次】

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

サイト内の関連ページ:

謝辞:DeepGaze の作者に感謝します

参考Webページ https://www.github.com/mpatacchiola/DeepGaze


前準備

Python, Dlib のインストール

Dlib は C:\pytools\dlib にインストールされているとする

virtualenv, virtualenv-wrapper のインストール

git のインストール

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

次のページの手順により,インストールを行う

参考Webページ:

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

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

インストールの要点:https://developer.nvidia.com/cudnn から cuDNN を入手し,C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1 などに展開(解凍)し,パスを通しておくこと


mpatacchiola/DeepGaze のインストール

隔離された Python 仮想環境の新規作成と,TensorFlow 1.15(旧バージョン)のインストール

  1. 今から作成する隔離された Python 仮想環境の名前と、Pythonのバージョンを決めておく
  2. Windows で,コマンドプロンプトを実行.
  3. virtualenv隔離された Python 仮想環境新規作成し,有効化

    下の例では,隔離された Python 仮想環境の名前をtf1に設定している

    mkvirtualenv tf1
    lsvirtualenv 
    

    [image]
  4. TenforFlow 1.15 のインストール

    このとき,virtualenv の隔離された Python 仮想環境を有効化する(「tf1」のところは、Python仮想環境の名前)

    ※ 「py」は,Windows のPythonランチャーAnaconda 3 内の Python などを間違って使ってしまわないように,Pythonランチャーを使って Python を起動している.Ubuntu では「py」でなく「python3」コマンドを使う.

    ※ 「py -m pip install」は,Python パッケージをインストールするための操作. Ubuntu では,「py -m pip install」の代わりに「pip3 install ...」のように操作すること.

    workon tf1
    py -m pip install --upgrade pip
    py -m pip install -U tensorflow==1.15
    

    [image]

    GPU版の TensorFlow を使いたいとき

    ※ TensorFlow 1.15 では CPU 版と GPU版が 1つのパッケージに統合されている.

    GPU 版 TensorFlow 1.15 を使うために,https://developer.nvidia.com/cuda-10.0-download-archiveから CUDA 10.0 を入手し,インストールしておくこと

    そして,https://developer.nvidia.com/cudnn から cuDNN を入手し,C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0 などに展開(解凍)し,パスを通しておくこと

Python 用 scikit-image opencv-python dlib のインストール

Windows の場合

※ 「pip install ...」は,Python パッケージをインストールするための操作.

workon tf1
pip install -U scikit-image opencv-python dlib 

Ubuntu の場合

workon tf1
pip3 install -U scikit-image opencv-python dlib 

mpatacchiola/DeepGaze のインストール

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

    [image]
  2. DeepGaze のインストールディレクトリを空にしておく

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

    [image]
  3. DeepGaze のインストール

    このとき,virtualenv の隔離された Python 仮想環境を有効化する(「tf1」のところは、Python仮想環境の名前)

    workon tf1
    git clone https://github.com/mpatacchiola/deepgaze
    cd deepgaze
    python setup.py build
    python setup.py install 
    

    [image]
    [image]

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


mpatacchiola/DeepGaze を用いて頭部の向きの推定を行ってみる

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

    [image]
  2. mp4 形式ビデオファイル: sample2.mp4 を、C:\face-image の下にダウンロード
  3. Window でコマンドプロンプトを実行
  4. このとき,virtualenv の隔離された Python 仮想環境を有効化する(「tf1」のところは、Python仮想環境の名前)

    workon tf1
    

    [image]
  5. c:\pytools\deepgaze の下の examples の下の ex_cnn_head_pose_estimation_images の下にあるファイルを使いたい

    ファイルのコピー

    cd c:\pytools
    cd deepgaze\examples\ex_cnn_head_pose_estimation_images
    copy ex_cnn_head_pose_estimation_images.py a.py 
    

    [image]
  6. いまコピーしてできた新しいファイル a.py をエディタで開く

    [image]
  7. このプログラムファイルの後半部分を次のように書き換え
    v = cv2.VideoCapture("C:/face-image/sample2.mp4")
    while(v.isOpened()):
        r, img = v.read()
        if ( r == False ):
            break
        img = cv2.resize(img, (480, 480))
        roll = my_head_pose_estimator.return_roll(img)  # Evaluate the roll angle using a CNN
        pitch = my_head_pose_estimator.return_pitch(img)  # Evaluate the pitch angle using a CNN
        yaw = my_head_pose_estimator.return_yaw(img)  # Evaluate the yaw angle using a CNN
        print("roll %s, pitch %s, yaw %s" % ( str(roll[0,0,0]), str(pitch[0,0,0]), str(yaw[0,0,0]) ) )
    
        cv2.imshow("", img)
    
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break
    
    v.release()
    cv2.destroyAllWindows()
    

    [image]
  8. ファイルを「上書き保存」する
  9. Python プログラムを動かす.

    ※ Python プログラムを動かすために, Windows では,「python」コマンドやPythonランチャーである「py」を使う. Ubuntu では「python3」コマンドを使う. あるいは, PyCharmなどにある Python コンソールも便利である.

    py a.py
    

    [image]
  10. 結果の確認

    [image]

ビデオカメラで確認

  1. 次のように書き換える.書き換えたら保存する

    v = cv2.VideoCapture(0)

    v = cv2.VideoCapture(0)
    while(v.isOpened()):
        r, img = v.read()
        if ( r == False ):
            break
        img = cv2.resize(img, (480, 480))
        roll = my_head_pose_estimator.return_roll(img)  # Evaluate the roll angle using a CNN
        pitch = my_head_pose_estimator.return_pitch(img)  # Evaluate the pitch angle using a CNN
        yaw = my_head_pose_estimator.return_yaw(img)  # Evaluate the yaw angle using a CNN
        print("roll %s, pitch %s, yaw %s" % ( str(roll[0,0,0]), str(pitch[0,0,0]), str(yaw[0,0,0]) ) )
    
        cv2.imshow("", img)
    
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break
    
    v.release()
    cv2.destroyAllWindows()
    

    [image]
  2. ファイルを「上書き保存」する
  3. Python プログラムを動かす.

    ※ Python プログラムを動かすために, Windows では,「python」コマンドやPythonランチャーである「py」を使う. Ubuntu では「python3」コマンドを使う. あるいは, PyCharmなどにある Python コンソールも便利である.

    py a.py
    
  4. 結果の確認

    [image]

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

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