編寫一個移動影像分類 Android 應用程式

此應用程式使用影像分類功能,即時連續分類裝置攝像頭所看到的物體,並在螢幕上顯示最可能的推理結果。

此示例大致基於 Google CodeLabs - CameraX 入門

此示例應用程式使用了預訓練的 TorchVision MOBILENET V2

目錄

先決條件

準備應用程式中使用的模型和資料

  1. 將模型轉換為 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 模型。

  2. 下載模型類別標籤

    wget https://raw.githubusercontent.com/pytorch/hub/master/imagenet_classes.txt
    
  3. 將標籤檔案和模型複製到示例應用程式資源目錄

    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 應用程式

  1. 在 Android Studio 中開啟示例應用程式

    開啟 Android Studio 並選擇 Open an existing project,瀏覽資料夾並開啟 mobile/examples/image_classification/android/ 資料夾。

    Screenshot showing Android Studio Open an Existing Project

    此專案使用已釋出的 ONNX Runtime Android 包。您也可以透過僅包含模型中的運算子來自定義 ONNX Runtime,從而減小應用程式的大小。有關如何執行此操作以及如何將生成的包包含到 Android 應用程式中的更多資訊,請參閱Android 自定義構建說明

  2. 構建應用程式

    在 Android Studio 頂部工具欄中選擇 Build -> Make Project,並檢查專案是否已成功構建。

    Screenshot showing Android Studio build command

    Screenshot showing successful build in Android Studio

  3. 連線您的 Android 裝置並執行應用程式

    將您的 Android 裝置連線到電腦,並在頂部下拉裝置欄中選擇您的裝置。

    Screenshot showing connection to device in Android Studio

    然後選擇 Run -> Run app,這將提示應用程式安裝到您的裝置上。

    現在,您可以透過在裝置上開啟應用程式 ort_image_classifier 進行測試和嘗試。該應用程式可能會請求使用攝像頭的許可權。

    以下是應用程式的示例截圖。

    Screenshot showing an example classification of a toy terrier dog