PixelLib のインストールと動作確認(Mask R-CNN,特定クラスのインスタンス・セグメンテーション)(TensorFlow 2.0.4, Python 3.7 を使用)

事前学習済みの Mask R-CNN で,特定クラスのオブジェクトのセグメンテーションを行う.

目次

  1. 前準備
  2. 画像のインスタンスセグメンテーション(PixelLib, Mask RCNN モデル)

サイト内の関連ページ

関連する外部ページ

前準備

Python 3.7,Git,CMake のインストール(Windows 上)

Pythonは,プログラミング言語の1つ. Gitは,分散型のバージョン管理システム. CMakeは,クロスプラットフォームのビルドシステム生成ツール.

手順

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

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

    次のコマンドを実行

    次のコマンドは,Python ランチャーとPython 3.7GitCMakeをインストールし,Gitパスを通すものである.

    次のコマンドでインストールされるGitは 「git for Windows」と呼ばれるものであり, Git,MinGW などから構成されている.

    winget install --scope machine Python.Launcher
    winget install --scope machine Python.Python.3.7
    winget install --scope machine Git.Git
    powershell -command "$oldpath = [System.Environment]::GetEnvironmentVariable(\"Path\", \"Machine\"); $oldpath += \";c:\Program Files\Git\cmd\"; [System.Environment]::SetEnvironmentVariable(\"Path\", $oldpath, \"Machine\")"
    winget install --scope machine Kitware.CMake
    powershell -command "$oldpath = [System.Environment]::GetEnvironmentVariable(\"Path\", \"Machine\"); $oldpath += \";c:\Program Files\CMake\bin\"; [System.Environment]::SetEnvironmentVariable(\"Path\", $oldpath, \"Machine\")"
    

関連する外部ページ

サイト内の関連ページ

関連項目Python, Git バージョン管理システム, Git の利用, CMake ビルドシステム生成ツール, CMake の使用方法

Visual Studio Community 2017 のインストール

NVIDIA CUDA 10.0 は Visual Studio Commnity 2017, 2015, 2013, 2012 と連携して動く機能がある.

NVIDIA CUDA 10.0 のインストールの前に, Visual Studio Commnity 2017 のインストールを行う.

Visual Studio Commnity 2017 のインストールは, https://visualstudio.microsoft.com/ja/vs/older-downloads/ で「2017」を選び,「ダウンロード」をクリック. その後表示されるダウンロードの画面で, 「Visual Studio Commnity 2017」を選ぶ. インストール時には「C++ によるデスクトップ開発」をチェックしてインストールする.

NVIDIA ドライバのインストール(Windows 上)

NVIDIA ドライバ

NVIDIA ドライバは,NVIDIA製GPUを動作させるための重要なソフトウェアである.このドライバをインストールすることにより,GPUの性能を引き出すことができ,グラフィックス関連のアプリ,AI関連のアプリの高速化が期待できる.

ドライバはNVIDIA公式サイトである https://www.nvidia.co.jp/Download/index.aspx?lang=jp からダウンロードできる.このサイトからダウンロードするときには,グラフィックスカードとオペレーティングシステムを選択する. なお,NVIDIA GeForce Experiance を用いてインストールすることも可能である.

サイト内の関連ページ

  1. NVIDIA グラフィックス・ボードの確認

    Windows で,NVIDIA グラフィックス・ボードの種類を調べたいときは, 次のコマンドを実行することにより調べることができる.

    wmic path win32_VideoController get name
    
  2. NVIDIA ドライバのダウンロード

    NVIDIA ドライバは,以下の NVIDIA 公式サイトからダウンロードできる.

    https://www.nvidia.co.jp/Download/index.aspx?lang=jp

  3. ダウンロードの際には,使用しているグラフィックス・ボードの型番とオペレーティングシステムを選択する.

NVIDIA CUDA ツールキット 10.0 のインストール(Windows 上)

NVIDIA CUDA ツールキットのインストール時の注意点

NVIDIAのGPUを使用して並列計算を行うためのツールセット

主な機能: GPU を利用した並列処理,GPU のメモリ管理,C++をベースとした拡張言語とAPIとライブラリ

NVIDIA CUDA ツールキットの動作に必要なもの

Windows でインストールするときの注意点

関連する外部ページ

関連項目NVIDIA CUDA ツールキット, NVIDIA CUDA ツールキット 12.5 のインストール(Windows 上), NVIDIA CUDA ツールキット 11.8 のインストール(Windows 上)

TensorFlow 1.15.5 が必要とする NVIDIA CUDA ツールキットと NVIDIA cuDNN のバージョンの確認

TensorFlow 1.15.5 を動かすために,NVIDIA CUDA ツールキット 10.0NVIDIA cuDNN 7.6.5 を使う.

(10.2, 10.1 は不可.実際に試みて検証済み).

NVIDIA CUDA ツールキット 10.0NVIDIA cuDNN 7.6.5 の根拠: cudart64_100.dll, cudnn64_7.dll が必要

インストール手順

  1. NVIDIA CUDA ツールキットのアーカイブのページを開く

    https://developer.nvidia.com/cuda-toolkit-archive

  2. NVIDIA CUDA ツールキットのバージョンを選ぶ

    ここでは,NVIDIA CUDA ツールキット10.0を選んでいる

  3. Windows」,「10」,「exe [local]」を選ぶ.
  4. Base Installer」の右横の「Download」をクリックして,.exe ファイルをダウンロード
  5. exe ファイルのダウンロードが始まる
  6. ダウンロードした .exe ファイルを実行する.
  7. 展開(解凍)先ディレクトリ(フォルダ)の指定.

    既定(デフォルト)のままでよい.「OK」をクリック.

  8. 展開(解凍)が自動で行われるので,しばらく待つ.
  9. ライセンス条項の確認
  10. インストールオプションは,「カスタム(詳細)」を選び,「次へ」をクリック.
  11. コンポーネントを確認する.

    CUDA」にチェックする.その他は,必要なものがあればチェックする.「次へ」をクリック.

    複数の版の NVIDIA CUDA ツールキットをインストールする場合には,古い版のNVIDIA CUDA ツールキットをインストールするときに「CUDA」だけを選ぶようにする.

  12. インストール場所の選択は,既定(デフォルト)のままでよい.「次へ」をクリック.
  13. Visual Studio Integration について表示された場合

    表示されなくても問題はない.

    表示された場合には,NVIDIA CUDA のインストールを中止して, Visual Studio Commnity 2017 のインストールを行う.

    Visual Studio Commnity 2017 のインストールは, https://visualstudio.microsoft.com/ja/vs/older-downloads/ で「2017」を選び,「ダウンロード」をクリック. その後表示されるダウンロードの画面で, 「Visual Studio Commnity 2017」を選ぶ. インストール時には「C++ によるデスクトップ開発」をチェックしてインストールする.

  14. このとき,Windows セキュリティの画面が開くことがある.開いた場合には,「インストール」をクリック.
  15. インストールが始まるので,確認する.
  16. このとき,グラフィックス・カードのドライバのインストールについての画面が表示される場合がある.「インストール」をクリックして,インストールを続行する.
  17. Visual Studio がインストール済みのときは,Nsight Visual Studio がインストールされたことが確認できる.確認したら「次へ」をクリック.

    Visual Studio をインストールしていないときは,Nsight for Visual Studio はインストールされない.

  18. インストール終了の確認.「閉じる」をクリック.

    *コンピュータを再起動してください」と表示される場合がある.そのときは,再起動する.

  19. GeForce Experience が自動で開く場合がある
    • 利用条件について表示されたときは、よく確認し、納得できる場合のみ同意・続行する
    • リリースハイライトが表示される場合がある.

      リリースハイライトを確認したら,「x」をクリックして閉じる.

    • このとき,最新版への更新が始まり,起動に時間がかかることがある.

      そして「お使いのGPU向けの新しいドライバーが入手可能です」と表示されることがある.そのときは,新しいドライバをインストールする.

NVIDIA cuDNN 7.6.5 のインストール

インストールするNVIDIA cuDNN のバージョンは 7.6.5 for CUDA 10.0

NVIDIA cuDNN

NVIDIA cuDNN は, NVIDIA CUDA ツールキット上で動作するディープラーニング・ライブラリである. 畳み込みニューラルネットワークや リカレントニューラルネットワークなど,さまざまなディープラーニングで利用されている.

Windows で,NVIDIA cuDNN の利用時に 「Could not locate zlibwapi.dll. Please make sure it is in your library path!」と表示されるときは, ZLIB DLL をインストールすること.

関連する外部ページ

NVIDIA cuDNN のインストール(Windows 上)の概要

NVIDIA cuDNN のダウンロードとインストールの手順

  1. NVIDIA cuDNN のウェブページを開く

    https://developer.nvidia.com/cuDNN

  2. ダウンロードしたいので,cuDNNのところにある「Download cuDNN」をクリック.
  3. NVIDIA Developer Program メンバーシップに入る

    NVIDIA cuDNN のダウンロードのため.

    Join now」をクリック.その後,画面の指示に従う. 利用者本人が,電子メールアドレス,表示名,パスワード,生年月日を登録.利用条件等に合意.

  4. ログインする
  5. 調査の画面が出たときは,調査に応じる
  6. ライセンス条項の確認
  7. 「Archived cuDNN Releases」をクリック
  8. ダウンロードしたいバージョンを選ぶ

    ここでは「cuDNN v 7.6.5, for CUDA 10.0」を選んでいる.

    このとき,画面の「for CUDA ...」のところを確認し,使用するNVIDIA CUDA のバージョンに合うものを選ぶこと.

  9. Windows にインストールするので Windows 版を選ぶ
  10. ダウンロードが始まる.
  11. ダウンロードした .zip ファイルを展開(解凍)する.展開の結果 cuda という名前のディレクトリができる.その中のサブディレクトリを確認しておく.

    Windows での展開(解凍)に便利な 7-Zip: 別ページ »で説明

  12. NVIDIA CUDA ツールキットをインストールしたディレクトリは,「C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0」 のようになっている.確認する.
  13. 確認したら, さきほど展開してできたディレクトリcuda の下にあるすべてのファイルとディレクトリを,NVIDIA CUDA ツールキットをインストールしたディレクトリにコピーする

インストール後に行う環境変数の設定

NVIDIA cuDNN をインストールしたディレクトリ」をもとに環境変数を設定する.

NVIDIA cuDNN をインストールしたディレクトリ」が C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0 の場合には,次のように設定する.

パスの確認

次の操作により,cudnn64_7.dllパスが通っていることを確認する

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

where cudnn64_7.dll

画像のインスタンスセグメンテーション(PixelLib, Mask RCNN モデル)

次のページの手順に従う.

https://pixellib.readthedocs.io/en/latest/video_instance.html

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

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

  2. pycocotools のインストール
    python -m pip install -U cython
    python -m pip install "git+https://github.com/philferriere/cocoapi.git#egg=pycocotools&subdirectory=PythonAPI"
    

  3. TensorFlow 2.0.4 その他のインストール
    C:\venv\py37\scripts\activate.bat
    python -m pip uninstall -y tensorflow tensorflow-gpu tensorflow-intel keras tensorboard tensorflow-estimator
    python -m pip install tensorflow==2.0.4 keras numpy
    
  4. pixellib のインストール
    C:\venv\py37\Scripts\activate.bat
    python -m pip install pixellib
    
  5. coco を用いて学習済みの Mask RCNN モデルをダウンロード
    mkdir %HOMEPATH%
    cd /d c:%HOMEPATH%
    curl -LO https://github.com/ayoolaolafenwa/PixelLib/releases/download/1.2/mask_rcnn_coco.h5
    
  6. 画像ファイルの準備

    画像ファイルは,%HOMEPATH%に置くことにする.

    ここでは, https://pixellib.readthedocs.io/en/latest/Image_instance.html で公開されている Sample2.jpg を使用

  7. インスタンスセグメンテーションの実行

    Python プログラムを実行する.Matplotlib を使うので,Jupyter QtConsoleJupyter ノートブック (Jupyter Notebook) の利用が便利である.

    Python プログラムの実行: 別ページ »で説明

    Python のまとめ: 別ページ »にまとめ

    import pixellib
    from pixellib.instance import instance_segmentation
    
    segment_image = instance_segmentation()
    segment_image.load_model("c:/data/mask_rcnn_coco.h5")
    target_classes = segment_image.select_target_classes(person=True)
    segment_image.segmentImage("c:/data/Sample2.jpg", segment_target_classes=target_classes, extract_segmented_objects=True, save_extracted_objects=True, output_image_name= "c:/data/Sample2_iseg_target1.jpg")
    
  8. 画像ファイルの表示

    Python プログラムを実行する.Matplotlib を使うので,Jupyter QtConsoleJupyter ノートブック (Jupyter Notebook) の利用が便利である.

    import matplotlib.pyplot as plt
    a = plt.imread("c:/data/Sample2.jpg")
    plt.imshow(a)
    plt.show()
    b = plt.imread("c:/data/Sample2_iseg_target1.jpg")
    plt.imshow(b)
    plt.show()
    
  9. インスタンスセグメンテーションの実行

    Python プログラムを実行する.Matplotlib を使うので,Jupyter QtConsoleJupyter ノートブック (Jupyter Notebook) の利用が便利である.

    import pixellib
    from pixellib.instance import instance_segmentation
    
    segment_image = instance_segmentation()
    segment_image.load_model("c:/data/mask_rcnn_coco.h5")
    target_classes = segment_image.select_target_classes(car=True)
    segment_image.segmentImage("c:/data/Sample2.jpg", segment_target_classes=target_classes, extract_segmented_objects=True, save_extracted_objects=True, output_image_name= "c:/data/Sample2_iseg_target2.jpg")
    
  10. 画像ファイルの表示

    Python プログラムを実行する.Matplotlib を使うので,Jupyter QtConsoleJupyter ノートブック (Jupyter Notebook) の利用が便利である.

    import matplotlib.pyplot as plt
    a = plt.imread("c:/data/Sample2.jpg")
    plt.imshow(a)
    plt.show()
    b = plt.imread("c:/data/Sample2_iseg_target2.jpg")
    plt.imshow(b)
    plt.show()