Labellioとは?

Labellioはプログラミングせずに自分だけの画像分類器を数分で作ることができるWebサービスです。画像認識においては対象をよく表す教師画像を用意することが大事ですが、Labellioはそのようなデータ整理を簡単にしてくれます。教師画像が出来上がれば自分のシステムで利用可能な分類器が手に入ります。

チュートリアル

ここでは自分の分類モデルを作るフローをご紹介します。

ログイン

LabellioはGitHubとGoogleのOAuthでのサインインできます。ログインページに行ってどちらかのボタンをクリックするとOAuthによる認証が完了します。

Login

モデル一覧

このページでは作成後のモデルを見ることができます。Create Modelボタンを押して新しい分類モデルを作成します。

Create Model

モデルを作成する

ここから自分が認識させたいものをLabellioに教え込みます。モデル名をNameのテキストボックスに入力し、Add dataボタンをクリックします。

Labellioは3種類の方法で教師データ入力できます。

Add Data

ZIPファイルアップロード

教師画像を含むZIPファイルをアップロードできます。次の点に注意してください。

ZIPファイル内のフォルダ構造は下記のようなものになります。

dog/dog_01.jpg
   /dog_02.jpg
   /dog_03.jpg
   /mydog.png
cat/cat_01.jpg
   /cat_02.jpg
   /cat_03.jpg
   /yourcat.png
bird/bird_01.jpg
    /bird_02.jpg
    /bird_03.jpg
unlabeled_01.jpg
unlabeled_02.jpg
unlabeled_03.jpg

TSVファイルアップロード

画像のURLを列挙したTSVファイルをアップロードすることができます。下記の仕様が適用されます。

TSVファイルの内容は下記のようになります。

dog<tab>http://url.to/image
dog<tab>http://url.to/image
dog<tab>http://url.to/image
cat<tab>http://url.to/image
cat<tab>http://url.to/image
cat<tab>http://url.to/image
http://url.to/unlabeled_image
http://url.to/unlabeled_image
http://url.to/unlabeled_image

画像検索

2種類の画像検索が利用可能です。

検索エンジンを選択してLabelsボックスに検索キーワードを入力してください。タブ、カンマ、エンターキーでタブを追加できます。取得される画像はデフォルトでキーワードにつき50枚で、100枚まで増やすことが出来ます。キーワードは取得された画像のラベルとして利用されます。

画像フォーマットについて

画像のフォーマットについては下記の条件が適用されます。

ラベル付けを始める

学習データが取得されたら、Continueボタンをクリックします。ラベル付けの画面が起動します。

Start Labelling

最初にデータに付与されているラベルが表示されます。もし画像をラベル付けしたい場合は、ラベルを削除し再入力してください。ラベル付けされていないデータがあれば、ラベル付けの画面に入ります。

In Labelling

各画像をクリック又はドラッグして手動でラベル付けしていきます。現在のラベル名が上段領域の左上に表示されます。現在のラベルが付けられるべき画像を上段領域に、それ以外を下段領域に移動するようにしてください。画像が整理されたら、All Okボタンをクリックします。ラベル付けをしていくと、Labellioはどのようにラベル付けすべきかを学んでいきます。

学習を開始する

すべての画像をラベル付けしたら、最終的な学習プロセスがスタートします。この処理は数分かかります。なおこの学習プロセスはブラウザを閉じても進みますので、特に学習プロセスを表示し続ける必要はありません。

モデルの中間層を可視化する

Coming Soon ...

モデルを試す

学習が完了したら、Test Modelタブで分類器がどのように振る舞うかを確かめることができます。

Test Model

画像ファイルをアップロードするかURLを入力することができます。画像の扱いは上記のフォーマットの仕様が適用されます。

モデルをダウンロードする

DetailタブのDownload Modelボタンをクリックすると、作成した分類モデルをダウンロードすることができます。2種類のファイルが表示されます。

これらのリンクは表示から1時間有効です。

上級者向けトピック

モデルファイルフォーマット

LabellioからエクスポートされるモデルファイルはオープンソースのCaffeで読み込むことができます。

モデルファイルの内容は以下のとおりです。

ファイル名 説明
labellio.json 設定ファイル
caffemodel.binaryproto caffeモデルファイル
mean.binaryproto meanファイル
deploy.prototxt caffeネットワーク定義ファイル
labels.json ラベル情報

Caffe modelファイルとmeanファイルはCaffeに読み込ませるものです。

Labellio CLI

Labellioで学習したモデルは、Labellio CLIを使うことでユーザーの皆様が独自に利用することができます。

Labellio CLIのセットアップ

Labellio CLIは、オープンソース・ソフトウェアとして公開している他、 pipモジュールやDockerイメージ、AMIでも利用可能です。

Labellio CLIの利用

Labellio CLIは、ダウンロードモデルを使う識別機能を提供します。

あらかじめ、識別したい画像をひとつのディレクトリ内に保存しておきます。

$ ls images
alpaca1.jpg  alpaca2.jpg  sheep1.jpg  sheep2.jpg

ダウンロードしたモデルを展開します。

$ ls model
caffemodel.binaryproto  labellio.json  mean.binaryproto
deploy.prototxt         labels.json

labellio_cliコマンドを起動します。

$ labellio_classify model images
...
images/sheep2.jpg   sheep   [ 0.02713127  0.97286868]
images/sheep1.jpg   sheep   [  7.87437428e-04   9.99212503e-01]
images/alpaca1.jpg  alpaca  [ 0.99114448  0.00885548]
images/alpaca2.jpg  sheep   [ 0.44422832  0.55577165]

代表的なチャートパターンの解説

通常のケース

Normal

loss_0及びloss_testが低く、精度が高いケース

Easy

既にベースモデルで習得済みのクラスである場合等。

loss_0が下がる一方でloss_testが上がるケース

Over-training

過学習と呼ばれ、トレーニングデータに適応しすぎて汎用性が失われてしまっているケースです。トレーニングデータの数を増やすことで解決する可能性があります。