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

サイト内の関連ページ

用語説明

前準備

Git のインストール(Windows 上)

Gitは,バージョン管理システム.ソースコードの管理や複数人での共同に役立つ.

サイト内の関連ページWindows での Git のインストール: 別ページ »で説明

関連する外部ページGit の公式ページ: https://git-scm.com/

7-Zip のインストール(Windows 上)

7-Zipは,ファイル圧縮・展開(解凍)ツール

  1. Windows で,コマンドプロンプト管理者権限で起動する(例:Windowsキーを押し,「cmd」と入力し,「管理者として実行」を選択)
  2. 次のコマンドを実行

    次のコマンドは,7-Zipをインストールするものである.

    winget install --scope machine 7zip.7zip
    powershell -command "$oldpath = [System.Environment]::GetEnvironmentVariable(\"Path\", \"Machine\"); $oldpath += \";c:\Program Files\7-Zip\"; [System.Environment]::SetEnvironmentVariable(\"Path\", $oldpath, \"Machine\")"
    

関連する外部ページ

Python のインストール(Windows 上)

サイト内の関連ページ

関連する外部ページPython の公式ページ: https://www.python.org/

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

インストールの判断Build Tools for Visual Studio は,開発ツールセットである. Visual Studio は統合開発環境であり,いくつかの種類があり,Build Tools for Visual Studioの機能を含むか連携して使用するものである.インストールは以下の基準で判断してください:

不明な点がある場合は,Visual Studio 全体をインストール を行う方が良い.

Build Tools for Visual Studio 2022 のインストール(Windows 上)

  1. Windows で,コマンドプロンプト管理者権限で起動する(例:Windowsキーを押し,「cmd」と入力し,「管理者として実行」を選択)

    次のコマンドを実行

    次のコマンドは,Build Tools for Visual Studio 2022と VC2015 再配布可能パッケージをインストールするものである.

    winget install --scope machine Microsoft.VisualStudio.2022.BuildTools 
    winget install --scope machine Microsoft.VCRedist.2015+.x64
    
  2. Build Tools for Visual Studio 2022 での C++ によるデスクトップ開発,CLI,ATL,MFC のインストール(Windows 上)
    1. Visual Studio Installer の起動

      起動方法: スタートメニューの「Visual Studio Installer」を選ぶ.

    2. Visual Studio Build Tools 2022 で「変更」を選ぶ.
    3. C++ によるデスクトップ開発」をクリック.そして,画面右側の「インストール」の詳細で「v143 ビルドツール用 C++/CLI サポート(最新)」,「ATL」,「MFC」をチェックする.その後,「変更」をクリック.

Visual Studio のインストール(Windows 上)

  1. Windows で,コマンドプロンプト管理者権限で起動する(例:Windowsキーを押し,「cmd」と入力し,「管理者として実行」を選択)

    次のコマンドを実行

    1. コマンドプロンプト管理者権限で起動する(例:Windowsキーを押し,「cmd」と入力し,「管理者として実行」を選択)
    2. インストールコマンドの実行
      winget install Microsoft.VisualStudio.2022.Community --scope machine --override "--add Microsoft.VisualStudio.Workload.NativeDesktop Microsoft.VisualStudio.ComponentGroup.NativeDesktop.Core Microsoft.VisualStudio.Component.VC.CLI.Support Microsoft.VisualStudio.Component.CoreEditor Microsoft.VisualStudio.Component.NuGet Microsoft.VisualStudio.Component.Roslyn.Compiler Microsoft.VisualStudio.Component.TextTemplating Microsoft.VisualStudio.Component.Windows.SDK.Latest Microsoft.VisualStudio.Component.VC.Tools.x86.x64 Microsoft.VisualStudio.Component.VC.ATL Microsoft.VisualStudio.Component.VC.ATLMFC"
      winget install Microsoft.VisualStudio.2022.Community --scope machine Microsoft.VCRedist.2015+.x64
      

      インストールされるコンポーネントの説明:

      • NativeDesktop:C++によるデスクトップアプリケーション開発のためのワークロード一式
      • NativeDesktop.Core:C++デスクトップ開発に必要な基本コンポーネント群
      • VC.CLI.Support:マネージドコードとネイティブコードの統合開発を可能にするC++/CLIサポート
      • CoreEditor:コード編集,デバッグ,検索などの基本機能を提供するVisual Studioのコアエディタ
      • NuGet:.NETライブラリの依存関係を管理するパッケージ管理システム
      • Windows.SDK.Latest:Windows 向けアプリケーション開発用SDK(Software Development Kit)
      • VC.Tools.x86.x64:32ビット及び64ビット向けC++コンパイラとビルドツール
      • VC.ATL:Windowsコンポーネント開発用のActive Template Library
      • VC.ATLMFC:デスクトップアプリケーション開発用のMicrosoft Foundation Class Library

      システム要件と注意事項:

      • 管理者権限でのインストールが必須
      • 必要ディスク容量:10GB以上
      • 推奨メモリ:8GB以上のRAM
      • インストール過程でシステムの再起動が要求される可能性がある
      • 安定したインターネット接続環境が必要

      追加のコンポーネントが必要な場合は,Visual Studio Installerを使用して個別にインストールすることが可能である.

    3. インストール完了の確認
      winget list Microsoft.VisualStudio.2022.Community
      

      トラブルシューティング:

      インストール失敗時は,以下のログファイルを確認:

      %TEMP%\dd_setup_<timestamp>.log
      %TEMP%\dd_bootstrapper_<timestamp>.log
  2. Visual Studio での C++ によるデスクトップ開発,CLI のインストール(Windows 上)
    1. Visual Studio Installer の起動

      起動方法: スタートメニューの「Visual Studio Installer」を選ぶ.

    2. Visual Studio Community 2022 で「変更」を選ぶ.
    3. C++ によるデスクトップ開発」をチェック.そして,画面右側の「インストール」の詳細で「v143 ビルドツール用 C++/CLI サポート(最新)」をチェックする.その後,「インストール」をクリック.

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

  1. Windows で,コマンドプロンプト管理者権限で起動する(例:Windowsキーを押し,「cmd」と入力し,「管理者として実行」を選択)
  2. Dlib のパッケージのインストール

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

    次のコマンドを実行.

    python -m pip uninstall -y dlib
    cd C:\
    rmdir /s /q dlib
    git clone https://github.com/davisking/dlib
    cd C:\dlib
    python setup.py build --no DLIB_GIF_SUPPORT
    python setup.py install --no DLIB_GIF_SUPPORT
    
  3. Python の dlib パッケージがインストールできたことの確認

    バージョン番号が表示されれば OK.下の図とは違うバージョンが表示されることがある.

    python -c "import dlib; print( dlib.__version__ )"
    
  4. Dlib のソースコード等のダウンロード

    次のコマンドを実行.

    cd C:\
    rmdir /s /q dlib
    git clone https://github.com/davisking/dlib
    
  5. 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
    
  6. Dlib の動作確認のため,次を実行.エラーメッセージが出ずに,顔検出の結果が表示されれば OK とする.
    cd C:\dlib
    cd python_examples
    python cnn_face_detector.py mmod_human_face_detector.dat ..\examples\faces\2007_007763.jpg
    

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

  1. Windows で,コマンドプロンプト管理者権限で起動する(例:Windowsキーを押し,「cmd」と入力し,「管理者として実行」を選択)
  2. numpy, scikit-image, scikit-learn のインストール

    次のコマンドを実行する.

    python -m pip install -U numpy scikit-image scikit-learn
    
  3. face_recognition のインストール
    cd /d c:%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 にコピーしている.

  2. そこに、「knn_examples」という名前のディレクトリを作る.
  3. 「knn_examples」の下に、「train」という名前のディレクトリを作る.
  4. 「knn_examples」の下に、「test」という名前のディレクトリを作る.
  5. 「train」の下に、さらに、複数のディレクトリを作る.

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

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

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

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

  7. 今度は「test」の下に、顔認識させたい画像を置く
  8. Windows でコマンドプロンプトを開く。cd コマンドを使い、 ダウンロードしたディレクトリ(フォルダ)に、カレントディレクトリを移す
  9. python face_recognition_knn.py を実行

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

  10. 結果を確認。

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

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

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

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

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