トップページ -> 最新情報技術の実習と研究ツール -> 顔検出、顔識別 -> Dlib で、画像を使っての学習と画像認識の手順(付属の imglab を使用)
[サイトマップへ]  

Dlib で、画像を使っての学習と画像認識の手順(付属の imglab を使用)

サイト内の関連Webページ

謝辞

Dlib の作者に感謝します


前準備

Anaconda のインストール

Windows での Anaconda のインストール手順は、 別の Web ページに記載しています

Ubuntu での Anaconda のインストール手順は、 別の Web ページに記載しています

隔離された Python 環境の作成.spyder, Tensorflow, Keras, Dlib, Microsoft Build Tools のインストール

Windows での 手順は、 「Windows で,隔離された Python 環境 + Keras + TensorFlow + OpenCV + spyder + Dlib 環境を作る(Anaconda を利用)」の Web ページに記載しています

以下,Windows での Anaconda をインストール済み, 隔離された Python 環境(名前は ai)に、spyder, TenforFlow, Keras, Dlib, Microsoft Build Tools をインストール済みであるものとして説明を続けます.


imglab のビルド

前準備として、Windows のときは Microsoft Build Tools のインストールが終わっていること

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

  2. 次のコマンドを実行
    cd C:\pytools\dlib\tools\imglab
    cmake .
    cmake --build . --config RELEASE --target INSTALL
    


(以下省略)

imglab を使ってみる

  1. 画像を数枚準備する

  2. 準備した画像ファイルを,次のディレクトリに置く
    C:\pytools\dlib\tools\imglab\Release
    

  3. 画像ファイルの準備が終わったら、 .xml 形式ファイルを作る.

    Windowsのコマンドプロンプトを開き、次のコマンドを実行.エラーメッセージが出ないことを確認.

    「.\imglab.exe -c mydata.xml .」は、.xml 形式ファイルを作るコマンド.ファイル名 mydata.xml は何でもよい

    C:
    cd C:\pytools\dlib\tools\imglab\Release
    .\imglab.exe -c mydata.xml .
    

  4. 生成された .xml 形式ファイルをエディタなどで開き確認してみる.

  5. imglab を起動してみる

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

    .\imglab.exe mydata.xml 
    

    imglab は,画像ビューワになっている

  6. imglab で、領域を指定してみる

    シフトキー(SHIFT キー)を押しながら、マウスをドラッグ<

  7. 保存する

    File」→「Save」」と操作する

  8. 確かに .xml形式ファイルに,結果が保存される

    指定した領域についての情報が保存される


Dlib を用いた学習

  1. 教材ファイル Release.zip をダウンロード

    写真は https://ccphotosearch.com/ を利用して、クリエイティブ・コモンズのものを使用.領域指定は手作業で実施.

  2. ダウンロードした Release.zip ファイルを展開(解凍)する.分かりやすいディレクトリに置く.

    ※ Windows での展開(解凍)のためのソフトは「7-Zip」をおすすめ.

  3. 展開してできたファイルを、まるごと C:\pytools\dlib\tools\imglab\Release にコピー

  4. Web ブラウザで training.xml を開いて、確認してみる

    14枚の画像について、 領域を指定済み

    Google Chrome ではうまく表示できない.下の図では Firefox での表示結果を示している.

  5. imglab を起動して確認してみる

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

    C:
    cd C:\pytools\dlib\tools\imglab\Release
    .\imglab.exe training.xml
    

  6. imglab を閉じる

  7. 学習を行う(学習データの生成)

    最後の「.」を忘れないこと

    python C:\pytools\dlib\python_examples\train_object_detector.py .
    

  8. 途中で、Enterキーを押して続行

  9. 次のプログラムファイルを作り、 C:\pytools\dlib\tools\imglab\Release の下に hoge.py のようなファイル名で保存

    謝辞:http://tadaoyamaoka.hatenablog.com/entry/2016/09/21/184955 のものを参考に(少し変更して)使っています

    import os
    import sys
    import glob
    
    import dlib
    from skimage import io
    
    if len(sys.argv) != 2:
        exit()
    f = sys.argv[1]
    
    detector = dlib.simple_object_detector("detector.svm")
    
    win_det = dlib.image_window()
    win_det.set_image(detector)
    
    win = dlib.image_window()
    
    print("Processing file: {}".format(f))
    img = io.imread(f)
    dets = detector(img)
    print("Number of objects detected: {}".format(len(dets)))
    for k, d in enumerate(dets):
        print("Detection {}: Left: {} Top: {} Right: {} Bottom: {}".format(
            k, d.left(), d.top(), d.right(), d.bottom()))
    
    win.clear_overlay()
    win.set_image(img)
    win.add_overlay(dets)
    dlib.hit_enter_to_continue()
    

  10. Windows のコマンドプロンプトを開く

  11. Python 環境(名前は ai)を有効にする

    「activate ai 」は Python 環境(名前はai)を有効にするためのコマンド(各自の環境の名前にあわせること

    activate ai
    

    「Could not find conda environment: ai」というメッセージが出たときは、 隔離された Python 環境の作成(名前は ai) を行う.

  12. ファイルのコピー
    python hoge.py 5920652345_5be61ae940.jpg
    

    以上、学習と、画像の識別を示した(上の犬の写真では、画像の識別がうまくいっていない)

    「Could not find conda environment: ai」というメッセージが出たときは、 隔離された Python 環境の作成(名前は ai).Tensorflow, Keras のインストールを行う.

  13. 学習に使う画像を増やすには
    .\imglab training.xml