/TFLite_ObjectDetector

Object Detection with Object Detection API

Primary LanguagePythonMIT LicenseMIT

TFLite_ObjectDetector

TensorflowのObject Detection APIを用いた物体検出
Raspberry Pi + Google Coral USB Acceleratorでの使用を目的とした軽量な物体検出モデルを作成します.


動作環境

以下の環境で動作を確認しています.

  • OS: Ubuntu 18.04.5 LTS x86_64
  • CUDA: 11.0
  • cudnn: 8.0.5
  • Docker: 20.10.6

学習

以下の方法で学習を開始できます.

  1. アノテーション
    画像に対してアノテーションを行います.
    このリポジトリを用いて学習を行う際にはtfrecord形式のファイルが必要になります.
    microsoft/VoTTを使うと比較的かんたんにアノテーションを行いtfrecord形式のファイルを生成できます.

  1. 教師データのダウンロード元の変更
    先で作成したtfrecordファイルをまとめてGoogle Drive等にアップロードし、共有リンクを取得してください.(リンクを知っている全員が見れる設定で)
    以下のID部分(1k6Nc2xiwB9d2ZRD4LLCS8ndCmPHWqBko)を共有リンク内のファイルIDに変更してください.
    RUN gdown "https://drive.google.com/uc?export=download&id=19-kOt9khSikXOWVb5o5WCqd6_7j6FRuV" \

  1. dokcer image の作成
    以下のコマンドでdocker image を作成してください.
$ docker build -t tf_detection:trainer .
$ docker build -t tf_detection:converter -f Dockerfile.convert .
  1. 学習モデルの作成
    以下のコマンドでモデルの学習からCoral Edge TPUで使うことのできるモデルへの変換までを行います.
$ ./launch_train.sh

補足

  • 作成したモデルをEdge TPU Compilerによって変換することでRaspberry Pi4 model B + Google Coral USB Acceleratorによって25fps程度で検出できることを確認しています.
  • このディレクトリ内にできるtrain_logs内に訓練でできたモデル等が保存されています.
    学習を再度行う際にはtrain_logsを削除(あるいは中身だけ削除)してください.