vvvvで画像収集(Bing Image Search API編)

Pocket

この記事はvvvv Advent Calendar7日目の記事です。


昨今AI関連の話題を耳にしない日は無く、
これから先AI関連の技術を避けては生きていけない雰囲気が漂ってますが、
それ系の技術にはさっぱり乗り遅れている僕です。

最近は画像を読み込ませるだけで色々認識・生成してくれるようなプログラミングレスのサービスもたくさん登場していますが、
はて、それに読み込ませる画像データはどうやって用意すればいいねん…
という段階で早くも挫折しそうです。

調べてみるとやはり皆さん苦労されているようで大まかに以下の様な方法で取得してるっぽいです。

  • 画像配布サイト
  • 各種webサービスのAPI
  • スクレイピング
  • 自分で撮影

…まぁ、そうするしかないよね…という感じですね…。

で、昨今プログラミングレスで色々やってくれるサービスも増えているので、
そういうサービス使うユーザは画像データもコード書かずに取得出来た方がいいよねきっと。
という事でvvvvで画像を取得すればちょっとは敷居が下がるのかなという願いで、vvvvで画像収集にチャレンジ。

今回はBing Image Search APIを使ってみます。
画像収集できるAPIは他にもGoogle、Flickrとかいろいろ考えられるので、
もしかしたら今後対応していくかも(かも)。

さて、本題ですがこれ系のAPIはHTTPリクエストに特定のHeaderとかいれなければならないので、
その辺は配布されているプラグインを頼ります。
こちらです。
RESTful HTTP Node
なお、レスポンスはJSON形式です。
vvvvでJSONをパースするのにはプラグインがあるのですが標準で入っているAsXElement(JSON)ノードでもできるのでそちらを使います。
ちなみにプラグインはこちら↓
JSON parser

APIのドキュメントを読みながら実装。(このドキュメント読みにくいな。。。)
Image Search API v7 reference

クエリパラメータはHTTP_Add_KeyValueParameterノードで設定します。
HTTP_Add_Headerノードで「Ocp-Apim-Subscription-Key」というヘッダーに発行したAPIキーを設定して実行すると
瞬く間に画像がダウンロードされます。

AsXElement(JSON)ノードはJSONを一度XMLに変換するというちょっと不思議なやつですが、XMLにした後はXML系のノードでどんどんパースできます。

vvvvで検索した結果↓

あ、なんか思っていたより便利。
このパッチは必要最低限なのでエラー処理とかいろいろ作りこみが必要ですが、やる価値ありそう。
他のサービス(Flickrとか)にも対応させたいし。

本日はここまで。
ではでは。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*