Androidでのモバイル画像認識
モバイル画像分類Androidアプリケーションを作成する
Section titled “モバイル画像分類Androidアプリケーションを作成する”このアプリは画像分類を使用して、デバイスのカメラから見えるオブジェクトをリアルタイムで継続的に分類し、最も可能性の高い推論結果を画面に表示します。
この例は、Google CodeLabs - Getting Started with CameraXに基づいています。
このサンプルアプリでは、事前トレーニング済みのTorchVision MOBILENET V2が使用されています。
- Android Studio 4.1+(Mac/Windows/Linuxにインストール)
- Android SDK 29+
- Android NDK r21+
- カメラ付きのAndroidデバイス、開発者モードでUSBデバッグが有効になっている
- onnxruntime-inference-examplesソースコードリポジトリをクローン
アプリケーションで使用するモデルとデータを準備する
Section titled “アプリケーションで使用するモデルとデータを準備する”-
モデルをORT形式に変換する
Mobilenet v2 Quantization with ONNX Runtime Notebookを開きます。このノートブックでは、次の方法を示します:
- PyTorchから事前トレーニング済みのMobileNet V2 FP32モデルをFP32 ONNXモデルにエクスポートする
- FP32 ONNXモデルをuint8 ONNXモデルに量子化する
- FP32およびuint8 ONNXモデルの両方をORTモデルに変換する
注:このステップはオプションです。FP32およびuint8 ORTモデルはこちらからダウンロードできます。
-
モデルクラスラベルをダウンロードする
Terminal window wget https://raw.githubusercontent.com/pytorch/hub/master/imagenet_classes.txt -
ラベルファイルとモデルをサンプルアプリケーションリソースディレクトリにコピーする
Terminal window cd onnxrutime-inference-examplescp *.ort mobile/examples/image_classification/android/app/src/main/res/raw/cp imagenet_classes.txt mobile/examples/image_classification/android/app/src/main/res/raw/
ステップ1-3の代替として、この事前ビルドスクリプトを使用して、モデルとデータを正しいディレクトリにダウンロードできます:
cd onnxruntime-inference-examplesmobile/examples/image_classification/android/download_model_files.shAndroidアプリケーションを作成する
Section titled “Androidアプリケーションを作成する”-
Android Studioでサンプルアプリケーションを開く
Android Studioを開き、
Open an existing projectを選択し、フォルダーを参照してmobile/examples/image_classification/android/フォルダーを開きます。
このプロジェクトは、ONNX Runtimeの公開されたAndroidパッケージを使用します。モデルからの演算子のみを含めることで、アプリケーションのサイズを削減するためにONNX Runtimeをカスタマイズすることもできます。これを行う方法と、結果のパッケージをAndroidアプリケーションに含める方法の詳細については、Androidのカスタムビルド手順を参照してください
-
アプリケーションをビルドする
Android Studioの上部ツールバーで
Build -> Make Projectを選択し、プロジェクトが正常にビルドされたことを確認します。

-
Androidデバイスを接続してアプリを実行する
Androidデバイスをコンピューターに接続し、上から下のデバイスバーでデバイスを選択します。

次に、
Run -> Run appを選択すると、アプリがデバイスにインストールされます。これで、デバイスで
ort_image_classifierアプリを開いてテストできます。アプリは、カメラを使用するための許可を要求する場合があります。アプリのスクリーンショットの例を以下に示します。
