TensorFlow 2 Object Detection API tutorialの「Installation」に従って、TensorFlow2 Object Detection APIをインストールします。「GPUを実装したwindows PCにTensorFlowをインストール」ですでにTensorFlow 2をインストールしました。ここからスタートします。

TensorFlow Model のダウンロード

TensorFlow Models repository」からTensorFlow Models をダウンロードして、ダウンロードしたTensorFlow Models を含む次のようなフォルダ構成を作成します。

TensorFlow/
└─ models/
   ├─ community/
   ├─ official/
   ├─ orbit/
   ├─ research/
   └── ...

Protocol Buffersのインストール/コンパイル

Protocol Buffersは、インタフェース定義言語 で構造を定義する通信や永続化での利用を目的としたシリアライズフォーマットで、モデルや訓練パラメータを構成するために使用します。「Protocol Buffers v3.18.0」から「protoc-3.18.0-win64.zip」をダウンロードし、「C:\Program Files\TensorFlow\protoc-3.18.0-win64」に解凍します。

「C:\Program Files\TensorFlow\protoc-3.18.0-win64\bin」にpathを通して、次のコマンドでコンパイルします。

# From within TensorFlow/models/research/
>cd TensorFlow/models/research/
>protoc object_detection/protos/*.proto --python_out=.

COCO APIインストール

COCO」は物体検出のためにデザインされた大量画像データセットで、次のコマンドでインストールします。

>pip install cython
>pip install git+https://github.com/philferriere/cocoapi.git#subdirectory=PythonAPI

Object Detection APIのインストール

次のコマンドでObject Detection APIをインストールします。

# From within TensorFlow/models/research/
>cd TensorFlow/models/research/
>copy TensorFlow\models\research\object_detection\packages\tf2/setup.py .
>python -m pip install --use-feature=2020-resolver .

TensorFlow 2 Object Detection APIのインストールの確認

次のコマンドで、TensorFlow 2 Object Detection APIのインストールを確認します。

# From within TensorFlow/models/research/
>python object_detection/builders/model_builder_tf2_test.py
   ・・・
INFO:tensorflow:time(__main__.ModelBuilderTF2Test.test_create_ssd_models_from_config): 19.14s
I0927 07:13:38.878613 10180 test_util.py:2188] time(__main__.ModelBuilderTF2Test.test_create_ssd_models_from_config): 19.14s
[       OK ] ModelBuilderTF2Test.test_create_ssd_models_from_config
[ RUN      ] ModelBuilderTF2Test.test_invalid_faster_rcnn_batchnorm_update
INFO:tensorflow:time(__main__.ModelBuilderTF2Test.test_invalid_faster_rcnn_batchnorm_update): 0.0s
I0927 07:13:38.886637 10180 test_util.py:2188] time(__main__.ModelBuilderTF2Test.test_invalid_faster_rcnn_batchnorm_update): 0.0s
[       OK ] ModelBuilderTF2Test.test_invalid_faster_rcnn_batchnorm_update
[ RUN      ] ModelBuilderTF2Test.test_invalid_first_stage_nms_iou_threshold
INFO:tensorflow:time(__main__.ModelBuilderTF2Test.test_invalid_first_stage_nms_iou_threshold): 0.0s
I0927 07:13:38.888823 10180 test_util.py:2188] time(__main__.ModelBuilderTF2Test.test_invalid_first_stage_nms_iou_threshold): 0.0s
[       OK ] ModelBuilderTF2Test.test_invalid_first_stage_nms_iou_threshold
[ RUN      ] ModelBuilderTF2Test.test_invalid_model_config_proto
INFO:tensorflow:time(__main__.ModelBuilderTF2Test.test_invalid_model_config_proto): 0.0s
I0927 07:13:38.890380 10180 test_util.py:2188] time(__main__.ModelBuilderTF2Test.test_invalid_model_config_proto): 0.0s
[       OK ] ModelBuilderTF2Test.test_invalid_model_config_proto
[ RUN      ] ModelBuilderTF2Test.test_invalid_second_stage_batch_size
INFO:tensorflow:time(__main__.ModelBuilderTF2Test.test_invalid_second_stage_batch_size): 0.0s
I0927 07:13:38.893335 10180 test_util.py:2188] time(__main__.ModelBuilderTF2Test.test_invalid_second_stage_batch_size): 0.0s
[       OK ] ModelBuilderTF2Test.test_invalid_second_stage_batch_size
[ RUN      ] ModelBuilderTF2Test.test_session
[  SKIPPED ] ModelBuilderTF2Test.test_session
[ RUN      ] ModelBuilderTF2Test.test_unknown_faster_rcnn_feature_extractor
INFO:tensorflow:time(__main__.ModelBuilderTF2Test.test_unknown_faster_rcnn_feature_extractor): 0.0s
I0927 07:13:38.896303 10180 test_util.py:2188] time(__main__.ModelBuilderTF2Test.test_unknown_faster_rcnn_feature_extractor): 0.0s
[       OK ] ModelBuilderTF2Test.test_unknown_faster_rcnn_feature_extractor
[ RUN      ] ModelBuilderTF2Test.test_unknown_meta_architecture
INFO:tensorflow:time(__main__.ModelBuilderTF2Test.test_unknown_meta_architecture): 0.0s
I0927 07:13:38.899809 10180 test_util.py:2188] time(__main__.ModelBuilderTF2Test.test_unknown_meta_architecture): 0.0s
[       OK ] ModelBuilderTF2Test.test_unknown_meta_architecture
[ RUN      ] ModelBuilderTF2Test.test_unknown_ssd_feature_extractor
INFO:tensorflow:time(__main__.ModelBuilderTF2Test.test_unknown_ssd_feature_extractor): 0.0s
I0927 07:13:38.901310 10180 test_util.py:2188] time(__main__.ModelBuilderTF2Test.test_unknown_ssd_feature_extractor): 0.0s
[       OK ] ModelBuilderTF2Test.test_unknown_ssd_feature_extractor
----------------------------------------------------------------------
Ran 24 tests in 25.129s

OK (skipped=1)