はじめに
WatsonのVisual Recognition(VR)は今までもいくつか投稿してきた。
- Watson vs Google!? Visual RecognitionとTensorFlowでMNISTをやってみた
- Visual RecognitionとTensorFlowをもっとちゃんと比べてみた
- WatsonのVisual RecognitionがV3になりGAされたので早速試してみた
で、半年ほど前に「コレをVRにかけたらどうなるんだろう?」と思って試してみたネタがあったので、今回はそれを紹介してみたい。
(11/24追記)なお、VR V3だと結果スコアは違ったものとなった。V2とV3はそのまままるっと移行できるわけではなさそうだ。そのあたりのまとめはこちらを見てほしい。
Visual Recognition V3利用時の考慮事項~フライドチキンと犬の再評価からわかったこと~
完全に一致!
こちらは、今年の3月頃にネットを騒がしたツイッターの投稿のまとめ。
元ネタはこちら。@teenybiscuit
そして思った。
これは見分けつかねーわ。
人間でもちょっと迷うこの写真、Watsonくんには見分けられるのだろうか??
画像集め
VRを試すにはまず画像を集めないといけない。というか、画像解析系はどれもトレーニング用の画像が必要だ。今回はGoogle先生の力を借りて画像を集めるのだが、簡単に集めるツールとしてこういうものを使ってみた。
ImageSpiderというアプリで、キーワードでGoogle画像検索を行い、まとめてダウンロードしてくれる、というスグレモノ。
これで「Fried Chicken」「Labradoodle」をダウンロードした結果、集まった画像はこんな感じ。
※一度集めた画像から目検で「これはあきらかに違いすぎる」というのは削除しています。また、転送サイズの制限があるためファイルサイズが大きい画像は削除あるいはサイズ縮小を行っています。
フライドチキンはまだわかるけど、ラブラドゥードルはこれでいいのか?という気がするけど、あえてそういう画像のまま試してみる。
テスト(評価)
テストは例のツイッター画像を、それぞれ1つずつに切り取ってテストする。
VRは画像をzipにして一気にテストが可能なので、切り取った画像をチキンと犬に分けてtest_chichen.zip、test_labradoodle.zipにする。
以下の16枚がテスト用の画像だ。
気になる結果は・・・?
これらについてVRで判定した結果がコレだ。数字はVRによる確信度を表している。
(※11/22追記:それぞれの正解に対する確信度を0~1の数字で表しています。つまりほとんど正解しているということです。)
すげー!VRさん、マジパねぇっス!!
ここまで判別できるとは思っていなかったけど、これはすごい!
おわりに
試してみて思ったのは、VRすごい。画像認識面白い。なんか色々ひらめくわwww ってな感じ。大して準備しなくても、APIを叩けば簡単に画像認識ができてしまうところが、日曜プログラマーにはGood。
TensorFlowなどの機械学習ライブラリーは、画像を読み込んで行列にして・・・というのを自分で頑張ってコーディングしないといけない。その分きめ細やかな制御ができるのはメリットだけど、結局のところ「細かな制御」と「簡単に使える」というのはトレードオフ。どっちが自分に(実案件であれば実現したい機能に)合っているかで選ぶのがよさそう。
これからしばらくはVRとか画像認識が(自分の中で)ホットな話題になると確信。