IBM Watson の Visual Recognition を Unity から使う方法
Visual Recognition は画像を解析し、どのようなものなのかをテキストで返すサービスです。
[サービス情報]
Visual Recognition - IBM Cloud
https://console.bluemix.net/catalog/services/visual-recognition
[公式のチュートリアル]
概説チュートリアル
https://console.bluemix.net/docs/services/visual-recognition/index.html#-
[公式のドキュメント]
unity-sdk/Scripts/Services/VisualRecognition/v3 at develop · watson-developer-cloud/unity-sdk
https://github.com/watson-developer-cloud/unity-sdk/tree/develop/Scripts/Services/VisualRecognition/v3
アプリの作成手順
Visual Recognition を使った Unity アプリの作成手順を解説します。
基本的な共通で必要な作業はこちらの記事で解説しています。
こちらが未読の場合には先にそちらを確認し、 IBM Cloud アカウントの作成や IBM Watson Unity SDK のインストール作業などを済ましておいて下さい。
サーバ側の作業
まずはサーバ側の設定作業を行います。
こちらのページ経由でサーバにプロジェクトを作成します。
ページの右下に有る「作成」のボタンを押して、プロジェクトを作成して下さい。
「資格情報の表示」をクリックして、展開。
後で使うのでここの情報をメモっておきます。
note の部分にはユーザへのメッセージが入る様です。「5分後に有効になります」などのメッセージが入っていたりしてました。
※キャプチャ画像の note は一度削除してから作り直したので異なるメッセージに成っています。
ツールの初回起動時には API Key の入力が求められるので先程メモした中に有る api_key の値を入力します。
するとこの様な画面に切り替わります。ここでは画像解析の学習を行わせた分類器(Classifier)を作成します。新規に作成する為に「Create classifier」ボタンをクリックします。
学習用のデータを以下の様に設定します。画像データは IBM Watson Unity SDK をインストール済みの Unity のプロジェクトの場合、 Assets/Watson/Examples/ServiceExamples/TestData/visual-recognition-classifiers に有ります。
ここでは giraffe_positive_examples.zip と negative_examples.zip を使って設定する事にします。
※学習データの zip ファイルは最低「正しいもの」2つ、もしくは「正しいもの」1つ、「間違っているもの」1つ準備する必要が有ります。
赤枠の部分で画像ファイルを選択するとテストできます。分析したい画像を選択し、テストをしてみましょう。
ここでは Assets/Watson/Examples/ServiceExamples/TestData/visual-recognition-classifiers フォルダに有る giraffe_to_classify.jpg と turtle_to_classify.jpg を使ってみます。
ちゃんと判定出来ている事が確認できます。
Unity での作業
サーバ側の作業が終わったので次に Unity 側の作業を行います。
Unity のプロジェクトを新規作成し、 IBM Watson Unity SDK を Import 。
Assets/Watson/Examples/ServiceExamples/Scripts/ExampleVisualRecognition.cs を開き、以下の部分を見つけます。
ここに先程メモした url と api_key の値を記述します。
public class ExampleVisualRecognition : MonoBehaviour { private string _apikey = null; private string _url = null;
Scene に新規に GameObject を作成し、このファイルをアタッチし、実行して下さい。
すると 〜Attempting to get all classifiers というメッセージの後に以下の様なメッセージが表示されます。
{"classifiers":[{"classifier_id":"\u52d5\u7269_693641681","name":"\u52d5\u7269","status":"ready"}]}
ここで表示されているものは自作した分類器(Classifier)を全て取得する API のレスポンスです。
「classifier_id」が「\u52d5\u7269_693641681(動物_693641681)」、「name」が「\u52d5\u7269(動物)」で有る事が確認できます。
classifier_id は他の API で使用するのでここの値で有る事を覚えておいて下さい。
関連情報
[Watson] Visual Recognition Tool を利用して画像解析を試す - Qiita
https://qiita.com/y-some/items/6addf597a81a48f04d59