• 検索結果がありません。

Node-REDでプログラミング

52

HTTP Input node

q

AlchemyAPIはRESTのGETメソッドでアクセスして画像を解析します。

まずは左側のパレットのInputカテゴリ内のhttpのnode

をドラッグ&ドロップし、キャンバス内に配置します。 プロパティー内のURL欄にア クセスポイントを記載します。ここでは/callwatsonとしておきます。

q

Nameの欄はノードの名前をわかりやすいようにしておくために記述しておきます。任 意ですが、ここではHTTP Inputにしておきます。

https://ibm.biz/Bd4NRZ

54

switch node

q

画像のURLをチェックするノードを準備します。 左側のリソースパレットのfunction カテゴリ内のswitchノード を フローエディタ中央のキャンバスにドラッグ&

ドロップします。プロパティー内の左下にある+ruleをクリックして、分岐ロジックを 2つ⽤意します。 Propertyは以下の通りにimagurl属性に含まれるペイロードのnullチ ェックを⾏います。 nullであれば、“1”にそれ以外であれば“2”に値が渡されます。

https://ibm.biz/Bd4NRZ

template node (初期画⾯)

q

画⾯のHTMLを表⽰したり、Inputとなる画像を送信するためのメニューを提供するた めにHTMLを記述します。 templateノード をフローエディタ中央のキャ ンバスにドラッグ&ドロップします。プロパティを以下のように記述します。

<h1>Welcome to the Alchemy Vision Face Detection Demo on Node-RED</h1>

<H2>Select an image</H2>

<form action="{{req._parsedUrl.pathname}}">

<img src="https://si.wsj.net/public/resources/images/MK-CK494_SELFIE_GR_20140303174816.jpg" height='100'/>

<img

src="https://upload.wikimedia.org/wikipedia/commons/f/f1/34th_G8_summit _member_20080707.jpg" height='100'/>

<img src="http://demo1.alchemyapi.com/images/vision/politicians.jpg"

height='100'/>

<br/>Copy above image location URL or enter any image URL:<br/>

Image URL: <input type="text" name="imageurl"/>

<input type="submit" value="Analyze"/>

</form>

56

change node

q

⼊⼒画⾯から画像URLを抽出するchangeノードを定義します。左側のリソースパレッ トのfunctionカテゴリ内のchangeノード をフロー・エディタ中央のキャ ンバスにドラッグ&ドロップします。 ここからpayload属性をimageurl属性に変換し ます。以下の通りにプロパティを設定します。

https://ibm.biz/Bd4NRZ

Image Analysis

q

画像解析のためのImage Analysisノードを定義します。左側のリソースパレットの Watsonカテゴリ内のImage Analysisノード をフロー・エディタ中央のキャン バスにドラッグ&ドロップします。プロパティーでは顔認識を⾏うため、以下の通りに DetectをFaceに設定します。

https://ibm.biz/Bd4NRZ

58

template node (結果)

q

WatsonのImage Analysisから返ってきた結果を表⽰させるためのHTMLを記載します

。temlpalteノード をフローエディタ中央のキャンバスにドラッグ&ドロ ップします。プロパティを以下のように記述します。

https://ibm.biz/Bd4NRZ

<h1>Alchemy Image Analysis</h1>

<p>Analyzed image: {{payload}}<br/><img id="alchemy_image"

src="{{payload}}" height="50"/></p>

{{^result}}

<P>No Face detected</P>

{{/result}}

<table border='1'>

<thead><tr><th>Age

Range</th><th>Score</th><th>Gender</th><th>Score</th><th>Name</t h></tr></thead>

{{#result}}<tr>

<td><b>{{age.ageRange}}</b></td><td><i>{{age.score}}</i></td>

<td>{{gender.gender}}</td><td>{{gender.score}}</td>

{{#identity}}<td>{{identity.name}}

({{identity.score}})</td>{{/identity}}

</tr>{{/result}}

</table>

<form action="{{req._parsedUrl.pathname}}">

<input type="submit" value="Try again"/>

</form>

HTTP Response

q

アウトプットをHTML表⽰させるためのHTTP Responseノード をを追加

60

フローをつなげる

q

出来上がった各ノードをつなげて、右上のDepoyをクリックすれば完成です!エラーが 出ていないことを確認してください。

https://ibm.biz/Bd4NRZ

動作確認

q

ブラウザのURL欄にhttp://xxxx.mybluemix.net/callwatson をインプットして呼び 出してみましょう。 Image URLの⼊⼒欄にWatsonに読ませたい画像URLを⼊れてみ てください。顔の認識や⼈物名が出てきます!さすがWatson!

https://ibm.biz/Bd4NRZ

62

関連したドキュメント