Microsoft のCustom Vision を使って遊んでみると想像以上に凄そうなサービスだった

#はじめに
Microsoftの開発者向けイベントの de:code 2017に行ってきました。
最近の目立った技術は、ほぼすべて海外産なので、情報は英語で仕入れるしかなく、
日本語で最新の技術を学べるこの機会は、すごくうれしいです。

印象的なのはなんといっても、エバンジェリストの西脇さんとメディアアーティストの落合さんのセッションで、**私の息子の写真がでてきた**ことかな。

ドキッとしました。
[この記事](http://qiita.com/tomohiku/items/2969db0c13582c5bc4b3)のこの写真。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/74428/9ae1f5e1-d34b-4c40-f77d-8a4aaab14e21.png)

西脇さん、
使ってくださってありがとうございます。m(_ _)m

そのセッションの中でも紹介されていたCustom Visionを早速試しみましたので、
その結果を書いてみます。

待ちきれず、先に言ってしまいますが、
**この技術、すごすぎます！**
Microsoftは、なんでこの機能をもっと目立つように発表ないんだろうと疑問を感じます。
人の生活にめちゃめちゃ強いインパクトを与えるプロダクトだと思います。

これがあれば**画像からサーチできるWikipedia**が作れるようになるはず！
今ままではmicrosoftなどの一企業が単独でデータを集めていたので限界がありましたが、
このCustom Visionを使うことで個人がその頭脳（データモデル）を作ることができ、
Wikipediaのようにみんなで持ち寄れば、かなり細やかな英知を集めることができると思います。
魚や植物の種類の網羅は、近いうちに達成されることは間違いないんじゃないかな。
早くMicrosoftはWikipediaのように、みんなでモデルをシェアできる場を作るべきでしょっ。
共有の場を作って、モデルが集まってきたらこの領域はMicrosoftの独壇場になるので、microsoftにもメリット大きいだろうし。

#Custom Vision でできそうなこと
①王道の画像から検索の使い道
MicrosoftのFuture Visionの動画にでてたようなカメラを向けるとその場で植物の名前と説明が取り出せる機能は、まず流行ると思います。
https://www.youtube.com/watch?v=ozLaklIFWUI
コンビニの商品とかでも可能なので、バーコードから画像認識に置き換わっていくでしょう。
人が外部から情報を得る方法は、「視覚からの映像」「文字」「聴覚からの音声」の３つがほとんどなので、
人が生活の中で疑問に感じるほぼ全てを検索して調べることができるようになることになります。

②人の好みをモデル化する使い道
人が見た目に対してどう考えているのかをモデル化し共有することができる。例えば、数百人くらいの異性の顔をみて好き嫌いを判別させれば、その人の顔の好みが判別できるモデルができる（はず）。その「異性の顔の好き嫌いモデル」を結婚相談所に渡せば、マッチング成功率が飛躍的に上がるだろう。
最初はプライバシーを気にするかもですが、すぐに軽く誰かに自分の好みモデルを渡す時代になるんだろうなって思う。
服の好みとかをモデル化して服屋に渡してしまえば、自分の好みに合った服をかなりの精度で勧めてもらえる。
見た目が大事な商売では普及しそう。服屋とかペットショップとか美容室とか。


# 今回Custom Visionで試してみたこと
小学生の間で流行りまくってるベイブレードっていうベイゴマの超進化版の駒があります。
子供達のテンションを悪戯にくすぐるアニメも現在放送されており、今すごい人気となっています。
なのでウチの小2の息子といる時は、ほぼベイブレードに付き合わされている今日この頃です。

そのベイブレード生活の中で出てきた課題があって、それを解決するために
この人類の英知を使ってみることにしました。

課題はベイブレードは種類が多く、また駒の名前が難しい名前過ぎて覚えれないということ。
「ドレインファブニル」「ファングフェンリル」とかそんなカタカナで長い名前を覚えられるわけないじゃん！
ってなわけでスマフォを向ければ、名前がでてほしいわけであります。

そして子供と一緒に、やってみました。

# 学習手順
このサービスは画像をタグと共に登録するだけで、終わりです。１つのタグ毎に5枚以上必要です。たった5枚で良くなるようプリ学習できているいうのは驚かされました。

①ベイブレードを床に置き、トップが正面を向いてる写真を撮る
![image.png](https://qiita-image-store.s3.amazonaws.com/0/74428/15563f09-97b3-1c31-ceb6-0d279608b6b4.png)
②①と同じ場所で、トップが向こうを向いてる写真を撮る
![image.png](https://qiita-image-store.s3.amazonaws.com/0/74428/35734935-0181-46e1-1ef5-b8d69a67c5cd.png)
③明るさの違う場所で①と②と同じ条件で写真を撮る
※写真は省略

④回っている状態の写真を撮る
![image.png](https://qiita-image-store.s3.amazonaws.com/0/74428/d11e12c9-03b5-a4ca-78f4-ca6a2331f9f7.png)
⑤トップが分かりやすい写真を撮る
![image.png](https://qiita-image-store.s3.amazonaws.com/0/74428/731a2631-22c1-539c-2293-de85305d9a80.png)
⑥撮った写真を、駒の名前をタグとしてサービスに登録する
![image.png](https://qiita-image-store.s3.amazonaws.com/0/74428/1c3adb10-ab16-8274-4158-56dd82e3e5c9.png)

⑦駒６つ分、上記の手順を繰り返す

＃テスト手順
①テスト用の写真を撮る
その駒が写真のメインとして写るように撮る。状態はいろいろ。
②サービスのクイックテスト機能でテスト

# テスト結果

・１つ目
![image.png](https://qiita-image-store.s3.amazonaws.com/0/74428/be1b4e6c-701a-a0da-b593-e12bb1d60ba7.png)

正解！
まぁ、近い写真があるからね。

これに似た写真を７種類とも試しましたが、完全正解でした。

・２つ目
![image.png](https://qiita-image-store.s3.amazonaws.com/0/74428/f6df9002-427d-275c-ba25-7bb3715e4a11.png)

正解。
おおっ、これは人から見ても迷いそうだけど、合ってた。

他の回っている駒の写真たちもOKでした。


結果として自分で撮った写真は**100パーセント正解**でした。


#追加テスト
自分で撮った写真ではなく、インターネットから取ってきた写真ではどうなのかテストする

・１つ目
![image.png](https://qiita-image-store.s3.amazonaws.com/0/74428/863db2e1-9878-0f96-d996-ede579168d68.png)

あれっ？
正解しそうな写真なのにダメだ、、、

・２つ目
![image.png](https://qiita-image-store.s3.amazonaws.com/0/74428/eea36eb8-cd7c-3509-9847-45d7feb5b6e3.png)

これもNG。

・３つ目
![image.png](https://qiita-image-store.s3.amazonaws.com/0/74428/377b0adb-a39c-e973-7509-a15301267208.png)
これもダメだな。

・４つ目
![image.png](https://qiita-image-store.s3.amazonaws.com/0/74428/998124f0-52c3-7c7f-c15a-35924ddad2ab.png)
これはOKだ！

・５つ目
![image.png](https://qiita-image-store.s3.amazonaws.com/0/74428/babd4ddf-f93b-9a59-a69f-8b2098e1d6fb.png)
これもOK。


いまいちOKな写真とダメな写真がわからない。
たぶん、写真加工ソフトで加工されてそうな写真は、機械視点だと異常に見えてるのかな。

#結果の見解
- 同じカメラで撮った場合は、かなり精度が高い。この使い方だと実用レベルだと思われる。
例えば、社内では全員iPhoneカメラを使うというルールにすれば、精度はそこそこ高く使えそう。
- インターネットから取得した写真では、正解できなかった時の理由が人目ではわからないので、もう少し分析しないといけない。ただ言えることとしては、写真によっては人と違う感覚値になることがあり、注意しないといけないということ。
- 人の感覚値と違う結果になる理由が、もし写真加工されていることが原因であれば、それを検知する仕組みなどの整備も合わせて進めていけばが、さらに信頼度があがる

#終わりに
タカラトミーさん!
今回私の作ったようなベイブレードの判別アプリって、たぶん子供に受けそうなので作ってください。ただ単に名前を出すだけじゃなくて、カメラで写真を撮るとその駒ごとの違ったエフェクトが付与された写真に加工してくれれば、めっちゃ盛り上がりそうな気がしますので、是非お願いします。

Facebookが前回のF8で発表した「リアルタイムに動画エフェクトを付与できる」機能のような技術が進んでくれば、スマフォのカメラを駒に向けるとリアルタイムでエフェクトが付与された映像を見れるようになるはず。
↓イメージはこんな感じ。iPadごしに駒をみると、駒の後ろに光る残像がでるとかのエフェクトがでる
![image.png](https://qiita-image-store.s3.amazonaws.com/0/74428/5426ec83-a209-04c2-7802-c55ae4717c4e.png)

これを実現するための技術は、今どこまで進んでいるのかな。
結構いい線まで今の技術で近づけそうな気がするので、また調べてみようと思います。



以上、ちょっと高度な子供との遊びでした