Eine mobile Android-Anwendung für Bildklassifizierung schreiben

Diese App nutzt Bildklassifizierung, um die Objekte, die sie von der Kamera des Geräts sieht, in Echtzeit kontinuierlich zu klassifizieren und zeigt die wahrscheinlichsten Inferenz-Ergebnisse auf dem Bildschirm an.

Dieses Beispiel basiert lose auf Google CodeLabs - Getting Started with CameraX

Das vortrainierte TorchVision MOBILENET V2 wird in dieser Beispiel-App verwendet.

Inhalt

Voraussetzungen

Vorbereitung des Modells und der Daten für die Anwendung

  1. Konvertieren des Modells in das ORT-Format

    Öffnen Sie das Notebook "Mobilenet v2 Quantisierung mit ONNX Runtime". Dieses Notebook zeigt Ihnen, wie Sie

    • Das vortrainierte MobileNet V2 FP32-Modell von PyTorch in ein FP32 ONNX-Modell exportieren
    • Das FP32 ONNX-Modell in ein uint8 ONNX-Modell quantisieren
    • Beide FP32- und uint8-ONNX-Modelle in ORT-Modelle konvertieren

    Hinweis: Dieser Schritt ist optional. Sie können die FP32- und uint8-ORT-Modelle hier herunterladen.

  2. Herunterladen der Modellklassen-Labels

    wget https://raw.githubusercontent.com/pytorch/hub/master/imagenet_classes.txt
    
  3. Kopieren Sie die Labels-Datei und die Modelle in das Ressourcenverzeichnis der Beispielanwendung

    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/
    

Als Alternative zu den Schritten 1-3 können Sie dieses vorab erstellte Skript verwenden, um die Modelle und Daten in das richtige Verzeichnis herunterzuladen.

cd onnxruntime-inference-examples
mobile/examples/image_classification/android/download_model_files.sh

Erstellen der Android-Anwendung

  1. Öffnen der Beispielanwendung in Android Studio

    Öffnen Sie Android Studio und wählen Sie Open an existing project (Ein bestehendes Projekt öffnen), navigieren Sie zu den Ordnern und öffnen Sie den Ordner mobile/examples/image_classification/android/.

    Screenshot showing Android Studio Open an Existing Project

    Dieses Projekt verwendet das veröffentlichte Android-Paket für ONNX Runtime. Sie können ONNX Runtime auch anpassen, um die Größe der Anwendung zu reduzieren, indem Sie nur die Operatoren aus dem Modell einbeziehen. Weitere Informationen, wie Sie dies tun und wie Sie das resultierende Paket in Ihre Android-Anwendung aufnehmen, finden Sie in der Anleitung für benutzerdefinierte Builds für Android.

  2. Erstellen der Anwendung

    Wählen Sie Build -> Make Project in der oberen Symbolleiste von Android Studio aus und überprüfen Sie, ob das Projekt erfolgreich erstellt wurde.

    Screenshot showing Android Studio build command

    Screenshot showing successful build in Android Studio

  3. Verbinden Sie Ihr Android-Gerät und führen Sie die App aus

    Verbinden Sie Ihr Android-Gerät mit dem Computer und wählen Sie Ihr Gerät in der Dropdown-Gerätleiste oben aus.

    Screenshot showing connection to device in Android Studio

    Wählen Sie dann Run -> Run app aus, und die App wird auf Ihrem Gerät installiert.

    Jetzt können Sie die App ort_image_classifier auf Ihrem Gerät testen und ausprobieren. Die App fragt möglicherweise nach der Berechtigung, die Kamera zu verwenden.

    Hier ist ein Beispiel-Screenshot der App.

    Screenshot showing an example classification of a toy terrier dog