2017.06.02

SkyOnDemandからWatson Visual Recognition(物体認識)サービスを使ってみた

  • このエントリーをはてなブックマークに追加
  • follow us in feedly
明けましておめでとうございます。
本年もよろしくお願いいたします。

2016年は十干十二支でいうと丙申ですね!
先日父に「今年は丙申だから、騒がしい年になるぞ!」といわれ
ポカーンときいてましたが、よくよく聞いてみると
丙申は世の中的に革命の年だったり、生まれはエネルギッシュな人が多いと言われているようですね。
縁起がとてもよいので、今年も活発に活動していきたいですね!!

今回はIBM社のPaaS型サービスであるIBM Bluemix で提供されている「Watson」(API)をSkyOnDemandで触ってみたいと思います。

そもそも 、「Watson」とはなんですかワトソン君?
Watsonは自然言語を理解してそれに基づく意思決定を行ってくれます。
もちろん学習もおこなうため、学習を行うほど、 意思決定がより精度が高いものとなっていきます。
この経験を学習を行うことをCognitive Computing(コグニティブ・コンピューティング)というそうです。
人工知能!
有名なのはアメリカのクイズ番組で問題文の文脈を理解し、回答を導き見事優勝したことで有名になりました。
日本では大手の銀行に入社しオペレータ作業を担ったり、日本語の学習にも力いれていますね!

Watson はひとつのサービスではなく17のサービスが提供されています。
自然言語の文章をなげると文章の意味を解析するサービス
その意味から答えを返してくれるサービス
またはその文章やSNS情報から感情や性格分析をしてくれるサービス
また音声から文章に、文章から音声に変換するサービス
 等々・・・
今回はそのサービスからVisual Recognitionというサービスを使ってみたいと思います。

Visual Recognitionとは...

Visual Recognitionとは画像を解析して、どういうシーンの画像なのかを答えてくれます。
このようなサービスを物体認識とよびます。



現在はbeta版なのですがバージョン2につい最近更新され勢いもあります。

公式DEMOを見てみましょう。
車を選択してWatsonが解析します。
結果はRace Carが一番高く認識したという結果がかえりました。
スコアは100に近いほど認識率が大きいということです。
他の結果も関連ですね!
すごいですね!!

例えばサルの画像だったら「Monkey」と返してくれる?

Visual Recognitionを使うために

IBM Bluemixの30日フリートライアルアカウントをここから取得します。
このアカウントは無料のためAPIの使用回数にも制限がありますが、試すには充分な回数です!
 
アカウント取得したらログインしてカタログをクリックし、
Visual Recognition」を選択します。

以下の項目を選択及び入力して、「作成」します。
・スペース (※スペースは事前に作成してください)
・アプリ
・サービス名
・資格情報名
・プラン (※現在はBetaのみ)

作成したアプリは「ダッシュボード」から参照して資格情報取得します。
 下記情報で認証してSkyOnDemandから叩きます。

SkyOnDemandから叩いてみる

今度はSkyOnDemandから叩くための設定をおこないます。
Watson APIはREST APIとなりますのでSkyOnDemandで使用するアダプタは「RESTアダプタ」になります。
シナリオ:好きな画像をVisual Recognitionで解析し、結果を確認してみましょう。

まず分析したい画像をSkyOnDemandのエクスプローラーから任意のフォルダにアップロードしときましょう!

1.グローバルリソースの設定

 ・[ネットワーク]-[REST] 「REST接続設定」 から新規作成します。

・URLにVisual Recognitionの資格情報 URLを設定します。
   ※設定したら接続テストを行って接続成功するか試してください。

2.スクリプト作成
 
 スクリプト作成にはいるのですが、ところでRESTでどこをどのように叩けばいいのでしょう?
 APIのリファレンスを確認してみましょう。
 Visual Recognition トップページから [View Document]-[API Reference]で確認します。
 今回は物体認識のため 【Classify an image】を使用します。
POSTメソッドで以下パラメータを渡せば良さそうですね!
  ●version:バージョン
  ●images_file:画像データ(JPGまたはPNG)
  ※今回は使用しませんがオプションパラメータの
    「classifier_ids」にカテゴリを指定するとカテゴリに対するSCOREを返してくれます。

Ⅰ.RESTアダプタの設定

・ツールパレットよりRESTアダプタの[POST実行]を選択します。

【必須設定 】
必須設定をします。  


項目 説明
入力データ 分析したい画像のパスを渡すためのマッピングアイコンを指定します。
接続先 作成したグローバルリソースを選択してください。
パス メソッドのパスを指定します。
クエリパラメータ versionを指定します。値は現在の最新である「2015-12-02」を指定します。

images_file はマルチパートになりますので次のタブで指定します。

【リクエスト設定 】
リクエスト設定をします。


項目 説明
データ入力元 データ
データ形式 マルチパートフォーム
マルチパートフォーム 設定 images_fileを指定します。種類は ファイル
※入力スキーマでファイルパス渡します。

【レスポンス設定】
レスポンス内容の出力設定をします。


項目 説明
データ出力先 データ
データ形式 JSON
※[JSONファイルを指定して出力スキーマを設定...]にてAPI リファレンスからレスポンス構造を取得して出力スキーマに設定してください。

【認証設定】
認証のための情報を設定します。


項目 説明
認証 ベーシック認証
ユーザ 資格情報のユーザを指定してください。
パスワード 資格情報のパスワードを指定してください。

Ⅱ.入力データの設定

  ・ファイルパスを渡すためのマッピングアイコンを追加します。

  ・スクリプト変数を追加します。
項目 説明
初期値 分析したい画像のパス

マッピングアイコンにてimages_fileのpathにマッピングを行います。

Ⅲ.出力データの設定

・レスポンスを受け取るXMLファイル出力の追加します。

スクリプトが完成しました!
スクリプト
それでは実行!!!

成功してますね!

レスポンスデータをXMLファイルを開いて確認してみましょう!

結果はポイント形式で100が最高で50以上の解析結果が出力されます。



一番高いのは「Brown」 確かに!

表で確認してみましょう!
SCORE カテゴリ 所感
73% Brown
ブラウン
◎ですね!
67% Vertebrate
脊椎動物
◎そうそう!
67% Mammal
哺乳動物
◎ですです!
66% Placental_Mammal
有胎盤哺乳類
◎です!!
66% Animal
動物
◎です!!
62% Gray_Sky
灰色の空
◯です!
61% Outdoors
アウトドア
◯です!
61% Nature_Scene
自然の景色
◯です!
59% Explosion
爆発
爆発?湯気のことかな??
59% Natural_Activity
自然な活動
◯です!
58% Hot_Spring
温泉
☆ すごい!!よく認識してますね!
58% Burning
燃焼
◯ぽかぽかしてますね!
56% Surface_Water_Sport
水上スポーツ
◯です!
55% Rail_Travel_Scene
電車旅
☓並んで見えるから電車ごっこのことかな!
55% White
ホワイト
◯です!
51% Taj_Mahal
タージ ・ マハル
☓なんとなく見えない気もしないですね!

Monkeyまで断定はしてくれませんでしたが、近いカテゴリに振り分けられました。
認識度はとても高く優秀です。特に温泉という認識がびっくりしました。

まとめ

今回はIBM Bluemix で提供されているWatson Visual Recognition をたたいてみました。

コンピュータが意思決定を行うというSFみたいな世界に登場するような夢のようなサービスで注目度が
大変高く、今後は生活のいろいろなシーンで登場すると思っています。

またIBM Bluemixはアプリケーションを構築、管理、実行するプラットフォームも用意されているので、
アプリケーションを作成し今回のようにSkyOnDemandで基幹データ等を使用して
Watsonへ学習させたり、意思決定をさせてみてはいかがでしょうか。

出典:商用利用可の無料写真素材・フリーフォトより
http://photo.happydayz.jp/?p=94

1 件

関連する記事