人工知能してみる

人工知能の中の人が機械学習とか統計とかAI的なことを書き連ねます

Microsoft Azure のCustom Visionが簡単すぎる

こんにちはGrahamianです。 今日はMicrosoftの提供している機械学習系サービスの一つであるCustom Visionを紹介します。

Custom Vision - Home

要約すると

Custom Visionは素人でもマウスでぽちぽちするだけでもたった5分で画像分類のAPIを作れてしまう!!

f:id:Grahamian:20181103180147p:plain

課題

今回の課題はVTuberの識別です。 理由は画像が集めやすかったからなのと最近になってハマったからです。
さて、今回はそんなVTuberの顔を識別する分類機を作ってみましょう。

データの準備

まずはデータの準備ですね。
今回はキズナアイ輝夜月、電脳少女シロを対象としました。選定理由は単純に好みです。
適当に画像検索して良さそうな画像をそれぞれ15枚くらい準備しました。
普通に画像の分類をやるならば最低でもそれぞれ100枚くらいはないとツライのですが、今回は普通より全然少ない枚数です。
本当は画像のノイズを取り除いたりする必要があるのですが、そこらへんはあえてしないで放り込んでみます。
字幕とか背景とか写ったままですし、体の位置も画像によってバラバラです。

f:id:Grahamian:20181103183505p:plain

Azure Custom Visionの準備

まずはAzureへの登録です。
Custom Vision自体は無料である程度使うことが可能です。確か料金がかかるときは注意してくれるはずです。
Azureのアカウントを作成したらCustom Visionを開きましょう。
Custom Visionを開いたらまずはプロジェクトを作成します。
(画像では既に作成されたプロジェクトが見えてます。シロちゃんマジ天使)

f:id:Grahamian:20181103183715p:plain

名前はなんでも良いですが今回はClassify_VTuberとしておきます。
Project Typeは画像の分類なので “Classification“ を、Classification Typeは今回は3人のVTuberを分類するので "Multilabel" です。
Domainはlandmarkやfoodなどが選べて適したものを選ぶと精度があがります。
今回はどれにも当てはまらないので "general" です。
設定できたらCreate Projectでプロジェクトを作成します。

f:id:Grahamian:20181103180158p:plain

画像アップロード

お次はさっそく画像をアップロードしていきましょう。
Add imagesからアップロードしたい画像を選んでアップロードします。
このとき同じタグの画像だけをアップロードすると一気にタグがつけられるのでタグ付けが楽です。
学習データの準備はこれだけです。
上述したように背景や字幕の削除、顔位置の調整のような前処理はしていません。

f:id:Grahamian:20181103183157p:plain

学習

画像をアップロードしてタグをつけたらあとは学習を回すだけです。
これも右上にあるTrainをポチッと押すだけで開始してくれます。
今回は学習データが数十枚なので2, 3分で終わります。
学習が終わると学習機はもう完成です。
学習データにおける精度(PrecisionとRecall)も同時に表示してくれます。
若干Recallが低いですが学習データが少ない割には高精度といえるでしょう。
たぶん内部では転移学習などを使って少数データでも動作するようになっているのだと思います。 改善するなら学習データを増やして100枚ずつくらいにするのが手っ取り早いでしょう。

f:id:Grahamian:20181103180155p:plain

Quick Test

さっそくできた学習機のテストをしてみましょう。
手元の画像で簡易的にテストができるQuick Testという機能が実装されています。
細かいところに気が利いていて最近のMicrosoftさんマジ良い。
ということで、学習に使っていない画像でサクッとテストしてみます。
ローカルにある画像をアップロードすると自動でテストされてTagごとのProbabilityが表示されます。
labelがsiroのProbabilityが90.9%ということで実際にちゃんと識別できていることがわかります。

f:id:Grahamian:20181103180150p:plain

Prediction URLをクリックすることで学習した結果はそのままAPIとして使用することが可能です。
ここらへんは他の記事に譲りますが、マウスでぽちぽちするだけでAPIにできるのは便利。

まとめると

Azure Custom Visionはマウスでぽちぽちするだけで画像のアップロードからAPI化までできてしまいました。
学習データの前処理も不要で画像処理に詳しくなくても簡単に分類器を作成することができてしまいます。
画像収集の時間を除けばアップロードしてタグつけて学習するだけなので5分もあれば完了です。
アイディアさえあればもっと面白いことができそうです。みなさまもよければ試してみてください。