2017年9月15日金曜日

MAGELLAN BLOCKSで画像分類を使ってみる

ぼくはカイトボードというスポーツをやっている。

カイトボードというのは、空に翼のようなカイトを揚げ、揚力で体を引っ張ってもらいながら海の上を走るスポーツだ。


このカイトボードには、色々とスタイルがあり、ぼくがはまっているのはサーフボードに乗って波乗りをしながら乗るカイトサーフィンというスタイル。


これは普通にサーフボードとカイトの組み合わせなので、はたから見たらサーフィンのようにも見える。

先日、ぼくが敬愛するO本夫婦が、ヨットを見て「最首さん、あそこでカイトやってるのかな。」と言ってたらしく、偶然にもその側でカイトやっていたので、色々と間違っているのだけれど結果的には正解だったという出来事があった。

そしてO本夫婦は、未だにヨットとカイトの区別もつかないまま、最近赤ちゃんが産まれてしまったのだ。色んな意味でおめでたいんだけど、でも産まれてきた子供のためにも、ここは正しい知識を伝えなくちゃと思い、最近リリースしたばかりのMAGELLAN BLOCKS画像分類モデルを使って、カイトサーフィンとサーフィンの違いを学習させてみた。(カイトサーフィンとヨットを間違える人は、論外ともいえるし、学習としては簡単すぎるので)

まずBLOCKSのボード作成画面からMLボードを選択。


新しく画像分類というのがあるので、それを選ぶ。


ボード名を設定してクリックしていくと、画像分類のボードが作成される。


こんな感じ。これで準備完了。

で、これから学習をさせていくので、学習に使う画像を準備。
画像ファイルは、Google Cloud Storageにフォルダを作って置く。

今回は、sportsというフォルダを作って、その下に「Kitesurfing」というフォルダと「Surfing」というフォルダを準備。


カイトサーフィンの画像は、Kitesurfingというフォルダの中に入れて、サーフィンの画像は、Surfingフォルダの中にいれる。それだけ。

そこまで準備ができたら、BLOCKS画面からトレーニング開始ボタンを押して、画像を入れたフォルダを指定する。


今回の例では、sportsフォルダ。この下にあるフォルダ名が分類をするときの分類名になる。

で、開始ボタンを押すと学習がはじまる。
今回は色々と探してきた画像を10枚ずつ入れてみたんだけど、学習時間は6分ほど。

学習が完了したら、適用ボタンを押すとこれで利用できるようになる。

では、フローを作ってみよう。

評価に使う画像は、別のフォルダに入れておく。
今回は、sports_evaluationというフォルダに何枚か入れた。

作るフローは、こんな感じ。


2番目のブロックは、最近追加されたブロック。なかなか便利なブロックで、Google Cloud Storageのフォルダ内ファイルの一覧を取得して変数化してくれる。

なので、sports_evaluationというフォルダに何枚か画像を入れたので、ブロックの設定は以下のようになる。

設定するのは、「ファイルGCS URL」というところ。

sports_evaluation/*.jpg

このように設定すれば、フォルダ内の.jpgで終わるファイル一覧を取得し、内部変数に設定してくれる。

このブロックに、機械学習グループの中から「MLボード予測(オンライン)」を選んで、さきほど学習させたMLボードを選択する。


これで完成。

早速判断させてみる。


この画像。


99.8%の確率でカイトサーフィンだと言ってます。
サーフィンの確率は、0.1%。

こんな感じで、商品画像だったり、色んなものを覚えこませるととても便利に使える。
微妙な違いを理解させるには、与える画像を増やしていく。

でも、BLOCKSは、すでにかなりの数の画像を見せた上で、どのように特徴をつかむべきかを学習させてある。

だから少ない画像でも。そして学習も極めて高速に行える。

ぜひ、試しにつかってみて。便利だし、簡単だから。

0 件のコメント:

コメントを投稿