Lobeで作った画像認識モデルをローカル環境でAPI化するLobe Connectを試してみる

先日、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からレスポンスが返ってきません。

ということで、本番稼働用というより、テスト用といった用途になるかと思います。

この記事を書いた人

井上 研一

株式会社ビビンコ代表取締役、ITエンジニア/経済産業省推進資格ITコーディネータ。AI・IoTに強いITコーディネータとして活動。2018年、株式会社ビビンコを北九州市に創業。IoTソリューションの開発・導入や、画像認識モデルを活用したアプリの開発などを行っている。近著に「使ってわかった AWSのAI」、「ワトソンで体感する人工知能」。日本全国でセミナー・研修講師としての登壇も多数。