Von Mobile Vision zu ML Kit auf Android migrieren

In diesem Dokument werden die Schritte beschrieben, die Sie ausführen müssen, um Ihre Projekte von Von Google Mobile Vision (GMV) zu ML Kit für Android

Allgemeine API-Änderungen

Diese Änderungen gelten für alle APIs:

  • GMV-APIs geben synchron ein SparseArray<T>-Ergebnis zurück. ML Kit APIs nutzen die Google Play Services Task API, um Ergebnisse asynchron zurückzugeben.
  • GMV verwendet den Aufruf isOperational() in der API-Oberfläche, um anzugeben, ob ein -Modul wurde erfolgreich heruntergeladen und kann verwendet werden. ML Kit enthält keine eine solche Methode. ML Kit löst eine MlKitException.UNAVAILABLE-Ausnahme aus, wenn Modul wurde nicht heruntergeladen. Sie können diese Ausnahme abfangen und den nächsten Frame an oder legen Sie ein Zeitlimit fest und versuchen Sie es noch einmal mit dem aktuellen Frame.
  • Bruttowarenwert-Methoden verwenden Frame für die Eingabe. ML Kit verwendet InputImage.
  • Bruttowarenwert (BWW) liefert MultiDetector, MultiProcessor und FocusingProcessor für die Durchführung mehrerer Erkennungen und Ergebnisfilter. ML-Kit solche Mechanismen nicht zur Verfügung stellt, aber die gleiche Funktionalität vom Entwickler implementiert werden.

Gradle Imports aktualisieren

Aktualisieren Sie die Abhängigkeiten für die ML Kit-Android-Bibliotheken in der Gradle-Datei Ihres Moduls (auf App-Ebene). Diese ist normalerweise app/build.gradle, wie in der folgenden Tabelle dargestellt:

API Bruttowarenwert-Artefakt ML Kit-Artefakt
FaceDetector com.google.android.gms:play-services-vision:x.x.x com.google.android.gms:play-services-mlkit-face-detection:17.1.0
BarcodeDetector com.google.android.gms:play-services-vision:x.x.x com.google.android.gms:play-services-mlkit-barcode-scanning:18.3.1
TextRecognition com.google.android.gms:play-services-vision:x.x.x com.google.android.gms:play-services-mlkit-text-recognition:19.0.1
CameraSource com.google.android.gms:play-services-vision:x.x.x com.google.mlkit:camera:16.0.0-beta3

API-Änderungen

In diesem Abschnitt werden die entsprechenden GMV- und ML Kit-Klassen und -Methoden für jede Vision API beschrieben. Außerdem erfahren Sie, wie Sie die API initialisieren.

FaceDetector

Codieren Sie die Initialisierung neu, wie in diesem Beispiel gezeigt:

GMV

detector = new FaceDetector.Builder(context)
    .setMode(FaceDetector.ACCURATE_MODE)
    .setLandmarkType(FaceDetector.ALL_LANDMARKS)
    .setClassificationType(FaceDetector.ALL_CLASSIFICATIONS)
    .build();

ML Kit

FaceDetectorOptions options = new FaceDetectorOptions.Builder()
    .setPerformanceMode(FaceDetectorOptions.PERFORMANCE_MODE_ACCURATE)
    .setLandmarkMode(FaceDetectorOptions.LANDMARK_MODE_ALL)
    .setClassificationMode(FaceDetectorOptions.CLASSIFICATION_MODE_ALL)
    .build();

detector = FaceDetection.getClient(options);

Ändern Sie die folgenden Klassen- und Methodennamen:

android.gms.vision.face mlkit.vision.face
FaceDetector FaceDetector
SparseArray<Face> detect(Frame frame) Task<List<Face>> process(@NonNull InputImage image)
FaceDetector.Builder.setClassificationType(int classificationType) FaceDetectorOptions.Builder.setClassificationMode(int classificationMode)
NO_CLASSIFICATIONS, ALL_CLASSIFICATIONS CLASSIFICATION_MODE_NONE, CLASSIFICATION_MODE_ALL
FaceDetector.Builder.setLandmarkType(int landmarkType) FaceDetectorOptions.Builder.setLandmarkMode(int landmarkMode)
NO_LANDMARKS, ALL_LANDMARKS, CONTOUR_LANDMARKS LANDMARK_MODE_NONE, LANDMARK_MODE_ALL

#setContourMode verwenden, um BMV CONTOUR_LANDMARKS zu ersetzen)

FaceDetector.Builder.setTrackingEnabled(boolean trackingEnabled) FaceDetectorOptions.Builder.enableTracking()
FaceDetector.Builder.setMinFaceSize(float proportionalMinFaceSize) FaceDetectorOptions.Builder.setMinFaceSize(float minFaceSize)
FaceDetector.Builder.setMode(int mode) FaceDetectorOptions.Builder.setPerformanceMode(int performanceMode)
FAST_MODE, ACCURATE_MODE PERFORMANCE_MODE_FAST, PERFORMANCE_MODE_ACCURATE
FaceDetector.Builder.setProminentFaceOnly(boolean prominentFaceOnly) Diese Funktion wird vom Konturmodus für Gesichter verdeckt.
Face Face
Contour FaceContour
Landmark FaceLandmark
Face.getContours() Face.getAllContours()
Face.getEulerY() Face.getHeadEulerAngleY()
Face.getEulerZ() Face.getHeadEulerAngleZ()
Face.getId() Face.getTrackingId()
Face.getIsLeftEyeOpenProbability() Face.getLeftEyeOpenProbability()
Face.getIsRightEyeOpenProbability() Face.getRightEyeOpenProbability()
Face.getIsSmilingProbability() Face.getSmilingProbability()
Face.getLandmarks() Face.getLandmark(int landmarkType)
Face.getPosition()
Face.getHeight()
Face.getWidth()
Face.getBoundingBox()

BarcodeDetector

Codieren Sie die Initialisierung neu, wie in diesem Beispiel gezeigt:

GMV

barcodeDetector = new BarcodeDetector.Builder(context).build());

ML Kit

barcodeScanner = BarcodeScanning.getClient();

Ändern Sie die folgenden Klassen- und Methodennamen:

android.gms.vision.barcode mlkit.vision.barcode
BarcodeDetector BarcodeScanner
SparseArray<Barcode> detect(Frame frame) Task<List<Barcode>> process(@NonNull InputImage image)
Barcode Barcode

TextRecognition

Codieren Sie die Initialisierung neu, wie in diesem Beispiel gezeigt:

GMV

textRecognizer = new TextRecognizer.Builder(context).build();

ML Kit

textRecognizer = TextRecognition.getClient(TextRecognizerOptions.DEFAULT_OPTIONS);

Ändern Sie die folgenden Klassen- und Methodennamen:

android.gms.vision.text mlkit.vision.text
TextRecognizer TextRecognizer
SparseArray<TextBlock> detect(Frame frame) Task<Text> process(@NonNull InputImage image)
SparseArray<TextBlock> Text
Line Line
TextBlock TextBlock
Element Element
getLanguage() getRecognizedLanguage()
getBoundingBox() getBoundingBox()
getCornerPoints() getCornerPoints()
TextBlock.getComponents() TextBlock.getLines()
TextBlock.getValue() TextBlock.getText()
Element.getValue() Element.getText()

CameraSource

Wenn Sie die CameraSource-Bibliothek von Google Mobile Vision verwenden, können Sie Einfache Migration zu CameraXSource von ML Kit -Bibliothek, vorausgesetzt, Ihre App wird mit einer SDK-Mindestversion von mindestens 21 ausgeführt.

Ändern Sie die folgenden Klassen- und Methodennamen:

android.gms.vision mlkit.vision.camera
CameraSource CameraSourceConfig
CameraSource.Builder CameraSourceConfig.Builder
CameraSource.Builder.setAutoFocusEnabled Bei Verwendung von CameraX ist der Autofokus standardmäßig verfügbar.
CameraSource.Builder.setFacing CameraSourceConfig.Builder.setCameraFacing
CameraSource.Builder.setFocusMode Bei Verwendung von CameraX ist der Autofokus standardmäßig verfügbar.
CameraSource.Builder.setRequestedFps Verworfen.
CameraSource.Builder.setRequestedPreviewSize CameraSourceConfig.Builder.setRequestedPreviewSize
CameraSource CameraXSource
new CameraSource.Builder(mContext, detector)....build(); CameraXSource(CameraSourceConfig, PreviewView)
getCameraFacing() getCameraFacing()
getPreviewSize() getPreviewSize()
release() close()
start(SurfaceHolder surfaceHolder) start() // The previewview is set in the CameraSourceConfig
start() start()
stop() stop()
Detector.Processor DetectionTaskCallback
receiveDetections(Detections<T> detections) void onDetectionTaskReceived(@NonNull Task<ResultT> detectionTask);
release() Intern verarbeitet
CameraSource.PictureCallback Verworfen
CameraSource.ShutterCallback Verworfen

Hilfe erhalten

Solltest du Probleme haben, besuche unsere Community-Seite. in dem wir erläutern, über welche Kanäle Sie Kontakt mit uns aufnehmen können.