98
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

updated at

マイクロソフトが公開した機械学習モデルの訓練を容易にできる「Lobe」を試してみた。

マイクロソフトがLobeというツールを公開しました。
このツールを使うことでとても簡単に画像分類の機械学習モデルを作ることができます。

Lobeの画像分類には「ResNet-50 V2」と「MobileNetV2」の2つのmodelを使用することができます。
それぞれのmodelには特徴があり目的や実行環境に合わせて使い分ける必要があります。

ResNet-50 V2を使用すると高い予測精度を達成できますが、予測時間が長くなりより多くのメモリが使用されます。
MobileNetV2は予測速度が速く、メモリ使用量は少ないですが、予測精度は高くありません。

ある程度のマシンパワーがある環境で高い精度が必要なときはResNet-50 V2を使用し、
スマホやRaspberry PiなどではMobileNetV2を使用することになると思います。

どちらのmodelを使用しても転移学習を用いることで少ないデータでもより良い訓練出来るようになっています。

今回は、kaggleに公開されている犬/猫の画像を使用して画像分類modelを学習する手順を書いていきたいと思います。ベースとなるmodelにはResNet-50 V2を使用します。

Lobeのダウンロード

下記の公式ページからダウンロードできます
Lobe

学習に使うデータを用意する

今回はkaggleで公開されているデータを使用します。
Dogs vs. Cats

Lobeでmodelを学習する

Lobeを起動しNewProjectを選択します。
スクリーンショット 2020-10-31 15.39.06.png

学習を開始する前にベースとなるmodelを設定します。
[File]-[Project Settings]から[Optimize for Accuracy]を選択します
スクリーンショット 2020-11-04 0.38.42.png

右上のImportをクリックしImagesを選択します。
スクリーンショット 2020-10-31 15.41.58.png

kaggleからダウンロードした学習用データの中からまずはcatの画像を読み込みます。
スクリーンショット 2020-10-31 15.47.43.png

読み込んだ画像にLabelを付けます。
この時全ての画像を選択(macならcommand+A)すればまとめてLbelをつけることができます。
スクリーンショット 2020-10-31 15.51.10.png

続いてdogの画像も同じように読み込みLabel付けを行います。
スクリーンショット 2020-10-31 15.53.54.png

学習用の画像がディレクトリ名をlabelにして予め分けられている場合はdatasetとしてまとめて読み込むことができます。
スクリーンショット 2020-11-05 11.07.18.png

スクリーンショット 2020-11-05 11.07.39.png

2種類以上の画像を読み込むと自動でTrainingが開始されます。
train_start.png

Trainingが終わったらPlayをクリックしテスト用の画像をドラッグ&ドロップで読み込ませると予測結果を確認できます。
スクリーンショット 2020-10-31 16.01.48.png

読み込んだ画像の正解予測が間違っている場合は、下記の画像で示した場所をクリックするとLabelが修正されて再度Trainingが行われます。
スクリーンショット 2020-10-31 16.07.08.png

このように非常に簡単に画像分類のmodelを作ることができます。
画像をインポートする代わりにwebcカメラから画像をキャプチャして使用することもできます。

下記の公式動画ではwebカメラで数枚の画像を撮影しそれを元に「Drinking」を「not Drinking」を識別するモデルを作成しています。

Introducing Lobe | Build your first machine learning model in ten minutes.

Lobeでは学習したmodelはエクスポートしてCoreMLやTensorFlowで利用することができます。
modelをエクスポートしてPythonで利用する方法は下記の記事をご覧ください。
Lobeで学習したモデルをPythonで利用する方法

Lobeで学習したモデルとTensorFlow Servingを使ってREST APIを作ってみました。

FastAPIと組み合わせてREST APIを作ってみました。

Flaskと組み合わせてREST APIを作ってみました。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
98
Help us understand the problem. What are the problem?