Abstract
某大学院でDeep Learningによる物体検出をしています。
その際、TensorFlow Object Detection APIの環境構築で
ハマってしまったので備忘録として記しておきたいと思います。
【TensorFlow Object Detection APIとは】
Deep Learning、物体検出...というと、ハードルが高く感じるかもしれませんが、
その実装をサポートしてくれるフレームワークがあります。(TensorFlow,Pytorch,Chainer,Kerasなどが王道)
Tensorflow Object Detection APIでは学習済みのモデルが用意されており、
気軽に物体検出を試すことができます。
質問、コメント、不備などがありましたらコメントにて受け付けています。
環境
- Windows10
- Visual Studio 2017
- NVIDIA GeForce RTX 2080 Ti
- CUDA 10.1
- cuDNN 7.6.5
- TensorFlow 1.15.0
- TensorFlow-gpu 1.15.0
- Anaconda3
- Python 3.6.10
環境構築
Windows10でTensorFlow Object Detection APIを試すのに必要な環境構築を行なっていきます。
Ⅰ.CUDA,cuDNNのインストール
TensorFlowの公式サイトに
CUDA、cuDNNのバージョン関係の早見表があるのでそちらを参考にしたほうがいいと思います。
今回私は上記(環境に記載)のバージョンをインストールしています。
1.CUDAのインストール
・下記サイトからCUDA Toolkit 10.1をインストール
https://developer.nvidia.com/cuda-toolkit-archive
・PATHの追加
Windowsのコントロールパネルから環境変数の設定を開き、
先ほどインストールしたCUDA Toolkit 10.1のPATHを通す。
・コマンドプロンプトにてCUDAがインストールされPATHが通っているか確認
C:\> where nvcc
ちゃんとPATHの変数が問題なく表示されたら大丈夫だと思います。
2.cuDNNのインストール
・下記サイトからcuDNNをインストール
https://developer.nvidia.com/rdp/cudnn-download
※インストールにはNVIDIA Developerへの登録が必要になります。
・登録が完了したら、CUDAのバージョンに合わせてcuDNNをインストールします。
今回はCUDA==10.1をインストールしているので、cuDNN==7.6.5をインストールします。
・環境変数にCUDA_PATHとCUDA_PATH_V10.1が設定されているはずです。(自動的に追加されている)
・展開してできたディレクトリcuda の下にあるすべてのファイルとディレクトリを,
CUDA Toolkitをインストールしたディレクトリにコピー
C:\> Where cudnn64_7.dll
問題なければ次に行きましょう。
Ⅱ.TensorFlowのインストール
・Anaconda3にTensorflowの仮想環境を作成します。
【初心者向け】Anacondaで仮想環境を作ってみる
C:\> pip install Tensorflow==1.15.0
C:\> pip install Tensorflow-gpu==1.15.0
・TensorFlowがしっかりインストールされているか確認
Pythonで下記のように入力し、
Python> import tensorflow as tf; print(tf.__version__)
>>> "1.15.0"
"1.15.0"とインストールしたバージョンの数字が返ってきたらOKです。
TensorFlow Object detection APIの環境構築
基本的には公式【TensorFlow Object Detection - Installation】通りにやれば大丈夫でした。
ライブラリのインストール
pip install --user Cython
pip install --user contextlib2
pip install --user pillow
pip install --user lxml
pip install --user jupyter
pip install --user matplotlib
pip install --user tf_slim
自分の場合numpyが最新のバージョンだと後々うまくいかなかったので
numpy==1.16にダウングレードしました。
TensorFlow / modelsリポジトリをダウンロード
C:\> git clone https://github.com/tensorflow/models.git
COCO APIのインストール
C:\> git clone https://github.com/cocodataset/cocoapi.git
C:\>cd cocoapi/PythonAPI
C:\cocoapi/PythonAPI>make
C:\cocoapi/PythonAPI>cp -r pycocotools <path_to_tensorflow>/models/research/
※または、pipを使用してインストール(こちらのほうがWindowsではうまくいく)
C:\>pip install git+https://github.com/philferriere/cocoapi.git#egg=pycocotools^&subdirectory=PythonAPI
・tensorflow/models/researchで下記コマンドを実行
C:~/models/research/>protoc object_detection/protos/*.proto --python_out=.
・PYTHONPATHの設定
Windowsでは下記のようにコマンドを実行してPATHを通す
C:\>set PYTHONPATH= <C:\~\models\research>;<C:\~\models\research\slim>
Ⅲ.テスト
これまでやってきた環境構築がうまくいったかどうかテストします。
・tensorflow/models/researchで下記コマンドを実行
C:~/models/research>python object_detection/builders/model_builder_tf1_test.py
実行結果
[ RUN ] ModelBuilderTF1Test.test_create_context_rcnn_from_config_with_params(True)
[ OK ] ModelBuilderTF1Test.test_create_context_rcnn_from_config_with_params(True)
.
.
.
.
.
[ RUN ] ModelBuilderTF1Test.test_unknown_ssd_feature_extractor
[ OK ] ModelBuilderTF1Test.test_unknown_ssd_feature_extractor
----------------------------------------------------------------------
Ran 21 tests in 0.209s
OK (skipped=1)
上記のような結果が出力されれば問題ありません。
(skipped=1)となっているのはよくわかりませんが問題なく学習できているので大丈夫??
私の場合はこれで問題なく学習できています。