Android のカメラを使って、機械学習した物体を検出させます。
今回はサンプルを動かせるようにして、次回は自分で機械学習させたモデルで試してみたいと思います。
環境
- Windows 11 Home 21H2 22000.556
- Android Studio Bumblebee | 2021.1.1 Patch 1
準備
サンプルプロジェクトをダウンロード、展開しておきます。
こちら からサンプルプロジェクトをダウンロード。
ダウンロードできたら展開しておきます。
手順
プロジェクトの読み込み
Android Studio でプロジェクトを読み込みます。
いろいろサンプルがありますが、今回使うサンプルは「object_detection」になります。
展開したフォルダーから次のフォルダーを辿って Androidプロジェクト を選択し開きます。
「.\examples-master\lite\examples\object_detection\android」
プロジェクトを開いた直後はいろいろダウンロードや設定が入るので、右下が落ち着くまでしばらく待ちます。
APKビルド
右下が落ち着いたら、APKビルドをします。
Buildメニューから「Build Bundle / APK > Build APK」と選択していくと APKビルドができます。
ビルドエラー
今回一番手こずったのは、この部分になります。
1 | Errors while building APK. You can find the errors in the 'Messages' view. |
1 | Deprecated Gradle features were used in this build, making it incompatible with Gradle 8.0. |
エラーを読むと「Gradle 8.0 との互換性がないから無理」って言っていますね。
つまり Gradle 8.0 では使えない関数が使われているってことになります。
もう少し上にスクロールすると、エラーとなった関数が表示されています。
1 | Execution failed for task ':lib_task_api:compileDebugJavaWithJavac'. |
今回は「:lib_task_api:compileDebugJavaWithJavac」が原因でビルドできなかったみたいです。
Gradleバージョン確認
プロジェクトが使ってるGradleバージョンを確認します。
Fileメニューの「Project Structure」をクリックするとGradleバージョンを確認することができます。
今回は Gradle 7.4 が使われていました。
Gradleバージョン 8.0 はまだリリースされていないので、今回はプラグインバージョンを最新まで上げて対応することにしました。
アルファ版やベータ版は使いたくないため、今最新の「7.1.2」に変更します。
再度ビルドをすると、エラーも出ずにビルドできるようになります。
実行
USBで端末をつなぐと、実機で動作確認することができます。
カメラでいろいろなものを表示させると、リアルタイムで何か表示されます。
おわりに
object_detectionのプロジェクト内に、ラズパイ用のプロジェクトもあったので、いつか挑戦してみたいです。
追記
物体検出モデル作成の記事を書きました。興味がある方、ぜひご覧ください。