Androidアプリ開発に興味が出てきたので、前からやりたかった別のアプリ開発も試してみました。
今回は、Androidに標準で備わっている機械学習ライブラリのML Kitを組み込んで、撮影した画像の中にある物体を認識するアプリを作ってみました。
- 1. ML Kitとは
- 2. 物体認識アプリ (Claude Sonnet 3.7ベースで作成)
- 3. 参考情報:物体認識アプリ (Android Developers公式サイトのサンプルコード)
- 4. おわりに
1. ML Kitとは
Androidで利用できるMachine Learningのライブラリです。スマートフォンのみで完結するのでインターネット接続不要で使うことできます。
2. 物体認識アプリ (Claude Sonnet 3.7ベースで作成)
最近試している通りに、Claude Sonnetを使って作りました。
このようなプロンプトを書きました。
現在開いているAndroid Studioのワークスペースを元に、以下の要件を満たすアプリを作りたいです。 必要なプログラムを教えてください。 ・スマートフォンで動作する ・カメラで写真を撮影できる ・撮影した写真をもとに、何が写っているかを物体認識する ・Androidローカルで動作する、ML Kitを使う ・つまり、インターネットには接続しない
何度か試したところ、MainActivity.ktにコードを追加して、カメラで撮影した対象物を識別するアプリができました。
しかし、Home GoodsかFashion Goodsという曖昧な範囲の識別しかできず、具体的な物体名称(例:ノートPC、スマートフォン、ぬいぐるみ) などは全く出ませんでした。
ML Kitをもう少しチューニングする必要があるようです。
3. 参考情報:物体認識アプリ (Android Developers公式サイトのサンプルコード)
なお、ここまで進めたところで、Androidの公式サイトに、物体認識アプリのサンプルコードが解説付きで配布されているのを見つけました。
ML Kit を使用して画像内のオブジェクトを検出し、視覚的な商品検索を構築する: Android | Google Codelabs
しかし、指定されているプロジェクトファイル一式をダウンロードしてfinalフォルダを開いても、このようなエラーが出てしまって進まず、Android Studio内のGeminiに聞いても解決しませんでした。Gradleのバージョンの問題なのは予想がつくのですが、version=X.XXという表記方法の紹介であり、肝心のバージョンが不明のままでした。
A problem occurred configuring project ':app'. > Failed to notify project evaluation listener. > Could not create task ':app:compileDebugAndroidTestKotlin'. > Cannot use @TaskAction annotation on method AbstractKotlinCompile.execute() because interface org.gradle.api.tasks.incremental.IncrementalTaskInputs is not a valid parameter to an action method. > KotlinJvmAndroidCompilation with name 'debugAndroidTest' not found.
一方、GitHub Copilot Chatでは、バージョン指定をしてくれたので、これを元に直してみました。
しかしいろいろ試しても別のエラーが発生して、結局ビルド自体ができませんでした。生成AIがあるので、サンプルコードの再現ができなくても検証は続けられるため、このままにすることにしました。
4. おわりに
現時点ではまだ何も認識していないことと等しいため、次はML Kitのチューニングを試してみようと思います。