トップページ情報工学を学ぶ人工知能の実行,Python プログラム (Windows 上)face_recognition による顔識別.訓練データによる訓練と,検証データによる検証(Dlib,ageitgey/face_recognition,Python を使用)(Windows 上)

face_recognition による顔識別.訓練データによる訓練と,検証データによる検証(Dlib,ageitgey/face_recognition,Python を使用)(Windows 上)

Dlibは,機械学習のアルゴリズムの機能を持つソフトウェア.

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

サイト内の関連ページ

謝辞

Dlib の作者に感謝します

前準備

Build Tools for Visual Studio 2022 (ビルドツール for Visual Studio 2022)もしくは Visual Studio 2022 のインストール(Windows 上)

Build Tools for Visual Studio 2022 (ビルドツール for Visual Studio 2022)もしくはVisual Studio 2022 を,前もってインストールしておく.NVIDIA CUDA の nvcc を機能させるため.

Git のインストール

cmake のインストール

cmake のダウンロードページ: https://cmake.org/download/

7-Zip のインストール

7-Zip のページ: https://sevenzip.osdn.jp/ からダウンロードしてインストールする.

Python 64 ビット版のインストール,pip と setuptools の更新(Windows 上)

Windows での Python 3.10 のインストール,pip と setuptools の更新: 別ページで説明している.

Python の公式ページ: http://www.python.org/

Dlib のインストール

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

    Windowspip を実行するときは,コマンドプロンプト管理者として実行し,それを使って pip を実行することにする.

    コマンドプロンプトを管理者として実行: 別ページで説明している.

  2. 次のコマンドを実行する.
    python -m pip install -U dlib
    

Dlib のソースコード等と,Dlib の学習済みモデルのダウンロード

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

    コマンドプロンプトを管理者として実行: 別ページで説明している.

  2. Dlib のソースコード等のダウンロード

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

    cd C:\
    rmdir /s /q dlib
    git clone https://github.com/davisking/dlib
    
  3. Dlib の学習済みモデルのダウンロード

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

    cd C:\dlib
    cd python_examples
    curl -O http://dlib.net/files/mmod_human_face_detector.dat.bz2
    curl -O http://dlib.net/files/dlib_face_recognition_resnet_model_v1.dat.bz2
    curl -O http://dlib.net/files/shape_predictor_5_face_landmarks.dat.bz2
    curl -O http://dlib.net/files/shape_predictor_68_face_landmarks.dat.bz2
    "c:\Program Files\7-Zip\7z.exe" x mmod_human_face_detector.dat.bz2
    "c:\Program Files\7-Zip\7z.exe" x dlib_face_recognition_resnet_model_v1.dat.bz2
    "c:\Program Files\7-Zip\7z.exe" x shape_predictor_5_face_landmarks.dat.bz2
    "c:\Program Files\7-Zip\7z.exe" x shape_predictor_68_face_landmarks.dat.bz2
    del mmod_human_face_detector.dat.bz2
    del dlib_face_recognition_resnet_model_v1.dat.bz2
    del shape_predictor_5_face_landmarks.dat.bz2
    del shape_predictor_68_face_landmarks.dat.bz2
    

Python 用 numpy, scikit-image, scikit-learn のインストール

Windows の場合

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

Windowspip を実行するときは,コマンドプロンプト管理者として実行し,それを使って pip を実行することにする.

python -m pip install -U numpy scikit-image scikit-learn

Ubuntu の場合

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

sudo apt -y update
sudo apt -y install python3-numpy python3-skimage python3-sklearn

ageitgey/ageitgey の face_recognition のインストール

まだインストールしていない場合には、次の手順でインストールする Windows での手順を示す.Ubuntu の場合も同様の手順になる.

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

    コマンドプロンプトを管理者として実行: 別ページで説明している.

  2. face_recognition のインストール
    cd %HOMEPATH%
    rmdir /s /q face_recognition
    git clone https://github.com/ageitgey/face_recognition
    cd face_recognition
    copy C:\dlib\python_examples\shape_predictor_68_face_landmarks.dat .
    python setup.py build
    python setup.py install 
    

face_recognition による顔識別.訓練データによる訓練と,検証データによる検証(Dlib,ageitgey/face_recognition,Python を使用)

ここで行うこと

knn アルゴリズム。

  1. ファイル %HOMEPATH%\face_recognition\examples\face_recognition_knn.py を分かりやすいディレクトリ(フォルダ)にコピー

    ここでは,c:\w にコピーしている.

    [image]
  2. そこに、「knn_examples」という名前のディレクトリを作る.

    [image]
  3. 「knn_examples」の下に、「train」という名前のディレクトリを作る.

    [image]
  4. 「knn_examples」の下に、「test」という名前のディレクトリを作る.

    [image]
  5. 「train」の下に、さらに、複数のディレクトリを作る.

    ディレクトリ名は何でも良いが、英語または数字のみを使い、分かりやすい名前がよい.

    次の例では2つ作っているが、3つ以上作ってもよい。

    [image]
  6. いま作ったディレクトリの下に画像ファイルを置く。

    画像ファイルの拡張子は .png もしくは .jpg もしくは .jpeg であること。

    [image]

    [image]
  7. 今度は「test」の下に、顔認識させたい画像を置く

    [image]
  8. Windows でコマンドプロンプトを開く。cd コマンドを使い、 ダウンロードしたディレクトリ(フォルダ)に、カレントディレクトリを移す
  9. python face_recognition_knn.py を実行

    [image]

    このプログラムでは,モデルとして hog を使う. ディープラーニングの CNN を使うように変更する場合には, face_locaions のところを,「face_locations(..., model="cnn")」のように書き換える

  10. 結果を確認。

    画像サイズを変える(解像度を変える)など、少しの工夫で検出漏れがなくなったり、顔認識の精度が向上する可能性がある。

    [image]
  11. 結果をファイルに保存したい場合

    python face_recognition_knn.py を次のように書き換え.

    「pil_image.save('result' + os.path.basename(img_path))」を追加

    [image]

    python face_recognition_knn.py を実行すると、次のように、結果がファイルに保存される.

    [image]