Tensorflow の Object Detection API を今更ながら、Windows10 で試したので、構築からAPIのデモまでのメモです。
他の人もいっぱい書いているので需要があるか分からないけど、 Qiita 初投稿の練習も兼ねて書いてみた。
インストール環境
・OS:Windows 10 Home バージョン 1909
・CPU:Intel core i5-2450M
・メモリ:8G
・HDD:SSD 500GByte
Windowsのアップデート
・先ずは、Windows Update で更新プログラムの更新を行う。
注意:20H2 への機能更新はしないでください。(2020/12/12時点)
numpyが対応していないようで、Object Detection APIのセットアップでエラーを吐きます。
間違えて更新してしまった場合、10日間は戻せますので、「設定」→「更新とセキュリティ」→「回復」から更新を戻す。
#Pythonのインストール
WindowsのPythonをダウンロードして、インストールする。
Python japan の下記URL を参照し、パッケージのダウンロードを参考に Python のパッケージ(python-3.7.9-amd64.exe)をダウンロードしてインストーラーを実行
https://www.python.jp/install/windows/install.html
注)Tensorflow 1.15 が対応している Python のバージョンが 3.7 なので、バージョンを間違えないよう注意
#Python virtualenv のインストール・仮想環境の作成
今後、色々なバージョンの Python や Tensorflow を利用する可能性を考え、virtualenv を導入しておく。
Anaconda でも良かったのですが、有償化の規約がちょっとアレだったので、virtualenv を利用
コマンドプロンプトを実行して、下記のコマンドで virtualenv をインストール
> pip install virtualenv
Python のインストールフォルダを確認
> where python
C:\Users\[ユーザ名]\AppData\Local\Programs\Python\Python37\python.exe
C:\Users\[ユーザ名]\AppData\Local\Microsoft\WindowsApps\python.exe
仮想環境の作成時に \AppData\Local\Programs\ の方のPython を指定
仮想環境を作成
仮想環境名には利用する Tensorflow のバージョンを指定することにした。
> python -m virtualenv --python=C:\Users\[ユーザ名]\AppData\Local\Programs\Python\Python37\python.exe tf-1153
仮想環境に入るとコマンドプロンプトに仮想環境名が表示される。
> tf-1153\Scripts\activate
(tf-1153) C:\Users\[ユーザ名]>
#Git をインストール
下記のGitのサイトからインストーラーをダウンロードし、インストーラーを実行します。
https://gitforwindows.org/
基本的には、設定の変更を行わず「Next >」ボタン進み、「Install」ボタンでそのままインストールしてOKです。
#Tensorflow をインストール
Tensorflow のバージョン 1.15.3 をインストール
パソコンに NVIDIA の GPU がついている場合は、CUDA や cuDNN など 必要なモジュールをインストールしたうえで「tensorflow」を「tensorflow-gpu」に変更して GPU 対応版の Tensorflow をインストール
> pip install tensorflow==1.15.3
#OpenCV をインストール
何かと画像処理が必要になることもあるので、OpenCV をインストール
> pip install opencv-python
#Object Detection API のモジュールを取得
作業用のフォルダを作成
> mkdir wtf1153
> cd wtf1153
(tf-1153) C:\Users\[ユーザ名]\wtf1153>
github から Object Detection API を取得
> git clone https://github.com/tensorflow/models
#protocol buffers をインストール
Tensorflow で利用するモジュールをインストール
・github から Windows 用のバイナリ(protoc-3.14.0-win64.zip)をダウンロードする。
https://github.com/protocolbuffers/protobuf/releases/
・ダウンロードしたバイナリを適当なフォルダに展開
・C:\Program Files\
フォルダの下にフォルダ「protoc」を作成
・展開した protocol buffers を作成した「protoc」フォルダに移動
C:\Program Files\protoc\protoc-3.14.0-win64
・protoc フォルダに path を通す
①[スタート]を右クリック → [システム]の「システム情報」をクリック → [システム]の「システムの詳細設定」をクリック → [システムのプロパティ]を表示
②[詳細設定]タブ下の[環境変数(N)…]ボタンをクリック
③[ユーザ名]のユーザー環境変数(U) Path
を選択し、[編集(E)…]ボタンをクリック
④環境変数名の編集で[新規(N)]ボタンをクリックし、C:\Program Files\protoc\protoc-3.14.0-win64\bin\
を入力
⑤[OK]ボタンをクリックして「環境変数名の編集」「環境変数」「システムのプロパティ」を閉じる
⑥新しいコマンドプロンプトを実行し、protocのバージョンを確認
> protoc --version
libprotoc 3.14.0
バージョンが表示されれば、protocol buffers のインストールは完了
#Object Detection で利用する protocol buffers のモジュールをコンパイル
> tf-1153\Scripts\activate
(tf-1153)> cd wtf1153\modules\research
(tf-1153)> protoc object_detection\protos\*.proto --python_out=.
object_detection\protos
に拡張子が .py
のファイルが出来ていれば完了
#C++ ランタイムライブラリのインストール
Object Detection のセットアップで使用する、VC++ のランタイムを下記のURLからダウンロードして、インストーラーを実行
https://support.microsoft.com/ja-jp/topic/%E6%9C%80%E6%96%B0%E3%81%AE%E3%82%B5%E3%83%9D%E3%83%BC%E3%83%88%E3%81%95%E3%82%8C%E3%82%8B-visual-c-%E3%81%AE%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89-2647da03-1eea-4433-9aff-95f26a218cc0
#C++ コンパイラのインストール
Object Detection のセットアップで使用する、Visual Studio Build tools を下記のURLからダウンロードして、インストーラーを実行
https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=BuildTools&rel=16
build Tools が起動したら、C++ Build Tools
を選択してインストールを実行
#Object Detection のセットアップ
Object Detection のセットアップファイルをコピーして、セットアップを実行
(tf-1153)> copy object_detection/packages/tf1/setup.py .
(tf-1153)> python -m pip install .
#Object Detection のセットアップ結果を確認
セットアップ結果の確認を行うツールを実行し、セットアップが正常に行えていることを確認
(tf-1153)> python object_detection/builders/model_builder_tf1_test.py
~
~
----------------------------------------------------------------------
Ran 21 tests in 0.290s
OK (skipped=1)
最後にOK (skipped=1)
と表示されていれば、Object Detection 環境の構築は完了
#Jupyter notebook のインストール、起動
動作確認のチュートリアルを実行するため、Jupyter notebookをインストール
(tf-1153)> pip install notebook
#Object Detectopn のチュートリアル実行
チュートリアルを実行するための、.ipynb
を取得
(tf-1153)> cd %homepath%\wtf1153
(tf-1153)> git clone https://github.com/Mogtan3939/tf115-od-tutorial.git
(tf-1153)> cd tf115-od-tutorial
(tf-1153)> jupyter notebook
ブラウザが起動し Jupyter notebook の起動フォルダのファイル一覧が表示される。
チュートリアルファイルOD-tf1153-test01.ipynb
をクリック
チュートリアルが新規タブで表示れるので [▶Run] ボタンをクリックして上から順番に実行していく