はじめに
この記事では、Cloud Annotationsを使って画像のアノテーション、物体検出モデルを作成する手順を紹介します。コーディングすることなく、簡単に物体検出モデルの作成が出来ます。
また、ダウンロードしたモデルを動かすサンプルアプリも提供されており、そのモデルをアプリケーションのディレクトリに配置するだけで試すことができます。
以下はサンプルアプリを動かした時のイメージです。
Cloud Annotationsとは?
Cloud Annotationsはオンラインで利用できるアノテーションツールです。
画像の物体検出と分類のアノテーションが可能です。
バックエンドにIBM CloudのObject StorageとMachine Learningのサービスを利用します。
以下のような構成になります。
画像:https://github.com/cloud-annotations/training
動画をアップロードすることも可能です。この場合には動画は自動的に画像にスライスされ、この画像にアノテーションを行います。
作成したモデルは、CoreML、TensorflowLite、Tensorflow.jsのモデルとしてダウンロード出来ます。
手順概要
- データ作成
- モデル作成
- サンプルアプリケーション実行
1. データ作成
今回は動画を学習データとして使います。
任意の方法で検出対象物が写った動画を作成します。
ここではQuickTime Playerを使って動画を作成します。
QuickTime Playerを起動して、「ファイル」→「新規ムービー収録」で撮影を開始します。
20-30秒程度撮影を行います。
「ファイル」→「書き出す」→「480p」で書き出します。
2. 物体検出モデル作成
2-1. Object StorageとMachine Learningのインスタンスを作成
https://www.ibm.com/cloud にログインして、Object StorageとMachine Learningのインスタンスを作成します。
Lite(無料)プランのインスタンスで大丈夫です。
2-2. Cloud Annotationsにログイン
ブラウザーで https://cloud.annotations.ai/ を開いて、右上の「Log in」ボタンからCloud Annotationsにログインします。
ログイン後、以下の画面の右上のリストでデータを格納するObject Storageのインスタンスを選択します。
「Start a new project」ボタンを押してデータを格納するBucketを作成します。
任意のバケット名をつけて「Confirm」ボタンを押します。ここでは「tsota-megane」としています。
Annotation typeの選択では、「Localization」(ペンギンが3匹いる方)を選択して、「Confirm」ボタンを押します。
2-3. 動画のアップロード
「File」→「Upload media」から準備した動画をアップロードします。
動画のアップロードが終わると動画がスライスされ以下のような画面になります。
2-4. アノテーション
左上の「Untitled Label」となっている部分をクリックして、任意のラベル名に変更します。ここでは「megane」としています。
アノテーションをしていきます。アノテーションが完了したら「Train model」ボタンを押します。
2-5. モデル作成
IBM CloudのMachine Learningのインスタンスが選択されていることを確認し、「Train」ボタンを押します。
ステータスが「Complete」になると完了です。今回は15分ぐらいで完了しました。
「Download model」ボタンを押すとModelをダウンロードできます。
ダウンロードしたファイルには、TensorFlow Lite、CoreML、TensorFlow.jsのモデルが含まれています。このあとのステップでTensorFlow.jsのモデルを使用します。
3.サンプルアプリケーション実行
3-1. サンプルアプリケーションをダウンロード
以下のリポジトリのコードをダウンロードします。
https://github.com/cloud-annotations/object-detection-react
以下のコマンドを実行します。
$ git clone https://github.com/cloud-annotations/object-detection-react.git
3-2. モデルのコピー
先程ダウンロードしたモデルの中のmodel_webディレクトリを、publicディレクトリの下に配置します。
3-3. アプリケーション起動
以下のコマンドを実行してアプリケーションを起動します。
v8.10.0以上のNode.jsが必要になります。
$ cd object-detection-react
$ npm install
$ npm start
ブラウザーでlocalhost:3000にアクセスして、カメラにアノテーションした物体を写すと検出が行われます。
まとめ
Cloud Annotationsで簡単に画像をアノテーションして物体検出のモデルを作成することが出来ました。また、サンプルアプリケーションを使ってモデルを試すことも出来ました。
参考
URL
https://cloud.annotations.ai/
github
https://github.com/cloud-annotations/training
Document
https://cloud.annotations.ai/docs