先日、Microsoft Lobeのリリース告知メールで、Lobe Connect機能が追加されたという言及がありました。
どんなものかな?と試してみたのですが、内容はタイトルどおり。クラウドにデプロイできればもっと便利だったのですが、いまのところLobeが動いているPC上でのAPI化のようです。
Microsoft Lobeとは
Lobeについては、以前記事を書きました。Windows/Macの両方で動作するMicrosoft製の画像認識モデル作成アプリです。
非常に簡単に画像認識モデルを作ることができるので、PoCなんかにオススメのツールです。
Lobe Connectを試す
まず、最新版のLobeにアップデートしました。
続いて、簡単な画像認識モデルを作成します。お馴染みの犬と猫の分類モデルです。
画像20枚だけなので、あっという間にモデルができます。
で、ここからなのですが、モデルのUse画面を開き、続いてExportをクリックします。
すると、モデルをエクスポートできる先が選択肢として表示されます。
TensorFlowモデルとしてのエクスポートなどは、以前から提供されている機能です。Webアプリに組み込むには、TensorFlow.jsなんかがオススメかと。
で、ここにLobe Connectという選択肢が追加されています。
Lobe Connectをクリックすると、このような表示が行われます。
localhostのURLと、呼び出しの例です。要するに分類したい画像をBase64形式でエンコードしてPOSTすれば良いということのようです。
Pythonで呼び出してみる
このようなPythonコードでLobe ConnectのAPIを呼び出してみます。
import requests
import base64
import json
image = requests.get('https://dol.ismcdn.jp/mwimgs/7/1/670m/img_71c53c1d81500a1cf73a4f543e72413f27838.jpg')
url = 'http://localhost:38101/v1/predict/804b9cdb-57c5-42f0-9dfd-a8c57b7d320c'
body = {
'image': base64.b64encode(image.content)
}
headers = {
'content-type': 'application/json',
}
r = requests.post(url, body, headers)
print(json.dumps(r.json(), indent=2))
ちなみに、今回分類させてみたのは、このような犬の画像です。フリー画像素材のPixnioにあるものです。
このような結果が戻ってきました。
ちゃんと犬と分類できています。(まぁ、Lobeでは転移学習が行われるのでベースのところで犬くらい分類できるでしょうが・・・。)
Lobe Connectはいつ動いているか
ちなみに、Lobe Connectが正常に動作するのは、Lobeが起動していて、そのモデルの画面を開いているときだけです。
Lobeが起動していてもそのモデルの画面が開いていなければ、レスポンスは返ってきますがエラーになっています。
Lobeが起動していなければ、そもそもlocalhost:38101からレスポンスが返ってきません。
ということで、本番稼働用というより、テスト用といった用途になるかと思います。