Microsoft Lobeを使ってみる(1/2)や Microsoft Lobeを使ってみる(2/2)- on ラズパイで作ったモデルをAndroidのスマホで使ってみます。
プロジェクトのベースはGitHubからダウンロードできます。
1.Clone, fork or download the project on your computer and install Android Studio to get started. Android Studio is the app that’s used to run the starter project on your computer or device.
1.コンピューターにプロジェクトのクローンを作成、フォーク、またはダウンロードし、Android Studioをインストールして開始します。 Android Studioは、コンピューターまたはデバイスでスタータープロジェクトを実行するために使用されるアプリです。
ダウンロードしたandroid-bootstrap-mainがプロジェクトフォルダーになります。
Additional Information
We recommend Android Studio 4.1 or higher. This version of Android Studio will make sure your models run and load faster and more efficiently.
Android Studio4.1以降をお勧めします。 このバージョンのAndroidStudioを使用すると、モデルの実行と読み込みがより高速かつ効率的になります。
2021/08/16現在、Android Studioのバージョンは、Android Studio – Arctic Fox | 2020.3.1
これは以前の番号体系では、このリリースは Android Studio 4.3 またはバージョン 4.3.0.1に相当するそうです。
準備
事前にモデルを作成しておきます。
4.To use your own model file, open your Lobe project, go to the Use tab, and click on the TensorFlow Lite model file. We recommend using the project setting Optimize for Speed for your model to run faster on mobile devices. You can change your project settings by going to File -> Project Settings. When exporting is done, drag both the saved_model.tflite and the signature.json files to app/src/main/assets.
4.独自のモデルファイルを使用するには、Lobeプロジェクトを開き、[Use]タブに移動して、TensorFlowLiteモデルファイルをクリックします。 モデルの速度を最適化するプロジェクト設定を使用して、モバイルデバイスでより高速に実行することをお勧めします。 プロジェクト設定を変更するには、バーガーアイコンの[File]-> [Project Settings]に移動します。 エクスポートが完了したら、saved_model.tfliteファイルとsignature.jsonファイルの両方をapp / src / main / assetsにドラッグします。
通常のモデル作成の手順はMicrosoft Lobeを使ってみる(1/2)を参照。
Androidで使うモデルはSpeedに最適化したものを使います。
Microsoft Lobeを使ってみる(2/2)- on ラズパイのAppendixをご参照ください。
作成されたSpeed最適化モデルのフォルダーの中の、「saved_model.tflite」と「signature.json」の2つのファイルをandroid-bootstrap-mainフォルダーの「lobe_android/app/src/main/assets」に上書きしておきます。
ここでは以下のボールを分類するモデルを使ってみます。
Android Studio を起動
2.Open the lobe_android folder in this repository from inside Android Studio. Gradle will automatically start downloading the SDK’s as needed.
2.AndroidStudio内からこのリポジトリのlobe_androidフォルダを開きます。 Gradleは、必要に応じてSDKのダウンロードを自動的に開始します。
上記android-bootstrap-mainフォルダーのlobe_androidをプロジェクトとしてopenします。
Gradleがなんやかんやとファイルをダウンロードしつつプロジェクトの体裁を整えてくれます(gitが未インストールの場合はgitもインストールされます)。
右下に「invalid VCS root mapping」というワーニングが出ていますが、無視してもいいもののようです。
3.Accept the required licenses by going to SDK Manager under the Tools menu. Click on SDK Tools. Then toggle Show Package Details. Last, install all the Android 30.0 versions under the Android SDK Build Tools.
3.[Tools]メニューの[SDK Manager]に移動して、必要なライセンスに同意します。
必要なアンドロイドのバージョンにチェックを入れます。
下図では8.0になっていますが、これはたまたま管理人のポンコツスマホがそうなだけです。
最新のスマホなら多分10以上だと思います。
SDKToolsタブをクリックします。 次に、[Show Package Details]を切り替えます。 最後に、AndroidSDKビルドツールの下にすべてのAndroid30.0バージョンをインストールします。
Componentsがインストールされて終了。
Project をRunする前にエミュレーターを作成しておきます。
Tools->AVD Manager を選択
仮想デバイス(Virtual Devices)を作成
ご自分に適したデバイスの解像度を選択してNext
ご自分に適したデバイスのOSイメージを選択してNext
問題なければFinish
エミュレーターが作成されたらRunを実行
デバイスが表示され、アプリがインストールされます
アプリのプログレスは右下に表示されます
写真を撮っていいか..と聞いてきますが、実際にPCのカメラが使われるわけではないようです。
こんな感じでアプリが起動します。表示されている画像がなんなのかは不明ですし、何を認識しようとしているのかも不明。
ballの認識になっていない場合は、一度アプリを再起動してみます。
ballの認識になりましたが、デフォルトで開いた画像を認識しようとしているようです。
ただ該当するものがないので、候補がふらふらと変化します。
実機で確認
アプリをデプロイするスマホをPCに接続
スマホ側では設定で開発者向けオプションをONにしておきます。
実機側で許可します。
接続が確立すると、Android Studio のDeviceフィールドに機種名が表示されます。
Runを実行すると、実機にアプリがインストールされます。
実機でカメラを使っていいか?と聞いてくるので許可します。
ball認識になっていない場合は、実機側でLobeアプリを再起動した方がいいかもしれません。
カメラを画像などに向ければ、認識されます。
こんな感じ。Speedに最適化されたモデルなので認識は少々ふらつきます。
Appendix
Android Studio でプロジェクトを削除する方法
対象となるプロジェクトで右クリック(以前のバージョンでは、クリックせずにDeleteキーを押す…でした)
Appendix2
Android用パッケージファイル(APK)を作ってみます。
Android Studio のBuildメニュの「Generate Signed Bundle / APK …」を選択。
アプリ署名のKeyStore File が無い場合は作っておきます。
ファイルの保存場所と名前を適当に設定
Passwordは両方同じにしておいた方がいいかもしれません。異なると文句を言われました(ただファイルは作成されるようです)。
Certificateはご自分の好みで適当に入力。
First and Last Name : あなたの名前
Organizational Unit : 職種
Organization : 職場
City or Locality : 住んでる街
State or Province : 住んでる都道府県
Country Code (XX) : 住んでる国コード(日本なら81)
DebugとReleaseを指定すると、以下のフォルダーに作成されます。
サイズ的には1MB程度しか変わりません。
apkファイルをスマホにコピーしてアイコンをタップすれば、展開後インストールされてアプリが起動します。
右のボタンはフロント・バックカメラの切り替え
左のボタンはスマホのライブラリから画像を読み込んで推論します。
ちなみに、apkファイルはzip形式なので拡張子をzipに変えれば中身が見えます(^^)。
こんな感じ。
もし上記エミュレータの設定条件と同じスマホをお持ちなら、そのまま使えるかもしれません。
Leave a Reply