Lobeによるノーコード機械学習で、画像を分類してみよう
こんにちは。 システムソリューション営業本部の吾妻です。
アプリケーション開発において、ノンコーディング、ローコーディングが流行している今日この頃ですが、こうした「ソースコードを書かないソリューション」という波は、機械学習分野にもやってきています。
Microsoftがベータ版として公開している Lobe を使うと、機械学習に画像データを「食わせる」ところから、生成された学習モデルを「評価する」ところまであっという間に実行できます。
今回は、この Lobe を利用して、画像ファイルを分類する手順について、簡単にご紹介したいと思います。
Lobe とは
Lobe とは、Microsoftが公開している、プレビュー版の機械学習モデル作成ツールです。独自の機械学習モデルを作りあげるためには、通常、Pythonなどのプログラミング言語でプログラムを書く必要がありますが、Lobeを利用すると、画像ファイルを用意するだけで、無償で、自分自身のコンピューターの上でトレーニングさせることができます。
ここで、「自分自身のコンピューターの上」というのが1つのポイントで、セキュリティ上、外部への持ち出し(=クラウドサービスへのアップロード)ができない画像をデータセットにして学習モデルを作成することができるのです。
また、 Lobe では Web カメラの画像を取得することもできるため、画像ファイルを用意できない場合には、データセットの収集から Lobe だけで実施できます。
Lobe で作った学習モデルは、 Tensor Flow を始めとした様々なツールで利用できるように、それぞれのデータ形式でエクスポートできるため、例えば、 PC 上で学習したモデルをもとに、 iPhone 上で画像分類するアプリを作る、といったことも可能です。
Lobe のインストール
Lobe のインストーラーは、 https://lobe.ai/ からダウンロードすることができます。トップページの「Download」ボタンを押すと、アンケートフォームが表示されるので、各項目に適宜入力して、ダイアログの「Download」ボタンをクリックします。
ダウンロードしたインストーラーを起動します。インストール先だけ選択する画面がありますが、デフォルトのままで良いでしょう。
インストールが完了したら、 Lobe を起動します(セットアップの最後でチェックボックスで指示できます)。
Lobe での学習モデル生成
今回は、既存のデータセットがあるわけではないので、 Lobe から直接 Web カメラにアクセスして取得した画像をもとに、近くに転がっていたコアラとペンギンのぬいぐるみを判別する機械学習モデルを生成してみようと思います。まずは、学習用データを用意していきます。
右上の「Import」をクリックするとメニューが表示されるので、Cameraをクリックします。
Web カメラのプレビュー画面が表示されます。必要に応じて、歯車アイコンをクリックして使用する Webカメラ を切り替えます。
プレビュー画面の左下にある「Label」をクリックして、これから撮影する画像が、何の画像であるかを示すための「ラベル」を入力します。今回は「Koala」と入力しました。ラベルを入力したら、プレビュー画面中央下の撮影ボタンをクリックします。
被写体の向きを変えて、何枚か撮影します。撮影ボタンを押し続けると連写できるので、テーブルを回転させながら取り続けてみました(撮影ボタンに表示されているのが連写した枚数)。1ラベル当たり最低5枚撮影すればトレーニングできますが、精度を向上するために多めに撮っておきます。
今度は、ラベルを「Penguin」に書き換えてから、何枚か撮影します。
何も映っていない状態も、「None」ラベルを付けて撮影しておきます。
Lobe の左端のパネルの「Training...」表示が「Train」表示に切り替わったら、そこをクリックします。
自動的にトレーニングされた結果が表示されます。今回は「Correct 100%」となりましたが、100%に届かなくても大丈夫です。
続いて、生成された学習モデルの精度を、より高めていきます。
「Train」の下にある「Play」をクリックして、画面を切り替えます。この画面では、トレーニングに使用したのとは別の画像(評価用データ)を用意し、生成した学習モデルの精度を調べたり、フィードバックを送ることで精度を改善させたりできます。
画面が切り替わったら、右上にある「Camera」をクリックします。
ここで、学習用データとして登録した画像とは、構図の違う写真を撮っていきます。先程連写した際は、ぬいぐるみを座らせたままテーブルを回転させて撮影したので、今度は寝転がらせて撮影しました。
すると、左下に表示されるラベルから、現在写っているのが「Penguin」ではなく「None」だと判定していることがわかるので、右側の赤いボタンをクリックして、正しいラベルを選択してあげます。
他のラベルでも、適宜フィードバックを送ります。
Lobe から学習モデルをエクスポート
トレーニングとフィードバックを終えて、必要な精度が得られたら、学習モデルをエクスポートすることができます。左上のメニューアイコンをクリックして、「Export...」を開きます。