LoginSignup
9
6

More than 3 years have passed since last update.

データのアノテーションからTensorflow Object Detection APIでの学習までをクラウドで簡単に行う方法

Posted at

はじめに

この記事では、Cloud AnnotationsとGoogle Colabを使うことでローカルに環境準備を行うことなくObject Detection APIを使って自前データで学習する手順を紹介します。
Object Detection APIを使って自前のデータで学習するには、環境のセットアップ、データの準備・変換など、学習するまでにやることがたくさんあり軽く試してみようという気持ちではなかなか始められないと思います。Object Detection APIを使った学習に必要なコード(セットアップを含む)が記述されているNotebookがCloud Annotationsから提供されており簡単に物体検出モデル作成が行えます。

物体検出モデル作成のためのNotebook
https://colab.research.google.com/github/cloud-annotations/google-colab-training/blob/master/object_detection.ipynb

以前の記事で、Cloud Annotationsを使ってコーディングすることなくアノテーションからカスタムの物体検出モデル作成までの手順を紹介しました。この記事の手順との違いはモデル作成部分をGoogle Colabを使って行う部分です。Google Colab上ではモデル作成のコードを編集可能なため学習時のパラメーターの調整が可能になります。

Cloud Annotationsを使って簡単にカスタム物体検出モデルを作成する
https://qiita.com/tsota/items/262e40855e6fb361994a

手順概要

アノテーションと学習の2つの手順になります。
1. Cloud Annotationsでアノテーション
2. Google Colabで学習

image.png

1. Cloud Annotationsでアノテーション

1-1. Object Storageインスタンスを作成

https://www.ibm.com/cloud にログインして、Object Storageインスタンスを作成します。
Lite(無料)プランのインスタンスで大丈夫です。

1-2. Cloud Annotationsにログイン

ブラウザーで https://cloud.annotations.ai/ を開いて、右上の「Log in」ボタンからCloud Annotationsにログインします。
image.png

ログイン後、以下の画面の右上のリストでデータを格納するObject Storageのインスタンスを選択します。
「Start a new project」ボタンを押してデータを格納するBucketを作成します。
image.png

任意のバケット名をつけて「Confirm」ボタンを押します。ここでは「tsota-megane」としています。
image.png

Annotation typeの選択では、「Localization」(ペンギンが3匹いる方)を選択して、「Confirm」ボタンを押します。
image.png

1-3. アノテーション

「File」→「Upload media」から準備したデータをアップロードします。
image.png

以下の画面でひたすらアノテーションをしていきます。
image.png

1-4. データをダウンロード

「File」->「Export as Create ML」でアノテーションしたデータをダウンロードします。
image.png

2. Object Detection APIで学習

2-1. データをアップロード

先程ダウンロードしたzipファイルをローカルで解凍して、Google Driveで「My Drive」→「Upload Folder」から解凍してできたディレクトリを選択して、データをアップロードします。
image.png

2-2. Google Colabを開く

以下のURLへブラウザーでアクセスしてGoogle ColabのNotebookを開きます。
https://colab.research.google.com/github/cloud-annotations/google-colab-training/blob/master/object_detection.ipynb

このNotebookにはObject Detection APIを使った学習に必要なコードが記述されています。
以下のようなステップがコメント付きで予め記述されています。

  • Setup
  • Install the TensorFlow Object Detection API
  • Mount Google Drive
  • Generate a Label Map
  • Generate TFRecords
  • Download a base model
  • Model config
  • Start training
  • Export inference graph
  • Testing the model
  • Convert the model
  • Download the model

「ドライブにコピー」を選択してGoogle Drive上にコピーを作ります。
image.png

名前をクリックして、任意の名前に変更します。
image.png

2-3. コードの編集

2箇所コードの編集を行います。

「Setup」のセルの3行目を先程Google Driveにアップロードしたフォルダー名に変更します。ここでは「tsota-megane」に変更しています。
「Setup」セルでは、NUM_TRAIN_STEPSやMODEL_TYPEの設定もありますので、慣れてくればこのあたりのパラメーターを変更して試してみるのもよいと思います。
image.png

「Model config」のセルの8行目をモデルタイプが直接記述されている箇所をCONFIG_TYPEの変数名に変更します。
image.png

2-4. コードの実行

コードを上から実行して行きます。
「Mount Google Drive」のセルでは、Google Driveへのアクセスの承認を求められますので、指定のURLをブラウザーで開き、認証コードを取得して入力してください。
image.png

「Testing the model」のセルでは、学習したモデルを使って物体検出のテストができます。PCに接続されているカメラ画像を入力にしてテストが可能です。
image.png

モデルのダウンロード

学習済みのモデルは、/content/exportedディレクトリにあるので、Google Drive移動してダウンロードして利用することが可能です。
image.png

まとめ

ローカルに環境準備を行うことなく、Object Detection APIを使って自前データで学習することができました。

9
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
6