編寫一個移動影像分類 Android 應用程式
此應用程式使用影像分類功能,即時連續分類裝置攝像頭所看到的物體,並在螢幕上顯示最可能的推理結果。
此示例大致基於 Google CodeLabs - CameraX 入門
此示例應用程式使用了預訓練的 TorchVision MOBILENET V2。
目錄
先決條件
- Android Studio 4.1+ (安裝在 Mac/Windows/Linux 上)
- Android SDK 29+
- Android NDK r21+
- 處於開發者模式並啟用 USB 除錯的帶攝像頭的 Android 裝置
- 克隆 onnxruntime-inference-examples 原始碼倉庫
準備應用程式中使用的模型和資料
-
將模型轉換為 ORT 格式
開啟 使用 ONNX Runtime 進行 Mobilenet v2 量化的 Jupyter Notebook,此 Notebook 將演示如何
- 將預訓練的 MobileNet V2 FP32 模型從 PyTorch 匯出為 FP32 ONNX 模型
- 將 FP32 ONNX 模型量化為 uint8 ONNX 模型
- 將 FP32 和 uint8 ONNX 模型都轉換為 ORT 模型
注意:此步驟是可選的,您可以在此處下載 FP32 和 uint8 ORT 模型。
-
下載模型類別標籤
wget https://raw.githubusercontent.com/pytorch/hub/master/imagenet_classes.txt -
將標籤檔案和模型複製到示例應用程式資源目錄
cd onnxrutime-inference-examples cp *.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-examples
mobile/examples/image_classification/android/download_model_files.sh
建立 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進行測試和嘗試。該應用程式可能會請求使用攝像頭的許可權。以下是應用程式的示例截圖。
