Microsoftの機械学習のトレーニングツール「Lobe」を使って作成したiOSの画像分類モデルについて
TL;DR
- Microsoftの機械学習トレーニングツール「Lobe」を使って画像分類のモデルを作成
- iOS向け(Core ML)にエクスポート、モデルのファイルサイズは100MB
- Xcodeに付属のCreate MLで作成したモデルは17KB
- 両者のファイルサイズの違いはモデルの構造の違いによるもの
「Lobe」とは
Microsoftが公開した機械学習のトレーニングツールです。WindowsとmacOSに対応したアプリでGUIを使って機械学習のモデルの作成(トレーニング)ができます。
Lobe | Machine Learning Made Easy
こちらの動画の説明がわかりやすいです。
現在はImage Classification(画像分類)のトレーニングしかできませんが今後、Object DetectionやData Classificationへの対応も予定しているようです。
作成したモデルをexportすることができ、Core ML(mlmodel)やTensorFlowなどに対応しています。
画像分類のモデルを作成してiOS向けにエクスポートする
学習データはGUIでドラッグ&ドロップで追加してラベル付けしたり、画像を入れたフォルダを渡す事もできます、今回は後者を選択しました。importボタンからフォルダを選択してインポートします。
トレーニングが始まります。
「Play」の画面でモデルを使った動作確認ができます。結果が間違っている場合はここから再学習(トーレニング)の実行ができるようです。
メニューの File -> Export から Core ML を選択してエクスポートします。
「Training Data CoreML」というフォルダが出力され、Core MLで使うモデルのファイル SavedModel.mlmodel
が入っています。その他にiOSからモデルを使うためのサンプルコードが記載されたREADME.mdファイルと、Lobeのプロジェクト情報が書かれたjsonファイルがあります。サンプルコードを一緒に出力するのはポイントが高いですね。
出力されたファイルをXcodeのプロジェクトにコピーして中身を確認します。
注目するポイントはモデルのファイルサイズで 104.8MB
となっています。
比較対象として同じデータセットを使って、Xcodeに付属している機械学習のモデル作成のツール Create ML
で作成した画像分類のモデルは 17KB
でした。
ファイルサイズが大きく異なる理由ですが、Create MLで作成したモデルはiOSに組み込まれている学習済みの特徴抽出器を利用することで、画像分類に必要なモデルのサイズを大幅に小さくしています(iOS 12以降がターゲットの場合)。
Vision with Core ML - WWDC 2018 - Videos - Apple Developer
Lobeで作成されたモデルは画像からの特徴抽出の処理がモデルに含まれているためファイルサイズが大きくなっているものと思われます。
現時点においてはファイルサイズはCreate MLで作成したモデルの方がサイズが小さく、Lobeで作成したモデルを使用する際はファイルサイズに注意が必要のようです。
Discussion