12
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Cloud Annotationsを使って簡単にカスタム物体検出モデルを作成する

Last updated at Posted at 2020-02-10

はじめに

この記事では、Cloud Annotationsを使って画像のアノテーション、物体検出モデルを作成する手順を紹介します。コーディングすることなく、簡単に物体検出モデルの作成が出来ます。
また、ダウンロードしたモデルを動かすサンプルアプリも提供されており、そのモデルをアプリケーションのディレクトリに配置するだけで試すことができます。
以下はサンプルアプリを動かした時のイメージです。
temp.gif

Cloud Annotationsとは?

Cloud Annotationsはオンラインで利用できるアノテーションツールです。
画像の物体検出と分類のアノテーションが可能です。
バックエンドにIBM CloudのObject StorageとMachine Learningのサービスを利用します。
以下のような構成になります。
image.png
画像:https://github.com/cloud-annotations/training

動画をアップロードすることも可能です。この場合には動画は自動的に画像にスライスされ、この画像にアノテーションを行います。
作成したモデルは、CoreML、TensorflowLite、Tensorflow.jsのモデルとしてダウンロード出来ます。

手順概要

  1. データ作成
  2. モデル作成
  3. サンプルアプリケーション実行

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にログインします。

image.png

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

image.png

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

image.png

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

image.png

2-3. 動画のアップロード

次のような画面が開きます。
image.png

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

動画のアップロードが終わると動画がスライスされ以下のような画面になります。
image.png

2-4. アノテーション

左上の「Untitled Label」となっている部分をクリックして、任意のラベル名に変更します。ここでは「megane」としています。
image.png

アノテーションをしていきます。アノテーションが完了したら「Train model」ボタンを押します。
image.png

2-5. モデル作成

IBM CloudのMachine Learningのインスタンスが選択されていることを確認し、「Train」ボタンを押します。
image.png

学習の様子が表示されます。
image.png

ステータスが「Complete」になると完了です。今回は15分ぐらいで完了しました。
「Download model」ボタンを押すとModelをダウンロードできます。
image.png

ダウンロードしたファイルには、TensorFlow Lite、CoreML、TensorFlow.jsのモデルが含まれています。このあとのステップでTensorFlow.jsのモデルを使用します。
image.png

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ディレクトリの下に配置します。
image.png

3-3. アプリケーション起動

以下のコマンドを実行してアプリケーションを起動します。
v8.10.0以上のNode.jsが必要になります。

$ cd object-detection-react
$ npm install
$ npm start

ブラウザーでlocalhost:3000にアクセスして、カメラにアノテーションした物体を写すと検出が行われます。
temp.gif

まとめ

Cloud Annotationsで簡単に画像をアノテーションして物体検出のモデルを作成することが出来ました。また、サンプルアプリケーションを使ってモデルを試すことも出来ました。

参考

URL
https://cloud.annotations.ai/

github
https://github.com/cloud-annotations/training

Document
https://cloud.annotations.ai/docs

12
5
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
12
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?