Labellioとは?

Labellioは、プログラミングや画像認識の知識がなくても、自分オリジナルの画像認識モデルを数分で作成できるWebサービスです。自分のアイデアが画像認識で実現可能かという概念実証(POC)を行うためのサービスです。

画像認識においては、教師画像と学習のパラメータの試行錯誤を繰り返すことが大切です。 Labellioは、それらの試行錯誤を簡単に行うことができます。 また、精度をさらに向上させたい時、困った時にはチャットを通じて専門家とQ&Aを行えます。

チュートリアル

ここでは、Labellioで自分オリジナルの画像認識モデルを作る方法をご紹介します。

ログイン

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

Login

データセットの一覧

画像認識モデルを作成するためには、教師データとして、画像とラベルが紐付いた、ラベル付き画像が必要です。 データセットとは、このラベル付き画像の集まりです。 このページでは、作成したデータセットの一覧を見ることができます。Create Datasetボタンをクリックすると、新しいデータセットを作成する画面に遷移します。

My Datasets

データセットの作成

このページでは、データセットを作成することができます。Nameにデータセットの名前を入力します。+Add Dataボタンをクリックすることで、データセットにラベル付き画像を追加することができます。最後に、Createボタンをクリックすることで、データセットの作成を完了します。

Create Dataset

データセットにラベル付き画像を追加する方法

下記4つの方法でラベル付き画像を追加できます。

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

TSVファイルのアップロード

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

画像検索

画像検索エンジンに検索キーワードを入力する事でラベル付き画像を追加できます。 まず、Sourceで検索エンジンを選択します。選択できる検索エンジンはBingFlickrです。

次に、Labelsボックスに検索キーワードを入力します。タブ、カンマ、エンターキーで検索キーワードを追加できます。検索キーワードが画像のラベルとして使用されますが、検索キーワードとラベルを別にしたい場合は、検索キーワード:ラベルのように:(コロン)で区切ります。

Advanced Optionsでは、検索キーワード当たりに取得される画像を指定できます。デフォルトでは検索キーワードあたり50枚の画像を取得しますが、100枚まで増やすことが出来ます。

最後に、Addボタンをクリックするとラベル付き画像をデータセットに追加することができます。

Image Search

既存のデータセットを利用

作成済みのデータセットを利用することでラベル付き画像を追加できます。

作成済みのデータセットを選択し、Addボタンをクリックすることで追加することができます。

Add Data Mydatasets

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

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

データセットのダウンロード

データセットの詳細画面においてDownload Datasetボタンをクリックする事で、データセットをtarファイルとしてダウンロードする事ができます。LabelにASCII文字以外を使用されている場合は、7-Zipのように、UTF-8対応のプログラムで解凍して下さい。

モデルパラメータ一覧

画像認識モデル作成において、学習のパラメータを変更して試行錯誤する事が大切です。しかし、パラメーターの数が多いため、毎回全てのパラメーターを設定するのは大変です。そこで、学習のパラメーターを雛形として保存する機能をLabellioでは用意しています。この学習のパラメーターの雛形をモデルパラメーターと呼びます。尚、あくまで学習のパラメーターを設定を簡単にするための便利ツールであるため、モデルパラメーターを作成するのは必須ではありません(デフォルトの値が用意されています。また、モデル毎に全てのパラメーターを直接手入力する事もできます)。

このページでは、作成したモデルパラメータの一覧を見ることができます。Create Model Parameterボタンをクリックすると、新しいモデルパラメータを作成する画面に遷移します。

My Model Parameter

モデルパラメータの作成

このページでは、学習パラメータをカスタマイズすることができます。Nameにモデルパラメータの名前を入力してください。各パラメータを入力し、Createボタンをクリックすることで、モデルパラメータの作成を完了します。

Create Model Parameter

Network

Pretrained Model

Iteration

Batch Size

Solver Type

Learning Rate

Learning Rate Policy

Fixed
Polynomial Decay
Exponential Decay

モデル一覧

このページでは、作成中及び作成完了後のモデル一覧を見ることができます。Create Modelボタンをクリックすると、新しいモデルを作成することができます。

My Models

モデルの作成

このページでは、下記手順で学習を開始できます。 1. Nameにモデルの名前は、入力します。 1. Select Datasetボタンをクリックし、データセットを選択できます。尚、モデルを作成するためにラベルが2つ以上必要なため、1つのラベルしかないデータセットはここで表示されません。 1. Select Model Parameterボタンをクリックし、モデルパラメータを選択できます。 * ただし、モデルパラメータは選択しなくてもデフォルトのモデルパラメータが初期で入力されていますので、必ずしも選択する必要はありません。 1. Createボタンをクリックし、モデルの作成を開始します。

モデルは1000 Iterationごとに作成され、作成されたモデルは、ダウンロード(フリープランとライトプランを除く)やテストが可能となります。

Create Model

モデルのダウンロード

Detailタブからモデルをダウンロードできます。 Iteration数を選択し、Download Modelボタンをクリックすると、該当のIteration数で作成されたモデルをダウンロードすることができます。 ※この機能は、スタンダードプランとプレミアムプランの機能となります。

Download Model

モデルの利用方法

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

labellio_classifyのセットアップ

labellio_classifyは、GitHubのモジュールをダウンロードすることで利用可能です。

labellio_classifyの利用

labellio_classifyは、labellioからダウンロードしたモデルを評価するためのツールです。

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

$ ls images
label01.jpg  label02.jpg  label03.jpg  label04.jpg  label05.jpg

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

$ ls model-(iteration数)
model.ckpt-(iteration数).data-00000-of-00001 model.ckpt-(iteration数).index model.ckpt-(iteration数).meta label.txt checkpoint

以下のように、モデルのディレクトリ名・画像のディレクトリ名・モデルのネットワーク名(mobilenet_v1、inception_v4 もしくは resnet_v2_152)を指定し、classify.pyを起動します。

$ python classify.py model_directory image_directory network_name
...
images/label01.jpg  {('label01', 0.81), ('label99', 0.1), ('label02', 0.05), ('label98', 0.03), ('label03', 0.01)}
images/label02.jpg  {('label02', 0.93), ('label01', 0.05), ('label03', 0.01), ('label99', 0.0), ('label04', 0.0)}
images/label03.jpg  {('label03', 0.74), ('label02', 0.2), ('label04', 0.02), ('label01', 0.02), ('label05": 0.01)}
images/label04.jpg  {('label04', 0.61), ('label03', 0.22), ('label05', 0.1), ('label02', 0.01), ('label06": 0.01)}
images/label05.jpg  {('label05', 0.56), ('label06', 0.2), ('label04', 0.05), ('label07', 0.03), ('label03": 0.03)}

モデルのテスト

Testタブでは、モデルが画像をどのように分類するのかを確認できます。

Test Model

Iteration数を選択し、Add Test Dataボタンをクリックするとポップアップが出て、Upload ImageUpload ZIPUpload TSVMy Datasetsの4つの方法からテスト画像を指定する事ができます。尚、 * 画像についてはデータセットの作成時と同様の仕様が適用されます。 * Upload Imageでは、ラベルのないテスト画像を指定します。他の3つの方法ではラベル付き画像をテストし、精度評価を行います。

テスト画像を指定すると、該当のIteration数のモデルで各テスト画像の分類を行い、結果が表示されます。 Download Resultボタンをクリックすると、分類結果をファイルとしてダウンロードすることができます。

Summaryでは、Top-1 AccuracyとTop-5 Accuracyが表示されます。Top-1 Accuracyは、テスト画像のラベル名と、モデルの分類結果の1番目のラベル名が一致している割合です。Top-5 Accuracyは、テスト画像のラベル名が、モデルの分類結果の5番目までのラベル名に入っている割合です。

Confusion Matrixは、テスト画像のラベル(行)がどのラベル(列)に分類されたかの総数をマトリックスで表したものです。

中間層の可視化

モデルのテストで得られた分類結果にあるDeep Visualizationボタンをクリックすると、モデルがその画像を分類したときのモデルの各層の重みを確かめる(中間層を可視化する)ことができます。カラーマップは、jetを利用しています。

Deep Visualization

プランの内容

プランの内容は以下のとおりです。課金の詳細については利用規約を参照下さい。

項目 フリー ライト スタンダード プレミアム
モデル作成数 10 /月 10 /月 30 /月 制限なし
モデル保存総数 5 20 50 100
画像合計容量 1GB 10GB 50GB 100GB
最大Iteration 1,000 1,000 10,000 500,000
ネットワーク mobilenet_v1 mobilenet_v1 resnet_v2_152 inception_v4 mobilenet_v1 resnet_v2_152 inception_v4 mobilenet_v1 resnet_v2_152 inception_v4
モデルダウンロード回数 不可 不可 100 /月 100 /月
APIリクエスト 1,000 /月 5,000 /月 10,000 /月 100,000 /月

モデルの学習に関する免責事項

チャットサポート

APIの利用方法

APIキーの取得

モデルの詳細画面において、API KEYボタンをクリックすると、API鍵を作成するためのポップアップが表示されます。CreateボタンでAPI鍵を作成でき、DeleteボタンでAPI鍵を削除し、Recreateボタンで新しいAPI鍵を発行する事ができます。

get-api-key

APIを使った画像分類

https://www.labell.io/api/v1/predict/ に以下のようにパラメータを指定し、リクエストすると、json形式のレスポンスパラメータを返します。

ヘッダ情報

パラメータ 必須 概要
Content-Type multipart/form-dataを指定
Content-Length body部のサイズ

リクエストパラメータ

パラメータ 必須 概要
key string モデルごとに発行されるAPIキー
iteration integer テストで使用するモデルのIteration数
file binary テスト対象顔画像(jpgまたはpng)
url string テスト対象画像のURL

※ fileとurlはどちらか片方のみが必須となります。両方指定された場合はfileが優先となります。  

分類結果のレスポンスパラメータ

パラメータ 説明
name string テストにしようしたファイル名
result string モデルテストの結果で、 "success":テスト成功 "Timeout Error":制限時間内に処理が完了しなかった "Argument Error":引数に問題がある "Server Error":サーバー内でエラー発生 "Over Limit":利用可能回数を越えた
scores string テスト結果のスコアを配列にしたもので、"ラベル名":"Score"がラベルの数だけ格納されています

レスポンス例

{
    "name":"001.jpeg",
    "result":"Success",
    "scores":[
        {
            "label01":0.81,
            "label02":0.10,
            "label03":0.05,
            "label04":0.03,
            "label05":0.01
        }
    ]
}